OpenStack in Action 4! Rachid Boularas - Pragmatic Storage Solutions for Havana with NetApp
OpenStack環境構築入門 Havana対応版 - OpenStack最新情報セミナー2014年4月
-
Upload
virtualtech-japan-inc -
Category
Software
-
view
5.143 -
download
2
description
Transcript of OpenStack環境構築入門 Havana対応版 - OpenStack最新情報セミナー2014年4月
OpenStack 環境構築入門Havana 対応版
2014 年 4 月 10 日日本仮想化技術株式会社
VirtualTech.jp
日本仮想化技術株式会社 概要• 社名:日本仮想化技術株式会社
– 英語名: VirtualTech Japan Inc.– 略称:日本仮想化技術/ VTJ
• 設立: 2006 年 12 月• 資本金: 2,000 万円• 売上高: 1 億 3,573 万円( 2013 年 7 月期)• 本社:東京都渋谷区渋谷 1-8-1• 取締役:宮原 徹(代表取締役社長兼 CEO )• 伊藤 宏通(取締役 CTO )• スタッフ: 8 名(うち、 7 名が仮想化技術専門エンジニアです)• URL : http://VirtualTech.jp/• 仮想化技術に関する研究および開発
– 仮想化技術に関する各種調査– 仮想化技術に関連したソフトウェアの開発– 仮想化技術を導入したシステムの構築– OpenStack の導入支援・新規機能開発
ベンダーニュートラルな独立系仮想化技術のエキスパート集団
2
導入・移行
仮想化環境構築をトータルサポート
設計
• 戦略立案– コスト削減、社内標準化、将来プランのコンサルティ
ング• 設計
– 要求仕様の策定– サーバ、ストレージからネットワークまでアプ
リケーションまで考慮した設計最適化– キャパシティプランニング(ベンチマーク)
• 導入– 仮想化ソリューションパッケージの提供– 仮想化統合( P2V 既存環境移行)
• 運用保守– エンジニア教育– 技術サポートの提供– OSS ソースコードレベルサポート
運用保守
ベンダーニュートラルなワンストップ・サポートをご提供3
戦略立案
4
OpenStack への取り組み
• お客様向け OpenStack 評価環境の構築• ベアメタル OpenStack の開発
– 仮想環境と物理環境を OpenStack で一括管理
– 単一のイメージで仮想マシンと物理マシンの双方を起動可能
– 2013 年 4 月リリースの Grizzly で本体にマージ
• 某 OpenStack クラウドサービス評価– 機能検証・性能検証
ベアメタル OpenStack の特徴
5
従来の OpenStack ベアメタル OpenStack
物理サーバ群
サーバ仮想化技術
クラウドサービスA
クラウドサービスB
クラウドサービスC
物理サーバ群
クラウドサービスA
クラウドサービスB
クラウドサービスC
サーバ仮想化技術を利用しない
状況に応じて仮想 / 物理の
切替可能
6
EnterpriseCloud.jp
• OpenStack で始めるエンタープライズクラウドの情報サイト
• OpenStack 導入手順書のダウンロード
• 各種プレゼン資料• その他ブログ記事
7
OpenStack 最新情報セミナー開催中
• OpenStack に関する最新情報セミナーを隔月開催– 第 1 回:『 OpenStack を活用したエンタープライズ
クラウドの実現』( 2013 年 9 月 25 日 (水 ) )– 第 2 回:『 Ubuntu祭り&OpenStack Summit出張報告、
ベアメタルもあるよ』( 2013 年 11 月 20 日 (水 ) )– 第 3 回:『 OpenStack 環境構築入門』&『次世代の超
高密度サーバの活用法とは』( 2014 年 2 月 6 日(木 ) )
• 費用:無償• 資料もすべて公開中• 詳細は EnterpriseCloud.jp をご覧下さい
8
たまおきのクラウドウォッチ• OpenStack を中心に
クラウド関係の最新情報を @IT にて毎月発信
• たまおき@ VTJ責任編集
http://bit.ly/1areUHP
9
本日のアジェンダ• OpenStack の概要• OpenStack の環境設計 入門編
– 今回のネットワーク設計 解説• Ubuntu Server 12.04LTS のインストールと設
定• Keystone の設定の勘所• Neutron の設定の勘所
OpenStack の概要
11
OpenStack 概要
仮想マシン ネットワーク ストレージ
Web 管理画面
IaaS 環境を実現するソフトウェアスタック
12
OpenStack 構成図MQや REST で相互接続
http://docs.openstack.org/havana/install-guide/install/apt/content/ch_overview.html
13
OpenStack の構成要素サービス 役割Nova 全体をコントロールNova Compute 仮想マシンインスタンス管理Message Queue AMQP
Keystone 認証系Glance ゲスト OS イメージ管理Cinder ブロックストレージ管理Horizon Web 管理画面Swift オブジェクトストレージCeilometer リソース利用量監視Heat 自動化
14
次期バージョン “ Icehouse”
2014 年 4 月 17 日リリース• TripleO(OpenStack on OpenStack)
– OpenStack で OpenStack 環境自体をインストール• Ironic
– 仮想マシンだけでなく物理マシン( Baremetal )も管理• Macaroni
– メッセージサービス• Trove
– DBaaS• Sahara ( aka Savanna )
– Hadoop 環境
15
今回の設計の方針
• Ubuntu Server 12.04LTS をベースに構築• 3ノード構成
– コントローラー(以下の 2つ以外全部)– ネットワーク( Neutron+ Open vSwitch )– 仮想マシンインスタンス( Nova
Compute+Open vSwitch )• 今回は Swift 、 Ceilometer 、 Heatは未使用– Ceilometer 、 Heatは今回の手順が理解できれば導入手順は概ね同じ
OpenStack 環境の設計 入門編
17
OpenStack 環境設計時の考慮点
• ネットワーク構成– 物理設計–論理設計( Open vSwitchや OpenFlow など)
• ストレージ構成– マスターイメージ管理( Glance )– ブロックストレージ管理( Cinder+外部ス
トレージ)–共有ストレージ領域の準備( NFS など)–オブジェクトストレージの利用( Swift )
18
今回の環境
• ネットワーク構成は 2 系統– 管理系( eth0 )– サービス系( eth1 )
• Neutron+Open vSwitch ( GRE トンネリング)• Floating IP で物理ネットワークと仮想マシン
ネットワークを接続
• ストレージ構成はファイルベース– コントローラーに LVM領域を作成し、ゲ
スト OS イメージはファイルとして保管
19
Fixed IP と Floating IP の仕組み① FIXED_RANGE で割
り当てられる。①同士は通信できるが、③とは通信できない
② FLOATING_RANGEで割り当てられる。実際には②と①との間で静的 NAT を行っている。③→②→①と繋がる
①
②
サービス
クライアント③
インスタンス
①
20
ネットワーク構成図
controllerノード
networkノード
compute1ノード
インスタンス
クライアント
管理系( eth0 )
サービス系( eth1 )
eth0 eth0 eth0仮想スイッチセグメント
eth1
21
Open vSwitch接続図
networkノード
compute1ノード
クライアント
br-int
br-exeth1
eth0 eth0
22
仮想ネットワーク図(手順書)
demo-net
ext-net
ext-net-subnet(10.0.0.0/24)
インスタンス
demo-net-subnet(10.5.5.0/24)
demo-router
10.5.5.1
Floating IP(10.0.0.200/24〜 10.0.0.250/24)
Fixed IP(10.5.5.2/24〜 10.5.5.254/24)
クライアント
10.0.0.x
Ubuntu Server 12.04LTS のインストールと設定
24
Ubuntu Server 12.04LTS の導入(共通)
1. ベース OS としてのインストール– OpenSSH のみインストール
2. IP アドレスの設定3. 静的名前解決の設定4. sysctl によるシステムの設定(ネットワー
ク)5. apt の設定6. NTP のインストール7. Python 用 MySQL クライアントのインストー
ル
25
ネットワーク設定(手順書)eth0 eth1
controller 192.168.0.10 10.0.0.10
network 192.168.0.9 10.0.0.9
compute1 192.168.0.11 10.0.0.11
ゲートウェイ なし 10.0.0.1
ネームサーバー なし 10.0.0.1
• eth0側にゲートウェイ、ネームサーバーの設定が無いのは構築環境の制約によるものです
• compute1 の eth1(10.0.0.11)は本来不要ですが、 apt コマンドによるリポジトリへのアクセスが必要なため設定されています。環境構築後は使用しません。
• controller の eth1(10.0.0.10)は外部 API公開用ですが、今回は使用していません
26
ネットワーク設定(今回)eth0 eth1
controller 192.168.N.10/16 10.0.N.10/16
network 192.168.N.9/16 10.0.N.9/16
compute1 192.168.N.11/16 10.0.N.11/16
ゲートウェイ なし 10.0.N.1
ネームサーバー なし 10.0.N.1
• 今回はインターネット接続は行いませんが、手順書に合わせて eth1側に GW 、 NS を設定しています
• 今回は同一セグメント上で複数の環境を同時に構築するため、ネットマスクを 16 ビットに変更しています
N=受講者番号
27
その他の設定について(今回)
• 初期ユーザー: user/password• IP アドレス設定済• SSH でリモートログイン可能
– OpenSSH server のみインストール済• /etc/hostsは未設定
– 手順書通りに書き換えが必要• 必要なパッケージはインストール済
– 手順書通りに設定が必要• ダウンロードが必要なファイルはホームディレク
トリに配置– コピーして利用
28
Keystone の設定の勘所
29
テナント (demo)
OpenStack のアカウント構造• テナントは複数のユーザーを束ねるグループのような役割– 従来はプロジェクト
• ユーザー権限はロールとして各ユーザーに権限付与
• ロールの定義はpolicy.json に記述
テナント adminユーザー
admin
ロールadmin
Member
権限付与demo
service
30
サービスと API endpoint
• 各サービスの RESTful API インターフェースを endpoint として Keystone に登録
• endpoint には認証が設定されるAPI 種別 API URL
admin API http://controller:35357/v2.0
internal API http://controller:5000/v2.0
public API http://controller:5000/v2.0
Keyston の endpoint 情報
31
Keystone への接続認証
1. Keystone にサービスと endpoint の作成
2. 各設定ファイル内に以下の記述[keystone_authtoken]auth_host = controllerauth_port = 35357auth_protocol = httpauth_uri = http://controller:5000/v2.0admin_tenant_name = serviceadmin_user = glance ← サービス毎に異なるadmin_password = password ←ユーザー毎に異なる flavor=keystone ←○○-paste.conf に渡される
keystone service-create --name keystone --type identity --description 'OpenStack Identity’keystone endpoint-create --region $KEYSTONE_REGION --service-id $IDEN-TITY_SERVICE --publicurl 'http://'"$KEYSTONE_HOST"':5000/v2.0' --admin-url 'http://'"$KEYSTONE_HOST"':35357/v2.0' --internalurl 'http://'"$KEYSTONE_HOST"':5000/v2.0'
サービスと endopoint作成は keystone_init.sh スクリプトにまとめてあります
32
policy.json の記述方法
• ポリシーとルールで記述– ポリシー :[[“ ルール” ]] と記述する
• ポリシー:操作とリソース– リソースは現在ネットワーク関係のみ
• ルール:ロール、フィールドと一般– ロールは role:admin と記述– フィールドは is_admin:True と記述– 一般は tenant_id:%(tenant_id)s と記述
33
policy.json の例{ "context_is_admin": "role:admin", # admin ロールのユーザーは context_is_admin となる
"admin_or_owner": "is_admin:True or project_id:%(project_id)s", #ユーザー情報の is_admin フィールドが True のユーザーか project_id が同じ場合には # admin_or_owner となる
"default": "rule:admin_or_owner", #指定がない場合、
"cells_scheduler_filter:TargetCellFilter": "is_admin:True", #ユーザー情報の is_admin フィールドが True のユーザーのみに有効
"compute:create": "", #誰でもインスタンスを作成できる
Neutron の設定の勘所
35
Neutron の役割
• 従来の OpenStack では nova-network でネットワークを構成
• 各種ネットワーク機器や SDN と連携し、インスタンスにネットワーク接続を提供するサービスとして Quatum が開発開始– Quantumは Neutron と名称が変更される
• 各種ネットワークに対応するためのプラグインが提供されている
36
Neutron のプラグイン• Open vSwitch Plugin• Cisco UCS/Nexus Plugin• Linux Bridge Plugin• Modular Layer 2 Plugin• Nicira Network Virtualization Platform (NVP) Plugin• Ryu OpenFlow Controller Plugin• NEC OpenFlow Plugin• Big Switch Controller Plugin• Cloudbase Hyper-V Plugin• MidoNet Plugin• Brocade Neutron Plugin• PLUMgrid Plugin• Mellanox Neutron Plugin
37
パッケージのインストール
• 各ノードに合わせたパッケージの導入ノード パッケージ
controller neutron-server
network neutron-dhcp-agentneutron-plugin-openvswitch-agentneutron-l3-agentopenvswitch-datapath-dkms
compute1 neutron-plugin-openvswitch-agentopenvswitch-datapath-dkmsopenvswitch-datapath-dkms を networkノードと compute1ノードの双方に
インストールすること
38
Neutron+Open vSwitch の設定• /etc/nova/nova.conf
• /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini
• /etc/neutron/dhcp_agent.ini
• /etc/neutron/l3_agent.ini
linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriverfirewall_driver=nova.virt.firewall.NoopFirewallDriversecurity_group_api=neutron
[securitygroup]firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriverdhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
39
参考: Neutron+ その他のSDN
• OpenContrail– ネットワーク仮想化と NFV に特化– Juniper のサポートが受けられる– OpenStack への統合を中心に開発されてい
る• OpenDaylight
– Virutalization Edition が OpenStack 対応– 機能が豊富だがリリースされたばかり
Base Network Service Functions
Management GUI/CLI
Controller Platform
Southbound Interfaces& Protocol Plugins
OpenDaylight APIs (REST)
oDMC
Data Plane Elements(Virtual Switches,
Physical Device Interfaces)
Service Abstraction Layer (SAL)(plug-in mgr., capability abstractions, flow programming, inventory, …)
OpenFlow
1.0 1.3
Topology Mgr
Stats Mgr
Switch Mgr
VTN Coordinator
Affinity Service
Network Applications Orchestration & Services
OpenStackNeutron
OpenFlow Enabled Devices
VTN Manager
NETCONF
Additional Virtual & Physical Devices
Virtualization Edition
D4A Protection
Open vSwitches
OpenStack Service
OVSDB
FRM ARP Handler
Host Tracker
VTN: Virtual Tenant NetworkoDMC: open Dove Management ConsoleD4A: Defense4All protectionLISP: Locator/Identifier Separation ProtocolOVSDB: Open vSwitch Data Base ProtocolBGP: Border Gateway ProtocolPCEP: Path Computation Element Communication ProtocolSNMP: Simple Network Management Protocol
OVSDBNeutron
41
その他
42
Glance の動作
ephemeral な場合(インスタンス停止で消える)1. インスタンス起動で指定されたイメージを
Glanceノードから computeノードの“ /var/lib/nova/instances/_base” にコピー
2. コピーしたイメージをベースとして qcow2差分ディスクを” /var/lib/nova/ インスタンスID/disk” として作成
3. 作成した qcow2差分ディスクを /dev/vda としてインスタンスにアタッチ
43
Cinder の動作
controller compute1
インスタンス
eth0 eth0
/dev/vda
LVM volume
ボリューム
iscsidtgt
Glance
イメージ
イメージからボリュームを作成し、そのボリュームから起動することも可能
44
イメージ登録と cloud-init
• 各種公式 OS イメージのダウンロード– http://docs.openstack.org/image-guide/
content/ch_obtaining_images.html
• 独自 OS イメージを作った場合は cloud-init を導入すると良い– https://launchpad.net/cloud-init
• さらに設定の自動化を行うのであればHeat の利用、 Chef 、 Puppet との連動も
45
いくつかの宿題• Icehouse 対応• ネットワーク構成の見直し
– Parallels Desktop の仕様に引きずられすぎてるので– VirtualBox が Nested VM をサポートしてくれていたら・・・
• 不要な設定の排除– Grizzly から Havana へのバージョンアップの際に不要になった設定
がまだ残っている– docs.openstack.org のドキュメントも結構引きずってる– とりあえず影響は無いレベルだが、認証関係の設定の記述は極力少
なくしたい• Ceilometer 、 Heat のインストール
– 基本的な手順はその他のサービスと同じ• Swift のインストール
– Glance のバックエンドとしても使用可能