-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
regression: OSD cannot be deployed on PV backed by LVM Logical Volume #5075
Labels
Comments
4 tasks
@morimoto-cybozu are you going to send a PR to fix this? It looks like you have analyzed the issue quite well. Thanks. It would be nice to have this for 1.3. |
@leseb |
I'm trying to use |
9 tasks
morimoto-cybozu
added a commit
to cybozu-go/rook
that referenced
this issue
Mar 27, 2020
This commit adds support for LVs to the device availability check in the OSD prepare pod. The availability of an LV is checked by "ceph-volume lvm list". If it returns non-empty result, the LV is in use and not available. Closes: rook#5075 Signed-off-by: morimoto-cybozu <kenji_morimoto@cybozu.co.jp>
binoue
pushed a commit
to binoue/rook
that referenced
this issue
Apr 10, 2020
This commit adds support for LVs to the device availability check in the OSD prepare pod. The availability of an LV is checked by "ceph-volume lvm list". If it returns non-empty result, the LV is in use and not available. Closes: rook#5075 Signed-off-by: morimoto-cybozu <kenji_morimoto@cybozu.co.jp>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Is this a bug report or feature request?
Deviation from expected behavior:
When configuring an OSD on PVC with a PV backed by an LVM Logical Volume, the OSD prepare pod fails to initialize the LV device as an OSD.
It fails when I use the master of Rook while it succeeds with Rook v1.2.6. The problem was introduced around the refactor of OSD store.
There are two problems. The more important issue is that the availability check using
ceph-volume inventory
ininventoryDevice()
does not succeed for LVs. I tried/dev/mapper/vg1-lv1
,/dev/vg1/lv1
,/dev/dm-7
, andvg1/lv1
forceph-volume inventory
, and received "Insufficient space (<5GB)" in all cases.(This is a little off the topic, but the error message of ceph-volume seems odd. I'll send a bug fix PR to the Ceph community.)
As a minor issue,
inventoryDevice()
passes "/dev/<device.RealName>" toceph-volume inventory
if pvcBacked, but this is not good for LVs. "/dev/<device.RealName>" produces a non-existent device path like/dev/vg1-lv1
instead of/dev/mapper/vg1-lv1
.Expected behavior:
The LV device is initialized as an OSD.
How to reproduce it (minimal and precise):
vg1/lv1
on 10.69.0.4Files:
pv.yaml:
cluster.yaml:
OSD prepare pod log:
Environment:
uname -a
): Linux rack0-cs4 4.19.106-coreos Monitor bootstrapping with libcephd #1 SMP Wed Feb 26 21:43:18 -00 2020 x86_64 Intel(R) Xeon(R) CPU GenuineIntel GNU/Linuxrook version
inside of a Rook Pod): v1.1.0-beta.0.1102.gda3bf49 (using rook/ceph:master)ceph -v
): ceph version 14.2.8 (2d095e947a02261ce61424021bb43bd3022d35cb) nautilus (stable)kubectl version
): v1.16.6-beta.0ceph health
in the Rook Ceph toolbox): N/AThe text was updated successfully, but these errors were encountered: