引っ越すことになるため
k8s環境もDRサイトへ移動させたことだし、それではCephをシャットダウンしようかと雑に停止した所、起動で泡を吹く羽目になりまして、要は、停止前のリバランス処理などを抑止するフラグを立てておらず、Crushmapの整合性が崩れたのです。
今度引っ越すことになるわけで、またコレを停止しなければならないのですが、いつも行き当たりばったりでTipsを参照して停止していたので、知識として定着しておらず、この際しっかり確認をすることに。トホホ。
停止時の作業
いずれか1台のCephノードで以下コマンドを実行します。
# ceph osd set noout
# ceph osd set nobackfill
# ceph osd set norecover
# ceph osd set norebalance
# ceph osd set nodown
# ceph osd set pause
その後、
- サービスノードをシャットダウンする
- OSDノードをシャットダウンする
- モニターノードをシャットダウンする
- 最後にAdminノードをシャットダウンする
と言う流れで落としていきます。我が家の場合、役割を兼任していることもあり、4号機⇒3号機⇒2号機⇒1号機の純でシャットダウンする感じになりますが、Adminノードに関しては動的に1台が受け持つ形になるので、それはCephダッシュボードから確認することになります。
起動時の作業
起動時は
- Adminノードを起動
- モニターノードを起動
- OSDノードを起動
- サービスノードを起動
となります。我が家の場合、1号機から順次立ち上げ、すべてのプロセスが完全に起動するまで待機する感じになります。プロセス起動状態はCephダッシュボードで確認ができるので、それを使用する感じになりますね。
起動が完了したら以下のコマンドを打ち込めば、IO可能な状態になります。
# ceph osd unset noout
# ceph osd unset norecover
# ceph osd unset norebalance
# ceph osd unset nobackfill
# ceph osd unset nodown
# ceph osd unset pause
コレもどれか1台のノードで実行すればOKす。
Cephの難点かな?と感じること
ころっと忘れていたことなんだけど、Cephの一番扱いが難しいのは、オートヒーリング。二番目に難しいのは変動するCrushmapってことを実感しました。オートヒーリングは、時として助かるものなのですが、使い方を誤ると無駄にCephを混乱させて、収集つかない状態に持っていってしまうんですよね。
そしてCrushmapは特にVM上で動かすことに対して影響が大きいものかなと思ってます。VM上だとVMDKでは特にディスクの見分けがつかず、キャッシュ化させてたSSDを無理やりHDDに取り込んでしまうことを知りました。
これがOSD追加の時に起こるのか、オートヒーリング失敗時に起こるのかは分かっていません。今後覚えていて気力があれば調べてみたいと思います。
Comments are closed