郷古です。
だいぶざっくりとしたお話なんで、自分の個人的な意見を書いてみます。
まず、この答えをこの情報だけでは出すことはできないと思いますよ。
理由を列挙しますと
-1) まずは、Nova Compute nodeのHypervisorがなんなのか(local boot)、明確ではない (libvirt kvm, vSphere, Hyper-V, LXC, etc.)
-2) Cinderの 有無など、cinder bootする場合のvolume imageとして使うのかどうか
他にもありそうですが、nova compute nodeに限定しても Linux libvirt KVMのHypervisorでは
イメージ変換に "qemu-img" コマンドを使います。Cinderでのイメージ書き込みとかもそうですね。
libvirt xen(XenServerじゃないほう), hypver-vあたりもqemu-img.exeを使っていたような気がします。
qmeu-imgコマンドでのイメージ変換できる種類はOSまたはディストリビューションのバージョン、
に依存します。また、コマンドでできたとしても、その処理がないとできなかったりします。
(もちろん、イメージ展開の時にqemu-img convertする処理を追加したりすれば...)
また、nova computeでのハイパーバイザがどのイメージに対する処理が存在するのかといった
問題もあります。その辺は、ソースを読んでみるのが良いと思います。
ちょっとnovaでgrepしてみるとこんな感じですね (Juno)>
2nd-ConoHa-MacBook-Pro:dev-nova chroum$ grep -r "qemu-img" ./nova-stable-juno/ | grep "convert" | grep -v test
./nova-stable-juno//nova/virt/hyperv/vmops.py: help='Path of qemu-img command which is used to convert '
./nova-stable-juno//nova/virt/images.py: cmd = ('qemu-img', 'convert', '-O', out_format, source, dest)
./nova-stable-juno//nova/virt/libvirt/driver.py: utils.execute('qemu-img', 'convert', '-f', 'qcow2',
./nova-stable-juno//nova/virt/libvirt/driver.py: utils.execute('qemu-img', 'convert', '-f', 'raw',
./nova-stable-juno//nova/virt/libvirt/driver.py: utils.execute('qemu-img', 'convert', '-f', 'qcow2',
./nova-stable-juno//nova/virt/libvirt/utils.py: qemu_img_cmd = ('qemu-img', 'convert', '-f', source_fmt, '-O', dest_fmt)
イメージ展開の時に、convertが入るのか、入らないのか、どのような条件でそのまま
使えるのか、compute nodeはどのような設定なのかとかとか。
なので、簡単に割り切ると、つかっているハイパーバイザで現在使っているイメージ形式が
一番良いということになります。
glanceが "Image service" という名称で、かつ他のサービスに対してシンプルなので、
image convertとかimage validationとかあったらいいなと考えたことはありますが、
image uploadする前に、使っているハイパーバイザで動作確認してから、uploadした
ほうが心が安らかになると思い直しました :)
自分の場合、事前に、qemu-img convert, VBoxManage clonehd などのコマンドをつかって変換して、
KVMで動作確認してから使います。