Привет! Я пытаюсь создать план аварийного восстановления для нашего кластера PVE с CEPH. Наша текущая конфигурация включает три монитора на трех серверах. Мы будем использовать три монитора и стандартную конфигурацию пула (3 реплики). Я пытаюсь создать руководство по удалению конфигурации монитора и запуску только на одном мониторе. Я получил monmap от работающего CEPH, удалил два остановленных монитора из него и отредактировал ceph.conf соответствующим образом:
```
root@nextclouda:~# ceph mon getmap -o /root/monmap
root@nextclouda:~# monmaptool --rm nextcloudb /root/monmap
root@nextclouda:~# monmaptool --rm nextcloudc /root/monmap
root@nextclouda:~# cat /etc/pve/ceph.conf
[global]
auth_client_required = cephx
auth_cluster_required = cephx
auth_service_required = cephx
cluster_network = 10.0.0.1/24
fsid = cf282c03-77a3-458d-8989-b4a477f121dd
mon_allow_pool_delete = true
mon_host = 10.0.1.1
#10.0.1.2 10.0.1.3
ms_bind_ipv4 = true
ms_bind_ipv6 = false
osd_pool_default_min_size = 2
osd_pool_default_size = 3
public_network = 10.0.1.1/24
[client]
keyring = /etc/pve/priv/$cluster.$name.keyring
[client.crash]
keyring = /etc/pve/ceph/$cluster.$name.keyring
[mds]
keyring = /var/lib/ceph/mds/ceph-$id/keyring
[mds.nextclouda]
host = nextclouda
mds_standby_for_name = pve
[mds.nextcloudb]
host = nextcloudb
mds_standby_for_name = pve
[mds.nextcloudc]
host = nextcloudc
mds_standby_for_name = pve
[mon.nextclouda]
public_addr = 10.0.1.1
#[mon.nextcloudb]
# public_addr = 10.0.1.2
#
#[mon.nextcloudc]
# public_addr = 10.0.1.3
```
Используя эти команды, мне удалось удалить конфигурацию монитора и перезапустить один монитор, имеющий кворум (третий хост nextcloudc полностью выключен, а служба монитора на втором хосте nextcloudb остановлена вручную):
```
root@nextclouda:~# systemctl stop ceph-mon@nextclouda
root@nextclouda:~# rm -rf /var/lib/ceph/mon/ceph-nextclouda
root@nextclouda:~# ceph-mon --monmap /root/monmap --keyring /etc/pve/priv/ceph.mon.keyring --mkfs -i nextclouda -m 10.0.1.1
root@nextclouda:~# chown -R ceph:ceph /var/lib/ceph/mon/ceph-nextclouda
root@nextclouda:~# systemctl start ceph-mon@nextclouda
root@nextclouda:~# ceph -s
cluster:
id: cf282c03-77a3-458d-8989-b4a477f121dd
health: HEALTH_WARN
mon is allowing insecure global_id reclaim
services:
mon: 1 daemons, quorum nextclouda (age 50s)
mgr: no daemons active
osd: 0 osds: 0 up, 0 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs:
```
Но, как вы видите, теперь монитор не видит никаких OSD, пулов или менеджеров для cephfs. Я пытаюсь сделать это без пересоздания всего вручную, но буду прибегать к этому, если потребуется. Я буду очень благодарен за вашу помощь и/или советы, если то, что я пытаюсь сделать, имеет смысл. У меня есть резервная копия /var/lib/ceph и оригинальный monmap, если они могут помочь.
```
package versions:
proxmox-ve: 8.3.0 (running kernel: 6.8.12-9-pve)
pve-manager: 8.3.5 (running version: 8.3.5/dac3aa88bac3f300)
proxmox-kernel-helper: 8.1.1
proxmox-kernel-6.8: 6.8.12-9
proxmox-kernel-6.8.12-9-pve-signed: 6.8.12-9
proxmox-kernel-6.8.12-8-pve-signed: 6.8.12-8
proxmox-kernel-6.8.12-4-pve-signed: 6.8.12-4
ceph: 19.2.1-pve2
ceph-fuse: 19.2.1-pve2
corosync: 3.1.9-pve1
criu: 3.17.1-2+deb12u1
dnsmasq: 2.90-4~deb12u1
glusterfs-client: 10.3-5
ifupdown2: 3.2.0-1+pmx11
ksm-control-daemon: 1.5-1
libjs-extjs: 7.0.0-5
libknet1: 1.30-pve1
libproxmox-acme-perl: 1.6.0
libproxmox-backup-qemu0: 1.5.1
libproxmox-rs-perl: 0.3.5
libpve-access-control: 8.2.1
libpve-apiclient-perl: 3.3.2
libpve-cluster-api-perl: 8.1.0
libpve-cluster-perl: 8.1.0
libpve-common-perl: 8.3.0
libpve-guest-common: 3.3.0
libpve-ha-manager: 4.0.6
libpve-i18n: 3.4.1
libpve-proxy-modules: 3.4.0
lxcfs: 6.0.0-pve2
novnc-pve: 1.6.0-2
proxmox-backup-client: 3.3.7-1
proxmox-backup-file-restore: 3.3.7-1
proxmox-firewall: 0.6.0
proxmox-mini-journalreader: 1.4.0
proxmox-offline-mirror-helper: 0.6.7
proxmox-proxy: 6.1-1
proxmox-widget-toolkit: 4.3.8
pve-cluster: 8.1.0
pve-container: 5.2.5
pve-docs: 8.3.1
pve-edk2-firmware: 4.2025.02-3
pve-esxi-import-tools: 0.7.2
pve-firewall: 5.1.0
pve-firmware: 3.15-3
pve-qemu-kvm: 9.2.0-5
pve-xtermjs: 5.5.0-1
qemu-server: 3.6.0-1
smartmontools: 7.3-pve1
spiceterm: 3.3.0
swtpm: 0.8.0+pve1
vncterm: 1.8.0
zfsutils-linux: 2.2.7-pve2
```
Спасибо вам большое и прекрасного дня!
```
root@nextclouda:~# ceph mon getmap -o /root/monmap
root@nextclouda:~# monmaptool --rm nextcloudb /root/monmap
root@nextclouda:~# monmaptool --rm nextcloudc /root/monmap
root@nextclouda:~# cat /etc/pve/ceph.conf
[global]
auth_client_required = cephx
auth_cluster_required = cephx
auth_service_required = cephx
cluster_network = 10.0.0.1/24
fsid = cf282c03-77a3-458d-8989-b4a477f121dd
mon_allow_pool_delete = true
mon_host = 10.0.1.1
#10.0.1.2 10.0.1.3
ms_bind_ipv4 = true
ms_bind_ipv6 = false
osd_pool_default_min_size = 2
osd_pool_default_size = 3
public_network = 10.0.1.1/24
[client]
keyring = /etc/pve/priv/$cluster.$name.keyring
[client.crash]
keyring = /etc/pve/ceph/$cluster.$name.keyring
[mds]
keyring = /var/lib/ceph/mds/ceph-$id/keyring
[mds.nextclouda]
host = nextclouda
mds_standby_for_name = pve
[mds.nextcloudb]
host = nextcloudb
mds_standby_for_name = pve
[mds.nextcloudc]
host = nextcloudc
mds_standby_for_name = pve
[mon.nextclouda]
public_addr = 10.0.1.1
#[mon.nextcloudb]
# public_addr = 10.0.1.2
#
#[mon.nextcloudc]
# public_addr = 10.0.1.3
```
Используя эти команды, мне удалось удалить конфигурацию монитора и перезапустить один монитор, имеющий кворум (третий хост nextcloudc полностью выключен, а служба монитора на втором хосте nextcloudb остановлена вручную):
```
root@nextclouda:~# systemctl stop ceph-mon@nextclouda
root@nextclouda:~# rm -rf /var/lib/ceph/mon/ceph-nextclouda
root@nextclouda:~# ceph-mon --monmap /root/monmap --keyring /etc/pve/priv/ceph.mon.keyring --mkfs -i nextclouda -m 10.0.1.1
root@nextclouda:~# chown -R ceph:ceph /var/lib/ceph/mon/ceph-nextclouda
root@nextclouda:~# systemctl start ceph-mon@nextclouda
root@nextclouda:~# ceph -s
cluster:
id: cf282c03-77a3-458d-8989-b4a477f121dd
health: HEALTH_WARN
mon is allowing insecure global_id reclaim
services:
mon: 1 daemons, quorum nextclouda (age 50s)
mgr: no daemons active
osd: 0 osds: 0 up, 0 in
data:
pools: 0 pools, 0 pgs
objects: 0 objects, 0 B
usage: 0 B used, 0 B / 0 B avail
pgs:
```
Но, как вы видите, теперь монитор не видит никаких OSD, пулов или менеджеров для cephfs. Я пытаюсь сделать это без пересоздания всего вручную, но буду прибегать к этому, если потребуется. Я буду очень благодарен за вашу помощь и/или советы, если то, что я пытаюсь сделать, имеет смысл. У меня есть резервная копия /var/lib/ceph и оригинальный monmap, если они могут помочь.
```
package versions:
proxmox-ve: 8.3.0 (running kernel: 6.8.12-9-pve)
pve-manager: 8.3.5 (running version: 8.3.5/dac3aa88bac3f300)
proxmox-kernel-helper: 8.1.1
proxmox-kernel-6.8: 6.8.12-9
proxmox-kernel-6.8.12-9-pve-signed: 6.8.12-9
proxmox-kernel-6.8.12-8-pve-signed: 6.8.12-8
proxmox-kernel-6.8.12-4-pve-signed: 6.8.12-4
ceph: 19.2.1-pve2
ceph-fuse: 19.2.1-pve2
corosync: 3.1.9-pve1
criu: 3.17.1-2+deb12u1
dnsmasq: 2.90-4~deb12u1
glusterfs-client: 10.3-5
ifupdown2: 3.2.0-1+pmx11
ksm-control-daemon: 1.5-1
libjs-extjs: 7.0.0-5
libknet1: 1.30-pve1
libproxmox-acme-perl: 1.6.0
libproxmox-backup-qemu0: 1.5.1
libproxmox-rs-perl: 0.3.5
libpve-access-control: 8.2.1
libpve-apiclient-perl: 3.3.2
libpve-cluster-api-perl: 8.1.0
libpve-cluster-perl: 8.1.0
libpve-common-perl: 8.3.0
libpve-guest-common: 3.3.0
libpve-ha-manager: 4.0.6
libpve-i18n: 3.4.1
libpve-proxy-modules: 3.4.0
lxcfs: 6.0.0-pve2
novnc-pve: 1.6.0-2
proxmox-backup-client: 3.3.7-1
proxmox-backup-file-restore: 3.3.7-1
proxmox-firewall: 0.6.0
proxmox-mini-journalreader: 1.4.0
proxmox-offline-mirror-helper: 0.6.7
proxmox-proxy: 6.1-1
proxmox-widget-toolkit: 4.3.8
pve-cluster: 8.1.0
pve-container: 5.2.5
pve-docs: 8.3.1
pve-edk2-firmware: 4.2025.02-3
pve-esxi-import-tools: 0.7.2
pve-firewall: 5.1.0
pve-firmware: 3.15-3
pve-qemu-kvm: 9.2.0-5
pve-xtermjs: 5.5.0-1
qemu-server: 3.6.0-1
smartmontools: 7.3-pve1
spiceterm: 3.3.0
swtpm: 0.8.0+pve1
vncterm: 1.8.0
zfsutils-linux: 2.2.7-pve2
```
Спасибо вам большое и прекрасного дня!
