Project

General

Profile

Actions

Bug #49807

open

unable to create 2 LV from a volume group with an odd number of physical extents

Added by Gheorghita BUTNARU about 3 years ago. Updated about 3 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
2 - major
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

I have 3 OSD nodes with 8 HDDs Hitachi (9.1 TiB), 4 NVMes Micron_9300 (2.9 TiB), and 2 NVMes Intel Optane P4800X (375 GiB). I want to use spinning disks for the data block, 2.9 NVMes for the block.DB and the intel Optane for the block.wal.

I would expect 1 lv on every data disk, 4 lv on wal disks, and 2 lv on DB disks. The problem arises on DB disks where only 1 lv gets created.

After some debugging, I think that the problem is generated when the VG gets divided into 2. I have 763089 Total PE and the first LV was created using 381545 PE (round-up for 763089/2 ?). Thanks to that, the creation of the second LV fails: "Volume group "ceph-d1b2ae26-bad3-4790-90fd-5d5e7d04dc8f" has insufficient free space (381544 extents): 381545 required."

I tried with a spec file and also via the ceph dashboard, both with and without a number of slots defined.

[
  {
    "service_type": "osd",
    "service_id": "dashboard-admin-1615816083969",
    "host_pattern": "*",
    "data_devices": {
      "vendor": "HGST" 
    },
    "wal_devices": {
      "model": "INTEL SSDPED1K375GA" 
    },
    "db_devices": {
      "model": "Micron_9300_MTFDHAL3T2TDR" 
    },
    "db_slots": 2,
    "wal_slots": 4
  }
]

first lv:

[2021-03-15 13:52:47,645][ceph_volume.process][INFO  ] Running command: /usr/bin/lsblk --nodeps -P -o NAME,KNAME,MAJ:MIN,FSTYPE,MOUNTPOINT,LABEL,UUID,RO,RM,MODEL,SIZE,STATE,OWNER,GROUP,MODE,ALIGNMENT,PHY-SEC,LOG
-SEC,ROTA,SCHED,TYPE,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,PKNAME,PARTLABEL /dev/nvme3n1
[2021-03-15 13:52:47,648][ceph_volume.process][INFO  ] stdout NAME="nvme3n1" KNAME="nvme3n1" MAJ:MIN="259:6" FSTYPE="" MOUNTPOINT="" LABEL="" UUID="" RO="0" RM="0" MODEL="Micron_9300_MTFDHAL3T2TDR               
" SIZE="2.9T" STATE="live" OWNER="root" GROUP="disk" MODE="brw-rw----" ALIGNMENT="0" PHY-SEC="512" LOG-SEC="512" ROTA="0" SCHED="none" TYPE="disk" DISC-ALN="0" DISC-GRAN="512B" DISC-MAX="2T" DISC-ZERO="0" PKNAME
="" PARTLABEL="" 
[2021-03-15 13:52:47,648][ceph_volume.process][INFO  ] Running command: /usr/sbin/pvs --noheadings --readonly --units=b --nosuffix --separator=";" -o vg_name,pv_count,lv_count,vg_attr,vg_extent_count,vg_free_cou
nt,vg_extent_size /dev/nvme3n1
[2021-03-15 13:52:47,723][ceph_volume.process][INFO  ] stderr Failed to find physical volume "/dev/nvme3n1".
[2021-03-15 13:52:47,724][ceph_volume.process][INFO  ] Running command: /usr/sbin/vgcreate --force --yes ceph-d1b2ae26-bad3-4790-90fd-5d5e7d04dc8f /dev/nvme3n1
[2021-03-15 13:52:47,751][ceph_volume.process][INFO  ] stdout Physical volume "/dev/nvme3n1" successfully created.
[2021-03-15 13:52:47,753][ceph_volume.process][INFO  ] stdout Volume group "ceph-d1b2ae26-bad3-4790-90fd-5d5e7d04dc8f" successfully created
[2021-03-15 13:52:47,775][ceph_volume.process][INFO  ] Running command: /usr/sbin/vgs --noheadings --readonly --units=b --nosuffix --separator=";" -S vg_name=ceph-d1b2ae26-bad3-4790-90fd-5d5e7d04dc8f -o vg_name,
pv_count,lv_count,vg_attr,vg_extent_count,vg_free_count,vg_extent_size
[2021-03-15 13:52:47,853][ceph_volume.process][INFO  ] stdout ceph-d1b2ae26-bad3-4790-90fd-5d5e7d04dc8f";"1";"0";"wz--n-";"763089";"763089";"4194304
[2021-03-15 13:52:47,854][ceph_volume.api.lvm][DEBUG ] size was passed: 1.46 TB -> 381545
[2021-03-15 13:52:47,854][ceph_volume.process][INFO  ] Running command: /usr/sbin/lvcreate --yes -l 381545 -n osd-db-2192de32-0d9b-4b49-82fb-237a5a7ccab7 ceph-d1b2ae26-bad3-4790-90fd-5d5e7d04dc8f
[2021-03-15 13:52:47,917][ceph_volume.process][INFO  ] stdout Logical volume "osd-db-2192de32-0d9b-4b49-82fb-237a5a7ccab7" created.

second LV:

[2021-03-15 13:52:53,963][ceph_volume.process][INFO  ] Running command: /usr/bin/lsblk --nodeps -P -o NAME,KNAME,MAJ:MIN,FSTYPE,MOUNTPOINT,LABEL,UUID,RO,RM,MODEL,SIZE,STATE,OWNER,GROUP,MODE,ALIGNMENT,PHY-SEC,LOG
-SEC,ROTA,SCHED,TYPE,DISC-ALN,DISC-GRAN,DISC-MAX,DISC-ZERO,PKNAME,PARTLABEL /dev/nvme3n1
[2021-03-15 13:52:53,965][ceph_volume.process][INFO  ] stdout NAME="nvme3n1" KNAME="nvme3n1" MAJ:MIN="259:6" FSTYPE="LVM2_member" MOUNTPOINT="" LABEL="" UUID="08x6yC-nrp4-8GYz-yTgj-w2U0-StLk-Vieqhp" RO="0" RM="0
" MODEL="Micron_9300_MTFDHAL3T2TDR               " SIZE="2.9T" STATE="live" OWNER="root" GROUP="disk" MODE="brw-rw----" ALIGNMENT="0" PHY-SEC="512" LOG-SEC="512" ROTA="0" SCHED="none" TYPE="disk" DISC-ALN="0" DI
SC-GRAN="512B" DISC-MAX="2T" DISC-ZERO="0" PKNAME="" PARTLABEL="" 
[2021-03-15 13:52:53,966][ceph_volume.process][INFO  ] Running command: /usr/sbin/pvs --noheadings --readonly --units=b --nosuffix --separator=";" -o vg_name,pv_count,lv_count,vg_attr,vg_extent_count,vg_free_cou
nt,vg_extent_size /dev/nvme3n1
[2021-03-15 13:52:54,030][ceph_volume.process][INFO  ] stdout ceph-d1b2ae26-bad3-4790-90fd-5d5e7d04dc8f";"1";"1";"wz--n-";"763089";"381544";"4194304
[2021-03-15 13:52:54,030][ceph_volume.api.lvm][DEBUG ] size was passed: 1.46 TB -> 381545
[2021-03-15 13:52:54,031][ceph_volume.process][INFO  ] Running command: /usr/sbin/lvcreate --yes -l 381545 -n osd-db-a147911c-2e21-4bb0-a8f9-e493a53e9070 ceph-d1b2ae26-bad3-4790-90fd-5d5e7d04dc8f
[2021-03-15 13:52:54,077][ceph_volume.process][INFO  ] stderr Volume group "ceph-d1b2ae26-bad3-4790-90fd-5d5e7d04dc8f" has insufficient free space (381544 extents): 381545 required.
[2021-03-15 13:52:54,094][ceph_volume.devices.lvm.prepare][ERROR ] lvm prepare was unable to complete
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/ceph_volume/devices/lvm/prepare.py", line 252, in safe_prepare
    self.prepare()
  File "/usr/lib/python3.6/site-packages/ceph_volume/decorators.py", line 16, in is_root
    return func(*a, **kw)
  File "/usr/lib/python3.6/site-packages/ceph_volume/devices/lvm/prepare.py", line 382, in prepare
    self.args.block_db_slots)
  File "/usr/lib/python3.6/site-packages/ceph_volume/devices/lvm/prepare.py", line 181, in setup_device
    **kwargs)
  File "/usr/lib/python3.6/site-packages/ceph_volume/api/lvm.py", line 949, in create_lv
    process.run(command)
  File "/usr/lib/python3.6/site-packages/ceph_volume/process.py", line 153, in run
    raise RuntimeError(msg)
RuntimeError: command returned non-zero exit status: 5
[2021-03-15 13:52:54,095][ceph_volume.devices.lvm.prepare][INFO  ] will rollback OSD ID creation
[2021-03-15 13:52:54,095][ceph_volume.process][INFO  ] Running command: /usr/bin/ceph --cluster ceph --name client.bootstrap-osd --keyring /var/lib/ceph/bootstrap-osd/ceph.keyring osd purge-new osd.1 --yes-i-really-mean-it
[2021-03-15 13:52:54,362][ceph_volume.process][INFO  ] stderr purged osd.1
[2021-03-15 13:52:54,369][ceph_volume][ERROR ] exception caught by decorator
Traceback (most recent call last):
  File "/usr/lib/python3.6/site-packages/ceph_volume/decorators.py", line 59, in newfunc
    return f(*a, **kw)
  File "/usr/lib/python3.6/site-packages/ceph_volume/main.py", line 152, in main
    terminal.dispatch(self.mapper, subcommand_args)
  File "/usr/lib/python3.6/site-packages/ceph_volume/terminal.py", line 194, in dispatch
    instance.main()
  File "/usr/lib/python3.6/site-packages/ceph_volume/devices/lvm/main.py", line 42, in main
    terminal.dispatch(self.mapper, self.argv)
  File "/usr/lib/python3.6/site-packages/ceph_volume/terminal.py", line 194, in dispatch
    instance.main()
  File "/usr/lib/python3.6/site-packages/ceph_volume/decorators.py", line 16, in is_root
    return func(*a, **kw)
  File "/usr/lib/python3.6/site-packages/ceph_volume/devices/lvm/batch.py", line 415, in main
    self._execute(plan)
  File "/usr/lib/python3.6/site-packages/ceph_volume/devices/lvm/batch.py", line 434, in _execute
    c.create(argparse.Namespace(**args))
  File "/usr/lib/python3.6/site-packages/ceph_volume/decorators.py", line 16, in is_root
    return func(*a, **kw)
  File "/usr/lib/python3.6/site-packages/ceph_volume/devices/lvm/create.py", line 26, in create
    prepare_step.safe_prepare(args)
  File "/usr/lib/python3.6/site-packages/ceph_volume/devices/lvm/prepare.py", line 252, in safe_prepare
    self.prepare()
  File "/usr/lib/python3.6/site-packages/ceph_volume/decorators.py", line 16, in is_root
    return func(*a, **kw)
  File "/usr/lib/python3.6/site-packages/ceph_volume/devices/lvm/prepare.py", line 382, in prepare
    self.args.block_db_slots)
  File "/usr/lib/python3.6/site-packages/ceph_volume/devices/lvm/prepare.py", line 181, in setup_device
    **kwargs)
  File "/usr/lib/python3.6/site-packages/ceph_volume/api/lvm.py", line 949, in create_lv
    process.run(command)
  File "/usr/lib/python3.6/site-packages/ceph_volume/process.py", line 153, in run
    raise RuntimeError(msg)
RuntimeError: command returned non-zero exit status: 5

Actions #1

Updated by Gheorghita BUTNARU about 3 years ago

ceph version 15.2.9 (357616cbf726abb779ca75a551e8d02568e15b17) octopus (stable)
Red Hat Enterprise Linux release 8.3 (Ootpa)

Deployed using cephadm

Actions #2

Updated by Sebastian Wagner about 3 years ago

  • Project changed from Orchestrator to ceph-volume
  • Category deleted (orchestrator)
Actions

Also available in: Atom PDF