[one-users] OpenNebula 3.4 with Clustered LVM
Jaime Melis
jmelis at opennebula.org
Fri May 11 08:26:30 PDT 2012
Hi,
thanks for you quick response.
No worries, I'm interested in seeing them working in OpenNebula 3.4.
have you enabled the lvm drivers in oned.conf ? (you will need to restart
one)
DATASTORE_MAD = [
executable = "one_datastore",
arguments = "-t 15 -d fs,vmware,iscsi,lvm"
]
TM_MAD = [
executable = "one_tm",
arguments = "-t 15 -d dummy,lvm,shared,qcow2,ssh,vmware,iscsi" ]
cheers,
Jaime
On Fri, May 11, 2012 at 5:18 PM, Vogl, Yves <vogl at adesso-mobile.de> wrote:
> Hi,
>
> thanks for you quick response.
>
> Now there's something going on after creating an image. It fails with an
> error. I'll investigate this and get back to you soon with results :)
>
> Error copying image in the repository: Datastore driver 'lvm' not
> available
>
>
>
>
>
> On 11.05.2012, at 17:14, Jaime Melis wrote:
>
> Hi Yves,
>
> in the image template (im.conf) do PATH = /var/lib/one/Master.raw,
> instead of SOURCE = /var/lib/one/Master.raw
>
> The rest looks fine.
>
> cheers,
> Jaime
>
> On Fri, May 11, 2012 at 5:10 PM, Vogl, Yves <vogl at adesso-mobile.de> wrote:
>
> 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 at 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 <vogl at 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 | jmelis at opennebula.org
>
>
>
>
>
> --
> Jaime Melis
> Project Engineer
> OpenNebula - The Open Source Toolkit for Cloud Computing
> www.OpenNebula.org | jmelis at opennebula.org
>
>
>
--
Jaime Melis
Project Engineer
OpenNebula - The Open Source Toolkit for Cloud Computing
www.OpenNebula.org | jmelis at opennebula.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opennebula.org/pipermail/users-opennebula.org/attachments/20120511/cd6872ca/attachment-0003.htm>
More information about the Users
mailing list