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

GlusterFSの使用を開始する-考慮事項とインストール

この記事は、CentOS®7およびUbuntu®18.04へのGlusterFS®7のインストールをカバーするように更新されています。 レプリカを使用してボリュームを作成する手順を除いて、このドキュメントの元の作業はすべて同じです。 キーワード。

GlusterFSの使用を開始する前に、環境に必要なボリュームのタイプを決定する必要があります。次の方法は、さまざまな結果を達成するために最も頻繁に使用されます。

複製されたボリューム

このタイプのボリュームは、複数のブリック間でファイルレプリケーションを提供します。これは、高可用性、高信頼性、およびスケーラブルなストレージを必要とする環境に最適です。このボリュームタイプは、たとえばWebサーバーのドキュメントルート( /var/www)としてGlusterFSボリュームをセルフマウントする場合に適しています。 )または同様の場所で、すべてのファイルがそのノードに存在する必要があります。 レプリカに渡された値 ボリューム内のノードの数は同じです。

独立ディスクの冗長アレイ(RAID-1)と同様に、ファイルはボリューム内の各ブリックにコピーされます。ただし、3つ以上のブリック、または奇数のブリックを使用できます。使用可能なスペースは1つのブリックのサイズであり、1つのブリックに書き込まれたすべてのファイルが他のすべてのブリックに複製されます。このタイプのボリュームは、ほとんどの環境で読み取りパフォーマンスも向上し、クライアントがGlusterFSノード自体の外部にある場合に使用される最も一般的なタイプのボリュームです。

分散複製ボリューム

RAID-10と同様に、偶数のブリックを使用する必要があります。使用可能なスペースは、レプリカに渡される結合されたレンガのサイズです。 価値。たとえば、 20ギガバイト(GB)のブリックが4つある場合 レプリカ2に合格します 作成時に、ファイルは2つのノード(40 GB)に分散され、2つのノードに複製されます。 20GBのレンガ6個 およびレプリカ3 、ファイルは3つのノード(60 GB)に分散され、3つのノードに複製されます。レプリカ2を使用した場合、それらは2つのノード(40 GB)に分散され、ペアで4つのノードに複製されます。この分散とレプリケーションは、クライアントがローカルのセルフマウントではなく、クラスターの外部にある場合に使用されます。

前提条件
  • 個別のストレージを備えた2台以上のサーバー。この記事の例は、CentOS7およびUbuntu18.04サーバーに基づいています。
  • サーバー間のプライベートネットワーク。この記事の例では、192.168.0.0/24を使用しています 。
ビルドセットアップ

このドキュメントで説明するビルドは、次のセットアップを使用します。

  • /dev/xvdeを使用した4つのRackspaceCloudサーバーイメージ 各ブリックですぐに使用できるパーティション
  • 192.168.0.0/24上の1つのクラウドプライベートネットワーク GlusterFS通信用
  • ベンダーパッケージリポジトリからインストールされたGlusterFS7.1
サーバーの準備

次の構成とインストールを実行して、サーバーを準備します。

  1. /etc/hostsを構成します
  2. オペレーティングシステム(OS)の更新をインストールします。
  3. GlusterFSソフトウェアをインストールします。
  4. ネットワークアクセスを構成します。
  5. GlusterFSノードを接続します。
ノード内通信用に/etc/hostsを構成します

DNSを使用する代わりに、 /etc/hostsを準備します すべてのサーバーで、サーバーが相互に通信できることを確認します。すべてのサーバーの名前はgluster N ホスト名としてglus Nを使用します サーバー間のプライベート通信レイヤー用。

# vi /etc/hosts
192.168.0.1  glus-01
192.168.0.2  glus-02
192.168.0.3  glus-03
192.168.0.4  glus-04

# ping -c2 glus-01; ping -c2 glus-02;  ping -c2 glus-03;  ping -c2 glus-04
パッケージをインストール

このセクションのコマンドを実行して、次の手順を実行します。

  1. OSアップデートをインストールします。
  2. GlusterFSリポジトリとGlusterFSパッケージをインストールします。

CentOS

yum update -y
yum install -y centos-release-gluster7
yum install -y glusterfs-server

Ubuntuオペレーティングシステム

デフォルトのUbuntuリポジトリにはGlusterFS3.13.2がインストールされています。次のコマンドを使用して7.1をインストールします。

apt update
apt upgrade -y
add-apt-repository -y ppa:gluster/glusterfs-7
apt install -y glusterfs-server
ネットワークアクセスを構成する

CentOS

次のコマンドを使用して、ノード間のGlusterトラフィックを許可し、クライアントマウントを許可します。

firewall-cmd --add-service=glusterfs
firewall-cmd --add-service=glusterfs --permanent

Ubuntuオペレーティングシステム

次のコマンドを使用して、プライベートネットワークセグメント上のすべてのトラフィックを許可し、Gluster通信を容易にします。

ufw enable
ufw allow from 192.168.0.0/24
レンガを準備する

このセクションのコマンドを実行して、次の手順を実行します。

  1. パーティションブロックデバイス。
  2. 論理ボリュームマネージャー(LVM)基盤を作成します。
  3. ボリュームブリックを準備します。

基盤となるブリックは、標準のファイルシステムとマウントポイントです。ユーザーがディレクトリに変更して、基になるブリック自体に書き込むことを思いとどまらせるような方法で、各ブリックをマウントします。

警告: ブリックに直接書き込むと、ボリュームが破損します。

ブリックはノードごとに一意である必要があり、ボリュームの作成に使用するディレクトリがマウントポイント内にある必要があります。マウントポイントの最上位レベルを使用して複製ボリュームを作成しようとすると、サブディレクトリの使用手順でエラーが発生します。

すべてのノード

parted -s -- /dev/xvde mktable gpt
parted -s -- /dev/xvde mkpart primary 2048s 100%
parted -s -- /dev/xvde set 1 lvm on
pvcreate /dev/xvde1
vgcreate vgglus-01 /dev/xvde1
lvcreate -l 100%VG -n gbrick1 vgglus-01
mkfs.xfs /dev/vgglus-01/gbrick1
echo '/dev/vgglus-01/gbrick1 /var/lib/gvol0 xfs defaults 0 0' >> /etc/fstab
mkdir /var/lib/gvol0
mount /var/lib/gvol0
  • glus-01

     mkdir /var/lib/gvol0/brick1
    
  • glus-02

     mkdir /var/lib/gvol0/brick2
    
  • glus-03

     mkdir /var/lib/gvol0/brick3
    
  • glus-04

     mkdir /var/lib/gvol0/brick4
    

GlusterFSを設定する

以下の手順を使用して、GlusterFSセットアップを実行します。

glusterfsdデーモンを起動します

次のコマンドを使用して、実行時にデーモンを再起動できます。

systemctl enable glusterd
systemctl start glusterd
ピアグループを構築する

ピアグループは、信頼できるストレージプールと呼ばれます。 GlusterFSで。

  • glus-01

    gluster peer probe glus-02
    gluster peer probe glus-03
    gluster peer probe glus-04
    gluster peer status
    
  • glus-02

    gluster peer status
    
  • glus-03

    gluster peer status
    
  • glus-04

    gluster peer status
    

これで、ノードとglusterサーバープールのステータスを確認できます。

[root@gluster1 ~]# gluster pool list
UUID	                				Hostname	State
734aea4c-fc4f-4971-ba3d-37bd5d9c35b8	glus-04   	Connected
d5c9e064-c06f-44d9-bf60-bae5fc881e16	glus-03   	Connected
57027f23-bdf2-4a95-8eb6-ff9f936dc31e	glus-02   	Connected
e64c5148-8942-4065-9654-169e20ed6f20	localhost	Connected
ボリュームを作成する

デフォルトでは、glusterd NFSはボリュームの作成中にグローバルな読み取り/書き込みを許可するため、プライベートサブネットのみに基本認証制限を設定する必要があります。 glusterd 各サーバーでNFSdを自動的に起動し、各ノードからNFSdを介してボリュームをエクスポートします。この動作の理由は、クライアントにボリュームをマウントするためにユーザースペースのネイティブクライアントファイルシステム(FUSE)を使用するには、クライアントがまったく同じバージョンのGlusterFSパッケージを実行する必要があるためです。バージョンが異なると、サーバーとクライアントで使用されるハッシュアルゴリズムに違いが生じる可能性があり、クライアントは接続できなくなります。

複製されたボリューム

次の例では、4つのノードすべてへのレプリケーションを作成します。各ノードにはすべてのデータのコピーが含まれており、ボリュームのサイズは単一のブリックのサイズです。出力には1 x 4 = 4が表示されることに注意してください 。

1つのノードのみ

 gluster volume create gvol0 replica 4 transport tcp \
 glus-01:/var/lib/gvol0/brick1 \
 glus-02:/var/lib/gvol0/brick2 \
 glus-03:/var/lib/gvol0/brick3 \
 glus-04:/var/lib/gvol0/brick4
 gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off
分散複製ボリューム

この例では、2x2ノードへの分散レプリケーションを作成します。ノードの各ペアにはデータが含まれており、ボリュームのサイズは2つのブリックのサイズです。出力には2 x 2 = 4が表示されることに注意してください 。

1つのノードのみ

gluster volume create gvol0 replica 2 transport tcp \
glus-01:/var/lib/gvol0/brick1 \
glus-02:/var/lib/gvol0/brick2 \
glus-03:/var/lib/gvol0/brick3 \
glus-04:/var/lib/gvol0/brick4
gluster volume start gvol0

[root@gluster1 ~]# gluster volume info gvol0

Volume Name: gvol0
Type: Distributed-Replicate
Volume ID: b2ddd34b-ffb4-4fd8-ae60-b90adbd4c2ab
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off
ボリュームを削除する

クライアント(ローカルまたはリモート)がボリュームをマウントしていないことを確認したら、次のコマンドを使用してボリュームを停止し、削除できます。

gluster volume stop gvol0
gluster volume delete gvol0
ブリックのクリア

ブリックがボリュームで使用されており、それらを削除する必要がある場合は、次のいずれかの方法を使用できます。

GlusterFSは、ブリックサブディレクトリに属性を設定します。この属性をクリアすると、レンガを再利用できます。

  • glus-01:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick1/setfattr -x trusted.gfid /var/lib/gvol0/brick1rm -rf /var/lib/gvol0/brick1/.glusterfs

  • glus-02:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick2/setfattr -x trusted.gfid /var/lib/gvol0/brick2rm -rf /var/lib/gvol0/brick2/.glusterfs

  • glus-03:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick3/setfattr -x trusted.gfid /var/lib/gvol0/brick3rm -rf /var/lib/gvol0/brick3/.glusterfs

  • glus-04:

    setfattr -x trusted.glusterfs.volume-id /var/lib/gvol0/brick4/setfattr -x trusted.gfid /var/lib/gvol0/brick4rm -rf /var/lib/gvol0/brick4/.glusterfs

または、サブディレクトリを削除してから再作成することもできます。

  • glus-01

    rm -rf / var / lib / gvol0 / brief1mkdir / var / lib / gvol0 / brief1

  • glus-02:

    rm -rf / var / lib / gvol0 / brief2mkdir / var / lib / gvol0 / brief2

  • glus-03:

    rm -rf / var / lib / gvol0 / brief3mkdir / var / lib / gvol0 / brief3

  • glus-04:

    rm -rf / var / lib / gvol0 / brief4mkdir / var / lib / gvol0 / brief4

ブリックを追加

実行中のボリュームにブリックを追加できます。次のコマンドを使用して、上記のレプリケートされたボリュームの例にブリックを追加します。

gluster volume add-brick gvol0 replica 5 gluster5:/var/lib/gvol0/brick5

add-brickを使用できます ボリュームのレイアウトを変更するコマンド。たとえば、2ノードの分散ボリュームを4ノードの分散複製ボリュームに変更します。このような操作の後、ボリュームのバランスを取り直す必要があります。新しいファイルは新しいノードに自動的に作成されますが、古いファイルは移動されません。

gluster volume add-brick gvol0 replica 2 \
gluster5:/var/lib/gvol0/brick5 ;
gluster6:/var/lib/gvol0/brick6
gluster volume rebalance gvol0 start
gluster volume rebalance gvol0 status

## If needed (something didn't work right)
gluster volume rebalance gvol0 stop
ボリュームオプション

構成されたボリュームオプションを表示するには、次のコマンドを実行します。

gluster volume info gvol0

次に出力例を示します。

Volume Name: gvol0
Type: Replicate
Volume ID: 8d12cb5a-77ad-43a3-bdd1-ab48405ff1da
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 4 = 4
Transport-type: tcp
Bricks:
Brick1: glus-01:/var/lib/gvol0/brick1
Brick2: glus-02:/var/lib/gvol0/brick2
Brick3: glus-03:/var/lib/gvol0/brick3
Brick4: glus-04:/var/lib/gvol0/brick4
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
performance.client-io-threads: off

ボリュームのオプションを設定するには、設定を使用します キーワードは次のとおりです:

gluster volume set gvol0 performance.write-behind off
volume set: success

ボリュームのオプションをクリアしてデフォルトに戻すには、リセットを使用します キーワードは次のとおりです:

gluster volume reset gvol0 performance.read-ahead
volume reset: success: reset volume successful
クライアントマウント

クライアントがGlusterFSボリュームをマウントするための推奨される方法は、ネイティブFUSEクライアントを使用することです。 GlusterFSがNFS-Ganesha®と連携してデプロイされている場合、NFSマウントが可能です。

FUSEクライアント

FUSEクライアントを使用すると、GlusterFSの「ラウンドロビン」スタイルの接続でマウントを実行できます。 / etc / fstab内 、1つのノードの名前が使用されます。ただし、内部メカニズムによりそのノードに障害が発生し、クライアントは信頼できるストレージプール内の他の接続されたノードにロールオーバーします。

CentOS

yum install -y centos-release-gluster7
yum install -y glusterfs-fuse

Ubuntu

add-apt-repository -y ppa:gluster/glusterfs-7
apt install glusterfs-client

共通

vi /etc/hosts
192.168.0.2  glus-01
192.168.0.4  glus-02
192.168.0.1  glus-03
192.168.0.3  glus-04

`modprobe fuse
 echo 'glus-01:/gvol0 /mnt/gluster/gvol0 glusterfs _netdev 0 0' >> /etc/fstab
 mkdir -p /mnt/gluster/gvol0
 mount /mnt/gluster/gvol0`
参照
  • https://www.gluster.org/announcing-gluster-7-0/
  • https://docs.gluster.org/en/latest/
  • https://wiki.centos.org/HowTos/GlusterFSonCentOS
  • https://kifarunix.com/install-and-setup-glusterfs-on-ubuntu-18-04/
  • https://launchpad.net/~gluster
次の記事

GlusterFSのトラブルシューティング


Linux
  1. LinuxでNetworkManagerを使い始める

  2. クラウドサーバーを使い始める

  3. Debian10でMagentoを使い始めましょう

  1. Linuxを始めたきっかけは何ですか?

  2. FreeBSDクラウドサーバーを使い始める方法

  3. DebianでTaskselを使い始める

  1. Linuxデスクトップ用のLuminaを使い始めましょう

  2. Linuxを始める10の方法

  3. Linux で Latex を使い始める