Swift の機能・利用方法の説明 北陸先端科学技術大学院大学 松井 大輔 一般社団法人クラウド利用促進機構 (CUPA) 荒井 康宏.

Slides:



Advertisements
Similar presentations
オリジンのはなし. NetAgent Shibuya.XSS Feb What is "Origin" ?  オリジン  Same-Origin Policy  クロスオリジンなんとか…  RFC6454 "The Web.
Advertisements

ExpressMail Ver6.1 ご紹介資料 NEC 第二システムソフトウェア事業部.
BBT大学 Ruby on Rails開発環境セットアップマニュアル
ASP入門 - Windows 2000 Server 活用 -.
メール暗号化:秘密鍵・公開鍵の作成  作業手順 Windows メール(Vista).
7-1.WEKOコンテンツ 一括登録 マニュアル Version2.5
Windows版設定マニュアル VPNクライアントソフトの入手
安全なログオン手順 2004/08/26 Port139 伊原 秀明.
最新ファイルの提供を保証する代理FTPサーバの開発
JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 /
Kyoto Tycoonのご紹介 FAL Labs
NORWAY ENGLAND AMERICA FRANCE
(株)アライブネット RS事業部 企画開発G 小田 誠
Webアプリケーションの 通信メカニズム WEBアプリ研究プロジェクト 第2回.
2006年11月15日 植田龍男 Webサービス II (第8回) 年11月15日 植田龍男.
.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) (評価環境構築ガイド)
Flashプレイヤーを使った動画配信 情報工学科 宮本 崇也.
実習用サーバの利用開始手順 (Windowsの場合) TeraTerm Proをインストール 公開鍵をメールで送付
第2章 ネットサービスとその仕組み(前編) [近代科学社刊]
UNIX Life KMSF M2 saburo.
COPPER/FINESSE System構築
インターネットの通信メカニズム 概要 WEBアプリ研究会 2回目.
バージョン管理超入門 まだファイルコピーしてます?
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
メールの利用 計算機実習室でThunderbird.
Al-Mailのインストールと使い方 インストール –1 (pop-authの設定、Al-Mailのインストール用ファイルをダウンロード)
第4回 個人の動画配信補足のためのWeb構築
富士通 SS研究会 2000/11/15 KEK 高エネルギー加速器研究機構 計算科学センター 八代茂夫
HTTPプロトコルとJSP (1) データベース論 第3回.
Curlの仕組み.
HTTPプロトコル J2EE I 第7回 /
Live Framework 入門 その2 JZ5(松江) 2009/8/22.
サーバ構成と運用 ここから私林がサーバ構成と運用について話します.
基幹理工学研究科 情報理工学専攻 後藤研究室 修士1年 魏 元
第8章 Web技術とセキュリティ   岡本 好未.
ホスティングサーバの作成と、 ラズベリーパイの利用
九州大学キャンパスクラウド 利用法 情報ネットワーク特論 講義資料.
卒業論文発表 「Web アクセスに伴う脅威の特徴分析」
Cisco Router GUI設定 CCPE3.2 紹介 本資料に記載の各社社名、製品名は、各社の商標または登録商標です。
CCP Express 3.3 アップグレード ガイド
インターネットにおける真に プライベートなネットワークの構築
仕事: SystemVerilogを使いたい
Cisco Umbrella のご紹介 2018 年 1 月.
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
Linux リテラシ 2006 第5回 SSH と SCP CIS RAT.
スマートデバイスのビジネス活用を支援する法人向けファイル共有サービス
gate-toroku-system のしくみ
UDPマルチキャストチャット    空川幸司.
Web - 01 IIS を インストールしよう.
Webプロキシ HTTP1.0 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
日本郵便 「Web-EDI」利用ガイド (JP EDIシステム)
ネットワークプログラミング (3回目) 05A1302 円田 優輝.
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
7-0.SWORD Client for WEKO インストールマニュアル Version 2.2
Cisco Configuration Professional Express 3.3 アップデート
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
A18 スパムサーバの調査 ~ボットを見抜けるか?~
UNIX演習 情報ネットワーク特論資料.
gate登録システム: 設計ポリシーから使い方まで
UNIX演習 情報ネットワーク特論資料.
Step.8 ファイアウォール PC 3 PC 1 PC 2 許可したアクセス のみ通過させる アクセスする ファイアウォール
ネットワークプロトコル.
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
IPmigrate:複数ホストに分割されたVMの マイグレーション手法
gate-toroku-system のしくみ
アプリケーションゲートウェイ実験 2001.10.5 鬼塚 優.
Sftp の使い方 牧之内研究室 修士1年 安部智貴 2004/04/13.
プロジェクト演習Ⅱ インタラクティブゲーム制作
ポートスキャン実習 2002年9月19日 修士1年 兼子 譲 牧之内研究室「インターネット実習」Webページ
HTTPプロトコルの詳細 M1 峯 肇史.
Presentation transcript:

Swift の機能・利用方法の説明 北陸先端科学技術大学院大学 松井 大輔 一般社団法人クラウド利用促進機構 (CUPA) 荒井 康宏

自己紹介 名前:松井大輔 – スポーツ選手ではありません – そんな名前で大丈夫か? 職業:学生 – 修士課程を修了済み – 現在研究生 研究分野 – クラウド関連 Swift 、 OpenNebula – テストベッド StarBED 、 PlanetLab その他 – ブログ :

Swift の概要 分散オブジェクトストレージ – ファイルのダウンロード / アップロードが可能 元々は RackSpace の Cloud Files サービス –OSS 化 Amazon S3 に相当 大容量のファイルを想定 – バックアップ – メールデータ –VM イメージ – 最大 5GB のファイル – テラバイト・ペタバイトを想定 複数台のサーバで構築 – 規模拡張 容量の増設 – 冗長化 – 一般的な性能の PC を想定 動的にサーバを追加可能 Server File

サーバの拡張・冗長化

FTP の場合の規模拡張・冗長化 FTP Server NFS Server FTP Server NFS Server クライアン ト ミラーサーバを構築する方法 rsync で同期 FTP Server NFS Server rsync で同期 NFS で容量増設 × クライアントが 他のサーバを選択 NFS で容量増設 NFS Server NFS で容量増設

FTP の場合の規模拡張・冗長化 (2) クライアン ト Load Balancer を利用する方法 × Load Balancer FTP Server NFS Server FTP Server NFS Server FTP Server NFS Server NFS で容量増設 NFS Server NFS で容量増設 rsync で同期

増設・冗長化しやすい構造 クライアン ト Load Balancer FTP Server rsync で同期 × FTP Server rsync で同期 FTP Server サーバを追加して 容量増設 目的のファイルに合わせて サーバ選択 クラスタに分けて冗長化 FTP Server 交換などの構成変更 増設後のファイル分配 増設後のクラスタ再構築

リクエストの仲介 ユーザ認証 Proxy Server の URL を通知 Token の発行 ファイルを保存 ディレクトリを保存 アカウントを保存 互いに設定ファイルで指 定 Swift を構成するサーバ群 クライアン ト 各サーバは Ring ファイルで指 定 Container Rings Object Rings Account Rings Object Server のリス ト Container Server のリスト Account Server のリス ト クライアントは Proxy Server と通信 Auth Server Account Server Container Server Object Server Container Server Account Server Proxy Server

Auth Server Proxy Server Account Server Container Server Object Server Container Server Account Server リクエストの仲介 ファイルを保存 ディレクトリを保存 アカウントを保存 Swift の場合の規模拡張・冗長化 クライアン ト サーバを増やして Ring を更新する PUT の段階で冗長化 Object Rings Account Rings Object Server のリス ト Container Server のリスト Account Server のリス ト クライアントは Proxy Server と通信 Object Server Container Server Account Server Container Rings

Ring ファイル Object/Container/Account Server のリスト –Proxy Server がこれらのサーバを参照するのに使用 –Replicator なども使用 Ring に含まれる情報 – サーバのアドレス・ポート –Replica の数 –Zone Replication に影響 コマンドで作成・変更 –swift-ring-builder サーバを動的に追加可能 Object Server zone1 zone2 2 replicas, 2 zones, 4 devices, … zone :6020 … zone :6020 … zone :6020 … zone :6020 … ・・・ replicator で同期

Swift の利用方法 サーバ – 発表では割愛 –Eucalyptus Wiki に設定方法などを記載 Swift のインストール 設定ファイルと Ring ファイルを作成 サーバプログラムの実行 構築用スクリプトも掲載 今回ボツになったネタも掲載予定 クライアント –CloudFiles 対応クライアントが必要 GUI は現行 CyberDuck のみ CloudFiles API Library あり – 頑張れば curl でも可能 大丈夫だ、問題ない そんなクライアント で 大丈夫か?

クライアントからの利用方法

Cloud Files プロトコル RackSpace でも使用 HTTP ベース – メッセージの種類は 4 つ HEAD, GET, PUT, DELETE –SSL 対応可能 用語・制約 – ファイルは object – ディレクトリは container –Object は Container の中にしか作れない –Container の中に Container は作れない – : / / / CyberDuck が CloudFiles プロトコルに対応

CyberDuck GUI のファイル転送クライアント 様々なプロトコルに対応 –FTP 、 FTPS 、 SFTP 、 Amazon S3 などなど Mac では人気のクライアント Windows 版も Private Beta で配布

CyberDuck からの Swift 利用 サーバのアドレスを変更できない orz

CyberDuck からの利用 (2) Mac の場合 –defaults コマンドで設定するとサーバを変更可 能 # defaults write ch.sudo.cyberduck protocol.cf.swift.enable true 変更しても接続できず orz – 調査中 Windows の場合 –Defaults コマンドに相当する設定はできない –CyberDuck のヘルプによると変えられないら しい あぁ、やっぱり Windows は駄目だった よ あいつは設定を聞かないからね

curl からの利用 事前準備 –Auth Server 上でアカウントを作成 swift-auth-add-user コマンド # swift-auth-add-user –K –a 実行例: # swift-auth-add-user –K devauth –a test tester testing 認証 –# curl -v -H 'X-Storage-User: test:tester‘ -H 'X-Storage-Pass: testing‘

認証の結果 # curl -v -H 'X-Storage-User: test:tester' -H 'X-Storage-Pass: testing' * about to connect() to port (#0) * Trying connected * Connected to ( ) port (#0) > GET /v1.0 HTTP/1.1 > User-Agent: curl/ (i486-pc-linux-gnu) libcurl/ OpenSSL/0.9.8k zlib/ libidn/1.15 > Host: :11000 > Accept: */* > X-Storage-User: test:tester > X-Storage-Pass: testing > < HTTP/ No Content < X-Storage-Url: < X-Storage-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5 < X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5 < Content-Length: 0 < Date: Wed, 01 Sep :07:13 GMT < * Connection #0 to host left intact * Closing connection #0 これらの値を控え る

curl からの PUT の方法 認証時に控えた値を指定する –X-Storage-Url –X-Auth-Token ディレクトリ作成 –# curl -X PUT -v -H ‘X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5 ‘ a/aaaa ファイルアップロード –# curl -X PUT -T test -v -H 'X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5‘ a/aaaa

PUT の結果 ( ディレクトリ ) # curl -X PUT -v -H 'X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5' * About to connect() to port 8080 (#0) * Trying connected * Connected to ( ) port 8080 (#0) > PUT /v1/AUTH_8023b2fd83f34c34b8e799a7249fe9aa/aaaa HTTP/1.1 > User-Agent: curl/ (i486-pc-linux-gnu) libcurl/ OpenSSL/0.9.8k zlib/ libidn/1.15 > Host: :8080 > Accept: */* > X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5 > < HTTP/ Created < Content-Length: 18 < Content-Type: text/plain; charset=UTF-8 < Date: Mon, 15 Nov :39:52 GMT < 201 Created * Connection #0 to host left intact * Closing connection #0

PUT の結果前半(ファイル) # curl -X PUT -T test -v -H 'X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5‘ 83f34c34b8e799a7249fe9aa/aaaa * About to connect() to port 8080 (#0) * Trying connected * Connected to ( ) port 8080 (#0) > PUT /v1/AUTH_8023b2fd83f34c34b8e799a7249fe9aa/aaaa/test HTTP/1.1 > User-Agent: curl/ (i486-pc-linux-gnu) libcurl/ OpenSSL/0.9.8k zlib/ libidn/1.15 > Host: :8080 > Accept: */* > X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5 > Content-Length: 45 > Expect: 100-continue > 後半に続く

PUT の結果後半(ファイル) < HTTP/ Continue < HTTP/ Created < Content-Length: 118 < Content-Type: text/plain; charset=UTF-8 < Etag: 922c0f15457dfc631ae9ff06abd1bc82 < Last-Modified: Mon, 15 Nov :45:17 GMT < Date: Mon, 15 Nov :45:18 GMT < 201 Created 201 Created * Connection #0 to host left intact * Closing connection #0

curl からの GET の方法 認証時に控えた値を指定する –X-Auth-Token –X-Storage-Url –PUT と同様 ファイルでもディレクトリでも同様 (URL の違いの み ) –# curl -X GET -v -H ‘X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5 ‘ a/aaaa –# curl -X GET -v -H ‘X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5 ‘ a/aaaa/test

GET の結果 ( ディレクトリ ) # curl -X GET -v -H 'X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5' * About to connect() to port 8080 (#0) * Trying connected * Connected to ( ) port 8080 (#0) > GET /v1/AUTH_8023b2fd83f34c34b8e799a7249fe9aa/aaaa HTTP/1.1 > User-Agent: curl/ (i486-pc-linux-gnu) libcurl/ OpenSSL/0.9.8k zlib/ libidn/1.15 > Host: :8080 > Accept: */* > X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5 > < HTTP/ OK < X-Container-Object-Count: 1 < X-Container-Bytes-Used: 45 < Content-Length: 5 < Content-Type: text/plain; charset=utf8 < Date: Mon, 15 Nov :48:38 GMT < test * Connection #0 to host left intact * Closing connection #0 ファイル一覧が表示される

GET の結果(ファイル) # curl -X GET -v -H 'X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5' * About to connect() to port 8080 (#0) * Trying connected * Connected to ( ) port 8080 (#0) > GET /v1/AUTH_8023b2fd83f34c34b8e799a7249fe9aa/aaaa/test HTTP/1.1 > User-Agent: curl/ (i486-pc-linux-gnu) libcurl/ OpenSSL/0.9.8k zlib/ libidn/1.15 > Host: :8080 > Accept: */* > X-Auth-Token: AUTH_tkc01a591b5cb140ed9b c87f8c5 > < HTTP/ OK < Last-Modified: Mon, 15 Nov :45:17 GMT < Etag: 922c0f15457dfc631ae9ff06abd1bc82 < Content-Length: 45 < Content-Type: application/octet-stream < Date: Mon, 15 Nov :50:51 GMT < オトートノ カタキヲ トルノデス * Connection #0 to host left intact * Closing connection #0 ファイルの中身が表示される

Cloud Files API RackSpace が公開 – g_products/files/apihttp:// g_products/files/api Github にもあり 対応している言語 –PHP –Python –Ruby –Java –.NET(C#) 一番いいクライアントを 頼む

まとめ Swift の機能と概要 –Auth Server –Proxy Server –Object Server –Container Server –Account Server 動的にサーバを追加可能 – 容量の増設 – 冗長化 サーバの構築方法 – 詳しくは Wiki に クライアントからの利用 –CyberDuck からはまだ繋げず –curl でも一応可能 Wiki に curl 用スクリプトも記載 –API あり 大丈夫だ、 (Swift はきっと ) 問題な い そうだな、次はこれを見ている人 にも 手伝ってもらおうかな

おわりに 資料置き場 – 概要 Eucalyputas Wiki の Swift/ 概要のページ – インストール・設定方法など –Eucalyputs 日本語 Wiki に記載 – CloudFiles – cloudfiles.htmlhttp://tech-rumble.blogspot.com/2009/08/rackspace- cloudfiles.html CloudFiles API – CyberDuck –

おわりに ( のおまけ ) 今回没になったネタ – 各種サーバの設定 –Swift のメッセージの流れ エルシャダイ – エルシャダイ Wiki – – セリフ集

通知する URL を変える ファイルを保存 ディレクトリを保存 アカウントを保存 Proxy Server の冗長化 クライアン ト Container Rings Object Rings Account Rings Object Server のリス ト Container Server のリスト Account Server のリス ト Auth Server Account Server Container Server Object Server Container Server Account Server Proxy Server