Contenu connexe Similaire à なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builderscon (20) なぜディスクレスハイパーバイザに至ったのか / Why did we select to the diskless hypervisor? #builderscon3. Nakanishi Kento / whywaita
• 株式会社サイバーエージェント 技術本部
プライベートクラウドグループ 開発チーム
• 2019年新卒⼊社 (⼊社して5ヶ⽉経ちました)
• 仕事: OpenStack / Kubernetes ベースの
プライベートクラウドのお守り, 新機能の開発
最近は採⽤回りもやってるので興味ある⽅はお声がけを!
• 趣味: ⾃宅サーバ / ⾃宅インフラ, アニソン
最近趣味で我が家とAS がBGPで繋がりました
!3
14. 参加者アンケート
•皆さんどのあたりで 仕事 / 研究 / 勉強 してますか?
•データセンター事業者?
•プライベートクラウド部署?
•SRE?インフラエンジニア?
•アプリケーション開発エンジニア?
!14
※アンケート内容は悪⽤しません!※
上から
: : :
ぐらいでした
89. Bearmanによる在庫管理 - 登録編
. iPXEによるブート (CentOS)
. autorun.service が起動
. BIOS / NICのファームウェアバージョンチェック
and アップ (Golang)
. lldpd によって近傍スイッチ情報をチェック
. dmidecode コマンドでHW情報をチェック
. Bearmanに登録 / IPMI設定
. CentOS シャットダウン!
!89
90. Bearmanによる在庫管理 - 登録編
!90
iPXE CentOS
kernel=
initramfs=
append=
autorun.service
初回ブート 1段階⽬OS
firmware-updator
lldpd
vlan-manager
iPXEによって
CentOSのブート
dmidecode
91. Bearmanによる在庫管理 - 登録編
!91
iPXE CentOS
kernel=
initramfs=
append=
autorun.service
firmware-updator
初回ブート 1段階⽬OS
autorun.service
により
各種デーモン起動
lldpd
vlan-manager
dmidecode
92. Bearmanによる在庫管理 - 登録編
!92
iPXE CentOS
kernel=
initramfs=
append=
autorun.service
firmware-updator
初回ブート 1段階⽬OS
NICやBIOSの
ファームウェア
バージョンアップ
lldpd
vlan-manager
dmidecode
93. Bearmanによる在庫管理 - 登録編
!93
iPXE CentOS
kernel=
initramfs=
append=
autorun.service
firmware-updator
初回ブート 1段階⽬OS
近傍スイッチと
やりとり
ポート/状態 sync
lldpd
ToR Switch
vlan-manager
dmidecode
94. Bearmanによる在庫管理 - 登録編
!94
iPXE CentOS
kernel=
initramfs=
append=
autorun.service
firmware-updator
初回ブート 1段階⽬OS
NETCONFで情報
取得 / 更新
lldpdと差異確認
lldpd
ToR Switch
vlan-manager
dmidecode
95. Bearmanによる在庫管理 - 登録編
!95
iPXE CentOS
kernel=
initramfs=
append=
autorun.service
firmware-updator
初回ブート 1段階⽬OS
HW情報を取得
Bearmanに登録
lldpd
Bearman
By gRPC
vlan-manager
dmidecode
96. Bearmanによる在庫管理 - 登録編
!96
iPXE CentOS
kernel=
initramfs=
append=
autorun.service
firmware-updator
初回ブート 1段階⽬OS
Bearmanから
IPMI設定を返答
lldpd
Bearman
By gRPC
vlan-manager
dmidecode
97. Bearmanによる在庫管理 - 登録編
!97
iPXE CentOS
kernel=
initramfs=
append=
autorun.service
firmware-updator
初回ブート 1段階⽬OS
Bearmanからの
設定をIPMIに
焼き込み
lldpd
Bearman
vlan-manager
dmidecode
98. Bearmanによる在庫管理 - 登録編
!98
iPXE CentOS
kernel=
initramfs=
append=
autorun.service
firmware-updator
初回ブート 1段階⽬OS
在庫登録正常なら
OSシャットダウン
lldpd
Bearman
vlan-manager
dmidecode
99. Bearmanによる在庫管理 - 起動編
!99
. iPXEによるブート (CentOS)
. Firmware / LLDP までは⼀緒
. /proc/cmdline をチェック
. Linux-kernel / initrd をBearmanに聞い
てwget !
. kexec でUbuntuに OSチェンジ!
. ComputeNodeとして起動成功!
100. Bearmanによる在庫管理 - 起動編
!100
iPXE CentOS Real OS (Ubuntu)
kernel=
initramfs=
append=
autorun.service
kexec
kernel=
initramfs=
append=
初回ブート 1段階⽬OS 2段階⽬OS
101. Bearmanによる在庫管理 - 起動編
!101
iPXE CentOS Real OS (Ubuntu)
kernel=
initramfs=
append=
autorun.service
kexec
kernel=
initramfs=
append=
初回ブート 1段階⽬OS 2段階⽬OS
autorun.service
までは
在庫登録と⼀緒
102. Bearmanによる在庫管理 - 起動編
!102
iPXE CentOS Real OS (Ubuntu)
kernel=
initramfs=
append=
autorun.service
kexec
kernel=
initramfs=
append=
初回ブート 1段階⽬OS 2段階⽬OS
Bearmanから
Nodeごとの
Flavorを取得
Bearman
103. Bearmanによる在庫管理 - 起動編
!103
iPXE CentOS Real OS (Ubuntu)
kernel=
initramfs=
append=
autorun.service
kexec
kernel=
initramfs=
append=
初回ブート 1段階⽬OS 2段階⽬OS
Flavorから
必要なURL群を
取得
Bearman
104. Bearmanによる在庫管理 - 起動編
!104
iPXE CentOS Real OS (Ubuntu)
kernel=
initramfs=
append=
autorun.service
kexec
kernel=
initramfs=
append=
初回ブート 1段階⽬OS 2段階⽬OS
kexecによって
OSをswitch!
105. Bearmanによる在庫管理 - 起動編
!105
iPXE CentOS Real OS (Ubuntu)
kernel=
initramfs=
append=
autorun.service
kexec
kernel=
initramfs=
append=
初回ブート 1段階⽬OS 2段階⽬OS
ComputeNode
Flavorなら
Ubuntuが起動
112. k s-master (物理)k s-master (物理)
Bearmanによる在庫管理 - 起動編
!112
k sのDaemonSetで
ComputeNodeに必要な
プロセスを起動させる
Real OS (Ubuntu)
2段階⽬OS
neutron-proxy
kubelet
k s-master (物理)
nova-compute
neutron-openvswitch-agent
Docker
It’s a MicroServices!!!!😂
113. k s-master (物理)k s-master (物理)
Bearmanによる在庫管理 - 起動編
!113
ComputeNode Podから
OpenStack群に
新規ノードとして追加要求
Real OS (Ubuntu)
2段階⽬OS
neutron-proxy
kubelet
k s-master (物理)
nova-compute
neutron-openvswitch-agent
Docker
k s-master (物理)k s-master (物理)opst-master (コンテナ)
115. k s-master (物理)
Bearmanによる在庫管理 - VM起動編
!115
Real OS (Ubuntu)
2段階⽬OS
ComputeNode Podsk s-master (物理)opst-master (コンテナ)
ストレージ
アプライアンス
qemuプロセスを作成し
ストレージをiSCSI経由で
アタッチ
qemuプロセス (VM)
116. k s-master (物理)
Bearmanによる在庫管理 - VM起動編
!116
Real OS (Ubuntu)
2段階⽬OS
ComputeNode Podsk s-master (物理)opst-master (コンテナ)
ストレージ
アプライアンス
本環境におけるステート
. VMの構成情報(XML)
. VMのストレージ(OS)
qemuプロセス (VM)
117. k s-master (物理)
Bearmanによる在庫管理 - VM起動編
!117
Real OS (Ubuntu)
2段階⽬OS
ComputeNode Podsk s-master (物理)opst-master (コンテナ)
ストレージ
アプライアンス
. VMの構成情報(XML)
qemuプロセス (VM)
. VMのストレージ(OS)
118. k s-master (物理)
Bearmanによる在庫管理 - VM起動編
!118
Real OS (Ubuntu)
2段階⽬OS
ComputeNode Podsk s-master (物理)opst-master (コンテナ)
ストレージ
アプライアンス
. VMの構成情報(XML)
qemuプロセス (VM)
. VMのストレージ(OS)
ComputeNodeに
ステート無し!!