Your SlideShare is downloading. ×
0
CloudStack Ecosystem Day           openstack      Open source software to build public and private clouds.Swiftで学ぶ分散オブジェクト...
自己紹介●   中島倫明 (Tomoaki Nakajima) @irix_jp    ●   伊藤忠テクノソリューションズ勤務    ●   日本 OpenStack ユーザ会( JOSUG )ボードメンバー    ●   RedHat 認定...
なぜ OpenStack ?                 3
なぜ OpenStack ?http://support.citrix.com/servlet/KbServlet/download/30323-102-674022/CloudStack3.0.0ReleaseNotes.pdf   4
Agenda●   OpenStack とは?●   Swift とは?●   Swift の構造●   Swift の設計●   構築、運用時の注意点●   まとめ●   日本 OpenStack ユーザ会について              ...
OpenStack とは?                6
OpenStack とは?    ●     2010/7/19                 NASA が開発した IaaS ソフト                      +                 Rackspace の Cl...
OpenStack とは?    ●   Python    ●   Modular Structure(Scalable & Pluggable)    ●   Amazon EC2/S3 互換 API    ●   Apache2 ライセン...
OpenStack とは?●   多数の企業、団体が開発コミュニティへ参加                            2012/7/19 現在                      http://openstack.org/   9
OpenStack とは?   ●   リリースバージョン              公開時期           特徴2010.1   Austin    2010/10        Nova, Swift 初リリース(連携せず)2011....
OpenStack とは?●   事例    ●   クラウドサービス                       ●   研究開発基盤        –   The Rackspace Cloud            –   NASA   ...
OpenStack とは?●   構成するコンポーネント    ●   Nova       仮想マシン管理    ●   Swift      オブジェクトストレージ    ●   Glance     イメージ管理    ●   Keyst...
OpenStack とは?●   利用イメージ    ●   ダッシュボード                  13
OpenStack とは?●   利用イメージ    ●   CLI# nova-manage service listBinary           Host          Zone   Status    Statenova-sche...
OpenStack とは?●   利用イメージ    ●   Euca2ools        –   Amazon EC2/S3 互換 API を操作するコマンドラインツール         # euca-describe-availabil...
OpenStack とは?●   利用イメージ    ●    API/Library           –   python-novaclient           –   python-keystoneclient           ...
OpenStack とは?  これまでの OS  物理リソースの制御 インフラを人の手で操作   ● Linux   ● Windows   ● UNIX 系 OS   ● etc                 17
OpenStack とは?  これまでの OS          新しいレイヤの OS  物理リソースの制御      仮想化・分散されたリソースの制御 インフラを人の手で操作     インフラをアプリケーションのよう             ...
OpenStack とは?●   本日の主題    ●   Nova       仮想マシン管理    ●   Swift      オブジェクトストレージ    ●   Glance     イメージ管理    ●   Keystone   ...
Swift とは?            20
Swift とは?●   OpenStack Object Storage    ●   いわゆる Amazon S3    ●   REST API で入出力を行うファイルサーバ        –   Swift API と S3 互換 AP...
Swift とは?●   特徴    ●   HTTP REST API を用いた入出力    ●   安価な x86 サーバ上での稼働を前提    ●   シンプル構造    ●   「超」安全設計    ●   サーバを並列化し、リニアに容...
Swift とは?●   動作環境    ●   Linux(Ubuntu or RHEL)    ●   Python 2.6 or 2.7    ●   Xattr をサポートする Filesystem        –   Ext3, 4...
Swift とは?●   利用イメージ    ●    HTTP リクエストでファイル操作を行う。        PUT /hoge/foo/bar/demo.pdf HTTP/1.1        Host: storage.swiftdri...
Swift とは?●   Swift の用途    ●   アクセスの分散     → サーバ並列化&バランシング    ●   データベースの分散   → Mongo/Cassandra/etc    ●   バッチ処理の分散    → Ha...
Swift とは?●   Swift の用途    ●   アクセスの分散     → サーバ並列化&バランシング    ●   データベースの分散   → Mongo/Cassandra/etc    ●   バッチ処理の分散    → Ha...
Swift とは?●   Swift の用途                            API    データ                                  バックアップ                      ...
バージョン情報●   最新は 1.5.0    version   release   date         blueprint bug    1.4.0     diablo    2011/5/31       5           ...
Swift の構造            29
Swift の構造●   基本構造                                アカウント、コンテ                                        ナのマッピング。                ...
Swift の構造 ●   基本機能が WSGI のミドルウェアとして実装            ClientRequest              Response                                ミドルウェア...
Swift の構造●   データの持ち方                                      C           A    ●   デフォルトで 3 つ   Zone 1        の複製             ...
Swift の構造●   ファイル複製の制御    ●   Ring        –   静的ハッシュテーブル        –   全てのファイルは予め保存先が決められている。    ●   「パーティション」と呼ばれる箱を何個用意するか決...
Swift の構造                              GroupA/UserA                            GroupB/UserB                            A C...
Swift の構造 ●   ファイルの配置            devices dir         デバイス名          デバイス名              デバイス名         account          obje...
Swift の構造●   安全重視の複製    ●   各ノードは Push しか行わない(相手ノードをファイルを        消さない)    ●   データの削除はタイムスタンプを見て、古いものが消え        る    ●   削除...
Swift の構造●   ファイルの複製          ノード 1               ノード 1           ハッシュ                ハッシュ      10.data             10.dat...
Swift の構造●   ファイルの削除          ノード 1                     ノード 1           ハッシュ                     ハッシュ      10.data     30....
Swift の設計            39
Swift の設計●   コンポーネントの負荷(目安)              CPU    MEM    DISK     DISK     network                            (I/O)   (space...
Swift の設計 ●   Rackspace Reference Architecture     ●    Storage-as-a-Service           –   Public, Read/Write Heavy, Min 5...
Swift の設計  ●   コンポーネントの配置 (storage node)          –    NW の二重化や電源二重化は Zone で対応する。          –    ノード数が多くなりやすいのでシンプルが管理しやすい ...
Swift の設計 ●   コンポーネントの配置 (proxy node)     ●   NW 、電源は 2 重化推奨     ●   アクセス経路や顧客単位で Proxy のドメインを分けるこ         とも可能         – ...
Swift の設計●   ネットワーク    ●   ゾーン間は転送量が多いので 10Gbps が推奨Proxy node     Proxy node      Proxy node              Proxy node   Pro...
Swift の設計●   Ring に持たせるパーティション数    ●   大きめに、ただしバランスが重要        –   小さい・・・分散が偏りやすくなる        –   大きすぎる・・・ Swift の起動に時間がかかる、メモ...
Swift の設計●   Ring パーティション数と消費メモリ    ●   3 replica 想定        –    swift-ring-builder xxx create <part_power> <replica> ..pa...
Swift の設計●   超巨大な Swift クラスタを作りたい場合    ●   例 ) 100EB 、 200ZB ・・・    ●   パーティション数は 2^27 前後で頭打ち。        –   構造的にはもっと巨大なパーティシ...
構築、運用時の注意点             48
構築、運用時の注意点●   時刻同期    ●   オブジェクトの管理にタイムスタンプを利用するため。    ●   仮にクラスタ内のノードの時間がずれていると・・・        –   表面上は動くが、時間が遅れている Proxy を経由し...
構築、運用時の注意点●   ファイル破損チェックの動作    ●   ファイル数、容量が大きくなってくると破損チェックの負        荷と時間を見て調整する必要あり。        –   サーバ性能と相談して調整。    ●   obje...
構築、運用時の注意点●   監視    ●   ちゃんとやりましょう    ●   ただし、1台落ちても大惨事にならないので、簡単な        チェックで OK        –   Healthcheck ミドルウェア    ●   ログ...
構築、運用時の注意点●   認証    ●   OpenStack の一部として使う場合は        Keystone ( OpenStack 全体の統合認証)を利用    ●   Swift 単独で利用する場合        –   標準...
ロードマップ         53
ロードマップ#      blueprint                 概要     1 keystone-middleware       Swift 用 Keystone 認証ミドルウェアを Keystone             ...
ロードマップ#       blueprint                    概要    14 future-at-risk-tools          ディスク障害時の一時的な自動復旧    15 localfs          ...
まとめ      56
まとめ●   OpenStack とは?    ●   OSS IaaS 基盤ソフトウェア    ●   ClouldOS とも呼ばれます●   Swift とは?    ●   x86 サーバで動作する、    ●   安価に安全にファイルを...
日本 OpenStack ユーザ会                    58
日本 OpenStack ユーザ会●   国内での OpenStack の普及活動、最新情報の発    信、意見交換等を行なっています。    ●   http://openstack.jp/    ●   ML 参加者: 662 人 (7/1...
日本 OpenStack ユーザ会●   これまでに様々なセミナーや公演を実施    ●   オープンソースカンファレンス        –   東京、名古屋、京都    ●   勉強会        –   セミナー        –   ハ...
日本 OpenStack ユーザ会●   CloudOS を扱う上で重要なポイント         使われている基盤技術の理解                           61
日本 OpenStack ユーザ会            http://openstack.jp/ My special thanks to Citrix and Mr. @kkitase                            ...
ご静聴ありがとうございました。              63
Upcoming SlideShare
Loading in...5
×

CloudStack Ecosystem Day - OpenStack/Swift

6,871

Published on

0 Comments
8 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,871
On Slideshare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
179
Comments
0
Likes
8
Embeds 0
No embeds

No notes for slide

Transcript of "CloudStack Ecosystem Day - OpenStack/Swift"

  1. 1. CloudStack Ecosystem Day openstack Open source software to build public and private clouds.Swiftで学ぶ分散オブジェクトストレージ 〜内部アーキテクチャと構築のポイント〜 2012.07.20 日本 OpenStack ユーザ会 伊藤忠テクノソリューションズ 中島倫明 1
  2. 2. 自己紹介● 中島倫明 (Tomoaki Nakajima) @irix_jp ● 伊藤忠テクノソリューションズ勤務 ● 日本 OpenStack ユーザ会( JOSUG )ボードメンバー ● RedHat 認定アーキテクト● OpenStack をはじめとする OSS を使ったクラウド インテグレーションを主な業務としております。● その傍らで JOSUG メンバーとして、まだまだ歴史 の浅い OpenStack の啓蒙活動にも尽力。 2
  3. 3. なぜ OpenStack ? 3
  4. 4. なぜ OpenStack ?http://support.citrix.com/servlet/KbServlet/download/30323-102-674022/CloudStack3.0.0ReleaseNotes.pdf 4
  5. 5. Agenda● OpenStack とは?● Swift とは?● Swift の構造● Swift の設計● 構築、運用時の注意点● まとめ● 日本 OpenStack ユーザ会について 5
  6. 6. OpenStack とは? 6
  7. 7. OpenStack とは? ● 2010/7/19 NASA が開発した IaaS ソフト      + Rackspace の CloudFiles = OpenStack プロジェクト発足 https://twitter.com/nikiacosta/status/225767355148533760/photo/1http://www.rackspace.com/blog/happy-2nd-birthday-openstack-a-look-at-two-years-of-growth-infographic/ 7
  8. 8. OpenStack とは? ● Python ● Modular Structure(Scalable & Pluggable) ● Amazon EC2/S3 互換 API ● Apache2 ライセンス ● OpenStack Foundation● OpenSource IaaS Platform Software ● データセンタ、社内、自宅でクラウド 8
  9. 9. OpenStack とは?● 多数の企業、団体が開発コミュニティへ参加 2012/7/19 現在 http://openstack.org/ 9
  10. 10. OpenStack とは? ● リリースバージョン 公開時期 特徴2010.1   Austin 2010/10 Nova, Swift 初リリース(連携せず)2011.1   Bexar 2011/2 Glance : Swift 上の VM ディスクイメージを Nova から 利用可能に2011.2   Cactus 2011/4 Nova : LXC ・ VMware ESX 対応、 IPv6 完全対応 Swift : Swauth 認証採用、性能向上 Glance : CLI ツール追加、複数イメージフォーマット対 応2011.3   Diablo 2011/10 Nova :ゾーン間分散スケジューラ、ボリュームブート Swift :複数クラスタレプリケーション Glance :フィルタリング対応、テナント間イメージ共有2012.1   Essex 2012/4 Keystone : Nova, Swift 等でユーザ管理を一元化 Horizon : Nova, Swift 等を WebUI で操作2012.2   Folsom 2012/10 予定 Quantum :仮想ネットワーク機能が Nova から独立 Cinder :ボリューム機能が Nova から独立2013.1   Grizzly 2013/4 予想 OpenStack Design Summit October 15-18 で決定。 http://openstack.jp/assets/files/20120512/OSC2012-Nagoya-yosshy.pdf 10
  11. 11. OpenStack とは?● 事例 ● クラウドサービス ● 研究開発基盤 – The Rackspace Cloud – NASA – HP Public Cloud – University of Melbourne – Ubuntu Cloud – University of Bedfordshire – Softlayer Object Storage – Purdue University ● サービス基盤 – Information Sciences Institute – Instituto de Física de Cantabria(IFCA) – MercadoLibre, Inc – Gjøvik University College – Sina.com – CC-IN2P3 – Radio Free Asia – US Department of Energy – AT&T – Industrial Technology Research – RightScale – Institute (ITRI), CCMA – X.commerce (eBay/Paypal) 11
  12. 12. OpenStack とは?● 構成するコンポーネント ● Nova 仮想マシン管理 ● Swift オブジェクトストレージ ● Glance イメージ管理 ● Keystone 認証・認可 ● Horizon ダッシュボード ● Quantum ネットワーク管理( nova から派生 ) ● Cinder ボリューム管理( nova から派生) 各コンポーネントの単独利用も可能 12
  13. 13. OpenStack とは?● 利用イメージ ● ダッシュボード 13
  14. 14. OpenStack とは?● 利用イメージ ● CLI# nova-manage service listBinary Host Zone Status Statenova-scheduler openstack-1 nova enabled :-)nova-compute openstack-2 nova enabled :-)nova-compute openstack-3 nova enabled :-)nova-compute openstack-4 nova enabled :-)nova-network openstack-2 nova enabled :-)nova-network openstack-3 nova enabled :-)nova-network openstack-4 nova enabled :-) 14
  15. 15. OpenStack とは?● 利用イメージ ● Euca2ools – Amazon EC2/S3 互換 API を操作するコマンドラインツール # euca-describe-availability-zones verbose AVAILABILITYZONE nova available AVAILABILITYZONE |- nova1.sol-net.jp AVAILABILITYZONE | |- nova-cert enabled :-) AVAILABILITYZONE | |- nova-compute enabled :-) AVAILABILITYZONE | |- nova-consoleauth enabled :-) AVAILABILITYZONE | |- nova-network enabled :-) AVAILABILITYZONE | |- nova-scheduler enabled :-) AVAILABILITYZONE | |- nova-volume enabled :-) 15
  16. 16. OpenStack とは?● 利用イメージ ● API/Library – python-novaclient – python-keystoneclient – python-quantumclient – (開発中) python-swiftclient , python-glanceclient from keystoneclient.v2_0 import client keystone = client.Client( username=USER, password=PASS, tenant_name=TENANT_NAME, tenant_name=KEYSTONE_URL) http://openstack.jp/assets/files/20120604/KeystoneClient.pdf 16
  17. 17. OpenStack とは? これまでの OS 物理リソースの制御 インフラを人の手で操作 ● Linux ● Windows ● UNIX 系 OS ● etc 17
  18. 18. OpenStack とは? これまでの OS 新しいレイヤの OS 物理リソースの制御 仮想化・分散されたリソースの制御 インフラを人の手で操作 インフラをアプリケーションのよう に操作 ● Linux ● OpenStack ● Windows ● CloudStack ● UNIX 系 OS ● Eucalyptus ● etc ● etc CloudOS 18
  19. 19. OpenStack とは?● 本日の主題 ● Nova 仮想マシン管理 ● Swift オブジェクトストレージ ● Glance イメージ管理 ● Keystone 認証・認可 ● Horizon ダッシュボード ● Quantum ネットワーク管理( OpenFlow ) ● Cinder ボリューム管理( nova から派生) 19
  20. 20. Swift とは? 20
  21. 21. Swift とは?● OpenStack Object Storage ● いわゆる Amazon S3 ● REST API で入出力を行うファイルサーバ – Swift API と S3 互換 API – オブジェクト≒ファイル ● Proxy Node と Storage Node の 2 つで構成 Swift Proxy Storage Account Client REST REST Container Node Node Object 21
  22. 22. Swift とは?● 特徴 ● HTTP REST API を用いた入出力 ● 安価な x86 サーバ上での稼働を前提 ● シンプル構造 ● 「超」安全設計 ● サーバを並列化し、リニアに容量・性能を向上可能 – 単一障害点なし – ボトルネックなし ● ファイルの破損を自動検知&自己修復 ● ファイルと任意のメタ情報をセットにした格納が可能 22
  23. 23. Swift とは?● 動作環境 ● Linux(Ubuntu or RHEL) ● Python 2.6 or 2.7 ● Xattr をサポートする Filesystem – Ext3, 4, xfs, etc ● インストール関して – Ubuntu ・・・標準リポジトリに含まれる – RHEL ・・・ EPEL リポジトリに含まれる ● CentOS, Scientific, Fedora でも動作可 23
  24. 24. Swift とは?● 利用イメージ ● HTTP リクエストでファイル操作を行う。 PUT /hoge/foo/bar/demo.pdf HTTP/1.1 Host: storage.swiftdrive.com X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb ETag: 8a964ee2a5e88be344f36c22562a6486 Content-Length: 512000 X-Object-Meta-PIN: 1234 [...body...] 24
  25. 25. Swift とは?● Swift の用途 ● アクセスの分散 → サーバ並列化&バランシング ● データベースの分散 → Mongo/Cassandra/etc ● バッチ処理の分散 → Hadoop ● ファイル入出力の分散 → ??? 25
  26. 26. Swift とは?● Swift の用途 ● アクセスの分散 → サーバ並列化&バランシング ● データベースの分散 → Mongo/Cassandra/etc ● バッチ処理の分散 → Hadoop ● ファイル入出力の分散 → ??? 26
  27. 27. Swift とは?● Swift の用途 API データ バックアップ API API データ アーカイブ Dropbox 風 API クライアント API Hadoop 等 API WEB 27
  28. 28. バージョン情報● 最新は 1.5.0 version release date blueprint bug 1.4.0 diablo 2011/5/31 5 20 1.4.1 diablo 2012/6/20 2 7 1.4.2 diablo 2011/7/27 5 14 1.4.3 diablo 2011/9/12 3 7 1.4.4 essex 2011/11/24 1 14 1.4.5 essex 2012/1/9 3 8 1.4.6 essex 2012/2/10 2 11 1.4.7 essex 2012/3/9 9 10 1.4.8 essex 2012/3/33 0 8 1.5.0 folsom 2012/6/5 6 16 1.5.1 folsom 2012/7/30 28
  29. 29. Swift の構造 29
  30. 30. Swift の構造● 基本構造 アカウント、コンテ ナのマッピング。 Account アカウントの統計情 報を管理 ユーザからのアクセス窓口。 REST 配下のサーバへの振り分けを 行う。 コンテナに保存され REST たオブジェクトと Proxy Container ACL を管理 REST オブジェクトの実体 が保存される。 Auth Object ユーザ認証、アクセストークンの発行 30
  31. 31. Swift の構造 ● 基本機能が WSGI のミドルウェアとして実装 ClientRequest Response ミドルウェアを追加する事で処理を自由に追加可能 WEB インターフェス 標準の Proxy サーバでは以下の MW がロードされる ミドルウェア 1 catch_errors ミドルウェア 2 healthcheck cache ... ratelimit ミドルウェア N tempauth proxy-logging WSGI アプリケーション proxy-server https://github.com/openstack/swift/blob/master/etc/proxy-server.conf-sample 31
  32. 32. Swift の構造● データの持ち方 C A ● デフォルトで 3 つ Zone 1 の複製 B A ● 複製は「ゾーン」 Zone 2 という単位で区 切られて行われ B る。 Zone 3 C A Zone 4 B C Zone 5 32
  33. 33. Swift の構造● ファイル複製の制御 ● Ring – 静的ハッシュテーブル – 全てのファイルは予め保存先が決められている。 ● 「パーティション」と呼ばれる箱を何個用意するか決めた 後で、どの箱にどのディスクを配置するか決める。 ● swift-ring-builder xxx create ・・・箱の数を決める ● swift-ring-builder xxx add ・・・ディスクを登録 ● swift-ring-builder xxx rebalance ・・・箱へ割当てるディスクを決定 33
  34. 34. Swift の構造 GroupA/UserA GroupB/UserB A ContainerA B ContainerB filenameA filenameB swift_hash_path_suffix Part1 Part2 Part3 Part4 ・・・ 2^nReplica1 array(H, [ 0, 1, 5, 8, 7, 6, ...])Replica2 array(H, [ 6, 3, 9, 4, 3, 2, ...])Replica3 array(H, [ 4, 7, 2, 0, 5, 1, ...]){... ip: 192.168.128.12, id: 4, parts: 10, device: disk5, port: 6000 ...},{... ip: 192.168.128.12, id: 5, parts: 10, device: disk6, port: 6000 ...},{... ip: 192.168.128.12, id: 6, parts: 10, device: disk7, port: 6000 ...},... 34
  35. 35. Swift の構造 ● ファイルの配置 devices dir デバイス名 デバイス名 デバイス名 account object container パーティション No パーティション No パーティション No ハッシュ下 3 桁 ハッシュ下 3 桁 ハッシュ下 3 桁 ハッシュ ハッシュ ハッシュアップロード時の 10.data 20.dataタイムスタンプがファイル名になる 35
  36. 36. Swift の構造● 安全重視の複製 ● 各ノードは Push しか行わない(相手ノードをファイルを 消さない) ● データの削除はタイムスタンプを見て、古いものが消え る ● 削除時には削除フラグ (tombstone) ファイルを生成し、 「削除」のレプリケーションにも対応。 36
  37. 37. Swift の構造● ファイルの複製 ノード 1 ノード 1 ハッシュ ハッシュ 10.data 10.data 20.data ノード 2 ノード 2 ハッシュ ハッシュ 20.data 10.data 20.data 37
  38. 38. Swift の構造● ファイルの削除 ノード 1 ノード 1 ハッシュ ハッシュ 10.data 30.ts 10.data 20.data 30.ts ノード 2 ノード 2 ハッシュ ハッシュ 10.data 20.data 30.ts 20.data 38
  39. 39. Swift の設計 39
  40. 40. Swift の設計● コンポーネントの負荷(目安) CPU MEM DISK DISK network (I/O) (space) proxy 中 *1 中 *1 低 低 中 *1 account 低 低 低 低 低container 中 低 低 低 低 *2 object 中 中 高 高 高*1) 利用方法と台数に依存。*2) たいていの場合、この 3 機能は同居でもよい。ただし、総容量が数百 PB になる ケースでは分離したほうが良い(後述 40
  41. 41. Swift の設計 ● Rackspace Reference Architecture ● Storage-as-a-Service – Public, Read/Write Heavy, Min 5 cabinets (~75 Nodes) Proxy Node Storage Node Server Model Dell R415, Dell R515, Dell R710 Dell C2100, Dell R515 CPU Single socket CPU (min. needed) Single Quad MEM 8GB RAM 8 or 12GB RAM Data Disk Qty:12, SATA 3.5" 2TB Drives System Disk Qty: 2, 3.5" 15K-RPM 300GB Qty: 2, SAS 2.5" 300GB Drives SAS (internal) Raid R1, LSI RAID Controller No RAID NIC Intel NICs Intel 1Gb NICs: 2 or more NICs of 1G or greater, based on intended workloadhttp://www.referencearchitecture.org/ 41
  42. 42. Swift の設計 ● コンポーネントの配置 (storage node) – NW の二重化や電源二重化は Zone で対応する。 – ノード数が多くなりやすいのでシンプルが管理しやすい zone1 zone2 zone3 zone4 zone5 1Gbps L2 1Gbps L2 1Gbps L2 1Gbps L2 1Gbps L2Storage node Storage node Storage node Storage node Storage nodeStorage node Storage node Storage node Storage node Storage nodeStorage node Storage node Storage node Storage node Storage nodeStorage node Storage node Storage node Storage node Storage nodeStorage node Storage node Storage node Storage node Storage nodeStorage node Storage node Storage node Storage node Storage node 42
  43. 43. Swift の設計 ● コンポーネントの配置 (proxy node) ● NW 、電源は 2 重化推奨 ● アクセス経路や顧客単位で Proxy のドメインを分けるこ とも可能 – メリット: ratelimit(middleware) を個別に設定できる。 Domain A Domain BProxy node Proxy node Proxy node Proxy node Proxy node 1Gbps L2 1Gbps L2 Storage pool 43
  44. 44. Swift の設計● ネットワーク ● ゾーン間は転送量が多いので 10Gbps が推奨Proxy node Proxy node Proxy node Proxy node Proxy node 1Gbps L2 1Gbps L2 10Gbps 10Gbps 1Gbps L2 1Gbps L2 1Gbps L2 1Gbps L2 1Gbps L2Storage node Storage node Storage node Storage node Storage nodeStorage node Storage node Storage node Storage node Storage node 44
  45. 45. Swift の設計● Ring に持たせるパーティション数 ● 大きめに、ただしバランスが重要 – 小さい・・・分散が偏りやすくなる – 大きすぎる・・・ Swift の起動に時間がかかる、メモリを消費 ● あとで変更できない(現時点では) ● パーティション数による性能の変化は無い ● 算出方法 – 1 物理ディスクあたり 30 〜 100 パーティション前後 – 最終的に 1 クラスタを構成する最大見込み容量から求める – 2^n の近似値となる n を選択する。 45
  46. 46. Swift の設計● Ring パーティション数と消費メモリ ● 3 replica 想定 – swift-ring-builder xxx create <part_power> <replica> ..part_power パーティション数 目安ディスク本数 物理容量 消費メモリ *1 (100part/disk) (SATA 3TB) ( 目安 ) 10 1,024 11 33 TB 145,660 KB 15 32,768 328 984 TB 145,764 KB 20 1,048,576 10,486 32 PB 151,748 KB 25 33,554,432 335,545 1,007 PB 342,212 KBpart_power が 20 を超えると目に見えて Ring の作成、 Swift の起動が遅くなる。現実的な運用を考慮すると、 part_power=27 前後が限界 (RAID 無しの場合 ) *1)ring をロードした Python プロセスの仮想メモリサイズ 46
  47. 47. Swift の設計● 超巨大な Swift クラスタを作りたい場合 ● 例 ) 100EB 、 200ZB ・・・ ● パーティション数は 2^27 前後で頭打ち。 – 構造的にはもっと巨大なパーティションも作成可能● Swift に認識させるディスクを LVM で連結して、 1 ディスクあたりのサイズを大きくする。 ● ほぼ無限にスケールさせられる。 47
  48. 48. 構築、運用時の注意点 48
  49. 49. 構築、運用時の注意点● 時刻同期 ● オブジェクトの管理にタイムスタンプを利用するため。 ● 仮にクラスタ内のノードの時間がずれていると・・・ – 表面上は動くが、時間が遅れている Proxy を経由してアップ ロードされたオブジェクトが、過去ファイル扱いになってしまう 等の問題あり。 49
  50. 50. 構築、運用時の注意点● ファイル破損チェックの動作 ● ファイル数、容量が大きくなってくると破損チェックの負 荷と時間を見て調整する必要あり。 – サーバ性能と相談して調整。 ● object-auditor – files_per_second ● 1 秒間にチェックできるファイル数の最大値(デフォルト: 20 ) – bytes_per_second ● 1 秒間にチェックできるバイト数の最大値(デフォルト: 10000000 ) 50
  51. 51. 構築、運用時の注意点● 監視 ● ちゃんとやりましょう ● ただし、1台落ちても大惨事にならないので、簡単な チェックで OK – Healthcheck ミドルウェア ● ログ監視は注意 – Swift は正常動作時にも内部ではエラーが出やすい。 ● レスポンス向上のために、タイムアウトしきい値が低い 51
  52. 52. 構築、運用時の注意点● 認証 ● OpenStack の一部として使う場合は Keystone ( OpenStack 全体の統合認証)を利用 ● Swift 単独で利用する場合 – 標準で持っている認証方式 ● tempauth( テスト用認証機構、リファレンス実装 ) ● swauth(Keystone 登場前の Swift 専用の認証機構 ) – 個別に作りこむ場合 ● tempauth を参考にするとわかりやすい http://docs.openstack.org/developer/swift/development_auth.html 52
  53. 53. ロードマップ 53
  54. 54. ロードマップ# blueprint 概要 1 keystone-middleware Swift 用 Keystone 認証ミドルウェアを Keystone から Swift へ移動 2 webob-support 新バージョンの webos モジュールのサポート 3 cors-support CORS サポート 4 large-single-uploads 5GB 以上のオブジェクトを単一操作でアップ ロード可能にする 5 multi-region 異なる Swift クラスター間でのレプリケーション 6 ring-builder-server Ring 管理機能 7 object-compression 圧縮 8 searchable-metadata メタデータ検索 10 cdmi CDMI のサポート (SNIA によって定義されるクラ ウド上のデータ管理企画 ) 11 cdn-swift CDN サポート 12 easier-ring-changes CSV からの Ring 作成 13 friendly-error-messages エラーメッセージの改善 https://blueprints.launchpad.net/swift 54
  55. 55. ロードマップ# blueprint 概要 14 future-at-risk-tools ディスク障害時の一時的な自動復旧 15 localfs ??? 16 parity-storage Erasure Coding への対応 17 pipe-stdin パイプライン経由のアップロード 18 prevent-deletes 永続的オブジェクトのサポート(削除できないオ ブジェクト) 19 read-only-middleware 全体を読み取り専用にするミドルウェア 20 reworkfunctests 機能テストのリファクタリング 21 storage-quotas テナントへのクォータ 22 swift-cdmi CDMI のサポート 23 swift-configurable-handoff- ハンドオフノードの選択方式の改善 constraints 24 zone-concept-change ゾーンコンセプトの変更 https://blueprints.launchpad.net/swift 55
  56. 56. まとめ 56
  57. 57. まとめ● OpenStack とは? ● OSS IaaS 基盤ソフトウェア ● ClouldOS とも呼ばれます● Swift とは? ● x86 サーバで動作する、 ● 安価に安全にファイルを保存できる、 ● S3 互換を備えた、 ● REST ベースのファイルサーバです 57
  58. 58. 日本 OpenStack ユーザ会 58
  59. 59. 日本 OpenStack ユーザ会● 国内での OpenStack の普及活動、最新情報の発 信、意見交換等を行なっています。 ● http://openstack.jp/ ● ML 参加者: 662 人 (7/17 時点 ) 59
  60. 60. 日本 OpenStack ユーザ会● これまでに様々なセミナーや公演を実施 ● オープンソースカンファレンス – 東京、名古屋、京都 ● 勉強会 – セミナー – ハンズオン – ハッカソン – コードリーディング – 月 1 回ペース 60
  61. 61. 日本 OpenStack ユーザ会● CloudOS を扱う上で重要なポイント 使われている基盤技術の理解 61
  62. 62. 日本 OpenStack ユーザ会 http://openstack.jp/ My special thanks to Citrix and Mr. @kkitase 62
  63. 63. ご静聴ありがとうございました。 63
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×