Weitere ähnliche Inhalte Ähnlich wie エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第一部 OpenStack入門 (20) Mehr von Etsuji Nakai (20) Kürzlich hochgeladen (11) エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第一部 OpenStack入門1. エンジニア向け夏期特別講座
〜 Red Hat OpenStack徹底解説!
レッドハット株式会社
中井悦司 / Etsuji Nakai
Senior Solution Architect
and Cloud Evangelist
v1.1 2013/07/29
第一部 OpenStack入門
2. 2
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
自己紹介
好評発売中!
中井悦司(なかいえつじ)
– Twitter @enakai00
日々の仕事
– Senior Solution Architect and
Cloud Evangelist at Red Hat K.K.
企業システムでオープンソースの活用を希望される
お客様を全力でご支援させていただきます。
昔とった杵柄
– 素粒子論の研究(超弦理論とか)
– 予備校講師(物理担当)
– インフラエンジニア(Unix/Linux専門)
3. 3
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
目次
OpenStackのこれまで
RDO & Red Hat Enterprise Linux OpenStack Platform
利用者から見たOpenStackの機能
– 仮想ネットワーク
– 仮想マシンインスタンス
– ブロックボリューム
– プロジェクト管理
メタデータとCloud-Init
(*) 本資料は2013年7月時点のRDO(Grizzly)、および、Red Hat OpenStack v3.0に基づく情報を提供しています。
5. 5
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
OpenStackとは
Amazon EC2/S3相当のクラウドインフラを自分で構築するためのソフトウェア
– 類似品としては、CloudStack, Eucalyptus などが有名。
2010年末に「米RackSpace社」と「NASA」が共同で、OpenStackプロジェクト
を立ちあげて、開発をスタート
– RackSpaceが自社開発で利用していた「Swift」(S3相当の機能を提供)とNASAが作り
かけていた「Nova」(EC2相当の機能を提供)をオープンソース化して提供。それらを
ベースにコミュニティモデルでの開発を開始。
– 目標は「オープンスタンダードなHWとSWで誰でもクラウドサービスが提供できるよう
にすること」
10. 10
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
OpenStack開発への主要な貢献企業(Grizzly)
http://blog.bitergia.com/2013/04/04/companies-contributing-to-openstack-grizzly-analysis/
13. 13
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
RDO :
RHELでOpenStackを利用するユーザ向けのコミュニティ活動
RDOが提供するRHEL用OpenStackは、誰でも無償で利用ができます。
http://special.nikkeibp.co.jp/ts/article/ac0e/143743/
14. 14
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
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
15. 15
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
(参考)RDOとPackstackでデモ環境を簡単構築
下図の道具があれば、オールインワン構成のデモ環境を簡単に構築できます。
em1
em2
Intel-VT/AMD-V
対応サーバ
ホストアクセス用NIC
VMアクセス用NIC
インターネット
インターネットにアクセス
できるネットワーク
Fedora18
4GB以上のメモリ
「RDOデモ環境を確実に構築する手順」
http://d.hatena.ne.jp/enakai00/20130625/1372132365
手順はこちらを参照
17. 17
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
OpenStackが提供するコンピューティングリソース
OpenStackのユーザは、Webコンソール/APIを利用して、
次のようなコンピューティングリソースを利用します。
– 仮想ネットワーク
– 仮想マシンインスタンス
– ブロックボリューム
データ領域 ブロックボリューム
仮想ルータ
仮想スイッチ
外部ネットワーク
プロジェクト環境
OpenStackユーザ
OS領域
各ユーザは特定の「プロジェクト」に
所属します。
– プロジェクト内でリソースを共有
– プロジェクト全体でのリソース使用
量の上限設定、リソース使用状況の
レポーティングなどが可能
仮想マシンインスタンス
19. 19
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
仮想ネットワーク (1)
プロジェクトごとに仮想ルータを用意して、その背後にプライベートなネットワーク環境
を構成します。
– ブロードバンドルータで家庭内LANをインターネットに接続するような感覚です。
仮想スイッチを作成して、ルータに接続します。
– それぞれの仮想スイッチは、プライベートIPの独立したサブネットを持ちます。
仮想マシンインスタンス起動時は、接続する仮想スイッチを選択します。
– DHCPでプライベートIPアドレスが割り当てられます。
– 同じプロジェクトの仮想マシンインスタンス間は、プライベートIPで通信できます。
仮想スイッチ
192.168.101.0/24
プロジェクトA
専用ルータ
外部ネットワーク
プロジェクトB
専用ルータ
仮想スイッチ
192.168.102.0/24
20. 20
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
仮想ネットワーク (2)
外部ネットワークと通信する際は、仮想マシンインスタンスに「フローティングIP」を割
り当てます。
– 外部ネットワークのサブネット上で、フローティングIPとして利用可能なIPアドレスを
プールしておきます。
– 仮想ルータ上で、フローティングIPとプライベートIPのNATが行われます。
– フローティングIPを割り当てない場合でも、仮想マシンインスタンスから外部ネット
ワークへの接続は可能です。(仮想ルータのIPアドレスを代表IPとして、マスカレード
接続します。)
Webサーバー DBサーバー
プライベートIP プライベートIP
フローティングIP
外部ネットワークからは
フローティングIPで接続
インスタンス同士は
プライベートIPで接続
21. 21
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
セキュリティグループによるパケットフィルタリング
仮想マシンインスタンスの受信パケットを「セキュリティグループ」でフィルタリングし
ます。
– セキュリティグループを作成して、「プロトコル、宛先ポート、送信元IP」などの条件
で受信を許可するパケットを指定します。
– 仮想マシンインスタンス起動時に適用するセキュリティグループを指定します。
TCP22番は任意の
IPから受信許可
Pingは192.168.0.0/16
からのみ許可
セキュリティグループ「Development」の
仮想マシンインスタンスからは任意のTCP接続を許可
23. 23
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
外部ネットワーク
仮想マシンインスタンスの起動
仮想マシンインスタンスを起動する際は、次の項目を指定します。
– インスタンスタイプ
– テンプレートイメージ (*)
– 接続する仮想ネットワーク
– セキュリティグループ
– キーペア
OS領域
テンプレート
イメージ
複製
複数ネットワーク
接続も可能
セキュリティグループ
形式 説明
raw フラットなイメージファイル
AMI/AKI/ARI Amazon EC2が利用する形式
qcow2 Linux KVMが利用する形式
VDI VirtualBoxが利用する形式
VMDK VMwareが利用する形式
VHD Hyper-Vが利用する形式
(*) テンプレートイメージ作成機能は、OpenStackは提供しません。外部ツールで作成したものをインポートします。
テンプレートとしてインポート可能なイメージ形式
24. 24
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
キーペアによるSSHログイン認証
事前に公開鍵を登録しておき、仮想マシンインスタンス起動時にゲストOSに埋め込みます。
– 公開鍵の登録は、ユーザ個別に行います。複数ユーザでキーペアを共有する形にはなりま
せん。
ユーザー情報データベース
仮想マシンインスタンス
②公開鍵をゲストOSに埋め込み
秘密鍵
公開鍵
①公開鍵を事前に登録
③秘密鍵で認証
25. 25
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
インスタンスタイプの指定
デフォルトのインスタンスタイプ
– ルートディスクは、テンプレートイメージを複製した後に指定のサイズまで拡張されます。
(m1.tinyでは拡張しません。)
管理者ユーザは任意のインスタンスタイプを定義することができます。
– 一時ディスクとスワップディスクを与えると、ゲストOSからは下図のように認識されます。
– これらのディスク領域は、仮想マシンインスタンスを削除すると、すべて破棄されます。(永続保
存が必要なユーザデータは、ブロックボリュームに保存します。)
インスタンスタイプ 仮想CPU メモリ
ルート
ディスク
一時
ディスク
スワップ
ディスク
m1.tiny 1 512MB 0GB 0 0
m1.small 1 2GB 20GB 0 0
m1.medium 2 4GB 40GB 0 0
m1.large 4 4GB 80GB 0 0
m1.xlarge 8 8GB 160GB 0 0
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 252:0 0 20G 0 disk
└─vda1 252:1 0 20G 0 part /
vdb 252:16 0 5G 0 disk /mnt
vdc 252:32 0 1G 0 disk [SWAP]
スワップディスク
ルートディスク
一時ディスク
26. 26
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
仮想マシンインスタンスの「スナップショット」
仮想マシンインスタンスの「スナップショット」により、ルートディスクを複製して保存す
ることができます。
OS領域
テンプレートイメージ
テンプレートイメージから
仮想マシンインスタンス起動
インスタンスの
スナップショット
OS領域
ルートディスクを複製して
スナップショットを作成
スナップショットから
仮想マシンインスタンス起動
28. 28
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
ブロックボリュームの使い方
ブロックボリュームは、仮想マシンインスタンスを停止してもそのまま残るので、永続的な
データ保存領域として使います。
データ領域
③スナップショット作成
④スナップショットを複製して
新たなブロックボリュームを作成
②仮想マシンインスタンスに
接続してデータ領域として使用
データ領域
他の仮想マシンインスタンスに
再接続可能(同時接続は不可)
①新規ブロックボリュームを作成
OS領域 OS領域
29. 29
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
ブロックボリュームからの起動
ブロックボリュームにゲストOSをインストールして、ブロックボリュームから仮想マシンイ
ンスタンスを起動することも可能です。
– 仮想マシンインスタンスを停止しても、OS領域への変更が破棄されずに残ります。
– スナップショットを作成しておき、仮想マシンインスタンスを起動するタイミングで、
スナップショットから新しいブロックボリュームを用意することも可能です。
OS領域
仮想マシンインスタンスに
接続してゲストOS起動
テンプレートイメージを複製して
ブロックボリュームを作成(*)
OS領域
テンプレート
イメージ
OS領域
スナップショット作成
OS領域
複製
(*) この操作はGrizzlyのHorizon Dashboardには搭載されていません。コマンドラインでのAPI操作が必要です。
35. 35
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
仮想マシンインスタンスのメタデータ
ゲストOSから「http://169.254.169.254」にアクセスすると、仮想マシンインスタンス固
有の情報が取得できます。これを「メタデータ」と呼びます。
ゲストOSに「Cloud-Init」というツールを導入すると、仮想マシンインスタンス起動時にメ
タデータを利用して、ゲストOSの自動セットアップを行います。
– 一時ディスクのマウントやスワップディスクの構成は、Cloud-Initが行なっています。
– 公式ドキュメント http://cloudinit.readthedocs.org/en/latest/
$ curl http://169.254.169.254/2009-04-04/meta-data/hostname
vm03.novalocal
$ curl http://169.254.169.254/2009-04-04/meta-data/local-ipv4
192.168.101.4
$ curl http://169.254.169.254/2009-04-04/meta-data/public-keys/0/openssh-key
Ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5W2IynhVezp+DpN11xdsY/8NOqeF8r7eYqVteeWZSBfnYhKn
8D85JmByBQnJ7HrJIrdMvfTYwWxi+swfFlryG3A+oSll0tT71FLAWnAYz26ML3HccyJ7E2bD66BSditbDITK
H3V66oN9c3rIEXZYQ3A+GEiA1cFD++R0FNKxyBOkjduycvksB5Nl9xb3k6z4uoZ7JQD5J14qnooM55Blmn2C
C2/2KlapxMi0tgSdkdfnSSxbYvlBztGiF3M4ey7kyuWwhE2iPBwkV/OhANl3nwHidcNdBrAGC3u78aTtUEwZ
tNUqrevVKM/yUfRRyPRNivuGOkvjTDUL/9BGquBX9Q== enakai@kakinoha
$ curl http://169.254.169.254/2009-04-04/meta-data/block-de-mapping/root
/dev/vda
$ curl http://169.254.169.254/2009-04-04/meta-data/block-device-mapping/ephemeral0
/dev/vdb
$ curl http://169.254.169.254/2009-04-04/meta-data/bloe-mapping/swap
/dev/vdc
メタデータの例
ルートディスク/一時ディスク/
スワップディスクに対応するデバイス名
36. 36
Red Hat OpenStack徹底解説!〜第一部 OpenStack入門
カスタマイズ・スクリプト(User Data)による自動化
仮想マシンインスタンス起動時に「カスタマイズ・スクリプト(User Data)」を与えると
任意のテキストをメタデータとしてゲストOSに受け渡すことができます。
Cloud-Initは、カスタマイズ・スクリプトを解釈して、さまざまな自動化を実現します。
– 下図はシェルスクリプトを渡して、「/etc/motd」を設定しています。
– この他にもCloud-Init独自の構文で、処理内容を指示することができます。
$ curl http://169.254.169.254/2009-04-04/user-data
#!/bin/sh
echo 'Hello, World' > /etc/motd
exit 0