2.16. 例: Python を使用した仮想マシンのストレージディスクの作成
新規作成した仮想マシンが永続的なストレージに確実にアクセスできるようにするには、ディスクを作成してアタッチする必要があります。
例2.15 Python を使用した仮想マシンストレージの作成
以下の Python の例は、8 GB の
上記のオプションは、仮想マシンの
virtio
ディスクドライブを作成し、vm1
という名前の仮想マシンにアタッチします。この例のディスクは、以下の条件を満たしている必要があります。
data1
という名前のストレージドメイン上に格納されること。disk_storage_domain = params.StorageDomains(storage_domain=[api.storagedomains.get(name="data1")])
- サイズは 8 GB とすること。
disk_size = 8*1024*1024
- ディスクタイプは、(
data
ではなく)system
タイプであること。disk_type = "system"
virtio
ストレージデバイスであること。disk_interface = "virtio"
cow
フォーマットで格納されること。disk_format = "cow"
- 使用可能なブートデバイスとしてマークされること。
disk_bootable = True
disks
コレクションの add
メソッドを使用してディスク自体を作成する前に、ディスクパラメーターオブジェクトに組み込みます。
from ovirtsdk.api import API from ovirtsdk.xml import params try: api = API (url="https://HOST", username="USER@DOMAIN", password="PASS", ca_file="ca.crt") vm = api.vms.get(name="vm1") sd = params.StorageDomains(storage_domain=[api.storagedomains.get(name="data1")]) disk_size = 8*1024*1024 disk_type = "system" disk_interface = "virtio" disk_format = "cow" disk_bootable = True disk_params = params.Disk(storage_domains=sd, size=disk_size, type_=disk_type, interface=disk_interface, format=disk_format, bootable=disk_bootable) try: d = vm.disks.add(disk_params) print "Disk '%s' added to '%s'." % (d.get_name(), vm.get_name()) except Exception as ex: print "Adding disk to '%s' failed: %s" % (vm.get_name(), ex) api.disconnect() except Exception as ex: print "Unexpected error: %s" % ex
add
要求が成功した場合には、スクリプトにより以下のような出力が表示されます。
Disk 'vm1_Disk1' added to 'vm1'.