キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
2466
閲覧回数
0
いいね!
0
コメント
Satoshi Kinoshita
Cisco Employee
Cisco Employee

はじめに

 

本ドキュメントでは Cisco VIM (CVIM) における Ceph トラブルシュート方法を紹介します。

CVIMにおけるCephの役割と基本のトラブルシュートの手法は以下の記事も併せて参照してください。

 

[CVIM] Ceph トラブルシュート手法
 
 

Ceph OSD down 問題トラブルシュート手法

 
'ceph -s' コマンドでCephのステータスを確認すると以下の表示になってます。
 
cephmon_18079 [ceph@micropod-server-1 /]$ ceph -s
  cluster:
    id:     cba15951-bfcc-4dc4-8a3a-815c14977f4e
    health: HEALTH_WARN
            1 osds down
            Degraded data redundancy: 11859/212835 objects degraded (5.572%), 175 pgs degraded

  services:
    mon: 3 daemons, quorum ceph-micropod-server-1,ceph-micropod-server-3,ceph-micropod-server-2
    mgr: micropod-server-3(active), standbys: micropod-server-1, micropod-server-2
    osd: 15 osds: 14 up, 15 in

  data:
    pools:   2 pools, 1024 pgs
    objects: 70945 objects, 546 GB
    usage:   2255 GB used, 15110 GB / 17365 GB avail
    pgs:     11859/212835 objects degraded (5.572%)
             842 active+clean
             175 active+undersized+degraded
             7   active+undersized
health: HEALTH_WARNとなっており問題が発生している事を意味しております。
 
"1 osds down" 及び "osd: 15 osds: 14 up, 15 in" の出力から、1つのOSDがダウン状態になっていることがわかります。
 
 Degraded data redundancy: 11859/212835 objects degraded (5.572%), 175 pgs degraded
 
この解釈は、212835個のオブジェクト中、11859個(つまり5.572%)、PG数で言えば175個がOSDダウンの影響を受けて "Degraded" 状態になっています。
この構成だと3つのレプリカ(複製)をもちますので、1つのOSDがダウンしただけではDegraded状態となり、オブジェクト側からみたデータのアクセスには影響がない状態ですが、もう一つのOSDがダウンするとデータにアクセスできなくなる可能性があります。
 
 
'ceph health detail' コマンドで更に詳しいCephの状態を確認できます。
通常時には以下のようにHEALTH_OK しか返しませんが、
 
cephmon_20784 [ceph@bglCSsv-cnt01 /]$ ceph health detail
HEALTH_OK
 
問題発生時には以下のように詳細情報を参照することができます。
 
cephmon_18079 [ceph@micropod-server-1 /]$ ceph health detail
HEALTH_WARN 1 osds down; Degraded data redundancy: 11859/212835 objects degraded (5.572%), 175 pgs degraded, 182 pgs undersized
OSD_DOWN 1 osds down
    osd.2 (root=default,host=micropod-server-1) is down
PG_DEGRADED Degraded data redundancy: 11859/212835 objects degraded (5.572%), 175 pgs degraded, 182 pgs undersized
    pg 1.10f is active+undersized+degraded, acting [13,10]
    pg 1.113 is stuck undersized for 317.834372, current state active+undersized+degraded, last acting [12,3]
    pg 1.115 is stuck undersized for 317.758868, current state active+undersized+degraded, last acting [12,6]
    pg 1.11c is stuck undersized for 317.982501, current state active+undersized+degraded, last acting [1,6]
    pg 1.126 is stuck undersized for 318.040594, current state active+undersized+degraded, last acting [9,12]
    pg 1.128 is stuck undersized for 317.904021, current state active+undersized+degraded, last acting [12,13]
    pg 1.12f is stuck undersized for 318.044306, current state active+undersized+degraded, last acting [13,1]
    pg 1.132 is stuck undersized for 318.151422, current state active+undersized+degraded, last acting [1,0]
::
 
以下の2行により、OSD_DOWNイベントが発生しており、1つのOSDがダウンしていることがわかります。
更にダウンしているOSDは、osd.2 であり、micropod-server-1という名前のホストにこのOSDが存在することがわかります。
 
OSD_DOWN 1 osds down
    osd.2 (root=default,host=micropod-server-1) is down
 
以下の行の解釈ですが、pool 1 の0x10fの PG が OSD ダウンの影響を受けており、元々 [13,10,2] の3つのOSDでPGを構成していた状態だが、osd.2 がダウンしたため、[13,10] の2つでPGを組んでいるDegradedの状態であることがわかります。
 
pg 1.10f is active+undersized+degraded, acting [13,10]
 
しかしながら、CephはOSDがダウンすると自動的に新たなOSDにレプリカを複製する作業が開始されます。このため、このPGについてはしばらく時間が経てば、新たなOSDへのレプリカ複製の作業が完了し、"active+clean" の状態になるはずです。
 
ちなみに pool 1 が具体的にどのプールなのかは、'ceph osd poool ls detail' コマンドで確認できます。この例だと images という名前のプールが該当します。
 
cephmon_23871 [ceph@micropod-1 /]$ ceph osd pool ls detail
pool 1 'images' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 256 pgp_num 256 last_change 89 flags hashpspool stripe_width 0 application rbd
    removed_snaps [1~3]
pool 2 'volumes' replicated size 3 min_size 2 crush_rule 0 object_hash rjenkins pg_num 512 pgp_num 512 last_change 47 flags hashpspool stripe_width 0 application rbd
しばらく時間が経つと以下のように、degraded 状態の PG が175個から36個に減っていることがわかります。これはバックグラウンドで自動でレプリカの修復作業が進行しているためです。
 
cephmon_18079 [ceph@micropod-server-1 /]$ ceph health detail
HEALTH_WARN Degraded data redundancy: 3484/212835 objects degraded (1.637%), 36 pgs degraded, 3 pgs undersized
PG_DEGRADED Degraded data redundancy: 3484/212835 objects degraded (1.637%), 36 pgs degraded, 3 pgs undersized
 
'ceph osd tree' コマンドで各OSDの状態を確認することができます。
 
以下の例では micropod-1 ホスト上の osd.2 が down 状態になっており、その他のOSDはすべて up で正常な状態です。
 
cephmon_23871 [ceph@micropod-1 /]$ ceph osd tree
ID CLASS WEIGHT   TYPE NAME           STATUS REWEIGHT PRI-AFF
-1       16.37238 root default
-7        5.45746     host micropod-1
2   hdd  1.09149         osd.2          down  1.00000 1.00000
5   hdd  1.09149         osd.5           up  1.00000 1.00000
8   hdd  1.09149         osd.8           up  1.00000 1.00000
11   hdd  1.09149         osd.11          up  1.00000 1.00000
14   hdd  1.09149         osd.14          up  1.00000 1.00000
-5        5.45746     host micropod-2
1   hdd  1.09149         osd.1           up  1.00000 1.00000
4   hdd  1.09149         osd.4           up  1.00000 1.00000
6   hdd  1.09149         osd.6           up  1.00000 1.00000
9   hdd  1.09149         osd.9           up  1.00000 1.00000
12   hdd  1.09149         osd.12          up  1.00000 1.00000
-3        5.45746     host micropod-3
0   hdd  1.09149         osd.0           up  1.00000 1.00000
3   hdd  1.09149         osd.3           up  1.00000 1.00000
7   hdd  1.09149         osd.7           up  1.00000 1.00000
10   hdd  1.09149         osd.10          up  1.00000 1.00000
13   hdd  1.09149         osd.13          up  1.00000 1.00000
 
OSD のさらなる状態を確認するために、osd が down を報告しているストレージノードにログインします。
 
各OSDについては、systemd が管理するサービスとして存在しており、sysmtectl status ceph-osd@<osd-id> コマンドで確認できます。
osd-id については環境によって異なります。
 
正常な場合には、"Active: active (running)" となっていることがわかります。
 
[root@micropod-1 ~]# systemctl status ceph-osd@2.service
* ceph-osd@2.service - Ceph object storage daemon osd.2
   Loaded: loaded (/usr/lib/systemd/system/ceph-osd@.service; enabled-runtime; vendor preset: disabled)
   Active: active (running) since Mon 2020-04-20 04:23:10 UTC; 6h ago
Main PID: 14784 (ceph-osd)
   CGroup: /system.slice/system-ceph\x2dosd.slice/ceph-osd@2.service
           `-14784 /usr/bin/ceph-osd -f --cluster ceph --id 2 --setuser ceph --setgroup ceph

Apr 20 04:23:10 micropod-1 systemd[1]: Starting Ceph object storage daemon osd.2...
Apr 20 04:23:10 micropod-1 systemd[1]: Started Ceph object storage daemon osd.2.
Apr 20 04:23:10 micropod-1 cgexec[14784]: starting osd.2 at - osd_data /var/lib/ceph/osd/ceph-2 /var/lib/ceph/osd/ceph-2/journal
Apr 20 04:23:16 micropod-1 cgexec[14784]: 2020-04-20 04:23:16.220840 7feb575d0d80 -1 osd.2 113 log_to_monitors {default=true}
 
一方、何らかの異常が発生している場合には、以下のように "Active: inactive (dead)" となっている可能性があります。
 
[root@micropod-1 ~]# systemctl status ceph-osd@2
* ceph-osd@2.service - Ceph object storage daemon
   Loaded: loaded (/usr/lib/systemd/system/ceph-osd@.service; enabled; vendor preset: disabled)
   Active: inactive (dead) since Thus 2019-04-04 02:35:38 UTC; 3s ago
Main PID: 529110 (code=exited, status=0/SUCCESS)

Apr 03 08:39:04 cpod-osd-compute-1 systemd[1]: Starting Ceph object storage daemon...
Apr 03 08:39:05 cpod-osd-compute-1 cgexec[529043]: create-or-move updating item name 'osd.2' weight 1.0911 at location {host=cpod-os...ush map
Apr 03 08:39:05 cpod-osd-compute-1 systemd[1]: Started Ceph object storage daemon.
Apr 03 08:39:05 cpod-osd-compute-1 cgexec[529110]: starting osd.2 at :/0 osd_data /var/lib/ceph/osd/ceph-2 /var/lib/ceph/osd/ceph-2/journal
Apr 03 08:39:05 cpod-osd-compute-1 cgexec[529110]: 2019-04-03 08:39:05.906506 7f971ff46a40 -1 asok(0x55c52ec9e140) AdminSocketConfig... in use
Apr 03 08:39:06 cpod-osd-compute-1 cgexec[529110]: 2019-04-03 08:39:06.020780 7f971ff46a40 -1 osd.2 0 log_to_monitors {default=true}
Apr 04 02:35:35 cpod-osd-compute-1 systemd[1]: Stopping Ceph object storage daemon...
Apr 04 02:35:35 cpod-osd-compute-1 cgexec[529110]: 2019-04-04 02:35:35.394390 7f96ee1b3700 -1 osd.2 200 *** Got signal Terminated ***
Apr 04 02:35:36 cpod-osd-compute-1 cgexec[529110]: 2019-04-04 02:35:36.122474 7f96ee1b3700 -1 osd.2 200 shutdown
Apr 04 02:35:38 cpod-osd-compute-1 systemd[1]: Stopped Ceph object storage daemon.
Hint: Some lines were ellipsized, use -l to show in full.
 
 
各OSDのイベントについては、/var/log/ceph/ceph-osd.<osd-id>.log のログに記録されております。
必要に応じてこのログを調査します。
 
Ceph OSD down の原因は OSD ドライブの物理的な故障に起因する場合がほとんどです。
この場合には、対象のOSDドライブの物理的な場所を特定した上で、交換を実施し、再度交換済みドライブをCephに組み込む必要があります。具体的な交換手順については以下の記事を参考にしてください。
 
[CVIM] Ceph OSD Drive 交換手順
 
 
 
 
 
 
Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします