Submit Search
Upload
dodai勉強会#5 nova-scheduler
•
Download as PPTX, PDF
•
0 likes
•
240 views
S
Shingo Nakagawa
Follow
NIIクラウド担当内でおこなっているdodai勉強会第5回の資料です。 nova-schedulerがインスタンスを起動するbaremetal nodeをどのように選ぶのかについて。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 12
Download now
Recommended
dodai勉強会#3
dodai勉強会#3
Shingo Nakagawa
dodaiのProvisioning周辺探訪 - dodai勉強会 #4
dodaiのProvisioning周辺探訪 - dodai勉強会 #4
Satoshi Yazawa
Dodai勉強会#2
Dodai勉強会#2
taka400k
20150101勉強会 dokku alt
20150101勉強会 dokku alt
Shugo Numano
Dockerと継続的インテグレーション
Dockerと継続的インテグレーション
Yahoo!デベロッパーネットワーク
Fig
Fig
Tadayasu Yotsu
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
peryaudo
OpenShift from Easy way to Hard ? Way
OpenShift from Easy way to Hard ? Way
ロフト くん
Recommended
dodai勉強会#3
dodai勉強会#3
Shingo Nakagawa
dodaiのProvisioning周辺探訪 - dodai勉強会 #4
dodaiのProvisioning周辺探訪 - dodai勉強会 #4
Satoshi Yazawa
Dodai勉強会#2
Dodai勉強会#2
taka400k
20150101勉強会 dokku alt
20150101勉強会 dokku alt
Shugo Numano
Dockerと継続的インテグレーション
Dockerと継続的インテグレーション
Yahoo!デベロッパーネットワーク
Fig
Fig
Tadayasu Yotsu
Docker+CoreOS+GCEで自動スケール分散レイトレ
Docker+CoreOS+GCEで自動スケール分散レイトレ
peryaudo
OpenShift from Easy way to Hard ? Way
OpenShift from Easy way to Hard ? Way
ロフト くん
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境
Kazuhiro Nishiyama
ProjectAtomic-and-geard
ProjectAtomic-and-geard
Naoto TAKAHASHI
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
Ryo Adachi
自作アプリをデプロイしてみた with Docker
自作アプリをデプロイしてみた with Docker
iPride Co., Ltd.
ビルドサーバで使うDocker
ビルドサーバで使うDocker
Masashi Shinbara
Dev cloudではじめるcloudstack4 3
Dev cloudではじめるcloudstack4 3
Tadashi Mishima
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしよう
Kazuto Kusama
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうか
Masahito Zembutsu
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
Hori Tasuku
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
Kazushi Kamegawa
Introduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing Dockerfiles
Yukiya Hayashi
Alpine linuxを触ってみよう
Alpine linuxを触ってみよう
Ryo Adachi
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
Shuji Yamada
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
Masashi Shinbara
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版
Kazuto Kusama
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築
Recruit Technologies
Docker + Checkpoint/Restore
Docker + Checkpoint/Restore
kawamuray
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixiv
Shunsuke Michii
Compute 101 - OpenStack Summit Vancouver 2015
Compute 101 - OpenStack Summit Vancouver 2015
Stephen Gordon
The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...
The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...
Alan Quayle
More Related Content
What's hot
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境
Kazuhiro Nishiyama
ProjectAtomic-and-geard
ProjectAtomic-and-geard
Naoto TAKAHASHI
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
Ryo Adachi
自作アプリをデプロイしてみた with Docker
自作アプリをデプロイしてみた with Docker
iPride Co., Ltd.
ビルドサーバで使うDocker
ビルドサーバで使うDocker
Masashi Shinbara
Dev cloudではじめるcloudstack4 3
Dev cloudではじめるcloudstack4 3
Tadashi Mishima
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしよう
Kazuto Kusama
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうか
Masahito Zembutsu
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
Hori Tasuku
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
Kazushi Kamegawa
Introduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing Dockerfiles
Yukiya Hayashi
Alpine linuxを触ってみよう
Alpine linuxを触ってみよう
Ryo Adachi
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
Shuji Yamada
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
Masashi Shinbara
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版
Kazuto Kusama
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
Yuta Matsumura
Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築
Recruit Technologies
Docker + Checkpoint/Restore
Docker + Checkpoint/Restore
kawamuray
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixiv
Shunsuke Michii
What's hot
(20)
GitLab + Dokku で作る CI/CD 環境
GitLab + Dokku で作る CI/CD 環境
ProjectAtomic-and-geard
ProjectAtomic-and-geard
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Ansibleを使ってdockerコンテナをプロビジョニングする
Ansibleを使ってdockerコンテナをプロビジョニングする
自作アプリをデプロイしてみた with Docker
自作アプリをデプロイしてみた with Docker
ビルドサーバで使うDocker
ビルドサーバで使うDocker
Dev cloudではじめるcloudstack4 3
Dev cloudではじめるcloudstack4 3
Cloud Foundry V2を、もうちょっと深掘りしよう
Cloud Foundry V2を、もうちょっと深掘りしよう
Re: 運用に自動化を求めるのは間違っているだろうか
Re: 運用に自動化を求めるのは間違っているだろうか
アプリ屋もDockerをドカドカ使おう ~ Docker入門
アプリ屋もDockerをドカドカ使おう ~ Docker入門
はじめてのコンテナーDocker & Windows & Linux
はじめてのコンテナーDocker & Windows & Linux
Introduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing Dockerfiles
Alpine linuxを触ってみよう
Alpine linuxを触ってみよう
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
2015-07-27 Docker Introduction 〜Dockerの基礎とユースケースに関する考察〜
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
自前CF環境を整えよう 2013年11月版
自前CF環境を整えよう 2013年11月版
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
Dockerを活用したリクルートグループ開発基盤の構築
Dockerを活用したリクルートグループ開発基盤の構築
Docker + Checkpoint/Restore
Docker + Checkpoint/Restore
Using ngx_lua / lua-nginx-module in pixiv
Using ngx_lua / lua-nginx-module in pixiv
Viewers also liked
Compute 101 - OpenStack Summit Vancouver 2015
Compute 101 - OpenStack Summit Vancouver 2015
Stephen Gordon
The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...
The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...
Alan Quayle
Openstack study-nova-02
Openstack study-nova-02
Jinho Shin
Cisco Data Center Orchestration Solution
Cisco Data Center Orchestration Solution
Cisco Canada
Orchestration Ownage - RSAC 2017
Orchestration Ownage - RSAC 2017
Bryce Kunz
Rundeck + Nexus (from Nexus Live on June 5, 2014)
Rundeck + Nexus (from Nexus Live on June 5, 2014)
dev2ops
OpenDaylight Integration with OpenStack Neutron: A Tutorial
OpenDaylight Integration with OpenStack Neutron: A Tutorial
mestery
Mastering DevOps With Oracle
Mastering DevOps With Oracle
Kelly Goetsch
Mastering DevOps with Oracle
Mastering DevOps with Oracle
jeckels
Docker introduction
Docker introduction
dotCloud
Accenture DevOps: Delivering applications at the pace of business
Accenture DevOps: Delivering applications at the pace of business
Accenture Technology
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
Sonatype
Dude, This Isn't Where I Parked My Instance?
Dude, This Isn't Where I Parked My Instance?
Stephen Gordon
Containers for the Enterprise: Delivering OpenShift on OpenStack for Performa...
Containers for the Enterprise: Delivering OpenShift on OpenStack for Performa...
Stephen Gordon
Docker 101: Introduction to Docker
Docker 101: Introduction to Docker
Docker, Inc.
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
John Allspaw
Viewers also liked
(16)
Compute 101 - OpenStack Summit Vancouver 2015
Compute 101 - OpenStack Summit Vancouver 2015
The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...
The Programmable Telecom Network, Doug Tait, Oracle, Enzo Amorino, Telecom It...
Openstack study-nova-02
Openstack study-nova-02
Cisco Data Center Orchestration Solution
Cisco Data Center Orchestration Solution
Orchestration Ownage - RSAC 2017
Orchestration Ownage - RSAC 2017
Rundeck + Nexus (from Nexus Live on June 5, 2014)
Rundeck + Nexus (from Nexus Live on June 5, 2014)
OpenDaylight Integration with OpenStack Neutron: A Tutorial
OpenDaylight Integration with OpenStack Neutron: A Tutorial
Mastering DevOps With Oracle
Mastering DevOps With Oracle
Mastering DevOps with Oracle
Mastering DevOps with Oracle
Docker introduction
Docker introduction
Accenture DevOps: Delivering applications at the pace of business
Accenture DevOps: Delivering applications at the pace of business
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
Dude, This Isn't Where I Parked My Instance?
Dude, This Isn't Where I Parked My Instance?
Containers for the Enterprise: Delivering OpenShift on OpenStack for Performa...
Containers for the Enterprise: Delivering OpenShift on OpenStack for Performa...
Docker 101: Introduction to Docker
Docker 101: Introduction to Docker
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
10+ Deploys Per Day: Dev and Ops Cooperation at Flickr
Similar to dodai勉強会#5 nova-scheduler
hbstudy37 doc
hbstudy37 doc
Fujishiro Takuya
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
Masahiro NAKAYAMA
KueCon 2020 NA Recap - Building a Global Supercomputer with Virtual Kubelet /...
KueCon 2020 NA Recap - Building a Global Supercomputer with Virtual Kubelet /...
Preferred Networks
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
npsg
Building production server on docker
Building production server on docker
Hiroshi Miura
Building production server on docker
Building production server on docker
Hiroshi Miura
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
Naoya Inada
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
2bo 2bo
今日から使い始めるChef
今日から使い始めるChef
Masahiro NAKAYAMA
130412 kayac-cinnamon
130412 kayac-cinnamon
Yuki Shibazaki
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
Midori Oge
〜Apache Geode 入門 gfsh によるクラスター構築・管理
〜Apache Geode 入門 gfsh によるクラスター構築・管理
Akihiro Kitada
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP Nagoya
Grunt入門
Grunt入門
Tsuyoshi Maeda
2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...
2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...
佑介 九岡
Vue
Vue
卓馬 三浦
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
Takeshi Komiya
Chef
Chef
Ishikawa Yuya
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
maebashi
microPCFを使ってみよう
microPCFを使ってみよう
Hiroaki_UKAJI
Similar to dodai勉強会#5 nova-scheduler
(20)
hbstudy37 doc
hbstudy37 doc
Chef Howto with Vagrant + Berkshelf
Chef Howto with Vagrant + Berkshelf
KueCon 2020 NA Recap - Building a Global Supercomputer with Virtual Kubelet /...
KueCon 2020 NA Recap - Building a Global Supercomputer with Virtual Kubelet /...
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
Building production server on docker
Building production server on docker
Building production server on docker
Building production server on docker
シンプルなシステム構成フレームワークalnair
シンプルなシステム構成フレームワークalnair
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
今日から使い始めるChef
今日から使い始めるChef
130412 kayac-cinnamon
130412 kayac-cinnamon
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
〜Apache Geode 入門 gfsh によるクラスター構築・管理
〜Apache Geode 入門 gfsh によるクラスター構築・管理
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
OWASP WordPressセキュリティ実装ガイドライン (セキュアなWordPressの構築ハンズオン手順書)
Grunt入門
Grunt入門
2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...
2014/12/13 第1回 Scala関西勉強会 play2-memcached supports Play 2.4 ~Play 2.4モジュールのつく...
Vue
Vue
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
Chef
Chef
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
microPCFを使ってみよう
microPCFを使ってみよう
dodai勉強会#5 nova-scheduler
1.
dodai 勉強会 #5 なかがわ
2.
今回のテーマ nova scheduler ◦ インスタンスをどのホストで起動するか決める ◦
nova-apiから起動の要求を受け取り、どこで起動するか決めて起動する ◦ ドライバに対してインスタンスの起動を指示するところまで追いかける コード ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/bin/nova-scheduler ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/manager.py
3.
AICでの設定 設定ファイル: /etc/nova/nova.conf scheduler_driver ◦ nova.scheduler.filter_scheduler.FilterScheduler compute_scheduler_driver ◦
nova.scheduler.filter_scheduler.FilterScheduler scheduler_default_filters ◦ DodaiInstanceTypeFilter,DodaiResourcePoolFilter,RetryFilter,AvailabilityZoneFilter,ImagePropertiesFilter scheduler_host_manager ◦ nova.scheduler.baremetal_host_manager.BaremetalHostManager
4.
Scheduler Manager 設定ファイルに、scheduler_managerという項目があればそれが使われる ◦存在しないのでデフォルト値が使われる: nova.scheduler.manager.SchedulerManager コード ◦
https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/bin/nova-scheduler#L53 ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/service.py#L108-L110 ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/service.py#L520-L522 ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/service.py#L497-L536 SchedulerManager ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/manager.py
5.
インスタンスの起動 まずは、nova-apiで受け付ける ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute- v2/nova/api/openstack/compute/servers.py#L878-L898 ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/compute/api.py#L929-L961 ◦
https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/compute/api.py#L649-L687 バリデーション(クォータ等)、DBにインスタンスのエントリ作成 ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/compute/api.py#L459-L647 ◦ 新しいインスタンスUUIDのリスト、マシンタイプなどの要求スペックを用意 スケジューラのrun_instanceを呼び出す ◦ 生成したinstance uuidのリストや、スペックについての情報を渡す ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/compute/api.py#L681-L685 ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/rpcapi.py#L77- L85
6.
run_instance ドライバのschedule_run_instanceを呼び出す 例外が発生したら、VMの状態をERRORにする https://github.com/dodai-compute-v2/nova/blob/dodai-compute- v2/nova/scheduler/manager.py#L119-L144 ◦ scheduler driverのschedule_run_instanceの呼び出し ◦
使用されるのは nova.scheduler.filter_scheduler.FilterScheduler クラス ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute- v2/nova/scheduler/filter_scheduler.py#L59-L118 ◦ weighed_hosts (候補となるホスト)の作成 ◦ weighted_hosts をからインスタンス数分だけ順番に取り出す。不足していたらエラーとなる。
7.
weighed_hosts の作成 scheduler host
manager (nova.scheduler.baremetal_host_manager.BaremetalHostManager) を呼び出し ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute- v2/nova/scheduler/filter_scheduler.py#L284-L367 ホストとその状態を取ってきて ◦ get_all_host_states ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/filter_scheduler.py#L331 フィルタして ◦ get_filtered_hosts ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/filter_scheduler.py#L340-L341 ウエイトを求める ◦ get_weighed_hosts ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/filter_scheduler.py#L348-L349
8.
BaremetalHostManager HostManagerのhost_state_clsをBaremetalNodeStateに変更している ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute- v2/nova/scheduler/baremetal_host_manager.py ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute- v2/nova/scheduler/host_manager.py#L257 HostManagerの関数が使われる ◦
get_all_host_states ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/host_manager.py#L365-L403 ◦ get_filtered_hosts ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/host_manager.py#L296-L342 ◦ get_weighed_hosts ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/host_manager.py#L344-L347
9.
フィルタの呼び出し フィルタを決める ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute- v2/nova/scheduler/host_manager.py#L325 ◦ scheduler_default_filters
の設定が使われる ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/host_manager.py#L276-L277 ◦ Filter handler:各フィルタの呼び出し ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/host_manager.py#L341-L342 ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/filters/__init__.py#L26-L41 ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/filters.py フィルタの場所 ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/filters/
10.
AICで使用されるフィルタ DodaiInstanceTypeFilter ◦ baremetal db上のインスタンスタイプでフィルタする DodaiResourcePoolFilter ◦
リソースプールユーザー(admin)とそれ以外で挙動が違う ◦ /etc/nova/nova.conf の resource_pool_usernames で指定する。判断するために、keystoneにアクセス ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/filters/dodai_baremetal_filter.py#L137-L151 ◦ リソースプールユーザーの場合、Task stateがNULLかINITのものを通す ◦ それ以外の場合、ACTIVEなものを通す RetryFilter ◦ 同じノードを2回試さないようにするフィルタ AvailabilityZoneFilter ◦ ゾーンのフィルタ ImagePropertiesFilter ◦ 起動するイメージが、対象ホストで使えるかどうかでフィルタする
11.
ウエイトを求める(ソートする) weight classを決める ◦ AICでは設定されていないので、デフォルトが使われる ◦
デフォルト値 ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/host_manager.py#L51-L54 ◦ all_weighersとHostWeightHandler ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/weights/__init__.py ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/weights.py ◦ get_all_classes ◦ クラスのディレクトリと同じディレクトリ中のクラスをすべて返す ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/loadables.py#L77-L95 ◦ RAMWeighter : https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/weights/ram.py ◦ ホストの状態のうち、free_ram_mbを元にweightを決める weight classの決めたweightによってソートしてから返す ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/weights.py#L71
12.
インスタンスの起動 weighed_hostsから1つずつ使用して、要求された分だけインスタンスを起動する ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute- v2/nova/scheduler/filter_scheduler.py#L90-L118 ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute- v2/nova/scheduler/filter_scheduler.py#L156-L190 ◦
nova-computeのrun_instanceをRPC経由で呼び出し ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/filter_scheduler.py#L184-L190 ◦ https://github.com/dodai-compute-v2/nova/blob/dodai-compute-v2/nova/scheduler/driver.py#L125
Download now