「hbstudy#23 openstack祭!!」資料 ~openstackプロジェクトの全体像~
DESCRIPTION
2011/06/11に新宿で開催された、第23回 HBStudy の資料「OpenStackプロジェクトの全体像~デザインサミット便り~」です。フラッシュ記憶できなかった方はごゆっくりどうぞwTRANSCRIPT
OpenStackプロジェクトの全体像
~デザインサミット便り~
HBStudy #23 「OpenStack祭り!!」資料
2011年6月11日
株式会社NTTデータ
伊藤雅典
自己紹介
氏名
伊藤 雅典 (いとう まさのり)
所属
株式会社NTTデータ 技術開発本部 ITアーキテクチャ&セキュリティ技術センタ
担当業務
NTTデータの総合クラウドサービス BizXaaS™ (http://bizxaas.net/)の、
Copyright © 2010 NTT DATA CORPORATION1
「フルOSSクラウド構築ソリューション」 の開発ほかに従事
http://www.nttdata.co.jp/release/2010/040801.html
現在は、OpenStackやヘテロクラウド連携技術(特にストレージまわり)に注力中
その他、活動領域
専門はOS、仮想化、ネットワーク等のプラットフォーム系技術一般
Open Cloud Campus、日本OpenStackユーザ会(JOSUG)、
VIOPS TransSIG、GICTF等でも活動中
INDEX
01 OpenStackプロジェクトの概要
02 コミュニティ最新動向
03 OpenStack Compute:Nova
04 OpenStack Object Storage:Swift
05 Bexar/Cactusの注目ポイント
Copyright © 2011 NTT DATA CORPORATION2
06 日本のコミュニティの状況
01 OpenStackプロジェクトの概要
3Copyright © 2011 NTT DATA CORPORATION
OpenStackプロジェクトとは
IaaSを構築するためのオープンソースソフトウェアを開発するプロジェクト
• 米国RackSpace社が主催
• 後援:NASA
• 日本からはNTTデータ、NTT、ミドクラ等が参加
AMD
ANSO
Autonomic Resources
Intalio
Intel
InterNap
Rackspace
RightScale
Riptano
クラウドサービスを提供する最
大手企業の一つ
Copyright © 2011 NTT DATA CORPORATION4
協賛企業 (アルファベット順、http://openstack.org/community/より)
Autonomic Resources
Cirrascale
Citrix
Cloud Central
Cloud.com
Cloudkick
Cloudscaling
CloudSwitch
Dell
enStratus
FathomDB
InterNap
iomart Group
Limelight
MidoKura
Morphlabs
NASA
Nicira
NTT Data
Opscode
PEER 1
Puppet Labs
Riptano
rPath
Scalr
SoftLayer
Sonian
Spiceworks
Vyatta
Zenoss
Zuora
プロジェクト発足の背景
Rackspace社とNASAがOpenStackプロジェクトを
立ち上げた理由
• スケーラビリティ(膨大なノード数とデータ量)
• 開発のオープン性
• ユーザベースの拡大
「今日の科学技術計算では、ますます
大量のストレージと強力な処理能力
をオンデマンドで提供することが求め
られている」
-NASA CTOのChris Kemp
http://www.itmedia.co.jp/enterprise/
articles/1007/21/news023.html
“as his (Chris Kemp’s) engineers
Copyright © 2011 NTT DATA CORPORATION5
• コミュニティや開発プロセスをすべて公開する
• OSI承認オープンソースライセンスである
Apache License 2.0を採用
• Open Core 戦略は採らず、クローズドな
エンタープライズ版を作らない
• Ubuntuの運営方法に倣っている
“as his (Chris Kemp’s) engineers
attempted to contribute additional
Eucalyptus code to improve its
ability to scale, they were unable
to do so because some of the
platform's code is open and some
isn't.”
http://www.theregister.co.uk/2010/07
/20/why_nasa_is_dropping_eucalyptus_fr
om_its_nebula_cloud/
プロジェクトの歴史
Nova公開
NASA/Anso Labs
NASA
Nebula
‘10/5/19
‘10/07/19の発表以来、’11/4/17に第3版(Cactus)がリリースさ
れ、’11/09/22予定の第4版(Diablo) に向け開発が進行中。
6
Swift公開
Rackspace社
Nebula
Rackspace
Cloud Files
OpenStack
発表
’10/7/19 ‘10/10/21
Copyright © 2011 NTT DATA CORPORATION
Austin
リリース
Bexar
リリース
Cactus
リリース
‘11/2/3 ‘11/4/17
主要な構成要素
OpenStackプロジェクトは、主に三つのコンポーネントから構成される
• OpenStack Compute
• 開発コードネーム: Nova
• Amazon EC2に相当(IaaSの管理機能)
Copyright © 2011 NTT DATA CORPORATION7
• OpenStack Object Storage
• 開発コードネーム: Swift
• Amazon S3に相当(分散ストレージ)
• OpenStack Image Registry and Delivery Service
• 開発コードネーム: Glance
• VMのイメージ管理を担当。Swiftとのproxyとなる
開発情報
• 実装言語
• ライブラリの標準化が進んでいることが採用理由
• バージョン2.6以上必須
• 推奨プラットフォーム
• コア開発者は 11.04 で開発中。10.10 でも普通に動きます。
Copyright © 2011 NTT DATA CORPORATION8
• コア開発者は 11.04 で開発中。10.10 でも普通に動きます。
• RHEL 6.0用や Fedora 用のパッケージもあります。
• ただし、RHEL5.x系は Python が古いため、かなり困難です。
• サポート対象ハイパーバイザ
• KVM, Xen, (XenServer or libvirt), Hyper-V, Vmware, LXC, UML
etc…
情報源
• OpenStack公式サイト
• http://openstack.org/
• OpenStack Blog http://openstack.org/blog/
• OpenStack Wiki
• http://wiki.openstack.org/
• ドキュメント
• リリースミーティングのIRCログ
Copyright © 2011 NTT DATA CORPORATION9
• リリースミーティングのIRCログ
• Launchpad
• https://launchpad.net/~openstack
• リポジトリ、メーリングリスト(OpenStack/Nova/Swift)、
blueprint (簡素な機能仕様書)
• IRC
• #openstack
• @openstack http://twitter.com/openstack
02 コミュニティ最新動向
10Copyright © 2011 NTT DATA CORPORATION
Design Summit
� 世界中から開発者が一堂に集まって方針・仕様・設計・実
装などについて議論する会議(リリースとリリースの間に開
催される)
� Diablo (第4版)向けの Design Summit
�2011/04/26-29
�於: カリフォルニア州サンタクララ(Hyatt Regency)
�参加者 450名以上
�テクニカルトラックにエントリされた提案:60以上
Design Summit
会場のホテル
Design Summit
テクニカルトラックでの議論の様子
Design Summit:主要な技術トピック
� Network as a Service の導入
� Project Quantum / Melange / Donabe
� ネットワーク仮想化機能の分離、プラグイン化
� DB as a Service の導入
� Project RedDwarf : Amazon RDS相当の機能
� LB as a Service の導入
� Project Atlas : Amazon ELB相当の機能
� Volume as a Serviceの強化
� Project Lunr : 箱モノストレージのサポート
Design Summit:主要な技術トピック
� 分散スケジューラの導入
�マルチゾーン化
� 認証サービスの外出し、プラグイン化
� OpenStack AP拡張のフレームワーク決定
� 各コンポーネントのHA化� 各コンポーネントのHA化
� etc
Design Summit:そのほかのトピック
� リリースサイクル
� Diablo 以降6カ月おきのリリースサイクルに変更
� KTのObjectStorageサービス
� Swiftで構築した容量1PBのオブジェクトストレージサービス
のベータプログラムを実施中のベータプログラムを実施中
� テスト環境の充実
� 西海岸に試験用のコミュニティクラウド構築予定.
etc…
Design Summit:日本関連トピック
OpenStackコミュニティからの東日本大震災への支援
1. Conference 登録料を赤十字を通じ、全額震災復興支援のために
寄付
2. チャリティTシャツを販売し、収益を全額寄付
3. 日本人参加者は登録料免除3. 日本人参加者は登録料免除
02 OpenStack Compute : Nova
18Copyright © 2011 NTT DATA CORPORATION
概要
• IaaSを管理する機能を提供
例)
• 空いてるサーバを検出して仮想マシンを起動
• 仮想マシンに割当てるIPアドレスの管理
• 仮想マシン間の通信を遮断するVLANの制御
• 外部NW⇔仮想マシン間のパケットフィルタリング
• 仮想マシンが一時的に使える外部ストレージ(EBS)
Copyright © 2011 NTT DATA CORPORATION19
• 仮想マシンが一時的に使える外部ストレージ(EBS)
• etc
• Amazon EC2相当のサービスを提供
• APIもAmazon互換
Novaのアーキテクチャ
稼働中の仮想マシン
の管理
Scheduler NodeScheduler Node
仮想マシンを稼働させるサーバを選定
独立した複数のコンポーネントがメッセージキューを介して連携
Compute NodeCompute Node
Copyright © 2011 NTT DATA CORPORATION20
メッセーキュー
(RabbitMQ)
メッセーキュー
(RabbitMQ)
API ServerAPI Server
仮想マシンにAmazon EBS
のようなストレージを提供
Network NodeNetwork Node
Object Storage
Server
Object Storage
Server
仮想マシンにIPアドレス
の払出し
仮想マシンイメージの管理
ユーザからの要求受付
Volume NodeVolume Node
システム構成例
インターネット
/イントラネット
物理マシンプール#1
外部ネットワーク
エンドユーザPC
iptables
Copyright © 2011 NTT DATA CORPORATION21
Network
Node
API
Node
EBSEBSEBSEBSボリュームボリュームボリュームボリューム
glance
Volume Node
(iSCSI 等)
VMVMVMVM
ImageImageImageImage
Compute
Node
VMVM
…
内部ネットワーク
管理・ストレージ用ネットワーク
管理・ストレージ用ネットワーク
DB
(MySQL)
Compute
Node
VMVM
Scheduler
Node
Rabbit
MQ
動作例(仮想マシン起動-1)
インターネット
/イントラネット
物理マシンプール#1
外部ネットワーク
エンドユーザPC
iptables
Copyright © 2011 NTT DATA CORPORATION22
Network
Node
API
Node
EBSEBSEBSEBSボリュームボリュームボリュームボリューム
Object
Storage
Volume Node
(AoE/iSCSI)
VMVMVMVM
ImageImageImageImage
Compute
Node
VMVM
…
内部ネットワーク
管理・ストレージ用ネットワーク
DB
(MySQL)
Compute
Node
VMVM
Scheduler
Node
Rabbit
MQ
動作例(仮想マシン起動-2)
インターネット
/イントラネット
物理マシンプール#1
外部ネットワーク
エンドユーザPC
iptables
※図の簡易化のため省略
していますが、コンポーネ
ント間の通信はRabbitMQ
経由です
Copyright © 2011 NTT DATA CORPORATION23
Network
Node
API
Node
EBSEBSEBSEBSボリュームボリュームボリュームボリューム
Object
Storage
Volume Node
(AoE/iSCSI)
VMVMVMVM
ImageImageImageImage
Compute
Node
VMVM
…
内部ネットワーク
管理・ストレージ用ネットワーク
DB
(MySQL)
Compute
Node
VMVM
Scheduler
Node
Rabbit
MQ
動作例(仮想マシン起動-3)
インターネット
/イントラネット
物理マシンプール#1
外部ネットワーク
エンドユーザPC
iptables
Copyright © 2011 NTT DATA CORPORATION24
Network
Node
API
Node
EBSEBSEBSEBSボリュームボリュームボリュームボリューム
Object
Storage
Volume Node
(AoE/iSCSI)
VMVMVMVM
ImageImageImageImage
Compute
Node
VMVM
…
内部ネットワーク
管理・ストレージ用ネットワーク
DB
(MySQL)
Compute
Node
VMVM
Scheduler
Node
Rabbit
MQ
動作例(仮想マシン起動-4)
インターネット
/イントラネット
物理マシンプール#1
外部ネットワーク
エンドユーザPC
iptables
Copyright © 2011 NTT DATA CORPORATION25
Network
Node
API
Node
EBSEBSEBSEBSボリュームボリュームボリュームボリューム
Object
Storage
Volume Node
(AoE/iSCSI)
VMVMVMVM
ImageImageImageImage
Compute
Node
VMVM
…
内部ネットワーク
管理・ストレージ用ネットワーク
DB
(MySQL)
Compute
Node
VMVM
Scheduler
Node
Rabbit
MQ
動作例(仮想マシン起動-5)
インターネット
/イントラネット
物理マシンプール#1
外部ネットワーク
エンドユーザPC
iptables
Copyright © 2011 NTT DATA CORPORATION26
Network
Node
API
Node
EBSEBSEBSEBSボリュームボリュームボリュームボリューム
Object
Storage
Volume Node
(AoE/iSCSI)
VMVMVMVM
ImageImageImageImage
Compute
Node
VMVM
…
内部ネットワーク
管理・ストレージ用ネットワーク
DB
(MySQL)
Compute
Node
VMVM
Scheduler
Node
Rabbit
MQ
より深い理解のための知識
1. クラウドを利用するアカウント体系とアクセス制御
2. インスタンスタイプ
3. API
4. 仮想マシン用ネットワークの構成
Copyright © 2011 NTT DATA CORPORATION27
4. 仮想マシン用ネットワークの構成
5. セキュリティグループ
より深い理解のための知識(アクセス制御)
� ユーザ、プロジェクト
� プロジェクトには複数のユーザ
� あるユーザは複数のプロジェクトに所属できる
� (ユーザ, プロジェクト)の単位で証明書が配布され、それで権限切替え
� アクセス制御単位はプロジェクト単位
� 他のプロジェクトの仮想マシンは見られない
� 仮想マシンにpublicフラグが付いた場合は別
Copyright © 2011 NTT DATA CORPORATION28
� 仮想マシンにpublicフラグが付いた場合は別
� ロール
� プロジェクト内でできることをさらに分割するもの
� 種類は固定。変更不可。ロールが実行可能な操作も変更不可
� Admin
� クラウドの管理者。全プロジェクトの全権限を持つ
より深い理解のための知識(ユーザ)
ロールの種別およびロールと動作の関係
ロールロールロールロール
netadmin projectmanager sysadmin other
'DescribeSnapshots ○ ○ ○ ○
'DescribeKeyPairs ○ ○ ○ ○
'CreateKeyPair ○ ○ ○ ○
'DeleteKeyPair ○ ○ ○ ○
'DescribeSecurityGroups ○ ○ ○ ○
Copyright © 2011 NTT DATA CORPORATION29
動
作
'DescribeSecurityGroups ○ ○ ○ ○
AuthorizeSecurityGroupIngress ○
'RevokeSecurityGroupIngress ○
'CreateSecurityGroup ○
'DeleteSecurityGroup ○
'GetConsoleOutput ○ ○
'DescribeVolumes ○ ○
'CreateVolume ○ ○
'DetachVolume ○ ○
'DescribeInstances ○ ○ ○ ○
より深い理解のための知識(ユーザ)
ロールロールロールロール
netadmin projectmanager sysadmin other
'DescribeAddresses ○ ○ ○ ○
'AllocateAddress ○
'ReleaseAddress ○
'AssociateAddress ○
'DisassociateAddress ○
'RunInstances ○ ○
ロールの種別およびロールと動作の関係
Copyright © 2011 NTT DATA CORPORATION30
動
作
'RunInstances ○ ○
'TerminateInstances ○ ○
'RebootInstances ○ ○
'UpdateInstance ○ ○
'DeleteVolume ○ ○
'DescribeImages ○ ○ ○ ○
'DeregisterImage ○ ○
'RegisterImage ○ ○
'DescribeImageAttribute ○ ○ ○ ○
'ModifyImageAttribute ○ ○
'UpdateImage ○ ○
より深い理解のための知識(ユーザ)
設定例ユーザやプロジェクトの作成# nova-manage user admin# nova-manage project create admin admin
証明書の取得、読み込み# nova-manage project zipfile userA projA zipA# unzip zipA# . novarc
ロールの設定# nova-manage role add user role
Copyright © 2011 NTT DATA CORPORATION31
# nova-manage role add user role # nova-manage role add user role proj
NOVA_KEY_DIR=$(pushd $(dirname $BASH_SOURCE)>/dev/null; pwd; popd>/dev/null)export EC2_ACCESS_KEY="admin:admin"export EC2_SECRET_KEY="admin"export EC2_URL="http://10.192.69.104:8773/services/Cloud"export S3_URL="http://10.192.69.104:3333"export EC2_USER_ID=42 # nova does not use user id, but bundling requires itexport EC2_PRIVATE_KEY=${NOVA_KEY_DIR}/pk.pem…以下略
novarcの例
より深い理解のための知識(インスタンスタイプ)
� インスタンスタイプ = 起動する仮想マシンの(vcpu、メモリ、
HDD)を定義するもの
� Amazonのやり方を踏襲
� m1.small = ( 1, 100, 20)のように指定。単位は( 個, mb, gb)
� 種類は m1.tiny, m1.small, m1.medium, m1.large, m1.xlarge
� 利用者は仮想マシン起動時にインスタンスタイプを指定
� Quota = プロジェクト全体におけるリソース制限
Copyright © 2011 NTT DATA CORPORATION32
� Quota = プロジェクト全体におけるリソース制限
� インスタンス数、ボリューム数、インスタンスのHDD(GB)、Floating ip数
� 現行プロジェクトごとには設定できない。設定ファイルに全PJ一括設定。
インスタンス起動(m1.smallを設定)# euca-run-instance –t t1.small –k mykey ami-centos –g default
インスタンスタイプの作成、変更# bin/nova-manage instance_type create hoge 1024 1 20 1( name, mem, vcpu, hdd, flavor)
より深い理解のための知識(API)
� API ≒ クラウドに対して実施可能な処理
� ex. 「仮想マシンを起動する」「イメージを登録する」 etc
� クライアントからHTTPでリクエストを送信し、サーバ側で処理
� サーバ側のリクエストの処理ロジックをAPIという
� APIの種類は3種類
種別種別種別種別 用途用途用途用途 備考備考備考備考
Copyright © 2011 NTT DATA CORPORATION33
Amazon EC2 API 利用者向け 初期のOpenStackはAmazonのサービスを模写する形式だった
のでAmazonで提供する機能OSSで実現
OpenStack API 利用者向け OpenStack独自の機能を実現
Rackspaceが自社商用サービスで提供する機能が含まれる
KVMではほぼ実装されていない
Admin API 管理者向け もともと管理者向け機能はrpc(AMQP)を使って通信していた
それを他に合わせてHTTPに修正中
より深い理解のための知識(ネットワーク)
� Fixed IP(private IP)とFloating IP(global ip)
物理サーバ
VMDnsmasq
物理サーバ
nova-
network
iptables
bridge
nova-
compute
bridge
Copyright © 2011 NTT DATA CORPORATION34
名称名称名称名称 説明説明説明説明
FlatManager 仮想マシン起動時にIP情報を仮想マシンイメージに埋め込む
FlatDHCPManager 仮想マシンイメージはDHCPでIPを受け取る
Nova-manageがdnsmasqをコントロール
VlanManager FlatDHCPManagerに加え、VLANを設定
(プロジェクト、セキュリティグループ)単位でVLAN番号を決定
主にパケットの盗聴を防ぐ目的
� ネットワークの種類
より深い理解のための知識(セキュリティグループ)
� セキュリティグループ ≒ パケットフィルタリングのルールのセット
VMDnsmasq
nova-
network
iptables
nova-
compute
VM
br101br100br101br100
eth1eth0
eth0
iptables
iptables
Copyright © 2011 NTT DATA CORPORATION35
物理サーバiptables
iptables
インスタンス起動(defaultを設定)euca-run-instance –t t1.small –k mykey ami-centos –g default
セキュリティルールdefaultは tcpの22番ポートで通信ができるeuca-authorize –P tcp –p 22 default
� 設定方法
利用手順(開発者向け)
• 3種の利用者向けインタフェース
名称名称名称名称 用途用途用途用途 コマンドコマンドコマンドコマンド名称名称名称名称 備考備考備考備考
euca2ools 利用者向け euca-xxxx Amazon API互換。
Eucalyptusで開発したCUIを流用
nova-client 利用者向け nova OpenStack独自のAPI( OpenStack API)用
nova-manage 管理者向け nova-manage
Copyright © 2011 NTT DATA CORPORATION36
利用手順(開発者向け)
# bzr export lp:nova
インストール
仮想マシン
利用開始
サービス起動 初期設定
仮想マシン
上のサービス
利用開始
エンドユーザクラウド管理者作業 クラウド利用者作業
Copyright © 2011 NTT DATA CORPORATION37
• ソースコードはlaunchpadからダウンロード
• ダウンロードした一式に含まれるnova.shを使ってインストール
• 上記実施内容は、ソースコードのダウンロードと必要パッケージのインストール
• 要インターネットアクセス
※ 物理サーバ×1で全てのサービスを稼働させるお試し利用方法です
※ mysql の代わりにsqllite使うなどの違いがあります
# cp nova/contrib/nova.sh . && bash nova.sh install
利用手順(開発者向け)
# bash nova.sh run# bash nova.sh clean
インストール
仮想マシン
利用開始
サービス起動 初期設定
仮想マシン
上のサービス
利用開始
エンドユーザクラウド管理者作業 クラウド利用者作業
Copyright © 2011 NTT DATA CORPORATION38
• runで全サービスの起動、cleanで停止する
※ volume使う場合は事前に下記のLVMの設定が(一度だけ)必要
# bash nova.sh clean
# dd if=/dev/zero of=volume-file-path bs=100M count=10# losetup –f volume-file-path# vgcreate nova-volume /dev/loop0
※ 要するに、volume node起動には、nova-volumeというVGが必要
利用手順(開発者向け)
インストール
仮想マシン
利用開始
サービス起動 初期設定
仮想マシン
上のサービス
利用開始
エンドユーザクラウド管理者作業 クラウド利用者作業
(# nova-manage db sync)1) nova-manage user admin2) nova-manage project create admin admin
1) ユーザ作成(例はadmin)
Copyright © 2011 NTT DATA CORPORATION39
2) nova-manage project create admin admin3) nova-manage project environment admin admin novarc4) nova-manage network create 10.0.0.0/8 3 165) nova-manage project zipfile userA pjA zipA
2) PJ作成(例はadmin)
3) 証明書を取得(※)
他ユーザの場合は(5)を使
う
4) PJが使う仮想マシン用
IPアドレスのレンジを規定
「証明書」とは、以降仮想マシン起動等を行うためapi
nodeにリクエストを送信する際の認証情報。管理者以外
の人には随時配布する必要がある。
利用手順(開発者向け)
インストール
仮想マシン
利用開始
サービス起動 初期設定
仮想マシン
上のサービス
利用開始
エンドユーザクラウド管理者作業 クラウド利用者作業
euca-bundle-image # イメージをバンドル(束ねる)euca-upload-bundle # バンドルしたイメージをアップロード
Copyright © 2011 NTT DATA CORPORATION40
• 上記コマンドをまとめて、「仮想マシンイメージの登録」を実施
• 仮想マシンイメージはソースに含まれる軽量のものを利用可能
euca-upload-bundle # バンドルしたイメージをアップロードeuca-register # マニフェストファイルを登録
利用手順(開発者向け)
インストール
仮想マシン
利用開始
サービス起動 初期設定
仮想マシン
上のサービス
利用開始
エンドユーザクラウド管理者作業 クラウド利用者作業
1) euca-add-keypair mykey > mykey.pem2) euca-describe-images 3) euca-run-instance –t t1.small –k mykey ami-centos
1) 仮想マシンログイン用
SSH鍵を生成
2) 登録済イメージを確認
Copyright © 2011 NTT DATA CORPORATION41
3) euca-run-instance –t t1.small –k mykey ami-centos4) euca-describe-instance5) euca-associate-address –i i-00000001 1.1.1.16) euca-authorize –P tcp –p 22 default7) ssh –i mykey 10.1.1.18) euca-terminate-instance i-00000001
2) 登録済イメージを確認
3) 仮想マシンを起動
4)仮想マシンの状態確
認。起動するまで待機
5) IPアドレス割当て
6)ポートを開ける
7) ログイン
8) 仮想マシン停止
03 OpenStack Object Storage : Swift
42Copyright © 2011 NTT DATA CORPORATION
概要
• 分散オブジェクトストレージを提供
• 複数サーバのHDDを統合、一つの大容量HDDとして振る舞う
• 格納するオブジェクトは設定値に基づきレプリケーションされる
• 新しいサーバを動的に追加して容量拡張が可能
• RackSpace社の Cloud Filesで用いていた実装を元にOSS化
• OpenStack では「主に」仮想マシンイメージ置き場の役割• OpenStack では「主に」仮想マシンイメージ置き場の役割
• 元々DropBoxのような使い方が想定されているので、普通のストレージとしても使える
Copyright © 2011 NTT DATA CORPORATION43
レプリケーション
して保持
サーバ群
コントローラ
データ保存・読出し
(RESTプロトコル)
クライアント
ソフトウェア
-CyberDuck
-Curl
-Wget
Account ServerAccount Server
Swiftのアーキテクチャ
Container の一覧を保持
内部も REST protocol で通信する
Auth ServerAuth Server Account ServerAccount Server
Object ServerObject Server
Object ServerObject Server
Object ServerObject Server
Container ServerContainer ServerProxy ServerProxy Server
Copyright © 2011 NTT DATA CORPORATION44
Object の一覧を保持
Object のデータを保持
バックエンドとの間で
リクエストを中継する
クライアント
CyberDug等
(curl等でも操作可能)
REST protocol
Proxy ServerProxy Server Container ServerContainer Server
Object ServerObject Server
利用手順
• Nova.shのようなンストール&(とりあえず)一括設定するツールがない
• 下記URLを参照するのが推奨。
インストール 利用開始サービス起動 初期設定
クラウド管理者作業 クラウド利用者作業
Copyright © 2011 NTT DATA CORPORATION45
• 下記URLを参照するのが推奨。
http://swift.openstack.org/howto_installmultinode.html
http://swift.openstack.org/development_saio.html
• 少し前は複数ノードでインストールは難しいといわれていたが、ドキュメ
ントが充実し、技術者ならトライできる環境が整いつつある
利用手順
インストール 利用開始サービス起動 初期設定
クラウド管理者作業 クラウド利用者作業
# swift-auth-add-user -K devauth (-a) <account> <user> <passwd># st -A https://x.y.z.z:11000/v1.0 -U <account>:<user> -K <passwd> statAccount: AUTH_22e633cfd4774c35b53936b09e21d963
Copyright © 2011 NTT DATA CORPORATION46
• 必要な操作は「ユーザ登録」のみ
Account: AUTH_22e633cfd4774c35b53936b09e21d963Containers: 0
Objects: 0Bytes: 0
利用手順
インストール 利用開始サービス起動 初期設定
クラウド管理者作業 クラウド利用者作業
1) curl -k -v -H 'X-Storage-User: <account>:<password' -H 'X-Storage-Pass: <passwd>' https://172.19.0.1:11000/v1.0
・・・
Copyright © 2011 NTT DATA CORPORATION47
• ポイントは「はじめにTokenやURLを入手する」こと
• これらのTokenやURLを認証情報に、逐次オブジェクトの
GET/PUT/HEAD/DELETEを行う
・・・X-Storage-Url:
https://x.y.z.z:8080/v1/AUTH_22e633cfd4774c35b53936b09e21d963X-Storage-Token: AUTH_tk8384480f7dd6498dbc6d94e0fc4df646X-Auth-Token: AUTH_tk8384480f7dd6498dbc6d94e0fc4df646・・・
※ 以降は <Storage-Url><Storage-Token><Auth-Token>と略す
利用手順
インストール 利用開始サービス起動 初期設定
クラウド管理者作業 クラウド利用者作業
2) curl -k -v -X PUT -H 'X-AuTh-Token:<Auth-Token>' <Storage-Url>/mycontainer2
3) curl -k -v –T ファイル名 -X PUT -H ‘X-AuTh-Token:<Auth-Token>’
Copyright © 2011 NTT DATA CORPORATION48
• GET/PUT/DELETEの様子は上記の通り
• ポイントは「Containerを作ってからオブジェクトを置く」こと
• 空でないContainerはDELETEできない
• 今回は動作原理を説明するためcurlベースだがGUIはCyberDuck等が利用可能
3) curl -k -v –T ファイル名 -X PUT -H ‘X-AuTh-Token:<Auth-Token>’ <Storage-Url>/mycontainer2/ファイル名
4) curl -k -v -X Get -H 'X-AuTh-Token:<Auth-Token>' <Storage-Url>/mycontainer2
04 Bexar/Cactus の注目ポイント
49Copyright © 2011 NTT DATA CORPORATION
Bexarリリースの注目ポイント
• 2/3に Second Release 「Bexar」がリリース
• 「Bexar」では多くの機能拡張が行われました
項番項番項番項番 説明説明説明説明項番項番項番項番 説明説明説明説明
主な機能拡張 (nova)
主な機能拡張(swift)
Copyright © 2011 NTT DATA CORPORATION50
1 Dashboard(GUI)
2 IPv6サポート
3 Sheepdogサポート
4 インスタンス起動の改善
5 Deployment tool
1 Nova-Grance-Swiftの連携
2 5G以上のオブジェクトサポート
3 認証コンポーネントが単一障害
点になっていたことの改善
※ わかりやすそうなものを中心にしましたので、全部ではありません。
全部見たい方は<https://blueprints.launchpad.net/nova/bexar>
Bexarリリースの注目ポイント(DashBoard)
利用者はコマンドライン利用者はコマンドライン(euca2ools)(euca2ools)の利用必須。の利用必須。GUIGUIなしなし
WebWebベースのベースのGUIGUI
euca2oolseuca2oolsで行う基本操作が可能で行う基本操作が可能
Copyright © 2011 NTT DATA CORPORATION51
Bexarリリースの注目ポイント(IPv6サポート)
IPv4IPv4アドレスの枯渇問題が提起される中、アドレスの枯渇問題が提起される中、IaaSIaaSを構築するには多くのを構築するには多くの
IPv4IPv4アドレスを要する。が、仮想マシンがアドレスを要する。が、仮想マシンがIPv6IPv6を持つことに対応したソを持つことに対応したソ
フトウェアは少なかったフトウェアは少なかった
Copyright © 2011 NTT DATA CORPORATION52
改良改良
-- 仮想仮想マシンがマシンがIPv6IPv6を使えるように改良を使えるように改良
-- 「「IPv4/IPv6IPv4/IPv6のどちらか一方」ではなく、両方使えるのどちらか一方」ではなく、両方使える
「「デュアルスタック」デュアルスタック」
-- nova.sh nova.sh installinstallで必要パッケージは全てインストール完了で必要パッケージは全てインストール完了
-- 仮想仮想マシン(大抵のマシン(大抵のUbuntuUbuntu)では特別な設定は必要なし)では特別な設定は必要なし
Bexarリリースの注目ポイント(SheepDogサポート)
Volume nodeVolume nodeは仮想マシンに、外部ストレージ領域を提供は仮想マシンに、外部ストレージ領域を提供
特に特にATAoEATAoEを使う場合、単一故障点になる/スケールしない懸念が残るを使う場合、単一故障点になる/スケールしない懸念が残る
改良:改良: SheepDogSheepDogを採用を採用
Copyright © 2011 NTT DATA CORPORATION53
改良:改良: SheepDogSheepDogを採用を採用
-- KVMKVM向けの分散ストレージ向けの分散ストレージ
-- 「リニアスケール」「故障ノードの自動切離し」「リニアスケール」「故障ノードの自動切離し」
「新規ノードの自動認識」「負荷分散」などの特徴を有する「新規ノードの自動認識」「負荷分散」などの特徴を有する
-- 運用中の容量不足にも追加が容易運用中の容量不足にも追加が容易
※Bexar※BexarからはからはiSCSIiSCSIもサポートされ、もサポートされ、ATAoEATAoEでなくでなくiSCSIiSCSIがデフォルトになったがデフォルトになった
※※SheepDogSheepDog//iSCSIiSCSIの他にもの他にもRADOSRADOSもサポートもサポート
Bexarリリースの注目ポイント(Hyper-V Support)
OpenStackOpenStackがサポートするがサポートするHypervisorHypervisorは基本的には基本的にXenserverXenserver/KVM/KVM
Copyright © 2011 NTT DATA CORPORATION54
HyperHyper--VVも利用可能にも利用可能に
<http://wiki.openstack.org/HypervInstall><http://wiki.openstack.org/HypervInstall>
CactusCactus以降では以降ではVMWareVMWare--VsphereVsphereもサポートされる予定もサポートされる予定
Bexarリリースの注目ポイント(Deployment tool)
現在は現在はOpenStackOpenStackそのものの品質や機能拡張がフォーカスされるフェーズそのものの品質や機能拡張がフォーカスされるフェーズ
実際構築するフェーズまでは誰も考慮していなかった実際構築するフェーズまでは誰も考慮していなかった
が、特に大規模クラウドの構築に要する稼働は無視できないが、特に大規模クラウドの構築に要する稼働は無視できない
Deployment tool Deployment tool ((novanovaの各ノードに対する設定を自動で実施)の各ノードに対する設定を自動で実施)
Copyright © 2011 NTT DATA CORPORATION55
Deployment tool Deployment tool ((novanovaの各ノードに対する設定を自動で実施)の各ノードに対する設定を自動で実施)
ををBexarBexarから提供開始から提供開始
Puppet
Puppet server
Deployment tool
1. インストール
1. インストール
2. Nova設定ファイル
をプッシュ
3.Puppetが
自動で設定を完了
Cactusリリースの注目ポイント
・ 3rd Release 「Cactus」は 4/14にリリース
・ 「Cactus」は品質向上にフォーカスし、
機能拡張は少なめだった
項番項番項番項番 説明説明説明説明
2/3 Specs Submission Deadline
3/17 Branch merge proposal freeze
主要な追加機能(nova)
Copyright © 2011 NTT DATA CORPORATION56
1 複数NIC
2 ライブマイグレーション
3 VMWare Vsphereサポート
4 OpenStack APIの整備
3/24 Feature Freeze
4/7 Gamma Freeze
4/14 RC Freeze
4/14 “Cuctus” Release!
※ swift/glanceについては略
05 日本のコミュニティの状況
57Copyright © 2011 NTT DATA CORPORATION
日本のコミュニティの状況
日本OpenStackユーザ会
• 10月22日に設立プレスリリース
• 公式サイト http://openstack.jp/
• ML http://groups.google.com/group/openstack-ja/
• 昨年11月に六本木ミッドタウンでOpenStackユーザ会カンファレンスを開催
• 130人もの方々にお越し頂き、大変盛況でした
Copyright © 2011 NTT DATA CORPORATION58
• 英語のコミュニケーションが不安な方、いきなり海外コミュニティに質問するのは
不安な方、その他ご興味がある方はsubscribeしてみてはいかがでしょうか。
日本のコミュニティの状況
カンファレンス当日の写真
Copyright © 2011 NTT DATA CORPORATION59
日本のコミュニティの状況
Open Cloud Campus
• Eucalyptus、CloudStack などの類似ソフトを横通しした、一種のメタユーザー
グループ
• 日本Eucalyptusユーザ会のコアメンバを母体に発足
• Open Cloud Campus : Cloud Technologies Meeting(仮称)
Copyright © 2011 NTT DATA CORPORATION61
• Open Cloud Campus : Cloud Technologies Meeting(仮称)
• 2011/06/30 19:00~
• NTTコミュニケーションズ 汐留ビル 11F
• 各種ソフトのユーザ会の状況紹介、パネルなど
• 近日告知開始!
まとめ
• OpenStack 熱いです!
• 続々機能拡充予定
• きれいなGUIも(複数)あります
• 日本の開発者も多数参加しています
Copyright © 2011 NTT DATA CORPORATION62
• 日本の開発者も多数参加しています
• 日本コミュニティはグローバルにやっています
• http://openstack.jp/
• http://groups.google.com/group/openstack-ja/
• Join US ! ☺
本文中に記載の会社名、商品名、製品名などは、一般に各社の商標または登録商標です
ただし本文中では、TMや®マークは明記してありません