[libvirt-users] ceph rbd pool and libvirt manageability (virt-install)
Jelle de Jong
jelledejong at powercraft.nl
Tue Aug 28 20:13:58 UTC 2018
I am having a hard time with this.
virt-install \
--connect qemu:///system \
--hvm \
--virt-type kvm \
--network=default,model=virtio \
--noautoconsole \
--name zimbra-dev.powercraft.nl \
--ram 6144 \
--vcpus=4\
--vnc \
--os-type linux \
--os-variant rhel6 \
--nodisks \
--noreboot \
--print-step all \
--dry-run \
--location http://ftp.tudelft.nl/centos.org/7/os/x86_64/ \
-x
"ks=https://raw.githubusercontent.com/Zimbra-Community/pgp-zimlet/stable/kvm/centos7-ext4.cfg"
This will output an xml with multiple stages/steps. I can manually add
the following to the steps with the following:
<disk type='network' device='disk'>
<driver name='qemu' type='raw'/>
<auth username='libvirt'>
<secret type='ceph' uuid='ec9be0c4-a60f-490e-af83-f0f27aaf48c9'/>
</auth>
<source protocol='rbd' name='libvirt-pool/zimbra-dev-disk'>
<host name='ceph01.powercraft.nl' port='6789'/>
<host name='ceph02.powercraft.nl' port='6789'/>
<host name='ceph03.powercraft.nl' port='6789'/>
</source>
<target dev='vda' bus='virtio'/>
</disk>
However how do I import these xml steps so they are being executed.
I tried to use: virsh define zimbra-dev.powercraft.nl.xml and keeping
only the first domain definition, but booting does not work, since the
boot files are not downloaded by virt-install first.
Does somebody know a workaround.
And for long term can I pay somebody a small bounty to add this
functionality to virt-install. Ceph support would be appreciated...
Would be nice to hear how other users use ceph with virt-install?
Kind regards,
Jelle de Jong
On 07/08/18 12:47, Pavel Hrdina wrote:
> On Mon, Aug 06, 2018 at 09:19:59PM +0200, Jelle de Jong wrote:
>> Hello everybody,
>>
>> virt-install --version
>> 1.4.0
>>
>> How do I create a ceph network disk with virt-install without having to
>> edit it?
>>
>> <disk type='network' device='disk'>
>> <driver name='qemu' type='raw'/>
>> <auth username='libvirt'>
>> <secret type='ceph' uuid='ec9be0c4-a60f-490e-af83-f0f27aaf48c9'/>
>> </auth>
>> <source protocol='rbd' name='libvirt-pool/zimbra-dev-disk'>
>> <host name='ceph01.powercraft.nl' port='6789'/>
>> <host name='ceph02.powercraft.nl' port='6789'/>
>> <host name='ceph03.powercraft.nl' port='6789'/>
>> </source>
>> <target dev='vda' bus='virtio'/>
>> </disk>
>
> Hi, currently you are not able to create domain with that disk
> definition, with this command line:
>
> --disk source_protocol=rdb,source_name=libvirt-pool/zimbra-dev-disk,\
> source_host_name=ceph01.powercraft.nl,source_host_port=6789,\
> target=vda,bus=virtio,driver_type=raw
>
> you are able to create this definition:
>
> <disk type="network" device="disk">
> <driver name="qemu" type="raw"/>
> <source protocol="rdb" name="libvirt-pool/zimbra-dev-disk">
> <host name="ceph01.powercraft.nl" port="6789"/>
> </source>
> <target dev="vda" bus="virtio"/>
> </disk>
>
> Currently there is no way how to specify <auth> on the virt-install
> command line and also multiple source <host> elements.
>
>> How do I create an new vm with the -location and -x (kickstarter) but
>> without booting it, because I need to edit the xml first before the
>> first boot.
>
> Look at options "--print-xml" and "--dry-run", it depends on your
> use-case. However, the installation process has usually two steps, you
> need to keep that in mind.
>
> By default virt-install creates two XML definitions, the first one is
> used to install the VM, after the installation is finished and the VM
> is rebooted virt-install will power off the VM instead of rebooting it
> and redefines the VM with second XML definition witch usually lacks the
> installation sources.
>
> If you need to update the XML before installation you need to handle the
> installation process by yourself. The --dry-run option can prevent
> storage creation if you don't need to create any storage before the
> actual installation. If the location points to some URL you will have
> to also manually download vmlinuz and initrd.
>
> So if the XML change can wait after the guest installation I would
> recommend doing that but if you need the change to XML it would be
> good idea to create Feature request to add that functionality into
> virt-install.
>
>> Kind regards and best wishes,
>>
>> Jelle de Jong
>>
>>
>> On 08/06/15 18:44, Jelle de Jong wrote:
>>> Hello everybody,
>>>
>>> I created a rbd pool and activated it, but I can't seem to create
>>> volumes in it with virsh or virt-install?
>>>
>>> # virsh pool-dumpxml myrbdpool
>>> <pool type='rbd'>
>>> <name>myrbdpool</name>
>>> <uuid>2d786f7a-2df3-4d79-ae60-1535bcf1c6b5</uuid>
>>> <capacity unit='bytes'>6997998301184</capacity>
>>> <allocation unit='bytes'>10309227031</allocation>
>>> <available unit='bytes'>6977204658176</available>
>>> <source>
>>> <host name='ceph01.powercraft.nl' port='6789'/>
>>> <host name='ceph02.powercraft.nl' port='6789'/>
>>> <host name='ceph03.powercraft.nl' port='6789'/>
>>> <name>libvirt-pool</name>
>>> <auth type='ceph' username='libvirt'>
>>> <secret uuid='029a334e-ed57-4293-bb99-ffafa8867122'/>
>>> </auth>
>>> </source>
>>> </pool>
>>>
>>> # virt-install --version
>>> 1.0.1
>>>
>>> # virsh --version
>>> 1.2.9
>>>
>>> I ended using virsh edit ceph-test.powercraft.nl and making creating
>>> the disk manually.
>>>
>>> <disk type='network' device='disk'>
>>> <auth username='libvirt'>
>>> <secret type='ceph' uuid='029a334e-ed57-4293-bb99-ffafa8867122'/>
>>> </auth>
>>> <source protocol='rbd' name='libvirt-pool/kvm01-storage'>
>>> <host name='ceph01.powercraft.nl' port='6789'/>
>>> <host name='ceph02.powercraft.nl' port='6789'/>
>>> <host name='ceph03.powercraft.nl' port='6789'/>
>>> </source>
>>> <target dev='vdc' bus='virtio'/>
>>> </disk>
>>>
>>> I use virt-install a lot to define, import and undefine domains, how
>>> can I use virt-install to manage my rdb disks?
>
> You cannot use virt-install to manage any disks, it is used only to
> create domain XML and install the VM. Virsh is a command line tool
> for libvirt and there you can manage disks, however for ceph volume
> creation is not currently implemented so you need to create them
> manually.
>
> Pavel
>
>>>
>>> Kind regards,
>>>
>>> Jelle de Jong
>>>
>>> _______________________________________________
>>> libvirt-users mailing list
>>> libvirt-users at redhat.com
>>> https://www.redhat.com/mailman/listinfo/libvirt-users
>>>
>>
>> _______________________________________________
>> libvirt-users mailing list
>> libvirt-users at redhat.com
>> https://www.redhat.com/mailman/listinfo/libvirt-users
More information about the libvirt-users
mailing list