Upload
virtualtech-japan-inc
View
9.729
Download
0
Embed Size (px)
DESCRIPTION
- OpenStackの概要 - OpenStack導入手順 --- Ubuntu Server 12.04.4のインストールと設定 --- DevStackによるOpenStackのインストール --- インスタンスの起動 --- Floating IPによる外部接続設定
Citation preview
OpenStack で始めるクラウド環境構築入門
Havana 対応版
日本仮想化技術株式会社VirtualTech.jp
自己紹介• 本名:宮原 徹• 1972 年 1 月 神奈川県生まれ• 1994 年 3 月 中央大学法学部法律学科卒業• 1994 年 4 月 日本オラクル株式会社入社
– PC サーバ向け RDBMS 製品マーケティングに従事– Linux 版 Oracle8 の日本市場向け出荷に貢献
• 2000 年 3 月 株式会社デジタルデザイン 東京支社長および株式会社アクアリウムコンピューター 代表取締役社長に就任– 2000 年 6 月 (株)デジタルデザイン、ナスダック・ジャパン
上場( 4764 )• 2001 年 1 月 株式会社びぎねっと 設立• 2006 年 12 月 日本仮想化技術株式会社 設立• 2008 年 10 月 IPA 「日本 OSS 貢献者賞」受賞• 2009 年 10 月 日中韓 OSS アワード 「特別貢献賞」受賞
2
日本仮想化技術株式会社 概要• 社名:日本仮想化技術株式会社
– 英語名: VirtualTech Japan Inc.– 略称:日本仮想化技術/ VTJ
• 設立: 2006 年 12 月• 資本金: 2,000 万円• 売上高: 1 億 3,573 万円( 2013 年 7 月期)• 本社:東京都渋谷区渋谷 1-8-1• 取締役:宮原 徹(代表取締役社長兼 CEO )• 伊藤 宏通(取締役 CTO )• スタッフ: 8 名(うち、 6 名が仮想化技術専門エンジニアです)• URL : http://VirtualTech.jp/• 仮想化技術に関する研究および開発
– 仮想化技術に関する各種調査– 仮想化技術に関連したソフトウェアの開発– 仮想化技術を導入したシステムの構築– OpenStack の導入支援・新規機能開発
ベンダーニュートラルな独立系仮想化技術のエキスパート集団
3
4
EnterpriseCloud.jp
• OpenStack で始めるエンタープライズクラウドの情報サイト
• OpenStack 導入手順書のダウンロード
• 各種プレゼン資料• その他ブログ記事
5
OpenStack 最新情報セミナー開催中
• OpenStack に関する最新情報セミナーを隔月開催– 第 4 回:『 OpenStack 環境構築入門』&『ネットワー
ク仮想化の最新動向 – Software Defined Infrastructure(SDI) を目指して』( 2014 年 4 月 10 日( 木 ) )
– 第 5 回:『 OpenStack 環境構築入門』&『 OpenStackのストレージ』( 2014 年 6 月 5 日 ( 木 ) )
• 費用:無償• 資料もすべて公開中• 詳細は EnterpriseCloud.jp をご覧下さい
6
@IT :たまおきの OpenSatck Watch
• OpenStack を中心にクラウド関係の最新情報を @IT にて毎月発信
• たまおき@ VTJ 責任編集
http://bit.ly/1areUHP
ベアメタル OpenStack の特徴
7
従来の OpenStack ベアメタル OpenStack
物理サーバ群
サーバ仮想化技術
クラウドサービスA
クラウドサービスB
クラウドサービスC
物理サーバ群
クラウドサービスA
クラウドサービスB
クラウドサービスC
サーバ仮想化技術を利用しない
状況に応じて仮想 / 物理の切替可能
8
次期バージョン “ Icehouse”
2014 年 4 月 17 日リリース• TripleO(OpenStack on OpenStack)
– OpenStack で OpenStack 環境自体をインストール• Ironic
– 仮想マシンだけでなく物理マシン( Baremetal )も管理• Macaroni
– メッセージサービス• Trove
– DBaaS• Sahara ( aka Savanna )
– Hadoop 環境
9
最近やっていること• OpenStack デプロイツールの評価検証
– Ubuntu の JuJu/MaaS を使った OpenStack 環境構築
– RDO を使った OpenStack 環境構築• Icehouse 導入手順書の作成
– Havana と手順がかなり入れ替わった–相変わらず Neutron周りが・・
• DevStack の検証– 最近、ネットワークがうまく繋がらなくなっ
た・・
10
本日のアジェンダ• OpenStack の概要• OpenStack の環境設計 入門編
– 今回のネットワーク設計 解説• OpenStack 環境の導入
– 細かい手順は enterprisecloud.jp にてダウンロード
• Ubuntu Server 12.04LTS のインストールと設定
• Keystone の設定の勘所• Neutron の設定の勘所
OpenStack の概要
12
OpenStack 概要
仮想マシン ネットワーク ストレージ
Web管理画面
IaaS 環境を実現するソフトウェアスタック
13
OpenStack 構成図MQや REST で相互接続
http://docs.openstack.org/havana/install-guide/install/apt/content/ch_overview.html
14
OpenStack の構成要素サービス 役割Nova 全体をコントロールNova Compute 仮想マシンインスタンス管理Message Queue AMQP
Keystone 認証系Glance ゲスト OS イメージ管理Cinder ブロックストレージ管理Horizon Web管理画面Swift オブジェクトストレージCeilometer リソース利用量監視Heat 自動化
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
Keystone の設定の勘所
27
テナント demo
OpenStack のアカウント構造• テナントは複数のユーザーを束ねるグループのような役割– 従来はプロジェクト
• ユーザー権限はロールとして各ユーザーに権限付与
• ロールの定義はpolicy.json に記述
テナント adminユーザー
admin
ロールadmin
Member
権限付与demo
service
28
サービスと 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 情報
29
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 スクリプトにまとめてあります
30
policy.json の記述方法
• ポリシーとルールで記述–ポリシー :[[“ ルール” ]] と記述する
• ポリシー:操作とリソース– リソースは現在ネットワーク関係のみ
• ルール:ロール、フィールドと一般– ロールは role:admin と記述– フィールドは is_admin:True と記述–一般は tenant_id:%(tenant_id)s と記述
31
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 の設定の勘所
33
パッケージのインストール
• 各ノードに合わせたパッケージの導入ノード パッケージ
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ノードの双方に
インストールすること
34
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
35
参考: 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
37
その他
38
Glance の動作
ephemeral な場合1. インスタンス起動で指定されたイメージ
を Glanceノードから computeノードの“ /var/lib/nova/instances/_base” にコピー
2. コピーしたイメージをベースとしてqcow2差分ディスクを” /var/lib/nova/ インスタンス ID/disk” として作成
3. 作成した qcow2差分ディスクを /dev/vdaとしてインスタンスにアタッチ
39
Cinder の動作
controller compute1
インスタンス
eth0 eth0
/dev/vda
LVM volume
ボリューム
iscsidtgt
Glance
イメージ
イメージからボリュームを作成し、そのボリュームから起動することも可能
40
イメージ登録と 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 との連動も
41
いくつかの宿題• 不要な設定の排除
– GrizzlyからHavanaへのバージョンアップの際に不要になった設定がまだ残っている
– docs.openstack.org のドキュメントも結構引きずってる– とりあえず影響は無いレベルだが、認証関係の設定の記述は極力少なくしたい
• Ceilometer 、 Heat のインストール– 基本的な手順はその他のサービスと同じ
• Swift のインストール– Glance のバックエンドとしても使用可能
• Icehouse 対応– 現在検証中
42
お問い合わせ先「仮想化環境を構築したいが、どこに相談すればいい
の?」「 OpenStack のサポートしてくれる会社はない
の?」
まずは我々にご相談ください
http://VirtualTech.jp/[email protected]
03-6419-7841