CephクラスタMonとOSDネットワークの変更またはip(主にmon)変換後、クラスタが正常に動作しないという問題を解決

9412 ワード

目的:CephクラスタMonとOSDネットワークの変更またはip(主にmon)変換後、クラスタが正常に動作しない問題を解決する
環境:
  :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情報を手動で変更する必要があります.
ソリューション:
  • monitorsのmonmapにあるip情報を修正します.
  • が新しいip情報に変更された後、新しいmonmapをmonitorsに適用する.
  • Cephサービスを再起動します.

  • 解決手順:
    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.158public network = 192.168.114.0/24192.168.1.188public 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
    
      21      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  。