Hi Jamie, thanks for you patience. I'm still failing :-( I've attached all steps I've done and simplified my setup for this example.
Two servers: one01 => Running OpenNebula 3.4 kvm02 => Running Linux KVM Both systems have are member of an LVM cluster. Now my steps: 1. Create a datastore on one01 sudo -uoneadmin onedatastore create ds.conf NAME = kvm02 DS_MAD = lvm TM_MAD = lvm VG_NAME = vg1 HOST = kvm02 $ onedatastore list ID NAME CLUSTER IMAGES TYPE TM 0 system - 0 fs ssh 1 default - 0 fs ssh 123 kvm02 - 0 lvm lvm DATASTORE 123 INFORMATION ID : 123 NAME : kvm02 USER : oneadmin GROUP : oneadmin CLUSTER : - DS_MAD : lvm TM_MAD : lvm BASE PATH : /var/lib/one/datastores/123 PERMISSIONS OWNER : um- GROUP : u-- OTHER : --- DATASTORE TEMPLATE DS_MAD="lvm" HOST="kvm02.example.org" TM_MAD="lvm" VG_NAME="vg1" IMAGES 23 2. Create an image template sudo -uoneadmin oneimage create im.conf -d kvm02 im.conf NAME = "kvm02 SOURCE = /var/lib/one/Master.raw TYPE = OS BUS = virtio DRIVER = raw DESCRIPTION = "CentOS 6.2 64-Bit LVM Snapshot Master" Master.raw exists. $ oneimage list ID USER GROUP NAME DATASTORE SIZE TYPE PER STAT RVMS 23 oneadmin oneadmin kvm02 kvm02 0M OS No rdy 0 $ oneimage show kvm02 IMAGE 23 INFORMATION ID : 23 NAME : kvm02 USER : oneadmin GROUP : oneadmin DATASTORE : kvm02 TYPE : OS REGISTER TIME : 05/11 16:44:10 PERSISTENT : No SOURCE : /var/lib/one/Master.raw SIZE : 0 STATE : rdy RUNNING_VMS : 0 PERMISSIONS OWNER : um- GROUP : --- OTHER : --- IMAGE TEMPLATE BUS="virtio" DESCRIPTION="CentOS 6.2 64-Bit LVM Snapshot Master" DEV_PREFIX="hd" DRIVER="raw" At this point, nothing has happened so far. OpenNebula did neither create a volume nor it dumped the image. Eventhough the image is show as ready. Is that the correct behaviour? By the way... the same thing is true for virtual networks. When I created a virtual network in OpenNebula I also had to create the corresponding virtual network on the KVM host manually. Maybe there's something wrong at this point? Anyway... I tried to go on and created an VM image like this: sudo -uoneadmin onetemplate create vm.conf vm.conf CPU="100" DISK=[ BUS="virtio", DRIVER="raw", IMAGE="kvm02", IMAGE_UNAME="oneadmin" ] FEATURES=[ PAE="no" ] MEMORY="1024" NAME="kvm02" NIC=[ MODEL="virtio", NETWORK="kvm02", NETWORK_UNAME="oneadmin" ] OS=[ ARCH="x86_64", BOOT="hd" ] RAW=[ TYPE="kvm" ] VCPU="1" $ onetemplate list ID USER GROUP NAME REGTIME 27 oneadmin oneadmin kvm02 05/11 16:59:15 $ onetemplate show kvm02 TEMPLATE 27 INFORMATION ID : 27 NAME : kvm02 USER : oneadmin GROUP : oneadmin REGISTER TIME : 05/11 16:59:15 PERMISSIONS OWNER : um- GROUP : --- OTHER : --- TEMPLATE CONTENTS CPU="100" DISK=[ BUS="virtio", DRIVER="raw", IMAGE="kvm02", IMAGE_UNAME="oneadmin" ] FEATURES=[ PAE="no" ] MEMORY="1024" NAME="kvm02" NIC=[ MODEL="virtio", NETWORK="kvm02", NETWORK_UNAME="oneadmin" ] OS=[ ARCH="x86_64", BOOT="hd" ] RAW=[ TYPE="kvm" ] TEMPLATE_ID="27" VCPU="1" Next I try to instantiate a vm with this: $ onetemplate instantiate kvm02 VM ID: 440 $ onevm list ID USER GROUP NAME STAT CPU MEM HOSTNAME TIME 440 oneadmin oneadmin one-440 pend 0 0K 0d 00:00 $ onevm show 440 VIRTUAL MACHINE 440 INFORMATION ID : 440 NAME : one-440 USER : oneadmin GROUP : oneadmin STATE : PENDING LCM_STATE : LCM_INIT START TIME : 05/11 17:03:11 END TIME : - DEPLOY ID : - VIRTUAL MACHINE MONITORING USED CPU : 0 NET_RX : 0 USED MEMORY : 0 NET_TX : 0 PERMISSIONS OWNER : um- GROUP : --- OTHER : --- VIRTUAL MACHINE TEMPLATE CPU="100" DISK=[ BUS="virtio", CLONE="YES", DATASTORE="kvm02", DATASTORE_ID="123", DISK_ID="0", DRIVER="raw", IMAGE="kvm02", IMAGE_ID="23", IMAGE_UNAME="oneadmin", READONLY="NO", SAVE="NO", SOURCE="/var/lib/one/Master.raw", TARGET="hda", TM_MAD="lvm", TYPE="DISK" ] FEATURES=[ PAE="no" ] MEMORY="1024" NAME="one-440" NIC=[ BRIDGE="br0", IP="176.1.1.1", MAC="02:00:b0:02:a3:01", MODEL="virtio", NETWORK="kvm02", NETWORK_ID="10", NETWORK_UNAME="oneadmin", VLAN="NO" ] OS=[ ARCH="x86_64", BOOT="hd" ] RAW=[ TYPE="kvm" ] TEMPLATE_ID="27" VCPU="1" VMID="440" Now deploy: $ onevm deploy 440 kvm02.example.org It fails instantly: MESSAGE="Error executing image transfer script: Error cloning /dev//var/lib/one/Master/raw to /dev//var/lib/one/Master/raw-440-0" That's the log file: Fri May 11 17:04:41 2012 [DiM][I]: New VM state is ACTIVE. Fri May 11 17:04:42 2012 [LCM][I]: New VM state is PROLOG. Fri May 11 17:04:42 2012 [VM][I]: Virtual Machine has no context Fri May 11 17:04:42 2012 [TM][I]: Command execution fail: /var/lib/one/remotes/tm/lvm/clone one01:/var/lib/one/Master.raw kvm02.example.org:/var/lib/one//datastores/0/440/disk.0 Fri May 11 17:04:42 2012 [TM][I]: /var/lib/one/remotes/tm/lvm/../../datastore/xpath.rb: unrecognized option `--stdin' Fri May 11 17:04:42 2012 [TM][E]: clone: Command " set -e Fri May 11 17:04:42 2012 [TM][I]: mkdir -p /var/lib/one/datastores/0/440 Fri May 11 17:04:42 2012 [TM][I]: sudo lvcreate -n raw-440-0 -L40960 -s /dev//var/lib/one/Master/raw Fri May 11 17:04:42 2012 [TM][I]: ln -s "/dev//var/lib/one/Master/raw-440-0" "/var/lib/one/datastores/0/440/disk.0"" failed: "/dev//var/lib/one/Master/raw": Invalid path for Logical Volume Fri May 11 17:04:42 2012 [TM][I]: The origin name should include the volume group. Fri May 11 17:04:42 2012 [TM][I]: Run `lvcreate --help' for more information. Fri May 11 17:04:42 2012 [TM][E]: Error cloning /dev//var/lib/one/Master/raw to /dev//var/lib/one/Master/raw-440-0 Fri May 11 17:04:42 2012 [TM][I]: ExitCode: 3 Fri May 11 17:04:42 2012 [TM][E]: Error executing image transfer script: Error cloning /dev//var/lib/one/Master/raw to /dev//var/lib/one/Master/raw-440-0 Fri May 11 17:04:42 2012 [DiM][I]: New VM state is FAILED [oneadmin@one01 ~]$ First thing that's wrong: # sudo lvcreate -n raw-440-0 -L40960 -s /dev//var/lib/one/Master/raw It should be: lvcreate -n raw-440-0 -L40960 -s /dev/vg1/master The next issue: # ln -s "/dev//var/lib/one/Master/raw-440-0" "/var/lib/one/datastores/0/440/disk.0"" It should be: ln -s /dev/vg1/raw-440-0 /var/lib/one/datastores/0/440/disk.0 Cheers, Yves On 11.05.2012, at 14:19, Jaime Melis wrote: > Hi Yves, > > no sorry, I didn't explain myself correctly. The LVM workflow is as follows: > > You have an already existing file with an image (in your case Master.qcow2, > although for these drivers it needs to be in RAW format). When you do > 'oneimage create' with PATH (instead of SOURCE) pointing to the file, the > drivers will do automatically what you did manually: create a new LV of the > appropriate size, and dump it (using 'dd') to the new LV. > > Once it's created, you can instantiante vms with that image. If the image is > persistent, the VM will access the LV directly. If it's not persistent, the > drivers will create a new LV, a snapshot of the original image, and the VM > will access it. Thus creating a copy almost instantaneously. If you execute > saveas on that image, it will be saved to a new image so that you don't lose > your changes. > > I hope I explained it better this time. > > Cheers, > Jaime > > On Fri, May 11, 2012 at 1:37 PM, Vogl, Yves <v...@adesso-mobile.de> wrote: > Hi Jamie, > > thanks for pointing out a solution to the sudo error. This was clear to me > because of the well documented instructions - I think there's no need to > improve it. I just forgot to do this step. > > On 11.05.2012, at 13:31, Jaime Melis wrote: > >> About the way you registered the image, it's not usually the way it's meant >> to be done. You should use PATH=/path/to/Master.raw >> instead of using directly the SOURCE. > > So if I do not want to deal with images at all I've to create a "pure > snapshot" driver by myself? > > The idea is to populate a master image as clustered LVM volume and to have > faster deployment by just snapshotting the logical volume. > If I have to use an image after creating a logical volume - there's no need > to snapshot anything before. > > Yves > > > > > > > -- > Jaime Melis > Project Engineer > OpenNebula - The Open Source Toolkit for Cloud Computing > www.OpenNebula.org | jme...@opennebula.org _______________________________________________ Users mailing list Users@lists.opennebula.org http://lists.opennebula.org/listinfo.cgi/users-opennebula.org