Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SR_BACKEND_FAILURE_90 with ceph jewel and xenserver 7 #2

Closed
mhoffmann75 opened this issue Jul 22, 2016 · 5 comments
Closed

SR_BACKEND_FAILURE_90 with ceph jewel and xenserver 7 #2

mhoffmann75 opened this issue Jul 22, 2016 · 5 comments
Assignees

Comments

@mhoffmann75
Copy link
Collaborator

On XenServer 7 with Ceph Jewel we get the following error on xe pbd-plug attempt:

# xe pbd-plug uuid=xxxx
Error code: SR_BACKEND_FAILURE_90
Error parameters: , The request is missing the device parameter,

Any idea where to look at?
The patch mentioned here #1 does not seem to change anything....

@rposudnevskiy
Copy link
Owner

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.

@rposudnevskiy rposudnevskiy self-assigned this Jul 22, 2016
@mhoffmann75
Copy link
Collaborator Author

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 ...

@mhoffmann75
Copy link
Collaborator Author

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?

@mhoffmann75
Copy link
Collaborator Author

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.

rposudnevskiy pushed a commit that referenced this issue Jul 24, 2016
…ode and 'fuse' mode

To support 'fuse' mode it is required to install fuse, fuse-libs,
rbd-fuse packages.
It is also required to copy `ceph.client.admin.keyring` file to
XenServer hosts from Ceph cluster node
'Fuse' mode is default mode
@rposudnevskiy
Copy link
Owner

rposudnevskiy commented Jul 24, 2016

Hi Martin,
Issues #1 and #2 have been fixed.
In 'fuse' mode it should support all Jewel's features.

rposudnevskiy pushed a commit that referenced this issue Jul 23, 2018
rposudnevskiy pushed a commit that referenced this issue Oct 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants