Cephも大規模になれば1OSDノード12本 HDDとしても10ノードで 120 本と膨大になる.

WD Ultrastar DC HC580 な製品は 最大250万時間 の MTBF を持つ。
単純にこのHDDを100本で運用していると、
100台 x 24時間 x 365日 --> 876,000時間

MTBFが 250万時間 なので、1時間あたりの故障率は 1/2,500,000

これに総稼働時間をかけると1年間に予想される故障台数(期待値 λ)が求められて

λ = 876,000 / 2,500,000 --> 0.3504 台

故障の発生がポアソン分布に従うと仮定すると、1年間に1台も故障しない(0台である)確率は e^-λ で表されます。
「1台以上が壊れる確率」は、全体(100%)から「0台の確率」を引くことで算出できます。

P(X≥1) = 1 -e^-0.3504 = 1 - 0.7044 = 0.2956

100台で運用なら 1年以内に少なくとも1本以上飛ぶ確率は約3割

これが100万時間 MTBF で 100台なら58.4%で1年間運用で「1本飛ぶかどうか半々」

まぁー確率の話です.

っで HDDが飛んだ場合の対処を記すます
(proxmoxで仮想環境でテストしてます)

HDD対応

事象発生(proxmoxでOSDノードのHDDを選択して detach 操作を行う)

cephで確認

[root@ceph-mgr ~]# ceph -s
  cluster:
    id:     9ce2eb0a-355d-11f1-a713-bc241165abf5
    health: HEALTH_WARN
            Failed to apply 1 service(s): osd.osd03_custom
            1 failed cephadm daemon(s)
            Degraded data redundancy: 7/114 objects degraded (6.140%), 6 pgs degraded, 166 pgs undersized
(略
 
[root@ceph-mgr ~]# ceph osd tree
ID   CLASS  WEIGHT   TYPE NAME            STATUS  REWEIGHT  PRI-AFF
 -1         0.29279  root default
 -3         0.09760      host ceph-osd01
  1    hdd  0.04880          osd.1            up   1.00000  1.00000
  0    ssd  0.04880          osd.0            up   1.00000  1.00000
 -7         0.09760      host ceph-osd02
  3    hdd  0.04880          osd.3            up   1.00000  1.00000
  2    ssd  0.04880          osd.2            up   1.00000  1.00000
-10         0.09760      host ceph-osd03
  5    hdd  0.04880          osd.5          down         0  1.00000     <-- 飛んだHDD
  4    ssd  0.04880          osd.4            up   1.00000  1.00000
[root@ceph-mgr ~]#
[root@ceph-mgr ~]# ceph orch ps
NAME                        HOST        PORTS        STATUS         REFRESHED  AGE  MEM USE  MEM LIM  VERSION    IMAGE ID      CONTAINER ID
 :
osd.5                       ceph-osd03               error             5m ago   2w        -    2202M  <unknown>  <unknown>     <unknown>
[root@ceph-mgr ~]#

これでosd.5のHDDが問題と分かる.

この状態ではまだCRUSHには残っていて「壊れてるけど、まだクラスタ的には配置対象」状態. これを「もう使わない」とします

[root@ceph-mgr ~]# ceph osd out 5
osd.5 is already out.
[root@ceph-mgr ~]#

これでデータ再配置(recovery)が始まる.

次にCephから論理削除します

[root@ceph-mgr ~]# ceph osd purge 5 --yes-i-really-mean-it
purged osd.5
[root@ceph-mgr ~]#

でもコンテナが生きてますので

[root@ceph-mgr ~]# ceph orch daemon rm osd.5 --force
Removed osd.5 from host 'ceph-osd03'
[root@ceph-mgr ~]#

としてコンテナも削除します. 「ceph orch ps」で確認します

そして、実機 ceph-osd03 で問題のHDDスロットからHDDを抜いて、交換して差し込む

[root@ceph-osd03 ~]# lsblk
NAME                                                                                                  MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sda                                                                                                     8:0    0   16G  0 disk
tqsda1                                                                                                  8:1    0    1M  0 part
tqsda2                                                                                                  8:2    0    1G  0 part /boot
tqsda3                                                                                                  8:3    0  128M  0 part [SWAP]
tqsda4                                                                                                  8:4    0    1K  0 part
mqsda5                                                                                                  8:5    0 14.9G  0 part /var/lib/containers/storage/overlay
                                                                                                                               /
sdb                                                                                                     8:16   0   50G  0 disk
mqceph--ed4c4549--46eb--42f0--8059--31ad1b70c4f3-osd--block--fe0cbd5c--f15f--4189--b8ed--3ea4268462d9 253:0    0   50G  0 lvm
sdd                                                                                                     8:48   0   51G  0 disk
[root@ceph-osd03 ~]#

となったので、追加したHDDは/dev/sddとなる.

ceph Tentacle 以前はそのノードで「ceph-volume lvm create --data /dev/sdd」とか「ceph orch daemon add osd ceph-osd03:/dev/sdd」で追加出来たけど、
Tentacle では設計書で行うみたい。
今ある設計書は

[root@ceph-mgr ~]# ceph orch ls
NAME              PORTS   RUNNING  REFRESHED  AGE  PLACEMENT
crash                         7/7  7m ago     2w   *
mds.emfs                      2/2  27s ago    2w   count:2;label:mds
mgr                           2/2  27s ago    2w   count:2;label:mgr
mon                           3/3  27s ago    2w   count:3;label:mon
node-exporter     ?:9100      7/7  7m ago     24h  *
osd.osd01_custom                2  7m ago     2w   ceph-osd01
osd.osd02_custom                2  27s ago    2w   ceph-osd02
osd.osd03_custom                1  2m ago     2w   ceph-osd03
[root@ceph-mgr ~]#
 
[root@ceph-mgr ~]# ceph orch ls  --service_name=osd.osd03_custom --export | tee osd03_custom.yml
service_type: osd
service_id: osd03_custom
service_name: osd.osd03_custom
placement:
  hosts:
  - ceph-osd03
spec:
  data_devices:
    paths:
    - /dev/sdb
    - /dev/sdc
  filter_logic: AND
  objectstore: bluestore
[root@ceph-mgr ~]#

と作った「osd03_custom.yml」を修正してcephにapplyします。

[root@ceph-mgr ~]# cat osd03_custom.yml
service_type: osd
service_id: osd03_custom
service_name: osd.osd03_custom
placement:
  hosts:
  - ceph-osd03
spec:
  data_devices:
    paths:
    - /dev/sdb
    - /dev/sdd
  filter_logic: AND
  objectstore: bluestore
 
[root@ceph-mgr ~]# ceph orch apply -i osd03_custom.yml
Scheduled osd.osd03_custom update...
 
[root@ceph-mgr ~]#

確認します

[root@ceph-mgr ~]# ceph -s
  cluster:
    id:     9ce2eb0a-355d-11f1-a713-bc241165abf5
    health: HEALTH_OK
 :
[root@ceph-mgr ~]#
[root@ceph-mgr ~]# ceph orch ps
NAME                        HOST        PORTS        STATUS         REFRESHED  AGE  MEM USE  MEM LIM  VERSION  IMAGE ID      CONTAINER ID
 :
osd.4                       ceph-osd03               running (39h)     3m ago   2w    92.9M    2202M  20.2.1   fb63cba66eea  d79a0144a3dc
osd.5                       ceph-osd03               running (3m)      3m ago   3m    36.1M    2202M  20.2.1   fb63cba66eea  04e9f9e6d050
[root@ceph-mgr ~]#

と復旧しました。Ceph/Prometheusも設定していれば「Resolved」とメールが届きます

2026y04m29d_170548427.png 2026y04m29d_173347227.png

問題のHDDはどこにあるの?物理的に

問題とした osd.5 はどこにあるのか

[root@ceph-mgr ~]# ceph device ls 
DEVICE                                            HOST:DEV        DAEMONS                                    WEAR  LIFE EXPECTANCY
 :
ATA_Micron_5300_MTFDDAK3T8TDS_XXXXXXXXXXXX        ceph-osd01:sdb  osd.10 osd.5 osd.6 osd.7 osd.8 osd.9         0%                    <--- block.db として利用
 :
ATA_WDC_WUH722020BLE6L4_XXXXXXAE                  ceph-osd01:sdi  osd.5                                                              <--- block.data 本命
 :
[root@ceph-mgr ~]#

これで交換すべきHDDのシリアル番号とどのノードに存在しているのかが分かる.

ここで大きな問題。シリアル番号、/dev/sdi と分かったところで、エンクロージャのどこにそれがあるか分かるすべがない。
ledctlやlsscsiを駆使すればわかるかなと思ったのですが、むりっぽい。

地味であるが、事前にこのスロットにはこのシリアルのHDDがあると台帳に記すか、テプラでslotに張っていくしかないみたい

だた、もしMBもしくは追加のHBAでHDDと繋がているなら、そのHBAのツール経由でHDDのLEDを点灯させられる。

[root@ceph-osd03 ~]# lspci
 :
01:00.0 Serial Attached SCSI controller: Broadcom / LSI SAS3008 PCI-Express Fusion-MPT SAS-3 (rev 02)
 :
[root@ceph-osd03 ~]#

とあれば、Broadcom さんのサイトに行って「sas3ircu」を貰う。
そして

[root@ceph-osd03 ~]# ./sas3ircu LIST
Avago Technologies SAS3 IR Configuration Utility.
Version 17.00.00.00 (2018.04.02) 
Copyright (c) 2009-2018 Avago Technologies. All rights reserved. 
 
 
         Adapter      Vendor  Device                       SubSys  SubSys 
 Index    Type          ID      ID    Pci Address          Ven ID  Dev ID 
 -----  ------------  ------  ------  -----------------    ------  ------ 
   0     SAS3008       1000h   97h    00h:01h:00h:00h      15d9h   0808h           <--- ceph-osd03には1枚しかコントローラーが存在しないと判明
SAS3IRCU: Utility Completed Successfully.
[root@ceph-osd03 ~]#
 
[root@ceph-osd03 ~]# ./sas3ircu 0 DISPLAY
 :
Device is a Hard disk
  Enclosure #                             : 2
  Slot #                                  : 6
  PI Supported                            : No
  SAS Address                             : 5003048-0-2bc9-5f86
  State                                   : Ready (RDY)
  Size (in MB)/(in sectors)               : 19074047/39063650303
  Manufacturer                            : ATA     
  Model Number                            : WDC  WUH722020BL
  Firmware Revision                       : W540
  Serial No                               : XXXXXXAE            <-- 見つけた!
  Unit Serial No(VPD)                     : XXXXXXAE
  GUID                                    : 5000cca41edb2276
  Protocol                                : SATA
  Drive Type                              : SATA_HDD
 :
[root@ceph-osd03 ~]#

とスロット番号が6であることがこれでわかる. なので下記でLEDを点灯させ確定する

[root@ceph-osd03 ~]# ./sas3ircu 0 LOCATE 6 ON           <-- 1枚目のコントローラーの6番スロットのLEDを点灯させる
 
(消灯)
[root@ceph-osd03 ~]# ./sas3ircu 0 LOCATE 6 OFF
最新の60件
2026-06-08 2026-06-06 2026-06-05 2026-06-04 2026-06-03 2026-05-31 2026-05-28 2026-05-26 2026-05-23 2026-05-22 2026-05-21 2026-05-20 2026-05-19 2026-05-18 2026-05-12 2026-05-11 2026-05-08 2026-05-06 2026-05-05 2026-05-03 2026-04-30 2026-04-29
  • Ceph/Troubleshooting
2026-04-28 2026-04-27 2026-04-25 2026-04-24 2026-04-22 2026-04-21 2026-04-12 2026-04-08 2026-04-06 2026-04-05 2026-04-02 2026-03-26 2026-03-23 2026-03-21 2026-03-19 2026-03-15 2026-03-14

edit


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2026-04-29 (水) 17:49:21