Actions
Bug #6955
closedceph-disk should set the guid correctly when re-using a partition
Status:
Won't Fix
Priority:
High
Assignee:
-
Category:
ceph cli
Target version:
-
% Done:
0%
Source:
Community (user)
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Description
If an existing ceph data partition is re-used, the partition GUID is not reset when ceph-disk prepares it. As a consequence it will not be identified as a ceph data partition by the ceph udev rules and the OSD won't start when the machine boots.
Steps to reproduce:
loic@fold:~/software/ceph/ceph/src$ sudo sgdisk --typecode=1:99999999-9d25-41b8-afd0-062c0ceff05d /dev/loop2 Warning: The kernel is still using the old partition table. The new table will be used at the next reboot. The operation has completed successfully. loic@fold:~/software/ceph/ceph/src$ sudo partprobe /dev/loop2 loic@fold:~/software/ceph/ceph/src$ sudo sgdisk --info 1 /dev/loop2 Partition GUID code: 99999999-9D25-41B8-AFD0-062C0CEFF05D (Unknown) Partition unique GUID: 66D87896-493A-48B4-A803-6ED6DE5D49AB First sector: 2048 (at 1024.0 KiB) Last sector: 819166 (at 400.0 MiB) Partition size: 817119 sectors (399.0 MiB) Attribute flags: 0000000000000000 Partition name: 'ceph data' loic@fold:~/software/ceph/ceph/src$ #sudo env PATH=$PATH ceph-disk --verbose prepare /dev/loop2 /tmp/journal loic@fold:~/software/ceph/ceph/src$ touch /tmp/journal loic@fold:~/software/ceph/ceph/src$ sudo env PATH=$PATH ceph-disk --verbose prepare /dev/loop2p1 /tmp/journal INFO:ceph-disk:Running command: ceph-osd --cluster=ceph --show-config-value=fsid INFO:ceph-disk:Running command: ceph-conf --cluster=ceph --name=osd. --lookup osd_mkfs_type INFO:ceph-disk:Running command: ceph-conf --cluster=ceph --name=osd. --lookup osd_fs_type INFO:ceph-disk:Running command: ceph-conf --cluster=ceph --name=osd. --lookup osd_mkfs_options_xfs INFO:ceph-disk:Running command: ceph-conf --cluster=ceph --name=osd. --lookup osd_fs_mkfs_options_xfs INFO:ceph-disk:Running command: ceph-conf --cluster=ceph --name=osd. --lookup osd_mount_options_xfs INFO:ceph-disk:Running command: ceph-conf --cluster=ceph --name=osd. --lookup osd_fs_mount_options_xfs INFO:ceph-disk:Running command: ceph-osd --cluster=ceph --show-config-value=osd_journal_size INFO:ceph-disk:Running command: ceph-conf --cluster=ceph --name=osd. --lookup osd_cryptsetup_parameters INFO:ceph-disk:Running command: ceph-conf --cluster=ceph --name=osd. --lookup osd_dmcrypt_key_size INFO:ceph-disk:Running command: ceph-conf --cluster=ceph --name=osd. --lookup osd_dmcrypt_type DEBUG:ceph-disk:Journal is file /tmp/journal WARNING:ceph-disk:OSD will not be hot-swappable if journal is not the same device as the osd data DEBUG:ceph-disk:OSD data device /dev/loop2p1 is a partition DEBUG:ceph-disk:Creating xfs fs on /dev/loop2p1 INFO:ceph-disk:Running command: /sbin/mkfs -t xfs -f -i size=2048 -- /dev/loop2p1 meta-data=/dev/loop2p1 isize=2048 agcount=4, agsize=25535 blks = sectsz=512 attr=2, projid32bit=0 data = bsize=4096 blocks=102139, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal log bsize=4096 blocks=1232, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 DEBUG:ceph-disk:Mounting /dev/loop2p1 on /var/lib/ceph/tmp/mnt.IUm2Xm with options noatime,inode64 INFO:ceph-disk:Running command: mount -t xfs -o noatime,inode64 -- /dev/loop2p1 /var/lib/ceph/tmp/mnt.IUm2Xm DEBUG:ceph-disk:Preparing osd data dir /var/lib/ceph/tmp/mnt.IUm2Xm DEBUG:ceph-disk:Creating symlink /var/lib/ceph/tmp/mnt.IUm2Xm/journal -> /tmp/journal DEBUG:ceph-disk:Unmounting /var/lib/ceph/tmp/mnt.IUm2Xm INFO:ceph-disk:Running command: /bin/umount -- /var/lib/ceph/tmp/mnt.IUm2Xm umount: /var/lib/ceph/tmp/mnt.IUm2Xm: device is busy. (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1)) DEBUG:ceph-disk:Unmounting /var/lib/ceph/tmp/mnt.IUm2Xm INFO:ceph-disk:Running command: /bin/umount -- /var/lib/ceph/tmp/mnt.IUm2Xm DEBUG:ceph-disk:Calling partprobe on prepared device /dev/loop2p1 INFO:ceph-disk:Running command: /sbin/partprobe /dev/loop2p1 Error: Partition(s) 1 on /dev/loop2p1 have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes. loic@fold:~/software/ceph/ceph/src$ sudo sgdisk --info 1 /dev/loop2 Partition GUID code: 99999999-9D25-41B8-AFD0-062C0CEFF05D (Unknown) Partition unique GUID: 66D87896-493A-48B4-A803-6ED6DE5D49AB First sector: 2048 (at 1024.0 KiB) Last sector: 819166 (at 400.0 MiB) Partition size: 817119 sectors (399.0 MiB) Attribute flags: 0000000000000000 Partition name: 'ceph data' loic@fold:~/software/ceph/ceph/src$ sudo partprobe /dev/loop2 loic@fold:~/software/ceph/ceph/src$ sudo sgdisk --info 1 /dev/loop2 Partition GUID code: 99999999-9D25-41B8-AFD0-062C0CEFF05D (Unknown) Partition unique GUID: 66D87896-493A-48B4-A803-6ED6DE5D49AB First sector: 2048 (at 1024.0 KiB) Last sector: 819166 (at 400.0 MiB) Partition size: 817119 sectors (399.0 MiB) Attribute flags: 0000000000000000 Partition name: 'ceph data'
See mailing list thread: http://lists.ceph.com/pipermail/ceph-users-ceph.com/2013-December/006650.html
Actions