SlideShare a Scribd company logo
1 of 7
Download to read offline
1	
OpenStackとPythonと私	
日本仮想化技術株式会社
野津 新
アジェンダ	
•  OpenStack
–  概要
•  Python
–  メッセージ処理を一部紹介
•  私
–  Bare-Metal Provisioning in OpenStack
2	
OpenStack概要	
•  クラウド構築ソフトウェア
–  クラウド=AWSみたいなもの
–  VM(仮想マシン)を利用者に提供
–  主にPythonで記述
–  複数の要素で構成
•  Nova: VM管理(IaaS)
–  AWSのEC2相当
–  この話のメイン
•  他の構成要素
–  Quantum: ネットワーク
•  ユーザ(テナント)ごとにVMのネット
ワーク構成を定義
•  OpenFlowなどで実現
–  Swift: オブジェクトストレージ
•  AWSのS3相当
•  単体での使用も可能
–  Horizon(Dashboard): Web UI
Novaの構成要素(プロセス)	
•  Compute: ハイパーバイザ制御
–  KVM,Xen,VMwareなど
–  ハイパーバイザに対応するクラスを定義
•  Glance: イメージ管理
–  Swiftをバックエンドにできる
•  Scheduler: ComputeへのVM割当
–  特定のcomputeに負荷が集中することを
防ぐ
•  Volume/Cinder: ブロックデバイス管理
–  AWSのEBS相当
•  Network:ネットワーク管理
–  Quantumと連携する場合もここで
•  API: ユーザリクエストの処理
–  HTTPサーバ
•  メッセージキュー
–  各構成要素間のリクエストをキューイング
API	
Scheduler	
MQ	
Compute	
Network
②Schedulerに転送
①ユーザがVM起動をリクエスト
③ホストを選択して
VM起動
Glance	
Image	
④パラメータ(アドレスなど)
の決定/セットアップ ⑤VMイメージ
ダウンロード
⑥VM起動
3	
メッセージングの実装	
•  新しくインスタンスを作成する場合を例に
•  computeの
nova.compute.manager.ComputeManager.run_instance()
を実行すればいい
•  ただし・・・
–  呼び出し元はScheduler
–  Scheduler内で直接上記メソッドを呼び出しても無意味
–  →schedulerプロセスからcomputeプロセスへのRPC
•  Schedulerで
nova.compute.rpcapi.ComputeAPI.run_instance()を実行
•  メッセージキューを経由して
ComputeManager.run_instance()が実行される
リクエスト送信	
•  呼び出し側はメッセージキューを(あまり)意識する必要なし
•  メソッド名(run_instance)と引数をメッセージにしてメッセージキューに
送信(cast)
def run_instance(self, ctxt, instance, host, request_spec,
filter_properties, requested_networks,
injected_files, admin_password,
is_first_time):
instance_p = jsonutils.to_primitive(instance)
self.cast(ctxt, self.make_msg('run_instance', instance=instance_p,
request_spec=request_spec, filter_properties=filter_properties,
requested_networks=requested_networks,
injected_files=injected_files, admin_password=admin_password,
is_first_time=is_first_time),
topic=_compute_topic(self.topic, ctxt, host, None))
@staticmethod
def make_msg(method, **kwargs):
return {'method': method, 'args': kwargs}
4	
リクエスト受信	
•  受信されたメッセージはcompute側のディスパッチャへ	
•  委譲先オブジェクト(ComputeManager)のrun_instanceメソッドを呼び
出す
–  文字列→メソッドに変換(getattr)
def dispatch(self, ctxt, version, method, **kwargs):
(省略)	
if not hasattr(proxyobj, method):
continue
if is_compatible:
return getattr(proxyobj, method)(ctxt, **kwargs)
if had_compatible:
raise AttributeError("No such RPC function '%s'" % method)
else:
raise rpc_common.UnsupportedRpcVersion(version=version)	
run_instance本体	
•  ここではメッセージキューを意識する必要なし
•  ハイパーバイザに応じた処理に続く・・・	
nova.compute.manager.ComputeManager:
@exception.wrap_exception(notifier=notifier, publisher_id=publisher_id())
@reverts_task_state
@wrap_instance_fault
def run_instance(self, context, instance, request_spec=None,
filter_properties=None, requested_networks=None,
injected_files=None, admin_password=None,
is_first_time=False):
(省略)
@utils.synchronized(instance['uuid'])
def do_run_instance():
self._run_instance(context, request_spec,
filter_properties, requested_networks, injected_files,
admin_password, is_first_time, instance)
do_run_instance()
5	
Bare-Metal OpenStack	
•  OpenStackのインスタンスを物理マシン上
で直接実行(Bare-Metal)
–  通常OpenStackはVMインスタンスのみサポー
ト
–  仮想化オーバーヘッドが無く高速実行可能
•  OpenStackを拡張した独自実装
–  インスタンス作成時にBare-Metalを選択して起
動
–  OpenStack本体にマージされるよう調整中
B-M OpenStackの想定利用方法	
•  物理・仮想のハイブリッド構成システム全
体をOpenStackで一元管理
–  x86 VMと同じイメージを使用可能
•  高速処理が必要となったシステム、アプリ
ケーションを物理マシン(Bare-Metal)上に
プロビジョニング
•  DR(災害復旧)サイトを柔軟に構成
•  マイクロサーバー群をOpenStackで管理
6	
課題	
•  物理マシンにはハイパーバイザがない
•  ハイパーバイザが行う処理の代替が必要
•  VMの起動は以下のフロー
1.  カーネル/起動RAMディスクの指定
2.  ディスクイメージ
3.  電源ON
4.  他ユーザネットワークとの干渉防止
対策	
実装上の課題	
 対策/利用テクノロジ	
カーネル/RAMディスク
の切り替え
ネットワークブート(PXE)
を利用
ローカルディスクへのイ
メージ書き込み
書き込み用のミニOSを
PXE起動、完了後、書き
込んだイメージで再起動
外部からの強制電源
ON/OFF
IPMIを利用	
ネットワークの分離 OpenFlowを利用
7	
起動シーケンス	
ユーザ	
Nova	
PXEサーバ	
物理マシン	
起動リクエスト	
イメージ書込
用のミニOSで
起動するよう
に設定	
IPMI
電源ON	
ミニOSが
起動	
イメージ
書き込み	
本来の起動
設定に切替	
リブート	
起動完了	
参考	
•  OpenStack
–  http://www.openstack.org/
–  https://launchpad.net/nova/ (BTSなど)
–  https://github.com/openstack/
•  Bare-Metal OpenStack
–  https://github.com/NTTdocomo-openstack/

More Related Content

What's hot

AWSで作る分析基盤
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤Yu Otsubo
 
マイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karateマイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with KarateTakanori Suzuki
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと土岐 孝平
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースHajime Yanagawa
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門Kimikazu Kato
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門Yoichi Kawasaki
 
お金が無いときのMySQL Cluster頼み
お金が無いときのMySQL Cluster頼みお金が無いときのMySQL Cluster頼み
お金が無いときのMySQL Cluster頼みaoike
 
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーションこれから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション土岐 孝平
 
TerraformでECS+ECRする話
TerraformでECS+ECRする話TerraformでECS+ECRする話
TerraformでECS+ECRする話Satoshi Hirayama
 
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理KageShiron
 
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント土岐 孝平
 
GitHubで雑誌・書籍を作る
GitHubで雑誌・書籍を作るGitHubで雑誌・書籍を作る
GitHubで雑誌・書籍を作るNaonori Inao
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Satoshi Kubo
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作るtorisoup
 
Fluentdで本番環境を再現
Fluentdで本番環境を再現Fluentdで本番環境を再現
Fluentdで本番環境を再現Hiroshi Toyama
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門Norishige Fukushima
 
Jasst'21 niigata_事例紹介_インプロセスQAをした時のtips
Jasst'21 niigata_事例紹介_インプロセスQAをした時のtipsJasst'21 niigata_事例紹介_インプロセスQAをした時のtips
Jasst'21 niigata_事例紹介_インプロセスQAをした時のtipsssuser0be501
 

What's hot (20)

AWSで作る分析基盤
AWSで作る分析基盤AWSで作る分析基盤
AWSで作る分析基盤
 
Monad tutorial
Monad tutorialMonad tutorial
Monad tutorial
 
マイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karateマイクロサービスにおけるテスト自動化 with Karate
マイクロサービスにおけるテスト自動化 with Karate
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
 
URLで遊ぼう
URLで遊ぼうURLで遊ぼう
URLで遊ぼう
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門
 
お金が無いときのMySQL Cluster頼み
お金が無いときのMySQL Cluster頼みお金が無いときのMySQL Cluster頼み
お金が無いときのMySQL Cluster頼み
 
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーションこれから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
 
TerraformでECS+ECRする話
TerraformでECS+ECRする話TerraformでECS+ECRする話
TerraformでECS+ECRする話
 
.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理.NET Core 3.0時代のメモリ管理
.NET Core 3.0時代のメモリ管理
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
 
GitHubで雑誌・書籍を作る
GitHubで雑誌・書籍を作るGitHubで雑誌・書籍を作る
GitHubで雑誌・書籍を作る
 
Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門Junitを使ったjavaのテスト入門
Junitを使ったjavaのテスト入門
 
【Unity】 Behavior TreeでAIを作る
 【Unity】 Behavior TreeでAIを作る 【Unity】 Behavior TreeでAIを作る
【Unity】 Behavior TreeでAIを作る
 
Fluentdで本番環境を再現
Fluentdで本番環境を再現Fluentdで本番環境を再現
Fluentdで本番環境を再現
 
組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門組み込み関数(intrinsic)によるSIMD入門
組み込み関数(intrinsic)によるSIMD入門
 
Jasst'21 niigata_事例紹介_インプロセスQAをした時のtips
Jasst'21 niigata_事例紹介_インプロセスQAをした時のtipsJasst'21 niigata_事例紹介_インプロセスQAをした時のtips
Jasst'21 niigata_事例紹介_インプロセスQAをした時のtips
 

Similar to OpenStackとPythonと私

OpenStack勉強会
OpenStack勉強会OpenStack勉強会
OpenStack勉強会Yuki Obara
 
CloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/SwiftCloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/Swiftirix_jp
 
OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~Masaya Aoyama
 
OpenStack Block Storage (Cinder)
OpenStack Block Storage (Cinder)OpenStack Block Storage (Cinder)
OpenStack Block Storage (Cinder)Akira Yoshiyama
 
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsOpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsAkihiro Motoki
 
Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)Akihiro Motoki
 
Nova からみる OpenStack プロジェクトの歴史 (rev.3)
Nova からみる OpenStack プロジェクトの歴史 (rev.3)Nova からみる OpenStack プロジェクトの歴史 (rev.3)
Nova からみる OpenStack プロジェクトの歴史 (rev.3)Akira Yoshiyama
 
Nova からみる OpenStack プロジェクトの歴史 (rev.4)
Nova からみる OpenStack プロジェクトの歴史 (rev.4)Nova からみる OpenStack プロジェクトの歴史 (rev.4)
Nova からみる OpenStack プロジェクトの歴史 (rev.4)Akira Yoshiyama
 
20150713-OpenStack-5thbirthday-kilo-liberty-and-towards
20150713-OpenStack-5thbirthday-kilo-liberty-and-towards20150713-OpenStack-5thbirthday-kilo-liberty-and-towards
20150713-OpenStack-5thbirthday-kilo-liberty-and-towardsAkihiro Motoki
 
OSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUGOSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUGHideki Saito
 
SAN ブートでベアメタルクラウド
SAN ブートでベアメタルクラウドSAN ブートでベアメタルクラウド
SAN ブートでベアメタルクラウドShinjiNakai
 
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-Takashi Sogabe
 
Nova から見る OpenStack プロジェクトの歴史 (rev.2)
Nova から見る OpenStack プロジェクトの歴史 (rev.2)Nova から見る OpenStack プロジェクトの歴史 (rev.2)
Nova から見る OpenStack プロジェクトの歴史 (rev.2)Akira Yoshiyama
 
2012 OpenStack + KVM = onamae.com VPS #2 ~ vnc and snapshot ~
2012 OpenStack + KVM = onamae.com VPS #2 ~ vnc and snapshot ~2012 OpenStack + KVM = onamae.com VPS #2 ~ vnc and snapshot ~
2012 OpenStack + KVM = onamae.com VPS #2 ~ vnc and snapshot ~Naoto Gohko
 
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
AWS Black Belt Techシリーズ  AWS  Elastic  BeanstalkAWS Black Belt Techシリーズ  AWS  Elastic  Beanstalk
AWS Black Belt Techシリーズ AWS Elastic BeanstalkAmazon Web Services Japan
 
Whats new Apache CloudStack
Whats new Apache CloudStackWhats new Apache CloudStack
Whats new Apache CloudStackKimihiko Kitase
 

Similar to OpenStackとPythonと私 (20)

OpenStack勉強会
OpenStack勉強会OpenStack勉強会
OpenStack勉強会
 
OpenStack 101
OpenStack 101OpenStack 101
OpenStack 101
 
OpenStack概要
OpenStack概要OpenStack概要
OpenStack概要
 
CloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/SwiftCloudStack Ecosystem Day - OpenStack/Swift
CloudStack Ecosystem Day - OpenStack/Swift
 
OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~OpenStack概要 ~仮想ネットワーク~
OpenStack概要 ~仮想ネットワーク~
 
OpenStack Block Storage (Cinder)
OpenStack Block Storage (Cinder)OpenStack Block Storage (Cinder)
OpenStack Block Storage (Cinder)
 
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessionsOpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
OpenStack Atlanta Summit Report: Neutron, Nova and design summit sessions
 
Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)Neutron Icehouse Update (Japanese)
Neutron Icehouse Update (Japanese)
 
Nova からみる OpenStack プロジェクトの歴史 (rev.3)
Nova からみる OpenStack プロジェクトの歴史 (rev.3)Nova からみる OpenStack プロジェクトの歴史 (rev.3)
Nova からみる OpenStack プロジェクトの歴史 (rev.3)
 
Nova からみる OpenStack プロジェクトの歴史 (rev.4)
Nova からみる OpenStack プロジェクトの歴史 (rev.4)Nova からみる OpenStack プロジェクトの歴史 (rev.4)
Nova からみる OpenStack プロジェクトの歴史 (rev.4)
 
20150713-OpenStack-5thbirthday-kilo-liberty-and-towards
20150713-OpenStack-5thbirthday-kilo-liberty-and-towards20150713-OpenStack-5thbirthday-kilo-liberty-and-towards
20150713-OpenStack-5thbirthday-kilo-liberty-and-towards
 
OSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUGOSC2012 Tokyo/Spring JOSUG
OSC2012 Tokyo/Spring JOSUG
 
SAN ブートでベアメタルクラウド
SAN ブートでベアメタルクラウドSAN ブートでベアメタルクラウド
SAN ブートでベアメタルクラウド
 
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
オーバーレイネットワークで実現するプライベートクラウド -OpenStack/OpenContrailを用いたプライベートクラウドの構築及び評価計画のご紹介-
 
201709 osc josug
201709 osc josug 201709 osc josug
201709 osc josug
 
Nova から見る OpenStack プロジェクトの歴史 (rev.2)
Nova から見る OpenStack プロジェクトの歴史 (rev.2)Nova から見る OpenStack プロジェクトの歴史 (rev.2)
Nova から見る OpenStack プロジェクトの歴史 (rev.2)
 
2012 OpenStack + KVM = onamae.com VPS #2 ~ vnc and snapshot ~
2012 OpenStack + KVM = onamae.com VPS #2 ~ vnc and snapshot ~2012 OpenStack + KVM = onamae.com VPS #2 ~ vnc and snapshot ~
2012 OpenStack + KVM = onamae.com VPS #2 ~ vnc and snapshot ~
 
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
AWS Black Belt Techシリーズ  AWS  Elastic  BeanstalkAWS Black Belt Techシリーズ  AWS  Elastic  Beanstalk
AWS Black Belt Techシリーズ AWS Elastic Beanstalk
 
Whats new Apache CloudStack
Whats new Apache CloudStackWhats new Apache CloudStack
Whats new Apache CloudStack
 
OpenStack入門 2016/06/10
OpenStack入門 2016/06/10OpenStack入門 2016/06/10
OpenStack入門 2016/06/10
 

More from VirtualTech Japan Inc.

5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜VirtualTech Japan Inc.
 
エンジニアが幸せになれる会社を目指します
エンジニアが幸せになれる会社を目指しますエンジニアが幸せになれる会社を目指します
エンジニアが幸せになれる会社を目指しますVirtualTech Japan Inc.
 
今からはじめる! Linuxコマンド入門
今からはじめる! Linuxコマンド入門今からはじめる! Linuxコマンド入門
今からはじめる! Linuxコマンド入門VirtualTech Japan Inc.
 
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へVirtualTech Japan Inc.
 
Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版VirtualTech Japan Inc.
 
MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築
MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築
MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築VirtualTech Japan Inc.
 
5G時代のアプリケーション開発とは
5G時代のアプリケーション開発とは5G時代のアプリケーション開発とは
5G時代のアプリケーション開発とはVirtualTech Japan Inc.
 
hbstudy#88 5G+MEC時代のシステム設計
hbstudy#88 5G+MEC時代のシステム設計hbstudy#88 5G+MEC時代のシステム設計
hbstudy#88 5G+MEC時代のシステム設計VirtualTech Japan Inc.
 
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組みVirtualTech Japan Inc.
 
Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版VirtualTech Japan Inc.
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介VirtualTech Japan Inc.
 
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとはVirtualTech Japan Inc.
 
KubeCon China & MWC Shangai 出張報告
KubeCon China & MWC Shangai 出張報告KubeCon China & MWC Shangai 出張報告
KubeCon China & MWC Shangai 出張報告VirtualTech Japan Inc.
 
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...VirtualTech Japan Inc.
 
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)VirtualTech Japan Inc.
 
Multi-access Edge Computing(MEC)における”Edge”の定義
Multi-access Edge Computing(MEC)における”Edge”の定義Multi-access Edge Computing(MEC)における”Edge”の定義
Multi-access Edge Computing(MEC)における”Edge”の定義VirtualTech Japan Inc.
 
Edge Computing Architecture using GPUs and Kubernetes
Edge Computing Architecture using GPUs and KubernetesEdge Computing Architecture using GPUs and Kubernetes
Edge Computing Architecture using GPUs and KubernetesVirtualTech Japan Inc.
 

More from VirtualTech Japan Inc. (20)

5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
5G時代のアプリケーションとは 〜 5G+MECを活用した低遅延アプリの実現へ 〜
 
エンジニアが幸せになれる会社を目指します
エンジニアが幸せになれる会社を目指しますエンジニアが幸せになれる会社を目指します
エンジニアが幸せになれる会社を目指します
 
KubeVirt 201 How to Using the GPU
KubeVirt 201 How to Using the GPUKubeVirt 201 How to Using the GPU
KubeVirt 201 How to Using the GPU
 
KubeVirt 101
KubeVirt 101KubeVirt 101
KubeVirt 101
 
今からはじめる! Linuxコマンド入門
今からはじめる! Linuxコマンド入門今からはじめる! Linuxコマンド入門
今からはじめる! Linuxコマンド入門
 
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
5G時代のアプリケーション開発とは - 5G+MECを活用した低遅延アプリの実現へ
 
Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版Kubernetes雑にまとめてみた 2020年8月版
Kubernetes雑にまとめてみた 2020年8月版
 
MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築
MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築
MS Teams + OBS Studio (+ OBS Mac Virtual Camera) でのオンラインセミナーのプロトタイプの構築
 
5G時代のアプリケーション開発とは
5G時代のアプリケーション開発とは5G時代のアプリケーション開発とは
5G時代のアプリケーション開発とは
 
hbstudy#88 5G+MEC時代のシステム設計
hbstudy#88 5G+MEC時代のシステム設計hbstudy#88 5G+MEC時代のシステム設計
hbstudy#88 5G+MEC時代のシステム設計
 
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み
通信への課題発掘ワークショップ 「5Gイノベーション」の取り組み
 
Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版Kubernetes雑にまとめてみた 2019年12月版
Kubernetes雑にまとめてみた 2019年12月版
 
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介OpenStackを使用したGPU仮想化IaaS環境 事例紹介
OpenStackを使用したGPU仮想化IaaS環境 事例紹介
 
Docker超入門
Docker超入門Docker超入門
Docker超入門
 
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは
5Gにまつわる3つの誤解 - 5G×ライブコンテンツ:5G時代の双方向コンテンツとは
 
KubeCon China & MWC Shangai 出張報告
KubeCon China & MWC Shangai 出張報告KubeCon China & MWC Shangai 出張報告
KubeCon China & MWC Shangai 出張報告
 
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
NTT Docomo's Challenge looking ahead the world pf 5G × OpenStack - OpenStack最...
 
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)
Introduction of private cloud in LINE - OpenStack最新情報セミナー(2019年2月)
 
Multi-access Edge Computing(MEC)における”Edge”の定義
Multi-access Edge Computing(MEC)における”Edge”の定義Multi-access Edge Computing(MEC)における”Edge”の定義
Multi-access Edge Computing(MEC)における”Edge”の定義
 
Edge Computing Architecture using GPUs and Kubernetes
Edge Computing Architecture using GPUs and KubernetesEdge Computing Architecture using GPUs and Kubernetes
Edge Computing Architecture using GPUs and Kubernetes
 

Recently uploaded

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Recently uploaded (8)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

OpenStackとPythonと私

  • 1. 1 OpenStackとPythonと私 日本仮想化技術株式会社 野津 新 アジェンダ •  OpenStack –  概要 •  Python –  メッセージ処理を一部紹介 •  私 –  Bare-Metal Provisioning in OpenStack
  • 2. 2 OpenStack概要 •  クラウド構築ソフトウェア –  クラウド=AWSみたいなもの –  VM(仮想マシン)を利用者に提供 –  主にPythonで記述 –  複数の要素で構成 •  Nova: VM管理(IaaS) –  AWSのEC2相当 –  この話のメイン •  他の構成要素 –  Quantum: ネットワーク •  ユーザ(テナント)ごとにVMのネット ワーク構成を定義 •  OpenFlowなどで実現 –  Swift: オブジェクトストレージ •  AWSのS3相当 •  単体での使用も可能 –  Horizon(Dashboard): Web UI Novaの構成要素(プロセス) •  Compute: ハイパーバイザ制御 –  KVM,Xen,VMwareなど –  ハイパーバイザに対応するクラスを定義 •  Glance: イメージ管理 –  Swiftをバックエンドにできる •  Scheduler: ComputeへのVM割当 –  特定のcomputeに負荷が集中することを 防ぐ •  Volume/Cinder: ブロックデバイス管理 –  AWSのEBS相当 •  Network:ネットワーク管理 –  Quantumと連携する場合もここで •  API: ユーザリクエストの処理 –  HTTPサーバ •  メッセージキュー –  各構成要素間のリクエストをキューイング API Scheduler MQ Compute Network ②Schedulerに転送 ①ユーザがVM起動をリクエスト ③ホストを選択して VM起動 Glance Image ④パラメータ(アドレスなど) の決定/セットアップ ⑤VMイメージ ダウンロード ⑥VM起動
  • 3. 3 メッセージングの実装 •  新しくインスタンスを作成する場合を例に •  computeの nova.compute.manager.ComputeManager.run_instance() を実行すればいい •  ただし・・・ –  呼び出し元はScheduler –  Scheduler内で直接上記メソッドを呼び出しても無意味 –  →schedulerプロセスからcomputeプロセスへのRPC •  Schedulerで nova.compute.rpcapi.ComputeAPI.run_instance()を実行 •  メッセージキューを経由して ComputeManager.run_instance()が実行される リクエスト送信 •  呼び出し側はメッセージキューを(あまり)意識する必要なし •  メソッド名(run_instance)と引数をメッセージにしてメッセージキューに 送信(cast) def run_instance(self, ctxt, instance, host, request_spec, filter_properties, requested_networks, injected_files, admin_password, is_first_time): instance_p = jsonutils.to_primitive(instance) self.cast(ctxt, self.make_msg('run_instance', instance=instance_p, request_spec=request_spec, filter_properties=filter_properties, requested_networks=requested_networks, injected_files=injected_files, admin_password=admin_password, is_first_time=is_first_time), topic=_compute_topic(self.topic, ctxt, host, None)) @staticmethod def make_msg(method, **kwargs): return {'method': method, 'args': kwargs}
  • 4. 4 リクエスト受信 •  受信されたメッセージはcompute側のディスパッチャへ •  委譲先オブジェクト(ComputeManager)のrun_instanceメソッドを呼び 出す –  文字列→メソッドに変換(getattr) def dispatch(self, ctxt, version, method, **kwargs): (省略) if not hasattr(proxyobj, method): continue if is_compatible: return getattr(proxyobj, method)(ctxt, **kwargs) if had_compatible: raise AttributeError("No such RPC function '%s'" % method) else: raise rpc_common.UnsupportedRpcVersion(version=version) run_instance本体 •  ここではメッセージキューを意識する必要なし •  ハイパーバイザに応じた処理に続く・・・ nova.compute.manager.ComputeManager: @exception.wrap_exception(notifier=notifier, publisher_id=publisher_id()) @reverts_task_state @wrap_instance_fault def run_instance(self, context, instance, request_spec=None, filter_properties=None, requested_networks=None, injected_files=None, admin_password=None, is_first_time=False): (省略) @utils.synchronized(instance['uuid']) def do_run_instance(): self._run_instance(context, request_spec, filter_properties, requested_networks, injected_files, admin_password, is_first_time, instance) do_run_instance()
  • 5. 5 Bare-Metal OpenStack •  OpenStackのインスタンスを物理マシン上 で直接実行(Bare-Metal) –  通常OpenStackはVMインスタンスのみサポー ト –  仮想化オーバーヘッドが無く高速実行可能 •  OpenStackを拡張した独自実装 –  インスタンス作成時にBare-Metalを選択して起 動 –  OpenStack本体にマージされるよう調整中 B-M OpenStackの想定利用方法 •  物理・仮想のハイブリッド構成システム全 体をOpenStackで一元管理 –  x86 VMと同じイメージを使用可能 •  高速処理が必要となったシステム、アプリ ケーションを物理マシン(Bare-Metal)上に プロビジョニング •  DR(災害復旧)サイトを柔軟に構成 •  マイクロサーバー群をOpenStackで管理
  • 6. 6 課題 •  物理マシンにはハイパーバイザがない •  ハイパーバイザが行う処理の代替が必要 •  VMの起動は以下のフロー 1.  カーネル/起動RAMディスクの指定 2.  ディスクイメージ 3.  電源ON 4.  他ユーザネットワークとの干渉防止 対策 実装上の課題 対策/利用テクノロジ カーネル/RAMディスク の切り替え ネットワークブート(PXE) を利用 ローカルディスクへのイ メージ書き込み 書き込み用のミニOSを PXE起動、完了後、書き 込んだイメージで再起動 外部からの強制電源 ON/OFF IPMIを利用 ネットワークの分離 OpenFlowを利用