Closed mhoffmann75 closed 8 years ago
Hi Martin,
You can take a look at /var/log/SMlog file. There should be a more detailed description of the error.
If you send me the SMlog I can examine it.
Thanks! Okay, this seems to be the relevant part:
Jul 22 16:06:17 pns-xen06 SM: [29543] Raising exception [90, The request is missing the device parameter]
Jul 22 16:06:17 pns-xen06 SM: [29543] ***** RBD: EXCEPTION <class 'SR.SROSError'>, The request is missing the device parameter
Jul 22 16:06:17 pns-xen06 SM: [29543] File "/opt/xensource/sm/SRCommand.py", line 350, in run
Jul 22 16:06:17 pns-xen06 SM: [29543] sr = driver(cmd, cmd.sr_uuid)
Jul 22 16:06:17 pns-xen06 SM: [29543] File "/opt/xensource/sm/SR.py", line 147, in __init__
Jul 22 16:06:17 pns-xen06 SM: [29543] self.load(sr_uuid)
Jul 22 16:06:17 pns-xen06 SM: [29543] File "/opt/xensource/sm/RBDSR", line 172, in load
Jul 22 16:06:17 pns-xen06 SM: [29543] raise xs_errors.XenError('ConfigDeviceMissing',)
Jul 22 16:06:17 pns-xen06 SM: [29543] File "/opt/xensource/sm/xs_errors.py", line 52, in __init__
Jul 22 16:06:17 pns-xen06 SM: [29543] raise SR.SROSError(errorcode, errormessage)
Please note that this is the aforementioned patched RBDSR.py. With your original File the same error occurred but corresponding line was 168.
After commenting out the following two lines (168,169) it seems to work:
# if not self.dconf.has_key('monitors') or not self.dconf['monitors']:
# raise xs_errors.XenError('ConfigDeviceMissing',)
But this only disables the error and is a very dirty hack. The question is why there is an error in the first place?
However this way the storage could be attached to XenServer 7 without any error. But currently i'm not able to put any data (VMs) on it. Still investigating ...
It seems to fail on VDI creation, because ceph jewel uses some slightly different command line syntax:
cephutils.py fails in create_vdi:
cmd = ["rbd", "create", VDI_NAME, "--size", str(image_size), "--order", str(BLOCK_SIZE), "--pool", POOL_NAME, "--id", "xenserver", "--keyring", "/etc/ceph/ceph.client.xenserver.keyring"]
rbd complains that --order is deprecated. One should use --object-size 2M instead....
So whats best from here ? Downgrade ceph jewel?
So after removing the --order Statement from your rbd call (line 367 of cephutils.py) i am able to create disks on ceph jewel:
cmd = ["rbd", "create", VDI_NAME, "--size", str(image_size), "--pool", POOL_NAME, "--id", "xenserver", "--keyring", "/etc/ceph/ceph.client.xenserver.keyring"]
Don't know if its safe to omit --object-size or what value is safe here. @rposudnevskiy Could you please test if rbd create ... --object-size is already implemented in infernalis? Then best would be to use it and drop --order. Otherwise we need two different calls depending on ceph version :-(
Another problem seems to be that creating a disk with no label or no description or label or description with space in it breaks the VDI creation :-) Missing some quoting here i guess, Did this work on infernalis?
However i see some good starting point here to get it to work with jewel.
Hi Martin, Issues #1 and #2 have been fixed. In 'fuse' mode it should support all Jewel's features.
On XenServer 7 with Ceph Jewel we get the following error on xe pbd-plug attempt:
Any idea where to look at? The patch mentioned here https://github.com/rposudnevskiy/RBDSR/issues/1 does not seem to change anything....