[Ceph][Linux][Storage]Cephの落としあげ

技術のお話し

引っ越すことになるため

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追加の時に起こるのか、オートヒーリング失敗時に起こるのかは分かっていません。今後覚えていて気力があれば調べてみたいと思います。

Tags:

Comments are closed

PAGE TOP