Cephのディスク交換手順 (Proxmox VE 7.2/Ceph 15.2(octopus))

Proxmox VE 7.2のクラスターで動いているCeph OSDのSSDが書き込み上限を迎えたので、OSDを交換する話

Abstract

Proxmox VEで、以下のようなログが出力されました。

1
2
2022-11-17 10:15:23	Device: /dev/sda [SAT], Failed SMART usage Attribute: 202 Percent_Lifetime_Remain.
2022-11-17 10:15:23	Device: /dev/sda [SAT], FAILED SMART self-check. BACK UP DATA NOW!

SSDの書き込み上限に達していて、突然読み書きが停止する可能性があるので早急に交換します。
このデバイスはCephのOSDとして使用されているので、Proxmox VEのクラスター全体は止めずに作業したいと思います。

状況確認

Cephの構成状況の確認

HEALTH_OK なので、直ちに問題がある状況にはなっていないようです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
root@pve02:~# pveceph status
  cluster:
    id:     379c9ad8-dd15-4bf1-b9fc-f5206a75fe3f
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum pve01,pve02,pve03 (age 4M)
    mgr: pve02(active, since 4M), standbys: pve03, pve01
    mds: cephfs:1 {0=pve03=up:active} 2 up:standby
    osd: 3 osds: 3 up (since 4M), 3 in (since 7M)
 
  data:
    pools:   4 pools, 129 pgs
    objects: 194.08k objects, 755 GiB
    usage:   2.2 TiB used, 674 GiB / 2.8 TiB avail
    pgs:     129 active+clean
 
  io:
    client:   0 B/s rd, 894 KiB/s wr, 0 op/s rd, 37 op/s wr

Cephで使用されている各デバイスを確認します。

1
2
3
4
5
# ceph device ls
DEVICE                                HOST:DEV   DAEMONS  LIFE EXPECTANCY
Crucial_CT1050MX300SSD1_1652152BAA95  pve03:sda  osd.2                   
Crucial_CT1050MX300SSD1_170215658B50  pve02:sda  osd.1                   
WDC_WDS100T2G0A-00JH30_201627804282   pve01:sdb  osd.0          

冒頭のログは pve02/pve03 の2台で発生していたので、まずは状況を確認します。

エラー状況の確認

smartctlでアラートが出ているデバイスを確認します。タイミングの問題で、どうやら2台同時に書き込み上限に達してしまったようです。

pve02:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
root@pve02:~# smartctl -A /dev/sda
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.35-2-pve] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   100   100   000    Pre-fail  Always       -       2
  5 Reallocate_NAND_Blk_Cnt 0x0032   100   100   010    Old_age   Always       -       1
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       44416
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       28
171 Program_Fail_Count      0x0032   100   100   000    Old_age   Always       -       1
172 Erase_Fail_Count        0x0032   100   100   000    Old_age   Always       -       0
173 Ave_Block-Erase_Count   0x0032   001   001   000    Old_age   Always       -       1690
174 Unexpect_Power_Loss_Ct  0x0032   100   100   000    Old_age   Always       -       22
183 SATA_Interfac_Downshift 0x0032   100   100   000    Old_age   Always       -       0
184 Error_Correction_Count  0x0032   100   100   000    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
194 Temperature_Celsius     0x0022   067   055   000    Old_age   Always       -       33 (Min/Max 16/45)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       1
197 Current_Pending_ECC_Cnt 0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   100   100   000    Old_age   Always       -       0
202 Percent_Lifetime_Remain 0x0030   000   000   001    Old_age   Offline  FAILING_NOW 100
206 Write_Error_Rate        0x000e   100   100   000    Old_age   Always       -       1
246 Total_LBAs_Written      0x0032   100   100   000    Old_age   Always       -       521083326711
247 Host_Program_Page_Count 0x0032   100   100   000    Old_age   Always       -       16283887592
248 FTL_Program_Page_Count  0x0032   100   100   000    Old_age   Always       -       95389035569
180 Unused_Reserve_NAND_Blk 0x0033   000   000   000    Pre-fail  Always       -       4445
210 Success_RAIN_Recov_Cnt  0x0032   100   100   000    Old_age   Always       -       4

pve03:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
root@pve03:~# smartctl -A /dev/sda
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.15.35-2-pve] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  1 Raw_Read_Error_Rate     0x002f   100   100   000    Pre-fail  Always       -       4
  5 Reallocate_NAND_Blk_Cnt 0x0032   100   100   010    Old_age   Always       -       2
  9 Power_On_Hours          0x0032   100   100   000    Old_age   Always       -       47845
 12 Power_Cycle_Count       0x0032   100   100   000    Old_age   Always       -       20
171 Program_Fail_Count      0x0032   100   100   000    Old_age   Always       -       2
172 Erase_Fail_Count        0x0032   100   100   000    Old_age   Always       -       0
173 Ave_Block-Erase_Count   0x0032   001   001   000    Old_age   Always       -       1774
174 Unexpect_Power_Loss_Ct  0x0032   100   100   000    Old_age   Always       -       14
183 SATA_Interfac_Downshift 0x0032   100   100   000    Old_age   Always       -       0
184 Error_Correction_Count  0x0032   100   100   000    Old_age   Always       -       0
187 Reported_Uncorrect      0x0032   100   100   000    Old_age   Always       -       0
194 Temperature_Celsius     0x0022   067   057   000    Old_age   Always       -       33 (Min/Max 17/43)
196 Reallocated_Event_Count 0x0032   100   100   000    Old_age   Always       -       2
197 Current_Pending_ECC_Cnt 0x0032   100   100   000    Old_age   Always       -       0
198 Offline_Uncorrectable   0x0030   100   100   000    Old_age   Offline      -       0
199 UDMA_CRC_Error_Count    0x0032   100   100   000    Old_age   Always       -       0
202 Percent_Lifetime_Remain 0x0030   000   000   001    Old_age   Offline  FAILING_NOW 100
206 Write_Error_Rate        0x000e   100   100   000    Old_age   Always       -       2
246 Total_LBAs_Written      0x0032   100   100   000    Old_age   Always       -       545454646475
247 Host_Program_Page_Count 0x0032   100   100   000    Old_age   Always       -       17054031376
248 FTL_Program_Page_Count  0x0032   100   100   000    Old_age   Always       -       100047500039
180 Unused_Reserve_NAND_Blk 0x0033   000   000   000    Pre-fail  Always       -       4416
210 Success_RAIN_Recov_Cnt  0x0032   100   100   000    Old_age   Always       -       12

必要部分だけテーブルに抜き出します。

ATTRIBUTE PVE02 RAW_VALUE PVE03 RAW_VALUE
1 Raw_Read_Error_Rate 2 4
5 Reallocate_NAND_Blk_Cnt 1 2
171 Program_Fail_Count 1 2
180 Unused_Reserve_NAND_Blk 4445 4416
202 Percent_Lifetime_Remain 100 100
  • 1 Raw_Read_Error_Rate が発生しているので、予防交換した方が良い
  • 5 Reallocate_NAND_Blk_Cnt が発生しているので、予防交換した方が良い
  • 171 Program_Fail_Count が 0 が発生しているので、予防交換した方が良い
  • 180 Unused_Reserve_NAND_Blk が 4445 なので、まだ代替セクタが残っている(ので焦らず急いで丁寧に作業する)
  • 202 Percent_Lifetime_Remain が FAILING_NOW になっているので、書き込み動作が停止する前に交換した方が良い

TBWの確認

使用している CT1050MX300のデータシート を見ると、1TBの場合は360TBWと書かれています。
セクタサイズを拾って、大体の書き込み量を確認してみます。

1
2
root@pve02:~# smartctl -i /dev/sda | grep Sector
Sector Size:      512 bytes logical/physical
ATTRIBUTE PVE02 RAW_VALUE PVE03 RAW_VALUE
9 Power_On_Hours 44416 47845
* Power on days 1850 1993
246 Total_LBAs_Written 521083326711 545454646475
* Sector size 512 byte 512 byte
* Total written bytes 266.8 TB 279.3 TB

というわけで、360TBには少々足りないものの8割弱くらいの書き込みは行われているようです。
稼働時間も5年(1825日)を過ぎたくらいなので、予防交換のタイミングとしては悪くないでしょう。

交換部品の調達

魔法のカードであらよっと。

CT2000MX500 x3

ちなみに CT2000MX500のデータシート を見ると700TBWと書かれているので、MX300よりは長持ちしそうです。

OSD交換手順

それでは、実際にOSDの交換を行います。大まかな手順は以下の通りです。
電源断を伴うので、稼働中のVMを別のホストに移動しながら作業します。

  1. OSD交換対象のホスト上で動くVMを別のホストにLive migrationし、OSD交換対象のホスト上で動くVMが無くなったことを確認
  2. Cephの状態確認: HEALTH_OK のままのはず
  3. 対象のOSDを 停止 -> 切り離し -> 削除 -> 状態確認
  4. Cephの状態確認: HEALTH_WARN となるはず
  5. 電源を切り、物理作業(SSDの抜き差し)
  6. 追加されたデバイスを確認して、OSDを作成
  7. HEALTH_OK になるのを待って完了

手順の組み立てには以下のページを参考にしています。
基本的にはProxmox VEの Ceph maintenance - Replace OSDs を参照しましょう。

手順実施

1台目のpve02で対応した時の手順と結果は以下の通り。(2台目以降の手順はほぼ同じなので省略)

VMの移動(お手製スクリプトのため省略)

作業対象のホストに起動中のVMが存在しないことを確認しておきます。

1
root@pve02:~# qm list | grep online

Cephの状態確認: HEALTH_OK のままのはず

health: HEALTH_OK を確認しましょう。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
root@pve02:~# pveceph status
  cluster:
    id:     379c9ad8-dd15-4bf1-b9fc-f5206a75fe3f
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum pve01,pve02,pve03 (age 4M)
    mgr: pve02(active, since 4M), standbys: pve03, pve01
    mds: cephfs:1 {0=pve03=up:active} 2 up:standby
    osd: 3 osds: 3 up (since 4M), 3 in (since 7M)
 
  data:
    pools:   4 pools, 129 pgs
    objects: 194.08k objects, 755 GiB
    usage:   2.2 TiB used, 674 GiB / 2.8 TiB avail
    pgs:     129 active+clean
 
  io:
    client:   0 B/s rd, 808 KiB/s wr, 0 op/s rd, 36 op/s wr

OSDの 停止 -> 切り離し -> 削除 -> 状態確認

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
root@pve02:~# ceph device ls-by-host pve02
DEVICE                                DEV        DAEMONS    EXPECTED FAILURE
Crucial_CT1050MX300SSD1_170215658B50  pve02:sda  osd.1       
root@pve02:~# ceph osd stop osd.1
stop osd.1. 
root@pve02:~# ceph osd out osd.1
marked out osd.1. 
root@pve02:~# ceph osd safe-to-destroy osd.1
Error EAGAIN: OSD(s) 1 have no reported stats, and not all PGs are active+clean; we cannot draw any conclusions. 
root@pve02:~# systemctl stop ceph-osd@1.service
root@pve02:~# pveceph osd destroy 1
destroy OSD osd.1
Remove osd.1 from the CRUSH map
Remove the osd.1 authentication key.
Remove OSD osd.1
Unmount OSD osd.1 from  /var/lib/ceph/osd/ceph-1
root@pve02:~# ceph device ls
DEVICE                                HOST:DEV   DAEMONS  LIFE EXPECTANCY
Crucial_CT1050MX300SSD1_1652152BAA95  pve03:sda  osd.2                   
WDC_WDS100T2G0A-00JH30_201627804282   pve01:sdb  osd.0               
  • 今回、OSDは3台構成(3台のホストにCeph OSD用のDiskは1台ずつ)なので ceph osd safe-to-destroy コマンドは成功しません
    • OSDが4台以上で構成されており十分なレプリカが存在する場合は、切り離した後にリバランスを待つことで health: HEALTH_OK な状態で作業を進められると思います
  • WebUIでの操作と同等である pveceph osd destroy コマンドはその辺りを無視して削除できるので、そちらを使用します

Cephの状態確認: HEALTH_WARN となるはず

自宅の構成ではホスト 3台、OSD 1台/ホストなので HEALTH_WARN は避けられません。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
root@pve02:~# pveceph status

  cluster:
    id:     379c9ad8-dd15-4bf1-b9fc-f5206a75fe3f
    health: HEALTH_WARN
            Degraded data redundancy: 194083/582249 objects degraded (33.333%), 112 pgs degraded, 106 pgs undersized
            OSD count 2 < osd_pool_default_size 3
 
  services:
    mon: 3 daemons, quorum pve01,pve02,pve03 (age 4M)
    mgr: pve02(active, since 4M), standbys: pve03, pve01
    mds: cephfs:1 {0=pve03=up:active} 2 up:standby
    osd: 2 osds: 2 up (since 6m), 2 in (since 2m)
 
  data:
    pools:   4 pools, 129 pgs
    objects: 194.08k objects, 755 GiB
    usage:   1.4 TiB used, 434 GiB / 1.9 TiB avail
    pgs:     194083/582249 objects degraded (33.333%)
             112 active+undersized+degraded
             17  active+undersized
 
  io:
    client:   0 B/s rd, 826 KiB/s wr, 0 op/s rd, 33 op/s wr

電源を切り、物理作業(SSDの抜き差し)

1
root@pve02:~# poweroff

後から気付いたけどホットスワップ出来たから電源切る必要はありませんでした。ついでに掃除出来たからまぁいいや。

追加されたデバイスを確認して、OSDを作成

追加したDiskを間違えないように検索して、OSDを作成します。
この時、箱に書いてあるシリアルナンバーと見比べると、同じ型番のSSDを使っていても識別が可能です。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
root@pve02:~# ls -l /dev/disk/by-id | grep CT2000MX500
lrwxrwxrwx 1 root root  9 Nov 19 15:16 ata-CT2000MX500SSD1_2210E616442D -> ../../sda
root@pve02:~# pveceph osd create /dev/sda
create OSD on /dev/sda (bluestore)
wiping block device /dev/sda
200+0 records in
200+0 records out
209715200 bytes (210 MB, 200 MiB) copied, 0.54082 s, 388 MB/s
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 75eeb648-822e-4e63-b60f-90f4b78169a6
Running command: vgcreate --force --yes ceph-c8174fc2-5f3a-4d47-b858-f6de75de81da /dev/sda
 stdout: Physical volume "/dev/sda" successfully created.
 stdout: Volume group "ceph-c8174fc2-5f3a-4d47-b858-f6de75de81da" successfully created
Running command: lvcreate --yes -l 476932 -n osd-block-75eeb648-822e-4e63-b60f-90f4b78169a6 ceph-c8174fc2-5f3a-4d47-b858-f6de75de81da
 stdout: Logical volume "osd-block-75eeb648-822e-4e63-b60f-90f4b78169a6" created.
Running command: /usr/bin/ceph-authtool --gen-print-key
Running command: /bin/mount -t tmpfs tmpfs /var/lib/ceph/osd/ceph-1
--> Executable selinuxenabled not in PATH: /sbin:/bin:/usr/sbin:/usr/bin
Running command: /bin/chown -h ceph:ceph /dev/ceph-c8174fc2-5f3a-4d47-b858-f6de75de81da/osd-block-75eeb648-822e-4e63-b60f-90f4b78169a6
Running command: /bin/chown -R ceph:ceph /dev/dm-6
Running command: /bin/ln -s /dev/ceph-c8174fc2-5f3a-4d47-b858-f6de75de81da/osd-block-75eeb648-822e-4e63-b60f-90f4b78169a6 /var/lib/ceph/osd/ceph-1/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-1/activate.monmap
 stderr: 2022-11-19T15:16:57.581+0900 7f43d6910700 -1 auth: unable to find a keyring on /etc/pve/priv/ceph.client.bootstrap-osd.keyring: (2) No such file or directory
2022-11-19T15:16:57.581+0900 7f43d6910700 -1 AuthRegistry(0x7f43d00596b0) no keyring found at /etc/pve/priv/ceph.client.bootstrap-osd.keyring, disabling cephx
 stderr: got monmap epoch 8
Running command: /usr/bin/ceph-authtool /var/lib/ceph/osd/ceph-1/keyring --create-keyring --name osd.1 --add-key AQDYdHhjV/PFJRAAWDdoqVZtsD6nsuLczjJSow==
 stdout: creating /var/lib/ceph/osd/ceph-1/keyring
added entity osd.1 auth(key=AQDYdHhjV/PFJRAAWDdoqVZtsD6nsuLczjJSow==)
Running command: /bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-1/keyring
Running command: /bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-1/
Running command: /usr/bin/ceph-osd --cluster ceph --osd-objectstore bluestore --mkfs -i 1 --monmap /var/lib/ceph/osd/ceph-1/activate.monmap --keyfile - --osd-data /var/lib/ceph/osd/ceph-1/ --osd-uuid 75eeb648-822e-4e63-b60f-90f4b78169a6 --setuser ceph --setgroup ceph
 stderr: 2022-11-19T15:16:57.881+0900 7f2a54eb9d80 -1 bluestore(/var/lib/ceph/osd/ceph-1/) _read_fsid unparsable uuid
 stderr: 2022-11-19T15:16:57.914+0900 7f2a54eb9d80 -1 freelist read_size_meta_from_db missing size meta in DB
--> ceph-volume lvm prepare successful for: /dev/sda
Running command: /bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-1
Running command: /usr/bin/ceph-bluestore-tool --cluster=ceph prime-osd-dir --dev /dev/ceph-c8174fc2-5f3a-4d47-b858-f6de75de81da/osd-block-75eeb648-822e-4e63-b60f-90f4b78169a6 --path /var/lib/ceph/osd/ceph-1 --no-mon-config
Running command: /bin/ln -snf /dev/ceph-c8174fc2-5f3a-4d47-b858-f6de75de81da/osd-block-75eeb648-822e-4e63-b60f-90f4b78169a6 /var/lib/ceph/osd/ceph-1/block
Running command: /bin/chown -h ceph:ceph /var/lib/ceph/osd/ceph-1/block
Running command: /bin/chown -R ceph:ceph /dev/dm-6
Running command: /bin/chown -R ceph:ceph /var/lib/ceph/osd/ceph-1
Running command: /bin/systemctl enable ceph-volume@lvm-1-75eeb648-822e-4e63-b60f-90f4b78169a6
 stderr: Created symlink /etc/systemd/system/multi-user.target.wants/ceph-volume@lvm-1-75eeb648-822e-4e63-b60f-90f4b78169a6.service -> /lib/systemd/system/ceph-volume@.service.
Running command: /bin/systemctl enable --runtime ceph-osd@1
 stderr: Created symlink /run/systemd/system/ceph-osd.target.wants/ceph-osd@1.service -> /lib/systemd/system/ceph-osd@.service.
Running command: /bin/systemctl start ceph-osd@1
--> ceph-volume lvm activate successful for osd ID: 1
--> ceph-volume lvm create successful for: /dev/sda

この時、基本的には自動的にceph clusterに参加してくれるはずですが、過去の設定やタイミングによっては Down/Out な状態になる場合があります。
その場合は、以下のように手動で有効にします。

1
2
root@pve01:~# ceph osd in osd.0
root@pve01:~# ceph osd start osd.0

HEALTH_OK になるのを待って完了

objects: 194.08k objects, 755 GiB を同期するので、4,5時間くらい見込んでおきます。
同期を待っている間は ceph -w コマンドを叩いておくと、コマンド結果を画面に定期更新してくれるのでオススメです。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
root@pve02:~# ceph device ls
DEVICE                                HOST:DEV   DAEMONS  LIFE EXPECTANCY
CT2000MX500SSD1_2210E616442D          pve02:sda  osd.1                   
Crucial_CT1050MX300SSD1_1652152BAA95  pve03:sda  osd.2                   
WDC_WDS100T2G0A-00JH30_201627804282   pve01:sdb  osd.0                   
root@pve02:~# pveceph status
  cluster:
    id:     379c9ad8-dd15-4bf1-b9fc-f5206a75fe3f
    health: HEALTH_WARN
            clock skew detected on mon.pve02
            Degraded data redundancy: 193516/582252 objects degraded (33.236%), 96 pgs degraded
 
  services:
    mon: 3 daemons, quorum pve01,pve02,pve03 (age 72s)
    mgr: pve03(active, since 17m), standbys: pve01, pve02
    mds: cephfs:1 {0=pve03=up:active} 2 up:standby
    osd: 3 osds: 3 up (since 38s), 3 in (since 38s); 96 remapped pgs
 
  task status:
 
  data:
    pools:   4 pools, 129 pgs
    objects: 194.08k objects, 755 GiB
    usage:   1.4 TiB used, 2.2 TiB / 3.7 TiB avail
    pgs:     193516/582252 objects degraded (33.236%)
             95 active+undersized+degraded+remapped+backfill_wait
             33 active+clean
             1  active+undersized+degraded+remapped+backfilling
 
  io:
    client:   11 KiB/s rd, 1.4 MiB/s wr, 1 op/s rd, 99 op/s wr
    recovery: 79 MiB/s, 20 objects/s

root@pve02:~# pveceph statusGiB
  cluster:
    id:     379c9ad8-dd15-4bf1-b9fc-f5206a75fe3f
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum pve01,pve02,pve03 (age 8h)
    mgr: pve03(active, since 8h), standbys: pve01, pve02
    mds: cephfs:1 {0=pve03=up:active} 2 up:standby
    osd: 3 osds: 3 up (since 8h), 3 in (since 8h)
 
  data:
    pools:   4 pools, 129 pgs
    objects: 194.09k objects, 755 GiB
    usage:   2.2 TiB used, 1.5 TiB / 3.7 TiB avail
    pgs:     129 active+clean
 
  io:
    client:   0 B/s rd, 875 KiB/s wr, 0 op/s rd, 38 op/s wr

時刻同期の話

以下のようにclock skewが検出される環境では、時刻同期が適切に設定されていない可能性があります。

1
2
3
4
  cluster:
    id:     379c9ad8-dd15-4bf1-b9fc-f5206a75fe3f
    health: HEALTH_WARN
            clock skew detected on mon.pve02, mon.pve03

Proxmox VE 6.xでは systemd-timesyncd 、Proxmox VE 7.xでは chrony をインストールしておくのが良いでしょう。
参考: https://pve.proxmox.com/wiki/Time_Synchronization

あとがき

CephのDisk交換は Proxmox VE 5.4 to 6.2 ライブアップグレード話 後半戦 - Ceph Luminous(12.x) to Nautilus(14.x) の時以来なので、今回はも上手くいって良かったです。
本当ならTX1320 M2を卒業して新しいマシンでキレイに作り直したいのですが、お財布事情でそうも言っていられないまま今に至ります。
5.xで立てたクラスタを7.xまで使い続けられているのは、ひとえにProxmox VEの安定感によるものでしょう。
ありがたいことです。

実はpve03のSSD交換の作業中に壁コンセントから電源タップのケーブルが抜けてしまい、配下のクラスタが全落ちしたのですが、最終的には HEALTH_OK になってくれたので助かりました。
ある意味惰性でやってるから、全部消えたら消えてなくなろうかなって思う時もあるしね…

今日はここまで。お疲れ様でした。

Built with Hugo
テーマ StackJimmy によって設計されています。