View
421
Download
6
Category
Preview:
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 のコンポーネントは種類が豊富で機能が充実している
• 構築コストは割と低め• インストールツールの充実• そもそも利用する点で考えれば特別な設定は不要
• 体感ではちょっと遅いイメージ
Recommended