42
OpenStack でででで でででででででででで Havana ででで ででででででででででで VirtualTech.jp

OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

Embed Size (px)

DESCRIPTION

- OpenStackの概要 - OpenStack導入手順 --- Ubuntu Server 12.04.4のインストールと設定 --- DevStackによるOpenStackのインストール --- インスタンスの起動 --- Floating IPによる外部接続設定

Citation preview

Page 1: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

OpenStack で始めるクラウド環境構築入門

Havana 対応版

日本仮想化技術株式会社VirtualTech.jp

Page 2: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

自己紹介• 本名:宮原 徹• 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

Page 3: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

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

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

Page 4: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

4

EnterpriseCloud.jp

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

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

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

Page 5: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

5

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

• OpenStack に関する最新情報セミナーを隔月開催– 第 4 回:『 OpenStack 環境構築入門』&『ネットワー

ク仮想化の最新動向 – Software Defined Infrastructure(SDI) を目指して』( 2014 年 4 月 10 日( 木 ) )

– 第 5 回:『 OpenStack 環境構築入門』&『 OpenStackのストレージ』( 2014 年 6 月 5 日 ( 木 ) )

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

Page 6: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

6

@IT :たまおきの OpenSatck Watch

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

• たまおき@ VTJ 責任編集

http://bit.ly/1areUHP

Page 7: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

ベアメタル OpenStack の特徴

7

従来の OpenStack ベアメタル OpenStack

物理サーバ群

サーバ仮想化技術

クラウドサービスA

クラウドサービスB

クラウドサービスC

物理サーバ群

クラウドサービスA

クラウドサービスB

クラウドサービスC

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

状況に応じて仮想 / 物理の切替可能

Page 8: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

8

次期バージョン “ Icehouse”

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

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

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

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

– DBaaS• Sahara ( aka Savanna )

– Hadoop 環境

Page 9: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

9

最近やっていること• OpenStack デプロイツールの評価検証

– Ubuntu の JuJu/MaaS を使った OpenStack 環境構築

– RDO を使った OpenStack 環境構築• Icehouse 導入手順書の作成

– Havana と手順がかなり入れ替わった–相変わらず Neutron周りが・・

• DevStack の検証– 最近、ネットワークがうまく繋がらなくなっ

た・・

Page 10: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

10

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

– 今回のネットワーク設計 解説• OpenStack 環境の導入

– 細かい手順は enterprisecloud.jp にてダウンロード

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

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

Page 11: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

OpenStack の概要

Page 12: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

12

OpenStack 概要

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

Web管理画面

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

Page 13: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

13

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

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

Page 14: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

14

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

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

Page 15: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

15

今回の設計の方針

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

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

Compute+Open vSwitch )• 今回は Swift 、 Ceilometer 、 Heat は未使用– Ceilometer 、 Heat は今回の手順が理解でき

れば導入手順は概ね同じ

Page 16: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

OpenStack 環境の設計 入門編

Page 17: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

17

OpenStack 環境設計時の考慮点

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

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

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

Page 18: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

18

今回の環境

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

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

ネットワークを接続

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

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

Page 19: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

19

Fixed IP と Floating IP の仕組み① FIXED_RANGE で割り当てられる。①同士は通信できるが、③とは通信できない

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

サービス

クライアント③

インスタンス

Page 20: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

20

ネットワーク構成図

controllerノード

networkノード

compute1ノード

インスタンス

クライアント

管理系( eth0 )

サービス系( eth1 )

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

eth1

Page 21: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

21

Open vSwitch接続図

networkノード

compute1ノード

クライアント

br-int

br-exeth1

eth0 eth0

Page 22: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

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&DevStack編

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

Page 24: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

24

Ubuntu Server 12.04LTS の導入(共通)

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

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

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

Page 25: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

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&DevStack編

26

Keystone の設定の勘所

Page 27: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

27

テナント demo

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

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

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

テナント adminユーザー

admin

ロールadmin

Member

権限付与demo

service

Page 28: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

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

Page 29: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

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

Page 30: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

30

policy.json の記述方法

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

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

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

Page 31: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

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

Page 32: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

Neutron の設定の勘所

Page 33: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

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

インストールすること

Page 34: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

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

Page 35: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

35

参考: Neutron+ その他のSDN

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

る• OpenDaylight

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

Page 36: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

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 37: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

37

その他

Page 38: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

38

Glance の動作

ephemeral な場合1. インスタンス起動で指定されたイメージ

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

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

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

Page 39: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

39

Cinder の動作

controller compute1

インスタンス

eth0 eth0

/dev/vda

LVM volume

ボリューム

iscsidtgt

Glance

イメージ

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

Page 40: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

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

Page 41: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

41

いくつかの宿題• 不要な設定の排除

– GrizzlyからHavanaへのバージョンアップの際に不要になった設定がまだ残っている

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

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

• Swift のインストール– Glance のバックエンドとしても使用可能

• Icehouse 対応– 現在検証中

Page 42: OpenStackで始めるクラウド環境構築入門 Havana&DevStack編

42

お問い合わせ先「仮想化環境を構築したいが、どこに相談すればいい

の?」「 OpenStack のサポートしてくれる会社はない

の?」

まずは我々にご相談ください

http://VirtualTech.jp/[email protected]

03-6419-7841