Upload
etsuji-nakai
View
3.703
Download
5
Embed Size (px)
DESCRIPTION
Citation preview
RDOで体験!
OpenStackの基本機能
レッドハット株式会社中井悦司 / Etsuji NakaiSenior Solution Architectand Cloud Evangelistv1.0 2013/11/14
RDOで体験!OpenStackの基本機能
自己紹介
中井悦司(なかいえつじ)– Twitter @enakai00
日々の仕事– Senior Solution Architect and
Cloud Evangelist at Red Hat K.K.企業システムでオープンソースの活用を希望されるお客様を全力でご支援させていただきます。
昔とった杵柄– 素粒子論の研究(超弦理論とか)– 予備校講師(物理担当)– インフラエンジニア(Unix/Linux専門)
「Linux独習書の新定番」書きました!
読者の声より ――「今はインターネット上に情報が溢れているけど、質の高い入門書が少なく なっているのは不幸なことだと思う。そんな中、この本はすごくいい」「平易な言葉でありながら、決して足りなくはない。慎重に選ばれています。 脳みそに染みこんで来ます」
RDOで体験!OpenStackの基本機能
目次
RDOの紹介
利用者から見たOpenStackの機能– 仮想ネットワーク– 仮想マシンインスタンス– ブロックボリューム– プロジェクト管理
メタデータとCloud-Init
(*) 本資料は2013年7月時点のRDO(Grizzly)に基づく情報を提供しています。
RDOで体験!OpenStackの基本機能
RDOの紹介
RDOで体験!OpenStackの基本機能
RDO :RHELでOpenStackを利用するユーザ向けのコミュニティ活動 RDOが提供するRHEL用OpenStackは、誰でも無償で利用ができます。
http://special.nikkeibp.co.jp/ts/article/ac0e/143743/
RDOで体験!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
RDOで体験!OpenStackの基本機能
(参考)RDOとPackstackでデモ環境を簡単構築
下図の道具があれば、オールインワン構成のデモ環境を簡単に構築できます。
em1
em2
Intel-VT/AMD-V対応サーバ
ホストアクセス用NIC
VMアクセス用NIC
インターネット
インターネットにアクセスできるネットワーク
Fedora18
4GB以上のメモリ
「最短手順でRDO(Grizzly)のデモ環境を構築」http://d.hatena.ne.jp/enakai00/20131022/1382443408
手順はこちらを参照
RDOで体験!OpenStackの基本機能
OpenStackが提供するコンピューティングリソース
OpenStackのユーザは、Webコンソール/APIを利用して、次のようなコンピューティングリソースを利用します。
– 仮想ネットワーク– 仮想マシンインスタンス– ブロックボリューム
データ領域 ブロックボリューム
仮想ルータ
仮想スイッチ
外部ネットワーク
プロジェクト環境
OpenStackユーザ
OS領域
各ユーザは特定の「プロジェクト」に所属します。
– プロジェクト内でリソースを共有– プロジェクト全体でのリソース使用量の上限設定、リソース使用状況のレポーティングなどが可能
仮想マシンインスタンス
RDOで体験!OpenStackの基本機能
利用者から見たOpenStackの機能〜仮想ネットワーク〜
RDOで体験!OpenStackの基本機能
仮想ネットワーク (1)
プロジェクトごとに仮想ルータを用意して、その背後にプライベートなネットワーク環境を構成します。
– ブロードバンドルータで家庭内LANをインターネットに接続するような感覚です。 仮想スイッチを作成して、ルータに接続します。
– それぞれの仮想スイッチは、プライベートIPの独立したサブネットを持ちます。 仮想マシンインスタンス起動時は、接続する仮想スイッチを選択します。
– DHCPでプライベートIPアドレスが割り当てられます。– 同じプロジェクトの仮想マシンインスタンス間は、プライベートIPで通信できます。
仮想スイッチ192.168.101.0/24
プロジェクトA専用ルータ
外部ネットワーク
プロジェクトB専用ルータ
仮想スイッチ192.168.102.0/24
RDOで体験!OpenStackの基本機能
仮想ネットワーク (2)
外部ネットワークと通信する際は、仮想マシンインスタンスに「フローティングIP」を割り当てます。
– 外部ネットワークのサブネット上で、フローティングIPとして利用可能なIPアドレスをプールしておきます。
– 仮想ルータ上で、フローティングIPとプライベートIPのNATが行われます。– フローティングIPを割り当てない場合でも、仮想マシンインスタンスから外部ネット
ワークへの接続は可能です。(仮想ルータのIPアドレスを代表IPとして、マスカレード接続します。)
Webサーバー DBサーバー
プライベートIP プライベートIP
フローティングIP
外部ネットワークからはフローティングIPで接続
インスタンス同士はプライベートIPで接続
RDOで体験!OpenStackの基本機能
セキュリティグループによるパケットフィルタリング
仮想マシンインスタンスの受信パケットを「セキュリティグループ」でフィルタリングします。
– セキュリティグループを作成して、「プロトコル、宛先ポート、送信元IP」などの条件で受信を許可するパケットを指定します。
– 仮想マシンインスタンス起動時に適用するセキュリティグループを指定します。
TCP22番は任意のIPから受信許可
Pingは192.168.0.0/16からのみ許可
セキュリティグループ「Development」の仮想マシンインスタンスからは任意のTCP接続を許可
RDOで体験!OpenStackの基本機能
利用者から見たOpenStackの機能〜仮想マシンインスタンス〜
RDOで体験!OpenStackの基本機能
外部ネットワーク
仮想マシンインスタンスの起動
仮想マシンインスタンスを起動する際は、次の項目を指定します。
– インスタンスタイプ– テンプレートイメージ (*)
– 接続する仮想ネットワーク– セキュリティグループ– キーペア
OS領域テンプレート
イメージ
複製
複数ネットワーク接続も可能
セキュリティグループ
形式 説明
raw フラットなイメージファイル
AMI/AKI/ARI Amazon EC2が利用する形式
qcow2 Linux KVMが利用する形式
VDI VirtualBoxが利用する形式
VMDK VMwareが利用する形式
VHD Hyper-Vが利用する形式
(*) テンプレートイメージ作成機能は、OpenStackは提供しません。外部ツールで作成したものをインポートします。
テンプレートとしてインポート可能なイメージ形式
RDOで体験!OpenStackの基本機能
キーペアによるSSHログイン認証
事前に公開鍵を登録しておき、仮想マシンインスタンス起動時にゲストOSに埋め込みます。–公開鍵の登録は、ユーザ個別に行います。複数ユーザでキーペアを共有する形にはなりま
せん。
ユーザー情報データベース
仮想マシンインスタンス
②公開鍵をゲストOSに埋め込み
秘密鍵
公開鍵
①公開鍵を事前に登録
③秘密鍵で認証
RDOで体験!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 MOUNTPOINTvda 252:0 0 20G 0 disk └─vda1 252:1 0 20G 0 part /vdb 252:16 0 5G 0 disk /mntvdc 252:32 0 1G 0 disk [SWAP] スワップディスク
ルートディスク
一時ディスク
RDOで体験!OpenStackの基本機能
仮想マシンインスタンスの「スナップショット」
仮想マシンインスタンスの「スナップショット」により、ルートディスクを複製して保存することができます。
OS領域
テンプレートイメージ
テンプレートイメージから仮想マシンインスタンス起動
インスタンスのスナップショット
OS領域
ルートディスクを複製してスナップショットを作成
スナップショットから仮想マシンインスタンス起動
RDOで体験!OpenStackの基本機能
利用者から見たOpenStackの機能〜ブロックボリューム〜
RDOで体験!OpenStackの基本機能
ブロックボリュームの使い方
ブロックボリュームは、仮想マシンインスタンスを停止してもそのまま残るので、永続的なデータ保存領域として使います。
データ領域
③スナップショット作成
④スナップショットを複製して新たなブロックボリュームを作成
②仮想マシンインスタンスに接続してデータ領域として使用
データ領域
他の仮想マシンインスタンスに再接続可能(同時接続は不可)
①新規ブロックボリュームを作成
OS領域 OS領域
RDOで体験!OpenStackの基本機能
ブロックボリュームからの起動
ブロックボリュームにゲストOSをインストールして、ブロックボリュームから仮想マシンインスタンスを起動することも可能です。
– 仮想マシンインスタンスを停止しても、OS領域への変更が破棄されずに残ります。– スナップショットを作成しておき、仮想マシンインスタンスを起動するタイミングで、
スナップショットから新しいブロックボリュームを用意することも可能です。
OS領域
仮想マシンインスタンスに接続してゲストOS起動
テンプレートイメージを複製してブロックボリュームを作成(*)
OS領域テンプレート
イメージ
OS領域
スナップショット作成
OS領域
複製
(*) この操作はGrizzlyのHorizon Dashboardには搭載されていません。コマンドラインでのAPI操作が必要です。
RDOで体験!OpenStackの基本機能
利用者から見たOpenStackの機能〜プロジェクト管理機能〜
RDOで体験!OpenStackの基本機能
新規プロジェクト/ユーザの作成
RDOで体験!OpenStackの基本機能
プロジェクト単位のリソース使用レポート
現在の使用量 指定月の累計
RDOで体験!OpenStackの基本機能
プロジェクト全体でのリソース使用量の上限設定
RDOで体験!OpenStackの基本機能
メタデータとCloud-Init
RDOで体験!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/hostnamevm03.novalocal$ curl http://169.254.169.254/2009-04-04/meta-data/local-ipv4192.168.101.4$ curl http://169.254.169.254/2009-04-04/meta-data/public-keys/0/openssh-keySsh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA5W2IynhVezp+DpN11xdsY/8NOqeF8r7eYqVteeWZSBfnYhKn8D85JmByBQnJ7HrJIrdMvfTYwWxi+swfFlryG3A+oSll0tT71FLAWnAYz26ML3HccyJ7E2bD66BSditbDITKH3V66oN9c3rIEXZYQ3A+GEiA1cFD++R0FNKxyBOkjduycvksB5Nl9xb3k6z4uoZ7JQD5J14qnooM55Blmn2CC2/2KlapxMi0tgSdkdfnSSxbYvlBztGiF3M4ey7kyuWwhE2iPBwkV/OhANl3nwHidcNdBrAGC3u78aTtUEwZtNUqrevVKM/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
メタデータの例
ルートディスク/一時ディスク/スワップディスクに対応するデバイス名
RDOで体験!OpenStackの基本機能
カスタマイズ・スクリプト(User Data)による自動化
仮想マシンインスタンス起動時に「カスタマイズ・スクリプト(User Data)」を与えると任意のテキストをメタデータとしてゲストOSに受け渡すことができます。
Cloud-Initは、カスタマイズ・スクリプトを解釈して、さまざまな自動化を実現します。–下図はシェルスクリプトを渡して、「/etc/motd」を設定しています。– この他にもCloud-Init独自の構文で、処理内容を指示することができます。
$ curl http://169.254.169.254/2009-04-04/user-data#!/bin/shecho 'Hello, World' > /etc/motdexit 0
Thank you