whole disk和partition 鏡像
whole disk鏡像部署可以支持windows,但是不能自定義分區(可以通過cloud-init實現),分區表是做鏡像的人確定好的,partition image支持按照flavor中規定的root,swap分區來自動進行磁盤分區。
partition image方式部署的機器將kernel和ramdisk都存放在tftp server上,每次啟動都需要訪問tftp,whole disk部署的服務器啟動時不需要訪問tftp server。
更新:partition image也支持從本地啟動,需要設置特別的元數據,文檔在https://docs.openstack.org/project-install-guide/baremetal/draft/advanced.html#local-boot-with-partition-images
coreos deploy image和 ramdisk deploy image
coreos image是社區媒體dailybuild使用的,也是社區推薦的選項,ramdisk image支持更多的元素,比如raid部署(使用agent_ilo)。
spec:https://specs.openstack.org/openstack/ironic-specs/specs/kilo-implemented/whole-disk-image-support.html
raid的進展
hardware raid目前只有ilo和drac的服務器支持raid部署,需要build專門的包含hpe raid管理軟件的ramdisk鏡像支持,社區正在做software raid的方案,通過agent啟動后使用raid-md來做raid,
軟raid: https://blueprints.launchpad.net/ironic/+spec/inband-raid-configuration
現有的raid支持: https://docs.openstack.org/developer/ironic/deploy/raid.html
console的實現,原理,scott和shellinabox的區別
通過SOL(serial over lan),即通過網絡轉發串口的方式來將console暴漏給用戶,ironic使用的是ipmitool 的sol activate命令。默認是通過shellinabox展示給user,可以通過網頁查看,像nova看虛擬機一樣,也可以通過scott,暴露出來的是ip+端口,可以通過telnet訪問。
root@ubuntu:~# ipmitool -I lanplus -H 172.16.6.222 -U root -P password sol activate
[SOL Session operational. Use ~? for help]
LTS debian ttyS1
debian login:
裸機和ironic控制器的網絡通信
裸機管理有兩種情況,一種是通過flat網絡通信,裸機和控制器在同一個二層網絡里,網絡架構比較簡單,這里不展開了。
但是更合理的情況是,裸機使用multi tenancy來管理網絡,Ironic裸機和控制器在不同的vlan里,裸機部署時需要向控制器tftp服務請求鏡像,這就需要在三層打通部署tftp所在的控制器網絡和部署網絡。如果是通過partion image部署,裸機部署完成后,每次開機時,也要向tftp請求鏡像(使用partition image且不從本地啟動的情況下),這樣就又需要打通tftp到instance vlan。不過如果通過whole disk方式部署裸機就不需要這么麻煩了,whole disk部署的服務器啟動時不需要訪問tftp server.
通過物理交換機配置比較麻煩,我們可以通過neutron router上打通不同vlan,下面上海二樓的環境為例。
當前的環境如下:
- 控制器位於172.16.140.51上,物理網關地址為172.16.140.1
- 裸機的部署網絡配置為vlan 160,172.16.160.0/24網段,只是在交換機上創建了對應的vlan,沒有物理網關
- 控制器上部署了tftp服務,dns服務,ironic服務,neutron服務
操作步驟:
- 創建neutron vlan140網絡,網關聲明為172.16.140.100 這里要避開物理網關
- 創建neutron vlan160網絡,網關聲明為172.16.160.1
- 創建router,不設置網關,既不激活snat
- 在router中添加到vlan140網絡的接口,接口ip不輸入或者輸入網關172.16.140.100
- 在router中添加到vlan160網絡的接口,接口ip不輸入或者輸入網關172.16.160.1
- 在控制器上添加一條路由router add -net 172.16.160.0/24 gw 172.16.140.100
這樣就使得控制器172.16.140.51能和部署網絡172.16.160.0/24互通,能夠完成部署工作。如果是使用wholedisk的鏡像進行部署,那么這樣的網絡已經足夠。如果需要部署partition格式的鏡像,還需要按照上面的方式打通instance網絡。