Ceph 創(chuàng)建 OSD 報(bào)錯(cuò) ‘GPT headers found, they must be removed’ 的處理

Ceph 創(chuàng)建 OSD 時(shí)報(bào)錯(cuò) GPT headers found, they must be removed on: /dev/sdX,全文示例如下:

Failed to apply osd.all-available-devices spec DriveGroupSpec(name=all-available-devices->placement=PlacementSpec(host_pattern='*'), service_id='all-available-devices', service_type='osd', data_devices=DeviceSelection(all=True), osd_id_claims={}, unmanaged=False, filter_logic='AND'): cephadm exited with an error code: 1, stderr:/usr/bin/docker:stderr usage: ceph-volume lvm batch [-h] [--db-devices [DB_DEVICES [DB_DEVICES ...]]] /usr/bin/docker:stderr [--wal-devices [WAL_DEVICES [WAL_DEVICES ...]]] /usr/bin/docker:stderr [--journal-devices [JOURNAL_DEVICES [JOURNAL_DEVICES ...]]] /usr/bin/docker:stderr [--auto] [--no-auto] [--bluestore] [--filestore] /usr/bin/docker:stderr [--report] [--yes] /usr/bin/docker:stderr [--format {json,json-pretty,pretty}] [--dmcrypt] /usr/bin/docker:stderr [--crush-device-class CRUSH_DEVICE_CLASS] /usr/bin/docker:stderr [--no-systemd] /usr/bin/docker:stderr [--osds-per-device OSDS_PER_DEVICE] /usr/bin/docker:stderr [--data-slots DATA_SLOTS] /usr/bin/docker:stderr [--block-db-size BLOCK_DB_SIZE] /usr/bin/docker:stderr [--block-db-slots BLOCK_DB_SLOTS] /usr/bin/docker:stderr [--block-wal-size BLOCK_WAL_SIZE] /usr/bin/docker:stderr [--block-wal-slots BLOCK_WAL_SLOTS] /usr/bin/docker:stderr [--journal-size JOURNAL_SIZE] /usr/bin/docker:stderr [--journal-slots JOURNAL_SLOTS] [--prepare] /usr/bin/docker:stderr [--osd-ids [OSD_IDS [OSD_IDS ...]]] /usr/bin/docker:stderr [DEVICES [DEVICES ...]] /usr/bin/docker:stderr ceph-volume lvm batch: error: GPT headers found, they must be removed on: /dev/sda Traceback (most recent call last): File "<stdin>", line 6113, in <module> File "<stdin>", line 1300, in _infer_fsid File "<stdin>", line 1383, in _infer_image File "<stdin>", line 3613, in command_ceph_volume File "<stdin>", line 1062, in call_throws RuntimeError: Failed command: /usr/bin/docker run --rm --ipc=host --net=host --entrypoint /usr/sbin/ceph-volume --privileged --group-add=disk -e CONTAINER_IMAGE=docker.io/ceph/ceph:v15 -e NODE_NAME=yc-hy08 -e CEPH_VOLUME_OSDSPEC_AFFINITY=all-available-devices -v /var/run/ceph/1c61cc7a-433d-11eb-9f93-2cea7f689033:/var/run/ceph:z -v /var/log/ceph/1c61cc7a-433d-11eb-9f93-2cea7f689033:/var/log/ceph:z -v /var/lib/ceph/1c61cc7a-433d-11eb-9f93-2cea7f689033/crash:/var/lib/ceph/crash:z -v /dev:/dev -v /run/udev:/run/udev -v /sys:/sys -v /run/lvm:/run/lvm -v /run/lock/lvm:/run/lock/lvm -v /tmp/ceph-tmplk1m2oxc:/etc/ceph/ceph.conf:z -v /tmp/ceph-tmp7vahlwql:/var/lib/ceph/bootstrap-osd/ceph.keyring:z docker.io/ceph/ceph:v15 lvm batch --no-auto /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh --yes --no-systemd Traceback (most recent call last): File "/usr/share/ceph/mgr/cephadm/serve.py", line 387, in _apply_all_services if self._apply_service(spec): File "/usr/share/ceph/mgr/cephadm/serve.py", line 425, in _apply_service self.mgr.osd_service.create_from_spec(cast(DriveGroupSpec, spec)) File "/usr/share/ceph/mgr/cephadm/services/osd.py", line 47, in create_from_spec ret = create_from_spec_one(self.prepare_drivegroup(drive_group)) File "/usr/share/ceph/mgr/cephadm/utils.py", line 68, in forall_hosts_wrapper return CephadmOrchestrator.instance._worker_pool.map(do_work, vals) File "/lib64/python3.6/multiprocessing/pool.py", line 266, in map return self._map_async(func, iterable, mapstar, chunksize).get() File "/lib64/python3.6/multiprocessing/pool.py", line 644, in get raise self._value File "/lib64/python3.6/multiprocessing/pool.py", line 119, in worker result = (True, func(*args, **kwds)) File "/lib64/python3.6/multiprocessing/pool.py", line 44, in mapstar return list(map(*args)) File "/usr/share/ceph/mgr/cephadm/utils.py", line 62, in do_work return f(*arg) File "/usr/share/ceph/mgr/cephadm/services/osd.py", line 43, in create_from_spec_one host, cmd, replace_osd_ids=osd_id_claims.get(host, []), env_vars=env_vars File "/usr/share/ceph/mgr/cephadm/services/osd.py", line 63, in create_single_host code, '\n'.join(err))) RuntimeError: cephadm exited with an error code: 1, stderr:/usr/bin/docker:stderr usage: ceph-volume lvm batch [-h] [--db-devices [DB_DEVICES [DB_DEVICES ...]]] /usr/bin/docker:stderr [--wal-devices [WAL_DEVICES [WAL_DEVICES ...]]] /usr/bin/docker:stderr [--journal-devices [JOURNAL_DEVICES [JOURNAL_DEVICES ...]]] /usr/bin/docker:stderr [--auto] [--no-auto] [--bluestore] [--filestore] /usr/bin/docker:stderr [--report] [--yes] /usr/bin/docker:stderr [--format {json,json-pretty,pretty}] [--dmcrypt] /usr/bin/docker:stderr [--crush-device-class CRUSH_DEVICE_CLASS] /usr/bin/docker:stderr [--no-systemd] /usr/bin/docker:stderr [--osds-per-device OSDS_PER_DEVICE] /usr/bin/docker:stderr [--data-slots DATA_SLOTS] /usr/bin/docker:stderr [--block-db-size BLOCK_DB_SIZE] /usr/bin/docker:stderr [--block-db-slots BLOCK_DB_SLOTS] /usr/bin/docker:stderr [--block-wal-size BLOCK_WAL_SIZE] /usr/bin/docker:stderr [--block-wal-slots BLOCK_WAL_SLOTS] /usr/bin/docker:stderr [--journal-size JOURNAL_SIZE] /usr/bin/docker:stderr [--journal-slots JOURNAL_SLOTS] [--prepare] /usr/bin/docker:stderr [--osd-ids [OSD_IDS [OSD_IDS ...]]] /usr/bin/docker:stderr [DEVICES [DEVICES ...]] /usr/bin/docker:stderr ceph-volume lvm batch: error: GPT headers found, they must be removed on: /dev/sda Traceback (most recent call last): File "<stdin>", line 6113, in <module> File "<stdin>", line 1300, in _infer_fsid File "<stdin>", line 1383, in _infer_image File "<stdin>", line 3613, in command_ceph_volume File "<stdin>", line 1062, in call_throws RuntimeError: Failed command: /usr/bin/docker run --rm --ipc=host --net=host --entrypoint /usr/sbin/ceph-volume --privileged --group-add=disk -e CONTAINER_IMAGE=docker.io/ceph/ceph:v15 -e NODE_NAME=yc-hy08 -e CEPH_VOLUME_OSDSPEC_AFFINITY=all-available-devices -v /var/run/ceph/1c61cc7a-433d-11eb-9f93-2cea7f689033:/var/run/ceph:z -v /var/log/ceph/1c61cc7a-433d-11eb-9f93-2cea7f689033:/var/log/ceph:z -v /var/lib/ceph/1c61cc7a-433d-11eb-9f93-2cea7f689033/crash:/var/lib/ceph/crash:z -v /dev:/dev -v /run/udev:/run/udev -v /sys:/sys -v /run/lvm:/run/lvm -v /run/lock/lvm:/run/lock/lvm -v /tmp/ceph-tmplk1m2oxc:/etc/ceph/ceph.conf:z -v /tmp/ceph-tmp7vahlwql:/var/lib/ceph/bootstrap-osd/ceph.keyring:z docker.io/ceph/ceph:v15 lvm batch --no-auto /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde /dev/sdf /dev/sdg /dev/sdh --yes --no-systemd

該錯(cuò)誤關(guān)鍵點(diǎn)就是 GPT headers found, they must be removed,發(fā)生原因應(yīng)該是之前磁盤被分區(qū)過(guò),雖然刪掉了分區(qū),但是還存在 GPT 數(shù)據(jù)結(jié)構(gòu),使用 sgdisk 命令進(jìn)行清除。
#sgdisk --zap-all /dev/sdX
sgdisk 命令參數(shù)如下:

Usage: sgdisk  [OPTION...] <device>
  -A, --attributes=list|[partnum:show|or|nand|xor|=|set|clear|toggle|get[:bitnum|hexbitmask]]     operate on partition attributes
  -a, --set-alignment=value                                                                       set sector alignment
  -b, --backup=file                                                                               backup GPT to file
  -c, --change-name=partnum:name                                                                  change partition's name
  -C, --recompute-chs                                                                             recompute CHS values in protective/hybrid MBR
  -d, --delete=partnum                                                                            delete a partition
  -D, --display-alignment                                                                         show number of sectors per allocation block
  -e, --move-second-header                                                                        move second header to end of disk
  -E, --end-of-largest                                                                            show end of largest free block
  -f, --first-in-largest                                                                          show start of the largest free block
  -F, --first-aligned-in-largest                                                                  show start of the largest free block, aligned
  -g, --mbrtogpt                                                                                  convert MBR to GPT
  -G, --randomize-guids                                                                           randomize disk and partition GUIDs
  -h, --hybrid=partnum[:partnum...]                                                               create hybrid MBR
  -i, --info=partnum                                                                              show detailed information on partition
  -j, --move-main-table=sector                                                                    adjust the location of the main partition table
  -l, --load-backup=file                                                                          load GPT backup from file
  -L, --list-types                                                                                list known partition types
  -m, --gpttombr=partnum[:partnum...]                                                             convert GPT to MBR
  -n, --new=partnum:start:end                                                                     create new partition
  -N, --largest-new=partnum                                                                       create largest possible new partition
  -o, --clear                                                                                     clear partition table
  -O, --print-mbr                                                                                 print MBR partition table
  -p, --print                                                                                     print partition table
  -P, --pretend                                                                                   make changes in memory, but don't write them
  -r, --transpose=partnum:partnum                                                                 transpose two partitions
  -R, --replicate=device_filename                                                                 replicate partition table
  -s, --sort                                                                                      sort partition table entries
  -S, --resize-table=numparts                                                                     resize partition table
  -t, --typecode=partnum:{hexcode|GUID}                                                           change partition type code
  -T, --transform-bsd=partnum                                                                     transform BSD disklabel partition to GPT
  -u, --partition-guid=partnum:guid                                                               set partition GUID
  -U, --disk-guid=guid                                                                            set disk GUID
  -v, --verify                                                                                    check partition table integrity
  -V, --version                                                                                   display version information
  -z, --zap                                                                                       zap (destroy) GPT (but not MBR) data structures
  -Z, --zap-all                                                                                   zap (destroy) GPT and MBR data structures

Help options:
  -?, --help                                                                                      Show this help message
      --usage                                                                                     Display brief usage message

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容