[SOLVED] Fehler bei der Erstellung von OSDs mit Proxmox 6.1

Frau Bergmaier

New Member
Dec 10, 2019
2
0
1
46
Hallo Zusammen,

während ich diesen Forumeintrag schreibe, habe ich diesen Fehler bereits selber gelöst.


Beschreibung:

ich habe ein Proxmox Cluster mit drei Proxmox Maschinen.
Auf den Proxmox Maschinen verwenden wir einen Ceph Cluster mit 12 OSDs.
Die 12 OSDs sind HDDs dessen Journal auf einer NVME SSD ausgelagert sind.

Die Proxmox Maschinen habe ich damals auf Version 5.2 eingerichtet mit Ceph luminous.
Dank des sehr guten Upgrade Guides habe ich die drei Proxmox Maschinen ohne Fehler auf 6.1 geupgraded und das Ceph Cluster auf Nautilus geupgraded.

Damit ich den folgenden Fehler im Ceph Cluster löse, habe ich eine existierende OSD (osd.4) aus dem Ceph Cluster rausgenommen und mit der "Cleanup" Funktion in der GUI gelöscht.

Code:
BlueFS spillover detected on 7 OSD(s)

osd.5 spilled over 633 MiB metadata from 'db' device (711 MiB used of 1024 MiB) to slow device
osd.6 spilled over 635 MiB metadata from 'db' device (722 MiB used of 1024 MiB) to slow device
osd.7 spilled over 836 MiB metadata from 'db' device (919 MiB used of 1024 MiB) to slow device
osd.8 spilled over 559 MiB metadata from 'db' device (589 MiB used of 1024 MiB) to slow device
osd.9 spilled over 646 MiB metadata from 'db' device (563 MiB used of 1024 MiB) to slow device
osd.10 spilled over 559 MiB metadata from 'db' device (732 MiB used of 1024 MiB) to slow device
osd.11 spilled over 675 MiB metadata from 'db' device (648 MiB used of 1024 MiB) to slow device

Ich habe die OSD versucht über die GUI neu zu erstellen.
Leider bekomme ich dabei die folgende Fehlermeldung:

Code:
create OSD on /dev/sdb (bluestore)
creating block.db on '/dev/nvme0n1'
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.
Use of uninitialized value $part_or_lv in concatenation (.) or string at /usr/share/perl5/PVE/API2/Ceph/OSD.pm line 439.
using '' for block.db
wipe disk/partition: /dev/sdb
200+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 2.40848 s, 87.1 MB/s
Running command: /usr/bin/ceph-authtool --gen-print-key
Running command: /usr/bin/ceph-authtool --gen-print-key
Running command: /usr/bin/ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring -i - osd new ac3b2398-545f-4c38-9cd2-8c8a3db59d94
Running command: /sbin/vgcreate -s 1G --force --yes ceph-1425af3e-c3aa-4f65-bff8-19536fb7becc /dev/sdb
 stdout: Physical volume "/dev/sdb" successfully created.
 stdout: Volume group "ceph-1425af3e-c3aa-4f65-bff8-19536fb7becc" successfully created
Running command: /sbin/lvcreate --yes -l 100%FREE -n osd-block-ac3b2398-545f-4c38-9cd2-8c8a3db59d94 ceph-1425af3e-c3aa-4f65-bff8-19536fb7becc
 stdout: Logical volume "osd-block-ac3b2398-545f-4c38-9cd2-8c8a3db59d94" created.
--> blkid could not detect a PARTUUID for device: 
--> Was unable to complete a new OSD, will rollback changes
Running command: /usr/bin/ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring osd purge-new osd.4 --yes-i-really-mean-it
 stderr: 2019-12-12 13:43:31.146 7ff9a570c700 -1 auth: unable to find a keyring on /etc/pve/priv/ceph.client.bootstrap-osd.keyring: (2) No such file or directory
2019-12-12 13:43:31.146 7ff9a570c700 -1 AuthRegistry(0x7ff9a0080208) no keyring found at /etc/pve/priv/ceph.client.bootstrap-osd.keyring, disabling cephx
 stderr: purged osd.4
-->  RuntimeError: unable to use device
TASK ERROR: command 'ceph-volume lvm create --cluster-fsid ef36768a-f718-44e0-81f6-2b31e4bbd7ad --block.db '' --data /dev/sdb --dmcrypt' failed: exit code 1

Lösung:

Die Partitionstabelle scheint nicht neu geladen zu werden für die NVME SSD, wenn man versucht die OSD über die GUI zu erstellen.
Während Proxmox die OSD erstellt, habe ich das Kommando "partprobe /dev/nvme0n1" ausgeführt. Dann hat es funktioniert.

Code:
create OSD on /dev/sdb (bluestore)
creating block.db on '/dev/nvme0n1'
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.
using '/dev/nvme0n1p5' for block.db
wipe disk/partition: /dev/sdb
200+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 1.67652 s, 125 MB/s
Running command: /usr/bin/ceph-authtool --gen-print-key
Running command: /usr/bin/ceph-authtool --gen-print-key
Running command: /usr/bin/ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring -i - osd new 3164b033-003d-4c08-bf9d-5e91c44fc0b4
Running command: /sbin/vgcreate -s 1G --force --yes ceph-0c33a740-17bc-45f7-86bb-37833bdabe15 /dev/sdb
 stdout: Physical volume "/dev/sdb" successfully created.
 stdout: Volume group "ceph-0c33a740-17bc-45f7-86bb-37833bdabe15" successfully created
Running command: /sbin/lvcreate --yes -l 100%FREE -n osd-block-3164b033-003d-4c08-bf9d-5e91c44fc0b4 ceph-0c33a740-17bc-45f7-86bb-37833bdabe15
 stdout: Logical volume "osd-block-3164b033-003d-4c08-bf9d-5e91c44fc0b4" created.
Running command: /usr/bin/ceph-authtool --gen-print-key
Running command: /sbin/cryptsetup --batch-mode --key-file - luksFormat /dev/ceph-0c33a740-17bc-45f7-86bb-37833bdabe15/osd-block-3164b033-003d-4c08-bf9d-5e91c44fc0b4
Running command: /sbin/cryptsetup --key-file - --allow-discards luksOpen /dev/ceph-0c33a740-17bc-45f7-86bb-37833bdabe15/osd-block-3164b033-003d-4c08-bf9d-5e91c44fc0b4 Bw0KNL-h5mF-3AE4-IPVx-ildb-LQnE-7CgSsd
Running command: /sbin/cryptsetup --batch-mode --key-file - luksFormat /dev/nvme0n1p5
Running command: /sbin/cryptsetup --key-file - --allow-discards luksOpen /dev/nvme0n1p5 e182a35c-d5bf-4bae-bf26-4ab41fa62278
Running command: /bin/mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-4
--> Absolute path not found for executable: restorecon
--> Ensure $PATH environment variable contains common executable locations
Running command: /bin/chown -h ceph:ceph /dev/mapper/Bw0KNL-h5mF-3AE4-IPVx-ildb-LQnE-7CgSsd
Running command: /bin/chown -R ceph:ceph /dev/dm-6
Running command: /bin/ln -s /dev/mapper/Bw0KNL-h5mF-3AE4-IPVx-ildb-LQnE-7CgSsd /var/lib/ceph/osd/ceph-4/block
Running command: /usr/bin/ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring mon getmap -o /var/lib/ceph/osd/ceph-4/activate.monmap
.
.
.
Running command: /bin/systemctl enable --runtime ceph-osd@4
Running command: /bin/systemctl start ceph-osd@4
--> ceph-volume lvm activate successful for osd ID: 4
--> ceph-volume lvm create successful for: /dev/sdb
TASK OK


Oder Alternativ kann man das folgende Kommando verwenden, nachdem man eine Partition auf der NVME SSD erstellt hat.

Code:
ceph-volume lvm create --bluestore --dmcrypt --data /dev/sdb --block.db  /dev/nvme0n1p5

proxmox-ve: 6.1-2 (running kernel: 5.3.10-1-pve)
pve-manager: 6.1-3 (running version: 6.1-3/37248ce6)
pve-kernel-5.3: 6.0-12
pve-kernel-helper: 6.0-12
pve-kernel-5.0: 6.0-11
pve-kernel-4.15: 5.4-11
pve-kernel-5.3.10-1-pve: 5.3.10-1
pve-kernel-5.0.21-5-pve: 5.0.21-10
pve-kernel-4.15.18-23-pve: 4.15.18-51
pve-kernel-4.15.18-9-pve: 4.15.18-30
pve-kernel-4.15.18-7-pve: 4.15.18-27
pve-kernel-4.15.18-5-pve: 4.15.18-24
pve-kernel-4.13.13-2-pve: 4.13.13-33
ceph: 14.2.4.1-pve1
ceph-fuse: 14.2.4.1-pve1
corosync: 3.0.2-pve4
criu: 3.11-3
glusterfs-client: 5.5-3
ifupdown: 0.8.35+pve1
ksm-control-daemon: 1.3-1
libjs-extjs: 6.0.1-10
libknet1: 1.13-pve1
libpve-access-control: 6.0-5
libpve-apiclient-perl: 3.0-2
libpve-common-perl: 6.0-9
libpve-guest-common-perl: 3.0-3
libpve-http-server-perl: 3.0-3
libpve-storage-perl: 6.1-2
libqb0: 1.0.5-1
libspice-server1: 0.14.2-4~pve6+1
lvm2: 2.03.02-pve3
lxc-pve: 3.2.1-1
lxcfs: 3.0.3-pve60
novnc-pve: 1.1.0-1
proxmox-mini-journalreader: 1.1-1
proxmox-widget-toolkit: 2.1-1
pve-cluster: 6.1-2
pve-container: 3.0-14
pve-docs: 6.1-3
pve-edk2-firmware: 2.20191002-1
pve-firewall: 4.0-9
pve-firmware: 3.0-4
pve-ha-manager: 3.0-8
pve-i18n: 2.0-3
pve-qemu-kvm: 4.1.1-2
pve-xtermjs: 3.13.2-1
qemu-server: 6.1-2
smartmontools: 7.0-pve2
spiceterm: 3.1-1
vncterm: 1.6-1
zfsutils-linux: 0.8.2-pve2

{
"mon": {
"ceph version 14.2.4.1 (596a387fb278758406deabf997735a1f706660c9) nautilus (stable)": 3
},
"mgr": {
"ceph version 14.2.4.1 (596a387fb278758406deabf997735a1f706660c9) nautilus (stable)": 3
},
"osd": {
"ceph version 14.2.4.1 (596a387fb278758406deabf997735a1f706660c9) nautilus (stable)": 11
},
"mds": {},
"overall": {
"ceph version 14.2.4.1 (596a387fb278758406deabf997735a1f706660c9) nautilus (stable)": 17
}
}
 
Use of uninitialized value $part_or_lv in concatenation (.) or string at /usr/share/perl5/PVE/API2/Ceph/OSD.pm line 439. using '' for block.db
Wie schaut den das Disk Layout für die OSD aus? Und war dies jetzt ein Einzelfall oder bei mehreren OSDs?
 
Mit welchem Kommando kann ich das Disk Layout für die OSD anzeigen?
Bei mir sind alle OSDs betroffen bzw. ich konnte keine OSD über die GUI erstellen ohne das partprobe kommando dazwischen zu schieben.
 
Am besten ein ceph-volume lvm list und ein lsblk. Bitte auch eine OSD auf der CLI erstellen und den Output von pveceph create osd posten. Danke.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!