RED HAT OPENSTACK TECHNOLOGY | 2013
クラウドプラットフォームの新定番!
Red Hat Enterprise Linux OpenStack Platform
レッドハット株式会社中井悦司 / Etsuji NakaiSenior Solution Architectand Cloud Evangelistv1.0 2013/08/01
2
Red Hat Enterprise Linux OpenStack Platform
目次
OpenStackのこれまで RDO & Red Hat Enterprise Linux OpenStack Platform 利用者から見たOpenStackの機能 OpenStackの主要コンポーネントと内部構造 まとめ
(*) 本資料に含まれる技術情報は、2013年7月時点のRDO(Grizzly)とRed Hat OpenStack v3.0の仕様に基づきます。
3
Red Hat Enterprise Linux OpenStack Platform
OpenStackのこれまで
4
Red Hat Enterprise Linux OpenStack Platform
OpenStackとは
Amazon EC2/S3相当のクラウドインフラを自分で構築するためのソフトウェア– 類似品としては、CloudStack, Eucalyptus などが有名。
2010年末に「米RackSpace社」と「NASA」が共同で、OpenStackプロジェクトを立ちあげて、開発をスタート
– RackSpaceが自社開発で利用していた「Swift」(S3相当の機能を提供)とNASAが作りかけていた「Nova」(EC2相当の機能を提供)をオープンソース化して提供。それらをベースにコミュニティモデルでの開発を開始。
– 目標は「オープンスタンダードなHWとSWで誰でもクラウドサービスが提供できるようにすること」
5
Red Hat Enterprise Linux OpenStack Platform
これまでの開発状況
EC2/S3相当機能がほぼ完成
現在の最新リリース
OpenStack Foundation設立!
6
Red Hat Enterprise Linux OpenStack Platform
Red HatはOpenStack Foundationのプラチナスポンサーに
http://sourceforge.jp/magazine/12/04/13/0359223
7
Red Hat Enterprise Linux OpenStack Platform
OpenStack開発への主要な貢献企業(Essex, Folsom)
OpenStack Summit 2012 San DiegoでのRackSpace社による発表
8
Red Hat Enterprise Linux OpenStack Platform
OpenStack開発への主要な貢献企業(Grizzly)
http://blog.bitergia.com/2013/04/04/companies-contributing-to-openstack-grizzly-analysis/
9
Red Hat Enterprise Linux OpenStack Platform
これまでの開発状況
ネットワーク仮想化機能をプラグイン化するQuantum(*)が
コアコンポーネントに
現在の最新リリース
(*) 現在はNeutronに名称変更
10
Red Hat Enterprise Linux OpenStack Platform
RDO&
Red Hat Enterprise Linux OpenStack Platform
11
Red Hat Enterprise Linux OpenStack Platform
RDO :RHELでOpenStackを利用するユーザ向けのコミュニティ活動 RDOが提供するRHEL用OpenStackは、誰でも無償で利用ができます。
http://special.nikkeibp.co.jp/ts/article/ac0e/143743/
12
Red Hat Enterprise Linux OpenStack Platform
RDO :RHELでOpenStackを利用するユーザ向けのコミュニティ活動
OpenStack Foundation
RDOは、RHEL/FedoraでOpenStackを利用するユーザのコミュニティです。
主な活動内容– RHEL/Fedora用のRPMパッケージを提供
• http://repos.fedorapeople.org/repos/openstack/openstack-grizzly/– Puppetベースのインストーラ「Packstack」を提供– QAフォーラムを運営(Red Hatの開発者が回答してくれることもあります。)
OpenStackを創る人々のコミュニティ (RHEL/Fedoraで)OpenStackを
使う人々のコミュニティ
http://openstack.redhat.com
13
Red Hat Enterprise Linux OpenStack Platform
Red Hat Enterprise Linux OpenStack Platform
RDOをベースとした安定版を有償サポート付きの製品版として提供していきます。
開発版 製品版
14
Red Hat Enterprise Linux OpenStack Platform
(参考)RDOとPackstackでデモ環境を簡単構築
下図の道具があれば、オールインワン構成のデモ環境を簡単に構築できます。
em1
em2
Intel-VT/AMD-V対応サーバ
ホストアクセス用NIC
VMアクセス用NIC
インターネット
インターネットにアクセスできるネットワーク
Fedora18
4GB以上のメモリ
「RDOデモ環境を確実に構築する手順」http://d.hatena.ne.jp/enakai00/20130625/1372132365
手順はこちらを参照
15
Red Hat Enterprise Linux OpenStack Platform
利用者から見たOpenStackの機能
16
Red Hat Enterprise Linux OpenStack Platform
OpenStackが提供するコンピューティングリソース
OpenStackのユーザは、Webコンソール/APIを利用して、次のようなコンピューティングリソースを利用します。
– 仮想ネットワーク– 仮想マシンインスタンス– ブロックボリューム
データ領域 ブロックボリューム
仮想ルータ
仮想スイッチ
外部ネットワーク
プロジェクト環境
OpenStackユーザ
OS領域
各ユーザは特定の「プロジェクト」に所属します。
– プロジェクト内でリソースを共有– プロジェクト全体でのリソース使用量の上限設定、リソース使用状況のレポーティングなどが可能
仮想マシンインスタンス
17
Red Hat Enterprise Linux OpenStack Platform
仮想ネットワーク
プロジェクトごとに仮想ルータを用意して、その背後にプライベートなネットワーク環境を構成します。
– ブロードバンドルータで家庭内LANをインターネットに接続するような感覚です。 仮想スイッチを作成して、ルータに接続します。
– それぞれの仮想スイッチは、プライベートIPの独立したサブネットを持ちます。 仮想マシンインスタンス起動時は、接続する仮想スイッチを選択します。
– DHCPでプライベートIPアドレスが割り当てられます。– 同じプロジェクトの仮想マシンインスタンス間は、プライベートIPで通信できます。– 外部ネットワークと通信する際は、「フローティングIP」を割り当てて、仮想ルータでNAT処理を行います。
仮想スイッチ192.168.101.0/24
プロジェクトA専用ルータ
外部ネットワーク
プロジェクトB専用ルータ
仮想スイッチ192.168.102.0/24
18
Red Hat Enterprise Linux OpenStack Platform
外部ネットワーク
仮想マシンインスタンスの起動
仮想マシンインスタンスを起動する際は、次の項目を指定します。
– インスタンスタイプ– テンプレートイメージ (*)
– 接続する仮想ネットワーク– セキュリティグループ– キーペア
OS領域テンプレート
イメージ
複製
複数ネットワーク接続も可能
セキュリティグループ(パケットフィルタリング)
形式 説明
raw フラットなイメージファイル
AMI/AKI/ARI Amazon EC2が利用する形式
qcow2 Linux KVMが利用する形式
VDI VirtualBoxが利用する形式
VMDK VMwareが利用する形式
VHD Hyper-Vが利用する形式
(*) テンプレートイメージ作成機能は、OpenStackは提供しません。外部ツールで作成したものをインポートします。
テンプレートとしてインポート可能なイメージ形式
19
Red Hat Enterprise Linux OpenStack Platform
ブロックボリュームの使い方
ブロックボリュームは、仮想マシンインスタンスを停止してもそのまま残るので、永続的なデータ保存領域として使います。
データ領域
③スナップショット作成
④スナップショットを複製して新たなブロックボリュームを作成
②仮想マシンインスタンスに接続してデータ領域として使用
データ領域
他の仮想マシンインスタンスに再接続可能(同時接続は不可)
①新規ブロックボリュームを作成
OS領域 OS領域
20
Red Hat Enterprise Linux OpenStack Platform
ブロックボリュームからの起動
ブロックボリュームにゲストOSをインストールして、ブロックボリュームから仮想マシンインスタンスを起動することも可能です。
– 仮想マシンインスタンスを停止しても、OS領域への変更が破棄されずに残ります。– スナップショットを作成しておき、仮想マシンインスタンスを起動するタイミングで、
スナップショットから新しいブロックボリュームを用意することも可能です。
OS領域
仮想マシンインスタンスに接続してゲストOS起動
テンプレートイメージを複製してブロックボリュームを作成(*)
OS領域テンプレート
イメージ
OS領域
スナップショット作成
OS領域
複製
(*) この操作はGrizzlyのHorizon Dashboardには搭載されていません。コマンドラインでのAPI操作が必要です。
21
Red Hat Enterprise Linux OpenStack Platform
プロジェクト単位のリソース使用レポート
現在の使用量 指定月の累計
22
Red Hat Enterprise Linux OpenStack Platform
プロジェクト全体でのリソース使用量の上限設定
23
Red Hat Enterprise Linux OpenStack Platform
OpenStackの主要コンポーネントと内部構造
24
Red Hat Enterprise Linux OpenStack Platform
OpenStackの主要コンポーネント
機能別にソフトウェアをモジュール化して開発が進められています。– Swift : オブジェクトストレージ
• Amazon S3相当– Nova : 仮想マシンの配置決定と起動・停止処理– Glance : 仮想マシンイメージの管理
• バックエンドにSwiftを使用、その他のストレージにも対応– Cinder : ブロックボリュームの提供
• 標準(サンプル)実装では、Linux LVM + iSCSIソフトウェアターゲットを使用• 外部のiSCSIストレージ装置をバックエンドにすることも可能
– Keystone : 統合認証機能– Netutron : 仮想ネットワーク管理機能(Quantumから改名)
• 仮想ネットワークの作成を外部のPluginモジュールに移譲• 標準(サンプル)実装では、Linux brdige、もしくは、Open vSwitchを使用
– Horizon : GUIコンソールのサンプル実装
上記のコアコンポーネント以外のサブプロジェクトもあります。– Heat : 仮想マシンインスタンスのオーケストレーション
• Amazon CloudFormation互換– Ceilometer : 課金情報収集
–
25
Red Hat Enterprise Linux OpenStack Platform
OpenStackのアーキテクチャ
各モジュールは、REST APIによりクライアントからの指示を受け付けます– プログラムコードからの呼び出しによる環境操作の自動化への対応が前提– Horizon(標準のGUIコンソール)を使用せずに、独自のGUIと連携させることも可能
仮想マシンイメージ
NovaCompute
NovaCompute
Glance Horizon Neutron
管理ネットワーク
LUN
仮想ネットワーク作成
仮想マシン起動
ブロックボリューム提供(iSCSI)
認証サーバ
テンプレートイメージ保存
MySQL
NetworkNode
NovaCompute
Cinder
Keystone
Swift
メッセージキュー
パブリックネットワーク
クライアントPC
Webコンソールアクセステンプレートイメージ検索
テンプレートダウンロード
QPID
データベース
LUNLUN
Nova
26
Red Hat Enterprise Linux OpenStack Platform
Novaを構成するサービス群 Nova Schedulerから呼び出す「Compute Driver」によって、複数ハイパーバイザに対応します。 Controllerノード上のサービスは並列稼働(ロードバランス)によるスケールアウト/冗長化が可能です。
/var/lib/nova/instances/_base
qcow2ベースイメージ
qcow2オーバーレイファイル
qcow2オーバーレイファイル
仮想マシンインスタンス
/var/lib/nova/instances/<ID>
オーバーレイ
仮想マシンインスタンス
テンプレートイメージダウンロード
Glance
起動
Computeノード
Nova API
インスタンス起動指示
Compute Driverインスタンスを起動するノードを決定
Nova Conductor
リソース情報確認
Nova Compute
特定のハイパーバイザに対応するためのドライバ
Database
DBアクセスのProxyサービス
リソース情報更新
Controllerノード REST APIを提供
ダウンロードしたイメージはキャッシュして再利用
Nova Scheduler
メッセージキュー経由の通信
Libvirt
27
Red Hat Enterprise Linux OpenStack Platform
NeutronのPlugin構造
Computeノード
L2 Agent
Controllerノード REST APIを提供
Network Controller
L3 Agent
DHCP Agent
L2 Agent
仮想ルータ作成
仮想スイッチ作成
プライベートIP割り当て
仮想スイッチ作成
各SDN製品は、Neutronからの指示を受け取るためのAgentを提供することで、 OpenStackとの連携を行います。
それぞれの仮想ネットワーク製品がNeutron対応のAgentを提供
Quantum Server
28
Red Hat Enterprise Linux OpenStack Platform
Open vSwitch Pluginによる実装例
仮想ルータのPublic側GW IP
OpenStackに標準で含まれる「Open vSwitch Plugin」を利用すると(外部のSDN製品を使用せずに)Linuxサーバ上のOpen vSwitchを利用して、仮想ネットワークを構成することができます。
eth2
br-ex
eth1
iptablesでNAT接続
仮想ルータのPrivate側GW IP
Open vSwitch
eth1
VM1 VM2
br-int br-int
接続仮想スイッチ毎にVLANをマッピング
(Open Flowで制御)VLAN Trunk
仮想スイッチ毎にVLANをマッピング
(Open Flowで制御)
Computeノード
Networkノード
dnsmasq dnsmasq
br-priv
Public Network
br-priv
29
Red Hat Enterprise Linux OpenStack Platform
Nova/Cinder連携の全体像
Nova Compute Cinder
VMインスタンス
/dev/vdb 仮想ディスク
Linux KVM
/dev/sdX iSCSI LUN
ストレージ装置
LUNの作成・公開を指示
iSCSI SWInitiator
iSCSI Target
ブロックストレージは、典型的には、iSCSIストレージ装置のLUNとして用意されます。 Cinderは外部のiSCSIストレージ装置をコントロールする役割を持ちます。
30
Red Hat Enterprise Linux OpenStack Platform
LVM/tgtdによるサンプル実装
Nova Compute Cinder
VMインスタンス
/dev/vdb 仮想ディスク
Linux KVM
/dev/sdX iSCSI LUN
iSCSI SWInitiator
iSCSI SWTarget (tgtd)
Cinderが標準提供するLVMドライバでは、LVMで作成した論理ボリュームをtgtdでiSCSI LUNとして公開します。
VG: cinder-volumes
LV
論理ボリュームを作成して、iSCSI LUNとして公開
31
Red Hat Enterprise Linux OpenStack Platform
NFSドライバの利用
Nova Compute Cinder
VMインスタンス
/dev/vdb 仮想ディスク
Linux KVM
NFSサーバ
ディスクイメージファイル作成
Cinderが標準提供するNFSドライバでは、NFSサーバ上にディスクイメージファイルを作成して、ComputeノードからNFSマウントして利用します。
・・・
NFSマウント
・・・
NFSマウント
32
Red Hat Enterprise Linux OpenStack Platform
まとめ
33
Red Hat Enterprise Linux OpenStack Platform
OpenStackの特徴
APIで操作する「Programmable Infrastructure」の提供
– 既存のGUI・ワークフローに縛られたくないユーザ層の獲得– IaaSの標準プラットフォームとして、各種ツールとの連携
スケーラビリティを意識した疎結合アーキテクチャ
– コンピューティングノードの追加が容易/コントローラーの負荷分散が可能 – システム設計、運用・管理にはこれまでとは違うノウハウが必要
Driver/Pluginによる外部コンポーネントとの連携
– 既存インフラと連携・統合するための作りこみが可能– サードパーティ製品連携のエコシステム
34
Red Hat Enterprise Linux OpenStack Platform
(参考)プライベートクラウド事例 〜 アメリカ国家安全保障局
http://www.openstack.org/summit/portland-2013/session-videos/presentation/keynote-openstack-at-the-national-security-agency-nsa
このページは配布いたしません。
35
Red Hat Enterprise Linux OpenStack Platform
参考資料
OpenStack Official Documents– http://docs.openstack.org/
※ OpenStackの動作原理を理解する上では、Linuxの基礎知識が必須となります。
RED HAT OPENSTACK TECHNOLOGY | 2013
THANK YOU