OpenStack環境構築入門 Havana対応版 - OpenStack最新情報セミナー2014年4月

6,885 views

Published on

講師:日本仮想化技術 宮原
日時:2014/04/10
タイトル:OpenStack環境構築入門
概要:
OpenStackの環境構築に悩んだことはありませんか?
弊社では昨年11月にOpenStack構築手順書(Havana版&Grizzly版)を公開し好評をいただいております。本セミナーでは本書を元にOpenStackの環境構築をデモを交えて分かりやすくお伝えいたします。
OpenStackの環境をこれから構築したいと思っている方に最適な内容となっております。

Published in: Software
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,885
On SlideShare
0
From Embeds
0
Number of Embeds
3,604
Actions
Shares
0
Downloads
151
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

OpenStack環境構築入門 Havana対応版 - OpenStack最新情報セミナー2014年4月

  1. 1. OpenStack環境構築入門 Havana対応版 2014年4月10日 日本仮想化技術株式会社 VirtualTech.jp
  2. 2. 日本仮想化技術株式会社 概要 • 社名:日本仮想化技術株式会社 – 英語名: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
  3. 3. 導入・移行 仮想化環境構築をトータルサポート 設計 • 戦略立案 – コスト削減、社内標準化、将来プランのコンサルティ ング • 設計 – 要求仕様の策定 – サーバ、ストレージからネットワークまでアプ リケーションまで考慮した設計最適化 – キャパシティプランニング(ベンチマーク) • 導入 – 仮想化ソリューションパッケージの提供 – 仮想化統合(P2V既存環境移行) • 運用保守 – エンジニア教育 – 技術サポートの提供 – OSSソースコードレベルサポート 運用保守 ベンダーニュートラルなワンストップ・サポートをご提供 3 戦略立案
  4. 4. OpenStackへの取り組み • お客様向けOpenStack評価環境の構築 • ベアメタルOpenStackの開発 – 仮想環境と物理環境をOpenStackで一括管 理 – 単一のイメージで仮想マシンと物理マシン の双方を起動可能 – 2013年4月リリースのGrizzlyで本体にマー ジ • 某OpenStackクラウドサービス評価 – 機能検証・性能検証4
  5. 5. ベアメタルOpenStackの特徴 5 従来のOpenStack ベアメタルOpenStack 物理サーバ群 サーバ 仮想化 技術 クラウド サービスA クラウド サービスB クラウド サービスC 物理サーバ群 クラウド サービスA クラウド サービスB クラウド サービスC サーバ仮想化技術 を利用しない 状況に応じて 仮想/物理の 切替可能
  6. 6. EnterpriseCloud.jp • OpenStackで始める エンタープライズク ラウドの情報サイト • OpenStack導入手順 書のダウンロード • 各種プレゼン資料 • その他ブログ記事 6
  7. 7. OpenStack最新情報セミナー開催 中 • OpenStackに関する最新情報セミナーを隔月開 催 – 第1回:『OpenStackを活用したエンタープライズ クラウドの実現』(2013年9月25日(水)) – 第2回:『Ubuntu祭り&OpenStack Summit出張報告、 ベアメタルもあるよ』(2013年11月20日(水)) – 第3回:『OpenStack環境構築入門』&『次世代の 超高密度サーバの活用法とは』(2014年2月6日 (木)) • 費用:無償 • 資料もすべて公開中 • 詳細はEnterpriseCloud.jpをご覧下さい 7
  8. 8. たまおきのクラウドウォッチ 8 • OpenStackを中心に クラウド関係の最新 情報を@ITにて毎月 発信 • たまおき@VTJ責任 編集 http://bit.ly/1areU HP
  9. 9. 本日のアジェンダ • OpenStackの概要 • OpenStackの環境設計 入門編 – 今回のネットワーク設計 解説 • Ubuntu Server 12.04LTSのインストールと設定 • Keystoneの設定の勘所 • Neutronの設定の勘所 9
  10. 10. OpenStackの概要
  11. 11. OpenStack概要 11 仮想マシン ネットワーク ストレージ Web管理画面 IaaS環境を実現するソフトウェアスタック
  12. 12. OpenStack構成図 12 MQやRESTで 相互接続 http://docs.openstack.org/havana/install-guide/install/apt/content/ch_overview.html
  13. 13. OpenStackの構成要素 サービス 役割 Nova 全体をコントロール Nova Compute 仮想マシンインスタンス管理 Message Queue AMQP Keystone 認証系 Glance ゲストOSイメージ管理 Cinder ブロックストレージ管理 Horizon Web管理画面 Swift オブジェクトストレージ Ceilometer リソース利用量監視 Heat 自動化 13
  14. 14. 次期バージョン “Icehouse” 2014年4月17日リリース • TripleO(OpenStack on OpenStack) – OpenStackでOpenStack環境自体をインストール • Ironic – 仮想マシンだけでなく物理マシン(Baremetal)も 管理 • Macaroni – メッセージサービス • Trove – DBaaS • Sahara(aka Savanna) – Hadoop環境 14
  15. 15. 今回の設計の方針 • Ubuntu Server 12.04LTSをベースに構築 • 3ノード構成 – コントローラー(以下の2つ以外全部) – ネットワーク(Neutron+Open vSwitch) – 仮想マシンインスタンス(Nova Compute+Open vSwitch) • 今回はSwift、Ceilometer、Heatは未使用 – Ceilometer、Heatは今回の手順が理解でき れば導入手順は概ね同じ 15
  16. 16. OpenStack環境の設計 入門編
  17. 17. OpenStack環境設計時の考慮点 • ネットワーク構成 – 物理設計 – 論理設計(Open vSwitchやOpenFlowなど) • ストレージ構成 – マスターイメージ管理(Glance) – ブロックストレージ管理(Cinder+外部ス トレージ) – 共有ストレージ領域の準備(NFSなど) – オブジェクトストレージの利用(Swift) 17
  18. 18. 今回の環境 • ネットワーク構成は2系統 – 管理系(eth0) – サービス系(eth1) • Neutron+Open vSwitch(GREトンネリング) • Floating IPで物理ネットワークと仮想マシン ネットワークを接続 • ストレージ構成はファイルベース – コントローラーにLVM領域を作成し、ゲス トOSイメージはファイルとして保管 18
  19. 19. Fixed IPとFloating IPの仕組み ① FIXED_RANGEで 割り当てられる。 ①同士は通信でき るが、③とは通信 できない ② FLOATING_RANG Eで割り当てられる。 実際には②と①と の間で静的NATを 行っている。 ③→②→①と繋が る19 ① ② サービ ス クライアント ③ インスタン ス ①
  20. 20. ネットワーク構成図 20 controller ノード network ノード compute1 ノード インスタンス クライア ント 管理系(eth0) サービス系(eth1) eth0 eth0 eth0 仮想スイッチ セグメント eth1
  21. 21. Open vSwitch接続図 21 network ノード compute1 ノード クライア ント br-int br-ex eth1 eth0 eth0
  22. 22. 仮想ネットワーク図(手順 書) 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
  23. 23. Ubuntu Server 12.04LTSの インストールと設定
  24. 24. Ubuntu Server 12.04LTSの導入(共通) 1. ベースOSとしてのインストール – OpenSSHのみインストール 2. IPアドレスの設定 3. 静的名前解決の設定 4. sysctlによるシステムの設定(ネットワー ク) 5. aptの設定 6. NTPのインストール 7. Python用MySQLクライアントのインス トール 24
  25. 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 25 • eth0側にゲートウェイ、ネームサーバーの設定が無いのは構築 環境の制約によるものです • compute1のeth1(10.0.0.11)は本来不要ですが、aptコマンドによる リポジトリへのアクセスが必要なため設定されています。環境 構築後は使用しません。 • controllerのeth1(10.0.0.10)は外部API公開用ですが、今回は使用 していません
  26. 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 26 • 今回はインターネット接続は行いませんが、手順書 に合わせてeth1側にGW、NSを設定しています • 今回は同一セグメント上で複数の環境を同時に構築 するため、ネットマスクを16ビットに変更していま す N=受講者番号
  27. 27. その他の設定について(今 回) • 初期ユーザー:user/password • IPアドレス設定済 • SSHでリモートログイン可能 – OpenSSH serverのみインストール済 • /etc/hostsは未設定 – 手順書通りに書き換えが必要 • 必要なパッケージはインストール済 – 手順書通りに設定が必要 • ダウンロードが必要なファイルはホームディレ クトリに配置 – コピーして利用 27
  28. 28. Keystoneの設定の勘所 28
  29. 29. テナント(demo) OpenStackのアカウント構造 • テナントは複数の ユーザーを束ねるグ ループのような役割 – 従来はプロジェクト • ユーザー権限はロー ルとして各ユーザー に権限付与 • ロールの定義は policy.jsonに記述 29 テナントadmin ユー ザー admin ロール admin Member 権限付与 demo service
  30. 30. サービスとAPI endpoint • 各サービスのRESTful APIインター フェースをendpointとしてKeystoneに登 録 • endpointには認証が設定される 30 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. 31. Keystoneへの接続認証 1. Keystoneにサービスとendpointの作成 1. 各設定ファイル内に以下の記述 31 [keystone_authtoken] auth_host = controller auth_port = 35357 auth_protocol = http auth_uri = http://controller:5000/v2.0 admin_tenant_name = service admin_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 $IDENTITY_SERVICE --pu blicurl 'http://'"$KEYSTONE_HOST"':5000/v2.0' --adminurl 'http://'"$KEYSTONE_HOST"':35357/v2. 0' --internalurl 'http://'"$KEYSTONE_HOST"':5000/v2.0' サービスとendopoint作成は keystone_init.shスクリプト にまとめてあります
  32. 32. policy.jsonの記述方法 • ポリシーとルールで記述 – ポリシー:[[“ルール”]] と記述する • ポリシー:操作とリソース – リソースは現在ネットワーク関係のみ • ルール:ロール、フィールドと一般 – ロールは role:admin と記述 – フィールドは is_admin:True と記述 – 一般は tenant_id:%(tenant_id)s と記述 32
  33. 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": "", #誰でもインスタンスを作成できる 33
  34. 34. Neutronの設定の勘所
  35. 35. Neutronの役割 • 従来のOpenStackではnova-networkで ネットワークを構成 • 各種ネットワーク機器やSDNと連携し、 インスタンスにネットワーク接続を提 供するサービスとしてQuatumが開発開 始 – QuantumはNeutronと名称が変更される • 各種ネットワークに対応するためのプ ラグインが提供されている 35
  36. 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 36
  37. 37. パッケージのインストール • 各ノードに合わせたパッケージの導入 37 ノード パッケージ controller neutron-server network neutron-dhcp-agent neutron-plugin-openvswitch-agent neutron-l3-agent openvswitch-datapath-dkms compute1 neutron-plugin-openvswitch-agent openvswitch-datapath-dkms openvswitch-datapath-dkmsをnetworkノードとcompute1ノードの双方に インストールすること
  38. 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 38 linuxnet_interface_driver=nova.network.linux_net.LinuxOVSInterfaceDriver firewall_driver=nova.virt.firewall.NoopFirewallDriver security_group_api=neutron [securitygroup] firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver
  39. 39. 参考:Neutron+その他のSDN • OpenContrail – ネットワーク仮想化とNFVに特化 – Juniperのサポートが受けられる – OpenStackへの統合を中心に開発されてい る • OpenDaylight – Virutalization EditionがOpenStack対応 – 機能が豊富だがリリースされたばかり 39
  40. 40. 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 OpenStack Neutron 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 Network oDMC: open Dove Management Console D4A: Defense4All protection LISP: Locator/Identifier Separation Protocol OVSDB: Open vSwitch Data Base Protocol BGP: Border Gateway Protocol PCEP: Path Computation Element Communication Protocol SNMP: Simple Network Management Protocol OVSDB Neutron
  41. 41. その他 41
  42. 42. Glanceの動作 ephemeralな場合(インスタンス停止で消え る) 1. インスタンス起動で指定されたイメージ をGlanceノードからcomputeノードの “/var/lib/nova/instances/_base”にコピー 2. コピーしたイメージをベースとして qcow2差分ディスクを”/var/lib/nova/インス タンスID/disk”として作成 3. 作成したqcow2差分ディスクを/dev/vdaと してインスタンスにアタッチ42
  43. 43. Cinderの動作 43 controller compute1 インスタンス eth0 eth0 /dev/vda LVM volume ボリュー ム iscsidtgt Glance イメージ イメージからボリュー ムを作成し、そのボ リュームから起動する ことも可能
  44. 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との連動も 44
  45. 45. いくつかの宿題 • Icehouse対応 • ネットワーク構成の見直し – Parallels Desktopの仕様に引きずられすぎてるので – VirtualBoxがNested VMをサポートしてくれていたら・・・ • 不要な設定の排除 – GrizzlyからHavanaへのバージョンアップの際に不要になっ た設定がまだ残っている – docs.openstack.orgのドキュメントも結構引きずってる – とりあえず影響は無いレベルだが、認証関係の設定の記述 は極力少なくしたい • Ceilometer、Heatのインストール – 基本的な手順はその他のサービスと同じ • Swiftのインストール – Glanceのバックエンドとしても使用可能 45

×