[Bug 1783542] [NEW] OSD creation on bcache device not working
Gábor Mészáros
gabor.meszaros at canonical.com
Wed Jul 25 11:26:04 UTC 2018
Public bug reported:
Using the ceph-osd charm on xenial hwe.
The charm successfully calls out for the regular ceph-disk prepare
command, but that fails since it thinks of that device being a partition
and doesn't create partition on top of bcache.
The log ends up with failing:
2018-07-24 14:41:40 INFO juju-log osdize cmd: ['ceph-disk', 'prepare', '--fs-type', 'xfs', '/dev/bcache4', '/dev/sdd']
2018-07-24 14:41:42 DEBUG add-disk set_data_partition: incorrect partition UUID: None, expected ['4fbd7e29-9d25-41b8-afd0-5ec00ceff05d', '4fbd7e29-9d25-41b8-afd0-062c0ceff05d', '4fbd7e29-8ae0-4982-bf9d-5a8d867af560', '4fbd7e29-9d25-41b8-afd0-35865ceff05d']
Full log:
https://pastebin.canonical.com/p/8JMM9JbhxZ/
After inspecting the ceph-disk source, I've found out where it is failing:
ceph/xenial-updates,now 10.2.9-0ubuntu0.16.04.1 amd64 [installed]
/usr/lib/python2.7/dist-packages/ceph_disk/main.py:#763
def is_partition(dev):
"""
Check whether a given device path is a partition or a full disk.
"""
if is_mpath(dev):
return is_partition_mpath(dev)
dev = os.path.realpath(dev)
st = os.lstat(dev)
if not stat.S_ISBLK(st.st_mode):
raise Error('not a block device', dev)
name = get_dev_name(dev)
if is_bcache(name):
return True
if os.path.exists(os.path.join('/sys/block', name)):
return False
If I remove the is_bcache check, it tries to create the partition on top
and succeeds with in only with running on xenial-hwe kernel
(4.13.0-45-generic at the moment).
However patches that support partitioning of bcache devices are not
available on the mainline kernel, so I suspect it would fail when not
having our patches applied. [0]
Note that this is probably related to the LP#1667078 fix [1] (bcache device numbers increase by 16) and
https://launchpadlibrarian.net/309401983/0001-bcache-Fix-bcache-device-names.patch
Also note that this issue is not related to LP#1729145 or LP#1728742 as
I'm already running on the fixed kernel and the sympthoms are different.
[2]. Also MAAS is up to date. [3]
I assume this patch has been accepted by Canonical (not mainline ceph)
and causing us the issue [4].
[0]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b8c0d911ac5285e6be8967713271a51bdc5a936a
[1]: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1667078
[2]: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1729145
[3]: https://bugs.launchpad.net/curtin/+bug/1728742
[4]: http://tracker.ceph.com/issues/13278
** Affects: ceph (Ubuntu)
Importance: Undecided
Status: New
** Tags: 4010
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to ceph in Ubuntu.
https://bugs.launchpad.net/bugs/1783542
Title:
OSD creation on bcache device not working
Status in ceph package in Ubuntu:
New
Bug description:
Using the ceph-osd charm on xenial hwe.
The charm successfully calls out for the regular ceph-disk prepare
command, but that fails since it thinks of that device being a
partition and doesn't create partition on top of bcache.
The log ends up with failing:
2018-07-24 14:41:40 INFO juju-log osdize cmd: ['ceph-disk', 'prepare', '--fs-type', 'xfs', '/dev/bcache4', '/dev/sdd']
2018-07-24 14:41:42 DEBUG add-disk set_data_partition: incorrect partition UUID: None, expected ['4fbd7e29-9d25-41b8-afd0-5ec00ceff05d', '4fbd7e29-9d25-41b8-afd0-062c0ceff05d', '4fbd7e29-8ae0-4982-bf9d-5a8d867af560', '4fbd7e29-9d25-41b8-afd0-35865ceff05d']
Full log:
https://pastebin.canonical.com/p/8JMM9JbhxZ/
After inspecting the ceph-disk source, I've found out where it is failing:
ceph/xenial-updates,now 10.2.9-0ubuntu0.16.04.1 amd64 [installed]
/usr/lib/python2.7/dist-packages/ceph_disk/main.py:#763
def is_partition(dev):
"""
Check whether a given device path is a partition or a full disk.
"""
if is_mpath(dev):
return is_partition_mpath(dev)
dev = os.path.realpath(dev)
st = os.lstat(dev)
if not stat.S_ISBLK(st.st_mode):
raise Error('not a block device', dev)
name = get_dev_name(dev)
if is_bcache(name):
return True
if os.path.exists(os.path.join('/sys/block', name)):
return False
If I remove the is_bcache check, it tries to create the partition on
top and succeeds with in only with running on xenial-hwe kernel
(4.13.0-45-generic at the moment).
However patches that support partitioning of bcache devices are not
available on the mainline kernel, so I suspect it would fail when not
having our patches applied. [0]
Note that this is probably related to the LP#1667078 fix [1] (bcache device numbers increase by 16) and
https://launchpadlibrarian.net/309401983/0001-bcache-Fix-bcache-device-names.patch
Also note that this issue is not related to LP#1729145 or LP#1728742
as I'm already running on the fixed kernel and the sympthoms are
different. [2]. Also MAAS is up to date. [3]
I assume this patch has been accepted by Canonical (not mainline ceph)
and causing us the issue [4].
[0]: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b8c0d911ac5285e6be8967713271a51bdc5a936a
[1]: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1667078
[2]: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1729145
[3]: https://bugs.launchpad.net/curtin/+bug/1728742
[4]: http://tracker.ceph.com/issues/13278
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ceph/+bug/1783542/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list