32
OpenStack 概概 ~ 概概概概概概概概 ~ 概概概概概概概 概概概概概概概 概概概概 1 概 概概 概概 http://a-msy.jp 概概概概概概概概概概概概概概概概概 概 概概概概概概概概概概概概概概(IceHouse 概概概概概 )

OpenStack概要 ~仮想ネットワーク~

Embed Size (px)

Citation preview

OpenStack 概要 ~ 仮想ネットワーク ~

法政大学大学院 情報科学研究科 修士課程 1 年

青山 真也http://a-msy.jp

このスライドは学部時代の資産なので一部古い情報があると思います。 (IceHouse までの概要 )

• OpenStack の概要• OpenStack のモジュール• OpenStack の仮想ネットワークアーキテクチャ• OpenStack のインストール• まとめ

本日の概要

04/15/2023 OpenStack 仮想ネットワーク技術 2

• OpenStack の概要• OpenStack とは• Openstack のバージョン遷移

• OpenStack のモジュール• OpenStack の仮想ネットワークアーキテクチャ• OpenStack のインストール• まとめ

目次

04/15/2023 OpenStack 仮想ネットワーク技術 3

04/15/2023

OpenStack とは• IaaS クラウドコンピューティングプロジェクト及びクラウド OS

• Rackspace Hosting と NASA

• 完全な OSS クラウド(= Enterpise 版はない)• ライセンスは Apache License 2.0• 開発言語は Python

• OpenStack は様々な機能毎に分けられたコンポーネントの集合• モジュラーアーキテクチャ

• 類似クラウド OS• CloudStack• Eucalyptus

OpenStack 仮想ネットワーク技術 4

04/15/2023

OpenStack のバージョン遷移• 半年に 1 度正式リリース

• Austin (Nova, Swift)• Bexar (Nova, Glance, Swift)• Cactus (Nova, Glance, Swift)• Diablo (Nova, Glance, Swift)• Essex (Nova, Glance, Swift, Horizon, Keystone)• Folsom (Nova, Glance, Swift, Horizon, Keystone)• Grizzly (Nova, Glance, Swift, Horizon, Keystone)• Havana (Nova, Glance, Swift, Horizon, Keystone, Heat, Ceilometer)• Icehouse (Nova, Glance, Swift, Horizon, Keystone, Heat, Ceilometer,

Trove)

• 各コンポーネントはプロジェクト体制となっておりレベル分け• incubated: 開発段階のような状態で個別に Plugins ような形で導入可能• integrated: OpenStack のコンポーネントとして正式採用

• integrated プロジェクトに昇格すると上記のように追加される

OpenStack 仮想ネットワーク技術 5

• OpenStack の概要• OpenStack のモジュール

• OpenStack モジュールについて• Nova (Compute)• Swift (Object Storage)• Cinder (Brock Storage)• Glance (Image Service)• Neutron (Networking)• Horizon (Dashboard)• Keystone (Identity)• Ceilometer (Metering)• Heat (Orchestration)• Trove (Database Service)

• OpenStack の仮想ネットワークアーキテクチャ• OpenStack のインストール• まとめ

目次

04/15/2023 OpenStack 仮想ネットワーク技術 6

04/15/2023

OpenStack のコンポーネントについて• Nova (Compute)

• VM を実行するノード

• Swift (Object Storage)• HTTP リクエストによって取得可能な Object ストレージ

• Cinder (Block Storage)• Block デバイスを提供するストレージ

• Glance (Image Service)• ISO ・仮想マシンテンプレート・スナップショットなどを提供

• Neutron (Networking)• 仮想ネットワーク機能を提供

• Horizon (Dashboard)• Web Dashboard 上からそれぞれの機能の API 操作するツール

• Keystone (Identity)• 認証サービスを提供

• Ceilometer (Metering)• 各コンポーネントの使用状況の計測を行うサービス

• Heat (Orchestration)• オーケストレーションサービスを提供( ex: DB サーバを作ってから、その設定を用いて Web サーバを作る

等)

• Trove (Database Service) • DBaaS を提供する( VM インスタンスではなく、 MySQL 等の DBMS を提供)

OpenStack 仮想ネットワーク技術 7

04/15/2023

Nova (Compute)• 仮想マシンを実行するノードとなる• 対応する仮想化ソフトウェア等は様々

• KVM• QEMU• LXC• Xen• VMware

• 再起動、シャットダウン時には最適なコンピュートノードに再配置• その為、永続的なデバイスは後述する Cinder ボリューム上に配置

• VM 生成後に実行するカスタマイズスクリプトを定義可能• シェルスクリプトなので、生成後に ntpdate で時刻同期等が可能に

• 実際には、物理マシンを仮想マシンと同様にして扱うことも可能• 今回は検証していません。

OpenStack 仮想ネットワーク技術 8

04/15/2023

Swift (Object Storage)• HTTP リクエストを用いて取得可能なストレージ• 配置するものは主に共有されるオブジェクト• 簡単に言えば storage.cis.k.hosei.ac.jp のようなサービス

• Swift は複数のノードに分散することが可能• 設定により冗長コピー・オブジェクトのバージョン管理が可能

OpenStack 仮想ネットワーク技術 9

04/15/2023

Cinder (Brock Storage)• 永続的なブロックデバイスを提供するストレージ• 利用用途としては、 Nova 上の VM にマッピングして利用

• テナント毎に quota の設定が可能• cinder-volumes の VG 上にボリューム 1 つにつき LV を構成

OpenStack 仮想ネットワーク技術 10

Nova

VM VM

Cinder

dev dev dev

04/15/2023

Glance (Image Service)• VM イメージファイルなどを管理するサービス

• イメージ保存先• Swift 、 Amazon S3 、 Block device 、ローカル

• 対応するイメージの形式• ISO 、 QCOW2 、 VHD 、 etc...

• VM を生成する際には、 Glance 上のイメージをどこかにコピーして使用• Cinder ボリューム上

• コピーした後は永続化• Nova コンピュートノード上

• シャットダウン、再起動後は初期化される

OpenStack 仮想ネットワーク技術 11

04/15/2023

Neutron (Networking)• 仮想ネットワーク機能を用いて OpenStack のネットワークを形成

• 各 Neutron エージェント間の通信は、 VLAN ・ GRE トンネルが主流

•内部的にはプラグイン方式で様々な構成が可能• Virtual Ethernet• Open vSwitch• Network Namespace• OpenFlow Switch• etc…

•詳しくは後述

OpenStack 仮想ネットワーク技術 12

04/15/2023

Horizon (Dashboard)• 各種コンポーネントの API を叩くことで OpenStack の管理が可能• Web 上で VNC コンソールを見て VM コンソールを利用

OpenStack 仮想ネットワーク技術 13

04/15/2023

Keystone (Identity)• 認証を担当するコンポーネント

• Keystone は以下のような概念を持っている• テナント : 個別に区切られた顧客企業などのグループのこと• 管理者ユーザ : 管理者権限を持ち、設定を行うユーザ• 一般ユーザ : OpenStack を利用するユーザ

• 管理者ユーザ、一般ユーザは複数のテナントに属することが可能

OpenStack 仮想ネットワーク技術 14

04/15/2023

Ceilometer (Metering)• 各コンポーネントの使用状況などを計測する

• 主な取得可能情報は下記の通り• Swift

• オブジェクト数、総容量、コンテナ数、上下帯域使用量、リクエスト数• Nova

• VM 数、稼働 CPU 時間、使用メモリ時間、使用容量、使用アクセスグループ数• Glance

• 使用イメージ容量、使用イメージ数• Cinder

• 使用イメージ容量、使用イメージ数

• 上記の情報を元に課金情報を生成することが可能になる

OpenStack 仮想ネットワーク技術 15

04/15/2023

Heat (Orchestration)• 複数の VM 作成時に連携設定を行うことが難しい

• Heat によるオーケストレーションを行うことで解決を図る

•例• VM2 に DB サーバを生成し、 Private IP を割り当て• VM1 に Web サーバを生成し、 VM2 に割り当てられた Private IP を用いて設

• Heat を用いなければ自動的に 2層のレイヤ構造を作ることは不可能

OpenStack 仮想ネットワーク技術 16

VM1eth0 eth1 VM2eth0

Internet

04/15/2023

Trove (Database Service) • DBaaS (Database as a Service) を提供するコンポーネント

• 完璧にチューニングしてパフォーマンスを向上させる使用には不向き

• 使用可能 DB• MySQL• Percona• MongoDB• Cassandra• Couchbase• Redis• NoSQL

OpenStack 仮想ネットワーク技術 17

• OpenStack の概要• OpenStack のモジュール• OpenStack の仮想ネットワークアーキテクチャ

• Linux Bridge• TAP• Linux Network Namespace• Virtual Ethernet• GRE• VLAN• OpenStack の仮想ネットワーク構成

• OpenStack のインストール• まとめ

目次

04/15/2023 OpenStack 仮想ネットワーク技術 18

04/15/2023

Linux Bridge• L2 スイッチの機能を Linux 上でソフトウェア実装したもの

OpenStack 仮想ネットワーク技術 19

br0 eth1eth0 eth0eth0

hostA hostB hostC

04/15/2023

TAP• イーサネットデバイスをシミュレートする仮想ネットワークカーネル

ドライバ

•直接 Bridge接続を行った場合には同一サブネット• 一方、 TAP を使用するとあたかも外部からの接続

OpenStack 仮想ネットワーク技術 20

VMbr0eth1

VM

br0

tap0

eth1

04/15/2023

Linux Network Namespace• ネットワークに関する資源のみ分離して仮想化

• NIC• iptables• routing table

OpenStack 仮想ネットワーク技術 21

eth0

hostA

ns1 ns1

10.111.0.1

10.111.0.2192.168.1.1

192.168.1.2

04/15/2023

Virtual Ethernet• 仮想的な Ethernet Interface の組を生成する•片方から来たパケットをそのまま反対側に転送する

OpenStack 仮想ネットワーク技術 22

eth0

hostA

ns1 ns1

10.111.0.1

10.111.0.2192.168.1.1

192.168.1.2

04/15/2023

GRE (Generic Routing Encapsulation)• L3 トンネルプロトコルの1種•既存のパケットに対してカプセル化を行いトンネル終端に転送する

• トンネル終端 IP と GRE番号等を付与

OpenStack 仮想ネットワーク技術 23

br-priv

eth1

br-priv

eth1

Internet

パケット VM VM

パケット

GREヘッダ

パケット

GREヘッダ

パケット

GREヘッダ

パケット

hostA hostB

04/15/2023

VLAN• VLAN ID をフレームに付与•1つの L2SW内で複数のサブネットを扱う

OpenStack 仮想ネットワーク技術 24

SW SWSW

VM VM VM VM VM VM VM VM

VLAN ID: 1010.111.0.0/24

VLAN ID: 1010.111.0.0/24

VLAN ID: 20192.0.0.0/8

VLAN ID: 20192.0.0.0/8

04/15/2023

OpenStack の仮想ネットワーク構成

OpenStack 仮想ネットワーク技術 25

eth2

Controller Compute

br-priv

br-ex

br-int

VM

management network

data network

Go to Internet…

int-br-privphy-br-priv

br-priv

br-intint-br-privphy-br-priv

qvo-*qrouter-*

qg-*

qr-*qvb-*

qbr-*tap*

Compute

VM

br-priv

br-intint-br-privphy-br-priv

qvo-*qvb-*

qbr-*tap*

eth1 eth1 eth1

eth0 eth0 eth0

物理NIC

Open vSwitchVirtual Ethernet

Linux Bridge

TAP Device

Linux Network Namespace

qdhcp-*tap*

dnsmasq

04/15/2023

OpenStack の仮想ネットワーク構成

OpenStack 仮想ネットワーク技術 26

eth2

Controller Compute

br-priv

br-ex

br-int

VM

management network

data network

Go to Internet…

int-br-privphy-br-priv

br-priv

br-intint-br-privphy-br-priv

qvo-*qrouter-*

qg-*

qr-*qvb-*

qbr-*tap*

Compute

VM

br-priv

br-intint-br-privphy-br-priv

qvo-*qvb-*

qbr-*tap*

eth1 eth1 eth1

eth0 eth0 eth0

qdhcp-*tap*

dnsmasq GREトンネリン

グor

VLAN

iptables (SNAT=Masquerade)iptables (Access Control)

routing table

DHCP

拠点分割を意識しないテナント分離

• OpenStack の概要• OpenStack のモジュール• OpenStack の仮想ネットワークアーキテクチャ• OpenStack のインストール

• OpenStack のインストール方法• PackStack

• まとめ

目次

04/15/2023 OpenStack 仮想ネットワーク技術 27

04/15/2023

OpenStack のインストール方法• RHEL の場合、各バージョンの RDO レポジトリをインストール

• 各コンポーネントを別々にインストールし、個別に設定して連携• yum install openstack-*

• しかし、この手段でインストールした場合にはかなり難しい

• その為、いくつかインストールツールが用意されている• DevStack• PackStack• HagiStack

OpenStack 仮想ネットワーク技術 28

04/15/2023

PackStack• PackStack は Puppet で書かれた OpenStack インストールツール• 最初に Answer File と呼ばれる簡単な設定ファイルを生成• その後、それを引数にインストールコマンドを叩くだけ

• Answer File の内容• 各コンポーネントのインストール先• 各コンポーネントをインストールするか( Y/N )• 使用するディスク容量• etc…

• All in one 構成なら、設定すら不要• yum install openstack-packstack• packstack --allinone

OpenStack 仮想ネットワーク技術 29

僅か 2つのコマンドでローカルサーバに

全てのコンポーネントが自動設定されてインストール可

• OpenStack の概要• OpenStack のモジュール• OpenStack の仮想ネットワークアーキテクチャ• OpenStack のインストール• まとめ

目次

04/15/2023 OpenStack 仮想ネットワーク技術 30

まとめ• OpenStack を用いることで簡単に VM環境を用意可能

• 高機能な Vmware Workstation のような利用方法も可能

• 学習コストは割と高め• OpenStack の仮想ネットワーク技術は混雑している• OpenStack のコンポーネントは種類が豊富で機能が充実している

• 構築コストは割と低め• インストールツールの充実• そもそも利用する点で考えれば特別な設定は不要

• 体感ではちょっと遅いイメージ

Thank you for listening!