OpenStackのWindowsイメージを作成する手順は, 一般的にはKVMでvirtioドライバをあわせてインストールするのが標準的。
参考:https://docs.openstack.org/ja/image-guide/windows-image.html
その他仮想環境(ESXi等)でWindowsをインストールして, その上でvirtioをインストールするというのも, まぁあり。
今回は無理やりOpenStack上でisoインストーラからWindowsをインストールして起動させるということを試した。
手順
1. isoイメージを登録
2. flavorを作成
3. インスタンス起動
と普通のながれだけれども, metadataとしてhw_disk_busとhw_cdrom_busとhw_vif_modelを指定することがポイントとなる。
メタデータは「hw_disk_bus=ide」「hw_cdrom_bus=ide」hw_vif_model=e1000」を設定する。
メタデータについてはこちらを参照。
OpenStackはRDOのOcataでAll-in-One構成。
イメージ作成
openstack image create --disk-format iso --property hw_disk_bus=ide --property hw_cdrom_bus=ide --property hw_vif_model=e1000 --file ./Win10.iso Win10.image
フレーバー作成
openstack flavor create --ram 2048 --ephemeral 36 --vcpus 2 --property hw_disk_bus=ide --property hw_cdrom_bus=ide --property hw_vif_model=e1000 Win10
※ エフェメラルディスクが認識されるのでここはCドライブとして見せたいサイズを指定する。
※ メタデータはフレーバーでは指定しなくても動くけど, 入れたほうが反応がマシになる気がしている。(真偽不明)
インスタンス作成
openstack server create --flavor Win10 --nic --net-id=xxx --image Win10.image --property hw_disk_bus=ide --property hw_cdrom_bus=ide --property hw_vif_model=e1000 Win10
結論
instanceのメタデータ(とくにhw_disk_bus=ide)を指定すればインストールメディアからのインスタンス作成はできることが分かった。
とりあえず動けば良いのであればそれでも良さそうだけれども, どうもimageやflavorも指定した方が動きがマシな気がする。
けれどもまともに使いたいのであればvirtioドライバを入れた方がよいので, virtioドライバがもはや無いOSに対してはこの手順は有効かと思われます。(Win2000とか・・・)
インストール画面が出た |
インスタンスのhw_disk_busがideになっていて エフェメラルディスクがあればディスクが見える |
インスタンスのhw_disk_bus=ideが無いとディスクなしで終了となる |
ひとまずこんな起動もできるよ的なメモとして。