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

GlusterFSサーバーを追加および削除します

この記事では、サーバーアレイにGlusterFSサーバーを追加および削除する方法について説明します。

新しいサーバーを作成する

nova bootを使用します 前の記事のコマンドを使用して、web3というサーバーを作成します:

nova boot --image bb02b1a3-bc77-4d17-ab5b-421d89850fca --flavor performance1-4 web3

RackspaceCloudコントロールパネルを使用して新しいサーバーを作成することもできます。

サーバーをRackspaceカスタムネットワークに追加します

前回の記事では、Rackspaceカスタムネットワークを追加しました。

  1. 次のnovaを使用して、ネットワークのUniversal Unique Identifer(UUID)を取得します。 コマンド:

    nova network-list
    
  2. UUIDを取得したら、新しいホストをUUIDに関連付けます。

    UUIDを置き換えます 次のコマンドで実際のUUIDを使用します(たとえば、5492de89-1497-4aa0-96eb-bcdd55e1195c1 )。 web03 追加するサーバーのホスト名です。

    nova network-associate-host UUID web03
    

Rackspace Cloudコントロールパネルを使用して、サーバーを既存のネットワークに関連付けることもできます。

完了すると、新しいサーバーのIPアドレスはインターフェース/dev/eth3に192.168.0.3になります。 。これは、GlusterFSが他のサーバーとの通信に使用するアドレスです。

パーティションをフォーマットし、GlusterFSをインストールします

次の手順を使用して、サーバーパーティションをフォーマットし、GlusterFSをインストールします。

  1. Secure Shell(SSH)を使用してサーバーにログインします。

  2. 前の記事の手順を使用して、GlusterFSをインストールし、bricksをフォーマットします 次のようにパーティションを作成します:

    apt-get update
    apt-get install -y glusterfs-server glusterfs-client
    apt-get install -y xfsprogs
    mkfs.xfs /dev/xvde1
    mkdir /srv/.bricks
    echo /dev/xvde1 /srv/.bricks xfs rw 0 1 >> /etc/fstab
    mount /srv/.bricks
    ufw allow in on eth2
    
新しいブリックをGlusterボリュームに組み込みます
  1. SSHを使用して、いずれかのweb01にログインします またはweb02

  2. 次のコマンドは、新しいサーバーを信頼するようにGlusterFSボリュームに指示します。

    root@web02 :~# gluster peer probe 192.168.0.3
    peer probe: success
    
  3. 次のコマンドを使用して、ブリックをボリュームに追加します。

    root@web02 :~# gluster volume add-brick www replica 3 192.168.0.3:/srv/.bricks/www
    volume add-brick: success
    

このコマンドには、次の部分が含まれています。

  • gluster -コマンドはGlusterFS用です。
  • volume -コマンドはボリュームに関連しています。
  • add-brick -ボリュームにブリックを追加しています。
  • www -これはボリュームの名前です。
  • replica 3 -このブリックを追加すると、ボリュームは各ファイルの少なくとも3つのコピー、ブリックごとに1つのコピー、この場合はサーバーごとに1つのコピーを保持します(各サーバーにブリックが1つしかないため)。
  • 192.168.0.3:/srv/.bricks/www -コマンドのこの部分は、GlusterサーバーのIPアドレスであり、その後にブリックデータが保存されている場所への絶対パスが続きます。
ボリュームストレージ戦略

GlusterFSは、次のタイプのボリュームストレージ戦略を提供します。

  • 分散 -1つのファイルが1つのブリックにあり、次のファイルが次のブリックにあります。ボリュームはすべてのレンガの合計であるため、この戦略ではより多くのスペースが得られます。
  • 複製推奨 )-すべてのファイルがすべてのサーバーにコピーされます。
  • ストライプ -ファイルはチャンクにカットされ、1つのチャンクが最初のブリックに書き込まれ、1つのチャンクが2番目のブリックに書き込まれます。

次の例に示すように、複製と分散などの戦略を組み合わせることもできます。

gluster volume create www replica 2 transport tcp
192.168.0.1:/srv/.bricks/www 192.168.0.2:/srv/.bricks/www
192.168.0.3:/srv/.bricks/www 192.168.0.4:/srv/.bricks/www

レプリカ番号は、レプリカセットを構成する、つまりファイルの完全なコピーを保持するブリックの数です。前の例では、192.168.0.1 および192.168.0.2 192.168.0.3と同様に、ファイルの完全なコピーを保持します および192.168.0.4 。レンガの順序は重要です。 1,3,2,4を注文した場合、1と3および2と4は完全なファイルを保持します。 1と2がダウンした場合、ファイルの半分が失われ、残りの半分のコピーが2つあります。

複製されたボリュームと分散されたボリュームを組み合わせると、データの安全性と引き換えに、速度が少し向上し、スペースが増えます。

ストライプボリュームとレプリケートボリュームの組み合わせは、ブリックよりも大きいファイルがある場合、または多くのIO操作を受けている大きなファイルが多数ある場合にのみ推奨されます。

サーバーの状態を表示する

次のコマンドは、クラスタで何が起こっているかを調べるのに役立ちます。これらのコマンドは、後のGlusterFSの記事で使用します。

ピアステータス

いずれかのサーバーから次のコマンドを実行すると、認識しているすべてのピアサーバーが表示されます。

root@web01:~# gluster peer status
Number of Peers: 2

Hostname: 192.168.0.3
Uuid: ba502dc2-447f-466a-a732-df989e71b551
State: Peer in Cluster (Connected)

Hostname: 192.168.0.2
Uuid: 56e02356-d2c3-4787-ae25-6b46e867751a
State: Peer in Cluster (Connected)
ボリュームステータス

次のコマンドは、トラブルシューティングに役立つコマンドです。キューに入れられて進行中のすべてのGlusterFSボリュームとタスクに関する情報を提供します。

root@web03:~# gluster volume status
Status of volume: www
Gluster process						Port	Online	Pid
------------------------------------------------------------------------------
Brick 192.168.0.2:/srv/.bricks/www			49152	Y	13673
Brick 192.168.0.1:/srv/.bricks/www			49152	Y	10249
Brick 192.168.0.3:/srv/.bricks/www			49153	Y	13783
NFS Server on localhost					2049	Y	13793
Self-heal Daemon on localhost				N/A	Y	13800
NFS Server on 192.168.0.2				2049	Y	13900
Self-heal Daemon on 192.168.0.2				N/A	Y	13907
NFS Server on 192.168.0.1				2049	Y	10286
Self-heal Daemon on 192.168.0.1				N/A	Y	10293

There are no active volume tasks
レンガを削除する

クラスタがオンラインで利用可能なときに、必要に応じてボリュームを縮小できます。次のコマンドを使用して、ブリックを削除します。

# gluster volume remove-brick <volName> <brickName> start

remove-brickを実行しています startで オプションを選択すると、リバランス操作が自動的にトリガーされ、削除されたブリックからボリュームの残りの部分にデータが移行されます。

次の例では、ブリック2を削除します:

root@web01:~# gluster volume remove-brick www replica 2 192.168.0.2:/srv/.bricks/www start
Removing brick(s) can result in data loss. Do you want to Continue? (y/n) y
volume remove-brick commit force: success

このコマンドは、GlusterFSにwww ボリュームは、各ファイルの2つのコピーのみを保持するようになります。データが失われる可能性があることを警告し、続行するように促します。

分散ボリューム上のブリックを削除する場合は、代わりに次のコマンドを実行する必要があります。

root@web01:~# gluster volume remove-brick www 192.168.0.2:/srv/.bricks/www start

remove-brickのステータスを表示できます 次のコマンドを使用して操作します:

root@web01:~# watch gluster volume remove-brick www replica 2 192.168.0.2:/srv/.bricks/www status
レンガを再追加

このセクションでは、レンガを再度追加する方法について説明します。

次のように、web02をボリュームに追加し直してみてください。

root@web02:~# gluster volume add-brick www replica 3 192.168.0.2:/srv/.bricks/www
volume add-brick: failed:

失敗しました。 web02のログを見て、コマンドが失敗した理由を確認してください。

root@web02:/srv/.bricks# tail /var/log/glusterfs/*log -f | grep E
[2014-05-25 00:19:04.954410] I [input.c:36:cli_batch] 0-: Exiting with: 0
[2014-05-25 00:19:12.958620] I [input.c:36:cli_batch] 0-: Exiting with: 0
[2014-05-25 00:40:46.923747] E [glusterd-utils.c:5377:glusterd_is_path_in_use] 0-management: /srv/.bricks/www or a prefix of it is already part of a volume
[2014-05-25 00:40:46.923789] E [glusterd-op-sm.c:3719:glusterd_op_ac_stage_op] 0-management: Stage failed on operation 'Volume Add brick', Status : -1

問題は、/srv/.bricks/www web02がボリュームのメンバーだったときのデータがまだ含まれています。

データを保存するためのきれいな場所が必要です。クリーンアップする最も簡単な方法は、次のコマンドを使用してすべてのデータを削除することです。

root@web02:~# rm -rf /srv/.bricks/www

警告 :正しいホスト(現在ボリュームが不足しているweb02)でこのアクションを実行するように注意してください。間違えた場合は、次の記事で回復方法を説明します。別のアクションは、wwwを移動することです ディレクトリを邪魔にならないようにするか、www2などの別のディレクトリを使用してブリックを追加します 。

レンガを保管するためのきれいな場所ができたので、レンガの追加は成功しました:

root@web01:/srv# gluster volume add-brick www replica 3 192.168.0.2:/srv/.bricks/www
volume add-brick: success
次のステップ
  • GlusterFSアレイで障害が発生したサーバーから回復する方法

Linux
  1. Pleskでドメインを追加および削除する方法

  2. クラウドサーバーに関するFAQ

  3. 汎用および作業に最適化されたクラウドサーバーの新機能

  1. Xorg、X11、Wayland? Linuxディスプレイサーバーとプロトコルの説明

  2. WindowsServerでの役割と機能の追加と削除

  3. NTP サーバーのアーキテクチャ

  1. LinuxおよびWindows用の16の最高のSyslogサーバー

  2. AWSインスタンス(EC2)でEBSボリュームを作成および追加する方法

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