CephクラスタMonとOSDネットワークの変更またはip(主にmon)変換後、クラスタが正常に動作しないという問題を解決
9412 ワード
目的:CephクラスタMonとOSDネットワークの変更またはip(主にmon)変換後、クラスタが正常に動作しない問題を解決する
環境:
問題の分析:
CephのMonitorはクラスタ内で非常に重要なモジュールであり、合理的で効率的なMonitorノード情報のセットを維持する必要があります.これらのノード間では、選択によって一致した状態に達し、Cephシステム全体が利用可能な一致状態にあることを保証することができます.他のCeph Daemonがcephを通過するのとは異なる.confファイルにおける構成はMonitorと通信するが、Monitors間では独立したmonitor mapで互いに発見する、monitor monmapにはmonitorのip情報があるため、ネットワーク変更後はcephを単独で修正する.confファイルの方法でMonitorのネットワークを修正することはできません.Monitorのmonmapにあるip情報を手動で変更する必要があります.
ソリューション: monitorsのmonmapにあるip情報を修正します. が新しいip情報に変更された後、新しいmonmapをmonitorsに適用する. Cephサービスを再起動します.
解決手順:
1.現在のCephクラスタのserver上の/etc/hosts内のホスト情報を変更し、最新の正しいipに変更します.
2.ceph-adminサーバの下のcephを変更する.confのpublic/cluster network情報は現在正しいipであり、他のサーバに同期します.
3.すべてのモニタとOSD上のCephサービスを再起動します.
4.いずれかのMonitorにログインし、コマンドを実行し、現在のCephクラスタ内のMonitorのmonmapを取得します.
5.monmapの情報を表示します.
6.既存のmonmapのmonitor情報を削除します.
7.削除情報を表示したmonmap.
8.新しいモニタ情報をmonmapに書き込む.
9.新しいモニタを追加したmonmapを確認し、追加情報が正しいかどうかを確認します.
10.copy修正後のmonmapからCephクラスタのすべてのmonitorノードへ.
11.copy修正後のmonmapファイルをすべてのmonitorノードに適用し、有効にします.
環境:
:Ubuntu
:Ubuntu 17.10
Ceph 10.2.10
問題の分析:
CephのMonitorはクラスタ内で非常に重要なモジュールであり、合理的で効率的なMonitorノード情報のセットを維持する必要があります.これらのノード間では、選択によって一致した状態に達し、Cephシステム全体が利用可能な一致状態にあることを保証することができます.他のCeph Daemonがcephを通過するのとは異なる.confファイルにおける構成はMonitorと通信するが、Monitors間では独立したmonitor mapで互いに発見する、monitor monmapにはmonitorのip情報があるため、ネットワーク変更後はcephを単独で修正する.confファイルの方法でMonitorのネットワークを修正することはできません.Monitorのmonmapにあるip情報を手動で変更する必要があります.
ソリューション:
解決手順:
1.現在のCephクラスタのserver上の/etc/hosts内のホスト情報を変更し、最新の正しいipに変更します.
:
:
192.168.114.128 ceph-admin
192.168.114.158 mon1
192.168.114.128 ceph-osd1
192.168.114.168 ceph-osd2
server :
192.168.1.228 ceph-admin
192.168.1.188 mon1
192.168.1.258 ceph-osd1
192.168.1.178 ceph-osd2
2.ceph-adminサーバの下のcephを変更する.confのpublic/cluster network情報は現在正しいipであり、他のサーバに同期します.
:192.168.114.158
: public network = 192.168.114.0/24
: 192.168.1.188
: public network = 192.168.1.0/24
ceph-deploy --over-write-conf config push ceph-osd1 ceph-osd2 mon1
3.すべてのモニタとOSD上のCephサービスを再起動します.
:
service ceph restart
service ceph restart
service ceph restart
service ceph restart
4.いずれかのMonitorにログインし、コマンドを実行し、現在のCephクラスタ内のMonitorのmonmapを取得します.
1:
ceph mon getmap -o /monmap
:
ceph mon getmap -o ~/monmap_tmp
2: 1 2, Ceph monmap,copy
find / -name monmap
5.monmapの情報を表示します.
monmaptool --print /monmap
monmaptool --print ~/monmap_tmp
:
monmaptool: monmap file monmap
epoch 1
fsid e55gfgb4-4d47-4a9a-5fc8-ace4522835df
last_changed 2018-01-01 00:01:01.555555
created 2018-01-01 00:01:01.555555
0: 192.168.114.158:6789/0 mon.mon1
6.既存のmonmapのmonitor情報を削除します.
monmaptool --rm mon1 --rm mon2 --rm mon3 /monmap
:
monmaptool --rm mon1 ~/monmap_tmp
7.削除情報を表示したmonmap.
monmaptool --print ~/monmap_tmp
:
monmaptool: monmap file monmap
epoch 1
fsid e55gfgb4-4d47-4a9a-9cc8-ace4522835df
last_changed 2018-01-01 00:01:01.555555
created 2018-01-01 00:01:01.555555
8.新しいモニタ情報をmonmapに書き込む.
monmaptool --add mon1 IP:port --add mon2 IP:port /monmap
:
monmaptool --add mon1 192.168.1.188:6789 ~/monmap_tmp
9.新しいモニタを追加したmonmapを確認し、追加情報が正しいかどうかを確認します.
monmaptool --print ~/monmap_tmp
:
monmaptool: monmap file monmap
epoch 1
fsid e55gfgb4-4d47-4a9a-9cc8-ace4522835df
last_changed 2018-01-01 00:01:01.555555
created 2018-01-01 00:01:01.555555
0: 192.168.1.188:6789/0 mon.mon1
10.copy修正後のmonmapからCephクラスタのすべてのmonitorノードへ.
11.copy修正後のmonmapファイルをすべてのmonitorノードに適用し、有効にします.
a. monitor, monitor mon 。
service ceph stop。
b. monmap monitor。
ceph-mon -i mon1 --inject-monmap /monmap
ps: , ceph , 。
c. Ceph 。