GNU/Linux >> Linux の 問題 >  >> Linux

GlusterFSアレイで障害が発生したサーバーから回復する

前のセクション

GlusterFSサーバーの追加と削除

この記事では、単一のサーバーに障害が発生した場合に回復するための次の方法を示します。

  • その代わりに、新しいIPアドレスを使用して新しいサーバーを追加します(作業量の少ない修正)。

  • 新しいサーバーを追加しますが、障害が発生したサーバーのIPアドレスは保持します(より多くの作業を必要とする修正)。

前の記事を完了すると、少なくとも2つのノードを持つGlusterFSアレイができ、ノードを追加および削除する方法を知っているはずです。

前提条件

この記事の目的上、完全に複製された4ノードのGlusterボリュームで実行している必要があります。

GlusterFSアレイにテスト用の偽のデータを入力します。

交換用サーバーを追加する

このシナリオでは、web03は失敗しますが、IPアドレス192.168.0.5の新しいノードを追加して置き換えます。この方法は、障害が発生したサーバーと同じIPアドレスを持つ新しいサーバーを追加するよりも簡単です。

この記事では、ディザスタリカバリの2つの形式を紹介します。

  1. 1つのノードがダウンし、代わりに新しいノードを追加しています。
  2. 1つのノードがダウンし、再構築されてIPが維持されました。これは、修正するのにより多くの作業が必要であることが判明しました。
置換ノードを追加する

このシナリオでは、web03は再びダウンしますが、192.168.0.5に新しいノードを追加して置き換えます。この方法ははるかに簡単です。

  1. 実行中のサーバーの1つを使用して、新しいサーバーをクラスターに追加します。

    root@matt:~# gluster peer probe 192.168.0.5
    peer probe: success
    
  2. 故障したレンガを新しいレンガと交換します:

    root@matt:~# gluster volume replace-brick www 192.168.0.3:/srv/.bricks/www 192.168.0.5:/srv/.bricks/www  commit force
    volume replace-brick: success: replace-brick commit successful
    
  3. システムを修復する:

    root@matt:~# gluster volume heal www full
    Launching Heal operation on volume www has been successful
    Use heal info commands to check status
    
  4. healの進行状況に関する情報を取得します 操作:

    root@matt:~# gluster volume heal www info
    Gathering Heal info on volume www has been successful  
    ...
    Brick 192.168.0.4:/srv/.bricks/www
    Number of entries: 23
    /wordpress/wp-admin/upload.php
    
  5. 分散システムを実行している場合は、次のコマンドを実行します。

    root@matt:~# gluster volume rebalance www fix-layout start
    volume rebalance: www: success: Starting rebalance on volume www has been successful.
    ID: 0a9719c1-cf04-4161-b3b0-cc6fd8dd9108
    root@matt:~# gluster volume rebalance www status
    
    Node      Rebalanced-files          size       scanned      failures       skipped         status run time in secs
    ---------      -----------   -----------   -----------   -----------   -----------   ------------   --------------
    localhost                0        0Bytes             0             0             0      completed             1.00
    
    localhost                0        0Bytes             0             0             0      completed             1.00
    
    192.168.0.2              0        0Bytes             0             0             0      completed             1.00
    
    192.168.0.4              0        0Bytes             0             0             0      completed             1.00
    
    192.168.0.4              0        0Bytes             0             0             0      completed             1.00
    
    192.168.0.5              0        0Bytes             0             0             0      completed             1.00
    
    volume rebalance: www: success:
    

IPアドレスを保持する

このシナリオでは、IPアドレスが192.168.0.3のサーバーweb03がクラッシュし、完全に回復できません。

復旧するには、同じIPアドレスを使用して新しいサーバーを構築します 、障害が発生したサーバーとしてGlusterFSに提示し、自己回復させます。次に、ボリュームをGlusterFSに再調整します。

交換用サーバーの構築と構成については、以前の記事を参照してください。

新しいweb03サーバーを障害のあるサーバーに偽装します
  1. 新しいサーバーを構築し、そのサーバーにGlusterFSをインストールして、ディスクをブリック用に準備します。

  2. 障害が発生したサーバーのピアUUIDをサーバーに提供します。 UUIDを取得するには、実行中のサーバーの1つ(web01など)で次のコマンドを実行します。

    root@web01:~# grep 192.168.0.3 /var/lib/glusterd/peers/*/var/lib/glusterd/peers/ba502dc2-447f-466a-a732-df989e71b551:hostname1=192.168.0.3
    
  3. ファイル名(元のWeb03 UUID)をコピーします。前の例では、次のようになります。ba502dc2-447f-466a-a732-df989e71b551

  4. 障害が発生したサーバーのUUIDを新しいサーバーに割り当てます。

    1. Glusterデーモンを停止します:

      root@web03:~# service glusterfs-server stop
      glusterfs-server stop/waiting
      
    2. 生成されたノードUUIDをglusterd内のコピーされたノードUUIDに置き換えます 構成ファイル:

      root@web03:~# UUID=ba502dc2-447f-466a-a732-df989e71b551
      root@web03:~# sed  -i "s/\(UUID\)=\(.*\)/\1=$UUID/g" /var/lib/glusterd/glusterd.info
      root@web03:~# cat /var/lib/glusterd/glusterd.info
      UUID=ba502dc2-447f-466a-a732-df989e71b551
      operating-version=2
      

    注: ba502dc2-447f-466a-a732-df989e71b551 UUIDはUUIDの例です。障害が発生したサーバーのUUIDに置き換える必要があります(web01で記憶されています)。

  5. サーバーを再起動します:

    root@web03:~# service glusterfs-server start
    glusterfs-server start/running, process 10732
    
ピアサーバーを再構成します
  1. 新しいサーバーで、他のサーバーが表示されていることを確認します。

    root@web03:~# gluster peer status
    peer status: No peers present
    
  2. ピアサーバーが表示されていない場合は、明示的に追加する必要があります:

    root@web03:~# gluster peer probe 192.168.0.1
    peer probe: success
    root@web03:~# gluster peer probe 192.168.0.2
    peer probe: success
    root@web03:~# gluster peer probe 192.168.0.4
    peer probe: success
    
  3. gluster peer statusを実行します web03で再度コマンドを実行します。応答は次のようになります。State: Accepted peer request (Connected)

  4. デーモンをもう一度再起動すると、ピアサーバーが表示されます。

    root@web03:~# service glusterfs-server restart
    glusterfs-server stop/waiting
    glusterfs-server start/running, process 9123
    root@web03:~# gluster peer status
    Number of Peers: 3
    Hostname: 192.168.0.2
    Uuid: 177cd473-9421-4651-8d6d-18be3a7e1990
    State: Peer in Cluster (Connected)
    
    Hostname: 192.168.0.1
    Uuid: 8555eac6-de14-44f6-babe-f955ebc16646
    State: Peer in Cluster (Connected)
    
    Hostname: 192.168.0.4
    Uuid: 1681b266-dc31-42e1-ab82-4e220906eda1
    State: Peer in Cluster (Connected)
    
ボリュームを同期する
  1. ボリュームのステータスを確認します:

    root@web03:~# gluster volume status
    No volumes present
    
  2. ピアサーバーからボリュームを取得します:

    root@web03:~# gluster volume sync 192.168.0.2 all
    Sync volume may make data inaccessible while the sync is in progress. Do you want to continue? (y/n) y
    volume sync: success
    
  3. ブリックのファイルシステムを順番に設定します。次の例では、ブリックは /srv/.bricks/wwwに格納されています :

    root@web03:~# mkdir /srv/.bricks/www
    
  4. 実行中のサーバーの1つに移動し、attrをインストールします 正しいボリュームIDを取得します。

    root@web02:~# apt-get install attr -y
    ...
    root@web02:~# getfattr  -n trusted.glusterfs.volume-id /srv/.bricks/www
    getfattr: Removing leading '/' from absolute path names
    # file: srv/.bricks/www
    trusted.glusterfs.volume-id=0s42V5HW+LSuyzqotW1jgAhA==
    
  5. ボリュームID文字列をクリップボードにコピーします。この例では、0s42V5HW+LSuyzqotW1jgAhA==です。 。

  6. 交換用サーバーで、その拡張属性を適用します:

    root@web03:~# apt-get install attr -y
    ...
    root@web03:~# setfattr -n trusted.glusterfs.volume-id -v '0s42V5HW+LSuyzqotW1jgAhA==' /srv/.bricks/www
    
  7. サーバーを再起動してから、システムを修復します。

    root@matt:~# service glusterfs-server restart
    glusterfs-server stop/waiting
    glusterfs-server start/running, process 13318
    root@matt:~# gluster volume heal www full
    Launching Heal operation on volume www has been successful
    Use heal info commands to check status
    
  8. healの進行状況に関する情報を取得します 手術。新しいサーバーは期待どおりに実行されているはずです。

    root@matt:~# gluster volume heal www info
    Gathering Heal info on volume www has been successful
    
    Brick 192.168.0.1:/srv/.bricks/www
    Number of entries: 0
    
    Brick 192.168.0.2:/srv/.bricks/www
    Number of entries: 0
    
    Brick 192.168.0.3:/srv/.bricks/www
    Number of entries: 0
    
    Brick 192.168.0.4:/srv/.bricks/www
    Number of entries: 0
    
結論

これで、GlusterFSアレイで障害が発生したサーバーから回復する方法を学習しました。


Linux
  1. DebianWheezyでGlusterFS3.2.xを使用してNFSのようなスタンドアロンストレージサーバーを作成する

  2. openSUSE13.1からopenSUSE13.2にアップグレードする方法

  3. AndroidからLinuxでSSH接続する方法

  1. diskpartを使用してWindowsServerのボリュームを拡張する

  2. 別のホスティングプロバイダーからRackspaceに移行する

  3. Debi a Volume Linux Server について知っておくべきこと

  1. Ubuntu12.10でGlusterFS3.2.xを使用してNFSのようなスタンドアロンストレージサーバーを作成する

  2. サーバーからメールを送信する

  3. パスの bash 配列から不足しているパスを抽出する