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

45
OpenStack 環環環環環環 Havana 環環環 2014 環 4 環 10 環 環環環環環環環環環環環 VirtualTech.jp

description

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

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

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

OpenStack 環境構築入門Havana 対応版

2014 年 4 月 10 日日本仮想化技術株式会社

VirtualTech.jp

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

日本仮想化技術株式会社 概要• 社名:日本仮想化技術株式会社

– 英語名: 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

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

導入・移行

仮想化環境構築をトータルサポート

設計

• 戦略立案– コスト削減、社内標準化、将来プランのコンサルティ

ング• 設計

– 要求仕様の策定– サーバ、ストレージからネットワークまでアプ

リケーションまで考慮した設計最適化– キャパシティプランニング(ベンチマーク)

• 導入– 仮想化ソリューションパッケージの提供– 仮想化統合( P2V 既存環境移行)

• 運用保守– エンジニア教育– 技術サポートの提供– OSS ソースコードレベルサポート

運用保守

ベンダーニュートラルなワンストップ・サポートをご提供3

戦略立案

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

4

OpenStack への取り組み

• お客様向け OpenStack 評価環境の構築• ベアメタル OpenStack の開発

– 仮想環境と物理環境を OpenStack で一括管理

– 単一のイメージで仮想マシンと物理マシンの双方を起動可能

– 2013 年 4 月リリースの Grizzly で本体にマージ

• 某 OpenStack クラウドサービス評価– 機能検証・性能検証

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

ベアメタル OpenStack の特徴

5

従来の OpenStack ベアメタル OpenStack

物理サーバ群

サーバ仮想化技術

クラウドサービスA

クラウドサービスB

クラウドサービスC

物理サーバ群

クラウドサービスA

クラウドサービスB

クラウドサービスC

サーバ仮想化技術を利用しない

状況に応じて仮想 / 物理の

切替可能

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

6

EnterpriseCloud.jp

• OpenStack で始めるエンタープライズクラウドの情報サイト

• OpenStack 導入手順書のダウンロード

• 各種プレゼン資料• その他ブログ記事

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

7

OpenStack 最新情報セミナー開催中

• OpenStack に関する最新情報セミナーを隔月開催– 第 1 回:『 OpenStack を活用したエンタープライズ

クラウドの実現』( 2013 年 9 月 25 日 (水 ) )– 第 2 回:『 Ubuntu祭り&OpenStack Summit出張報告、

ベアメタルもあるよ』( 2013 年 11 月 20 日 (水 ) )– 第 3 回:『 OpenStack 環境構築入門』&『次世代の超

高密度サーバの活用法とは』( 2014 年 2 月 6 日(木 ) )

• 費用:無償• 資料もすべて公開中• 詳細は EnterpriseCloud.jp をご覧下さい

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

8

たまおきのクラウドウォッチ• OpenStack を中心に

クラウド関係の最新情報を @IT にて毎月発信

• たまおき@ VTJ責任編集

http://bit.ly/1areUHP

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

9

本日のアジェンダ• OpenStack の概要• OpenStack の環境設計 入門編

– 今回のネットワーク設計 解説• Ubuntu Server 12.04LTS のインストールと設

定• Keystone の設定の勘所• Neutron の設定の勘所

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

OpenStack の概要

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

11

OpenStack 概要

仮想マシン ネットワーク ストレージ

Web 管理画面

IaaS 環境を実現するソフトウェアスタック

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

12

OpenStack 構成図MQや REST で相互接続

http://docs.openstack.org/havana/install-guide/install/apt/content/ch_overview.html

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

13

OpenStack の構成要素サービス 役割Nova 全体をコントロールNova Compute 仮想マシンインスタンス管理Message Queue AMQP

Keystone 認証系Glance ゲスト OS イメージ管理Cinder ブロックストレージ管理Horizon Web 管理画面Swift オブジェクトストレージCeilometer リソース利用量監視Heat 自動化

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

14

次期バージョン “ Icehouse”

2014 年 4 月 17 日リリース• TripleO(OpenStack on OpenStack)

– OpenStack で OpenStack 環境自体をインストール• Ironic

– 仮想マシンだけでなく物理マシン( Baremetal )も管理• Macaroni

– メッセージサービス• Trove

– DBaaS• Sahara ( aka Savanna )

– Hadoop 環境

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

15

今回の設計の方針

• Ubuntu Server 12.04LTS をベースに構築• 3ノード構成

– コントローラー(以下の 2つ以外全部)– ネットワーク( Neutron+ Open vSwitch )– 仮想マシンインスタンス( Nova

Compute+Open vSwitch )• 今回は Swift 、 Ceilometer 、 Heatは未使用– Ceilometer 、 Heatは今回の手順が理解できれば導入手順は概ね同じ

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

OpenStack 環境の設計 入門編

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

17

OpenStack 環境設計時の考慮点

• ネットワーク構成– 物理設計–論理設計( Open vSwitchや OpenFlow など)

• ストレージ構成– マスターイメージ管理( Glance )– ブロックストレージ管理( Cinder+外部ス

トレージ)–共有ストレージ領域の準備( NFS など)–オブジェクトストレージの利用( Swift )

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

18

今回の環境

• ネットワーク構成は 2 系統– 管理系( eth0 )– サービス系( eth1 )

• Neutron+Open vSwitch ( GRE トンネリング)• Floating IP で物理ネットワークと仮想マシン

ネットワークを接続

• ストレージ構成はファイルベース– コントローラーに LVM領域を作成し、ゲ

スト OS イメージはファイルとして保管

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

19

Fixed IP と Floating IP の仕組み① FIXED_RANGE で割

り当てられる。①同士は通信できるが、③とは通信できない

② FLOATING_RANGEで割り当てられる。実際には②と①との間で静的 NAT を行っている。③→②→①と繋がる

サービス

クライアント③

インスタンス

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

20

ネットワーク構成図

controllerノード

networkノード

compute1ノード

インスタンス

クライアント

管理系( eth0 )

サービス系( eth1 )

eth0 eth0 eth0仮想スイッチセグメント

eth1

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

21

Open vSwitch接続図

networkノード

compute1ノード

クライアント

br-int

br-exeth1

eth0 eth0

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

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

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

Ubuntu Server 12.04LTS のインストールと設定

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

24

Ubuntu Server 12.04LTS の導入(共通)

1. ベース OS としてのインストール– OpenSSH のみインストール

2. IP アドレスの設定3. 静的名前解決の設定4. sysctl によるシステムの設定(ネットワー

ク)5. apt の設定6. NTP のインストール7. Python 用 MySQL クライアントのインストー

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

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公開用ですが、今回は使用していません

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

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=受講者番号

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

27

その他の設定について(今回)

• 初期ユーザー: user/password• IP アドレス設定済• SSH でリモートログイン可能

– OpenSSH server のみインストール済• /etc/hostsは未設定

– 手順書通りに書き換えが必要• 必要なパッケージはインストール済

– 手順書通りに設定が必要• ダウンロードが必要なファイルはホームディレク

トリに配置– コピーして利用

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

28

Keystone の設定の勘所

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

29

テナント (demo)

OpenStack のアカウント構造• テナントは複数のユーザーを束ねるグループのような役割– 従来はプロジェクト

• ユーザー権限はロールとして各ユーザーに権限付与

• ロールの定義はpolicy.json に記述

テナント adminユーザー

admin

ロールadmin

Member

権限付与demo

service

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

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 情報

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

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 スクリプトにまとめてあります

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

32

policy.json の記述方法

• ポリシーとルールで記述– ポリシー :[[“ ルール” ]] と記述する

• ポリシー:操作とリソース– リソースは現在ネットワーク関係のみ

• ルール:ロール、フィールドと一般– ロールは role:admin と記述– フィールドは is_admin:True と記述– 一般は tenant_id:%(tenant_id)s と記述

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

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": "", #誰でもインスタンスを作成できる

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

Neutron の設定の勘所

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

35

Neutron の役割

• 従来の OpenStack では nova-network でネットワークを構成

• 各種ネットワーク機器や SDN と連携し、インスタンスにネットワーク接続を提供するサービスとして Quatum が開発開始– Quantumは Neutron と名称が変更される

• 各種ネットワークに対応するためのプラグインが提供されている

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

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

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

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ノードの双方に

インストールすること

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

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

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

39

参考: Neutron+ その他のSDN

• OpenContrail– ネットワーク仮想化と NFV に特化– Juniper のサポートが受けられる– OpenStack への統合を中心に開発されてい

る• OpenDaylight

– Virutalization Edition が OpenStack 対応– 機能が豊富だがリリースされたばかり

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

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

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

41

その他

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

42

Glance の動作

ephemeral な場合(インスタンス停止で消える)1. インスタンス起動で指定されたイメージを

Glanceノードから computeノードの“ /var/lib/nova/instances/_base” にコピー

2. コピーしたイメージをベースとして qcow2差分ディスクを” /var/lib/nova/ インスタンスID/disk” として作成

3. 作成した qcow2差分ディスクを /dev/vda としてインスタンスにアタッチ

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

43

Cinder の動作

controller compute1

インスタンス

eth0 eth0

/dev/vda

LVM volume

ボリューム

iscsidtgt

Glance

イメージ

イメージからボリュームを作成し、そのボリュームから起動することも可能

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

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 との連動も

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

45

いくつかの宿題• Icehouse 対応• ネットワーク構成の見直し

– Parallels Desktop の仕様に引きずられすぎてるので– VirtualBox が Nested VM をサポートしてくれていたら・・・

• 不要な設定の排除– Grizzly から Havana へのバージョンアップの際に不要になった設定

がまだ残っている– docs.openstack.org のドキュメントも結構引きずってる– とりあえず影響は無いレベルだが、認証関係の設定の記述は極力少

なくしたい• Ceilometer 、 Heat のインストール

– 基本的な手順はその他のサービスと同じ• Swift のインストール

– Glance のバックエンドとしても使用可能