实践 config drive - 每天5分钟玩转 OpenStack(170)
如果 instance 無(wú)法通過(guò) metadata service 獲取 metadata(無(wú) DHCP 或者 nova-api-metadata 服務(wù)),instance 還可以通過(guò) config drive 獲得 metadata。
?
config drive 是一個(gè)特殊的文件系統(tǒng),OpenStack 會(huì)將 metadata 寫到 config drive,并在 instance 啟動(dòng)時(shí)掛載給 instance。如過(guò) instance 安裝了 cloud-init,config drive 會(huì)被自動(dòng) mount 并從中讀取 metadata,進(jìn)而完成后續(xù)的初始化工作。
接下來(lái)我們將實(shí)踐 config-drive。
?
配置
?
config drive 默認(rèn)是 disable 的,所以首先得啟用。有兩種方法啟用 config drive:
啟動(dòng) instance 時(shí)指定?--config-drive true。
在計(jì)算節(jié)點(diǎn)的 /etc/nova/nova.conf 中配置?force_config_drive = true,這樣部署到此計(jì)算節(jié)點(diǎn)的 instance 都會(huì)使用 config drive。我們實(shí)驗(yàn)中使用的就是這種方法。
config drive 支持兩種格式,iso9660 和 vfat,默認(rèn)是 iso9660,但這會(huì)導(dǎo)致 instance 無(wú)法在線遷移,必須設(shè)置成config_drive_format=vfat?才能在線遷移,這一點(diǎn)需要注意。
配置完成后,重啟 nova-compute 服務(wù)。
?
過(guò)程分析
?
部署一個(gè)新的 cirros instance?c2,我們先到計(jì)算節(jié)點(diǎn)的 instances 目錄下看看 c1 與 c2 的區(qū)別。
c2 的目錄下會(huì)多一個(gè)?disk.config?文件,這就是 config drive。通過(guò)virsh edit?可以看到 disk.config 已經(jīng)掛載到 instance 上了。
打開(kāi) c2 的控制臺(tái),hostname 已經(jīng)配置好,說(shuō)明 metadata 拿到了。
為了確保 metadata 不是從 nova-api-metadata 獲取,我已經(jīng)提前關(guān)閉了 DHCP 服務(wù),可以看到當(dāng)前 c2 是沒(méi)有 IP 的。
lsblk?查看塊設(shè)備,iso 設(shè)備?sr0?就是 config drive。
mount sr0,查看 config drive 的內(nèi)容。
meta_data.json?中存放了 ssh public key, hostname 等信息。
instance 可以通過(guò) nova-api-metadata 或者 config drive 這兩種途徑拿到 metadata,如何使用這些 data 是 cloud-init 要完成的工作,下節(jié)我們將開(kāi)始詳細(xì)討論?cloud-init。
本文轉(zhuǎn)自CloudMan6 51CTO博客,原文鏈接:http://blog.51cto.com/cloudman/1911954
總結(jié)
以上是生活随笔為你收集整理的实践 config drive - 每天5分钟玩转 OpenStack(170)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: FOSCommentBundle功能包:
- 下一篇: 工厂对象模式简介