GlusterFSは、ネットワーク上の物理サーバー、仮想サーバー、およびクラウドサーバーで使用できる無料のオープンソースファイルおよびオブジェクトストレージソリューションです。 GlusterFSの主な利点は、ダウンタイムなしでストレージを数ペタバイトまでスケールアップまたはスケールアウトできることです。また、ストレージの冗長性と高可用性も提供します。
GluserFSを使用する場所…?
GllusterFSベースのストレージは、ネットワーク上の物理サーバー、仮想サーバー、およびクラウドサーバーで使用できます。
また、マルチメディアやその他のコンテンツをインターネットユーザーに提供し、数百テラバイトのファイルを処理する必要があった企業でも使用できます。
GlusterFSは、プライベートクラウドとパブリッククラウドのオブジェクトストレージとしても使用できます。
GlusterFSストレージで使用されるさまざまな用語:
- 信頼できるストレージプール :相互に信頼し、ストレージクラスタを形成する複数のサーバーのグループです。
- ノード :ノードは、信頼できるストレージプールに参加するストレージサーバーです
- レンガ :ブリックは、フォルダまたはディレクトリにマウントされたLVMベースのXFS(512バイトiノード)ファイルシステムです。
- ボリューム :ボリュームは、ネットワークを介してクライアントに提示または共有されるファイルシステムです。ボリュームは、glusterfs、nfs、およびsmbsメソッドを使用してマウントできます。
GlusterFSを使用して構成できるさまざまなタイプのボリューム:
- ボリュームの配布 :ボリュームの作成時にオプションが指定されていない場合に作成されるデフォルトのボリュームです。このタイプのボリュームファイルでは、エラスティックハッシュアルゴリズムを使用してブリック全体にファイルが配布されます
- ボリュームの複製 :名前が示すように、このタイプのボリュームファイルはブリック間で複製またはミラーリングされます。つまり、あるブリックで書き込まれたファイルは別のブリックにも複製されます。
- ストライプボリューム: このタイプのボリュームでは、大きなファイルがチャンクにカットまたは分割されてから、ブリック全体に分散されます。
- 複製ボリュームの配布 :名前が示すように、ボリュームファイルの種類では、最初にブリック間でファイルが分散され、次に別のブリックに複製されます。
ただし、他の組み合わせで、ストライプ複製などのさまざまなボリュームを形成することもできます。
この記事では、RHEL7.xおよびCentOS7.xでGlusterFSストレージをセットアップする方法を示します。私の場合、最小限のインストールで4台のRHEL 7 / CentOS 7サーバーを使用し、glustesfsのセットアップのためにこれらのサーバーに追加のディスクが接続されていると想定しています。
- server1.example.com(192.168.43.10)
- server2.example.com(192.168.43.20)
- server3.example.com(192.168.43.30)
- server4.example.com(192.168.43.40)
独自のdnsサーバーがある場合は、/ etc/hostsファイルに次の行を追加します。
192.168.43.10 server1.example.com server1 192.168.43.20 server2.example.com server2 192.168.43.30 server3.example.com server3 192.168.43.40 server4.example.com server4
すべてのサーバーにGlusterfsサーバーパッケージをインストールします。
GlusterfsパッケージはデフォルトのcentosおよびRHELリポジトリに含まれていないため、glusterリポジトリとEPELリポジトリをセットアップします。 4台のサーバーすべてで次のコマンドを次々に実行します。
~]# yum install wget ~]# yum install centos-release-gluster -y ~]#yum install epel-release -y ~]# yum install glusterfs-server -y
4台のサーバーすべてでGlusterFSサービスを開始して有効にします。
~]# systemctl start glusterd ~]# systemctl enable glusterd
サーバーが通信してストレージクラスター(信頼できるプール)を形成できるように、ファイアウォールのポートを許可します。 4台のサーバーすべてで以下のコマンドを実行します。
~]# firewall-cmd --zone=public --add-port=24007-24008/tcp --permanent ~]# firewall-cmd --zone=public --add-port=24009/tcp --permanent ~]# firewall-cmd --zone=public --add-service=nfs --add-service=samba --add-service=samba-client --permanent ~]# firewall-cmd --zone=public --add-port=111/tcp --add-port=139/tcp --add-port=445/tcp --add-port=965/tcp --add-port=2049/tcp --add-port=38465-38469/tcp --add-port=631/tcp --add-port=111/udp --add-port=963/udp --add-port=49152-49251/tcp --permanent ~]# firewall-cmd --reload
ボリューム設定の配布:
サーバー1とサーバー2で構成される信頼できるストレージプールを形成し、その上にブリックを作成し、その後、分散ボリュームを作成します。また、16 GB(/ dev / sdb)のrawディスクが両方のサーバーに割り当てられていると想定しています。
サーバー1コンソールから以下のコマンドを実行して、サーバー2との信頼できるストレージプールを形成します。
[[email protected] ~]# gluster peer probe server2.example.com peer probe: success. [[email protected] ~]#
以下のコマンドを使用してピアのステータスを確認できます:
[[email protected] ~]# gluster peer status Number of Peers: 1 Hostname: server2.example.com Uuid: 9ef0eff2-3d96-4b30-8cf7-708c15b9c9d0 State: Peer in Cluster (Connected) [[email protected] ~]#
サーバー1でブリックを作成
最初にブリックを作成するには、rawディスク(/ dev / sdb)に論理ボリュームをプロビジョニングするものをセットアップする必要があります。
サーバー1で次のコマンドを実行します
[[email protected] ~]# pvcreate /dev/sdb /dev/vg_bricks/dist_brick1 /bricks/dist_brick1 xfs rw,noatime,inode64,nouuid 1 2 [[email protected] ~]# vgcreate vg_bricks /dev/sdb [[email protected] ~]# lvcreate -L 14G -T vg_bricks/brickpool1
上記のコマンドでは、brickpool1はシンプールの名前です。
次に、3GBの論理ボリュームを作成します
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool1 -n dist_brick1
次に、xfsファイルシステムを使用して論理ボリュームをフォーマットします
[[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/dist_brick1 [[email protected] ~]# mkdir -p /bricks/dist_brick1
マウントコマンドを使用してレンガをマウントします
[[email protected] ~]# mount /dev/vg_bricks/dist_brick1 /bricks/dist_brick1/
恒久的にマウントするには、/ etc / fsatb
に次の行を追加します/dev/vg_bricks/dist_brick1 /bricks/dist_brick1 xfs rw,noatime,inode64,nouuid 1 2
マウントポイントの下にブリックでディレクトリを作成します
[[email protected] ~]# mkdir /bricks/dist_brick1/brick
同様に、サーバー2で次の一連のコマンドを実行します
[[email protected] ~]# pvcreate /dev/sdb ; vgcreate vg_bricks /dev/sdb [[email protected] ~]# lvcreate -L 14G -T vg_bricks/brickpool2 [[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool2 -n dist_brick2 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/dist_brick2 [[email protected] ~]# mkdir -p /bricks/dist_brick2 [[email protected] ~]# mount /dev/vg_bricks/dist_brick2 /bricks/dist_brick2/ [[email protected] ~]# mkdir /bricks/dist_brick2/brick
以下のglusterコマンドを使用して分散ボリュームを作成します :
[[email protected] ~]# gluster volume create distvol server1.example.com:/bricks/dist_brick1/brick server2.example.com:/bricks/dist_brick2/brick [[email protected] ~]# gluster volume start distvol volume start: distvol: success [[email protected] ~]#
次のコマンドを使用して、ボリュームのステータスを確認します:
[[email protected] ~]# gluster volume info distvol
クライアントにボリュームをマウントする:
glusterfsを使用してボリュームをマウントする前に、まずglusterfs-fuseパッケージがクライアントにインストールされていることを確認する必要があります。また、ローカルDNSサーバーがない場合に備えて、/ etc/hostsファイルにglusterストレージサーバーのエントリを追加してください。
クライアントにログインし、コンソールから以下のコマンドを実行してglusterfs-fuseをインストールします
[[email protected] ~]# yum install glusterfs-fuse -y
ボリュームを配布するためのマウントを作成します:
[[email protected] ~]# mkdir /mnt/distvol
次に、「 distvol」をマウントします ‘以下のマウントコマンドを使用:
[[email protected] ~]# mount -t glusterfs -o acl server1.example.com:/distvol /mnt/distvol/
永続マウントの場合は、/ etc/fstabファイルに以下のエントリを追加します
server1.example.com:/distvol /mnt/distvol glusterfs _netdev 0 0
dfコマンドを実行して、ボリュームのマウント状態を確認します。
次に、ボリューム「 distvol」へのアクセスを開始します 」
ボリューム設定の複製:
レプリケートボリュームのセットアップでは、サーバー3とサーバー4を使用し、glusterfs用の追加のディスク(/ dev / sdb)が既にサーバーに割り当てられていると想定しています。次の手順を参照してください:
信頼できるストレージプールにサーバー3とサーバー4を追加します
[[email protected] ~]# gluster peer probe server3.example.com peer probe: success. [[email protected] ~]# gluster peer probe server4.example.com peer probe: success. [[email protected] ~]#
ブリックを作成してサーバー3にマウントします。以下のコマンドを次々に実行します。
[[email protected] ~]# pvcreate /dev/sdb ; vgcreate vg_bricks /dev/sdb [[email protected] ~]# lvcreate -L 14G -T vg_bricks/brickpool3 [[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool3 -n shadow_brick1 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/shadow_brick1 [[email protected] ~]# mkdir -p /bricks/shadow_brick1 [[email protected] ~]# mount /dev/vg_bricks/shadow_brick1 /bricks/shadow_brick1/ [[email protected] ~]# mkdir /bricks/shadow_brick1/brick
ブリックパーマネントマウントについては、/ etc / fstabファイルで以下のエントリを実行してください:
/dev/vg_bricks/shadow_brick1 /bricks/shadow_brick1/ xfs rw,noatime,inode64,nouuid 1 2
同様に、ブリックを作成してマウントするためにサーバー4で同じ手順を実行します:
[[email protected] ~]# pvcreate /dev/sdb ; vgcreate vg_bricks /dev/sdb [[email protected] ~]# lvcreate -L 14G -T vg_bricks/brickpool4 [[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool4 -n shadow_brick2 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/shadow_brick2 [[email protected] ~]# mkdir -p /bricks/shadow_brick2 [[email protected] ~]# mount /dev/vg_bricks/shadow_brick2 /bricks/shadow_brick2/ [[email protected] ~]# mkdir /bricks/shadow_brick2/brick
れんがを恒久的に取り付けるには、fstabエントリを実行します。
複製ボリュームを作成する 以下のglusterコマンドを使用します 。
[[email protected] ~]# gluster volume create shadowvol replica 2 server3.example.com:/bricks/shadow_brick1/brick server4.example.com:/bricks/shadow_brick2/brick volume create: shadowvol: success: please start the volume to access data [[email protected] ~]# gluster volume start shadowvol volume start: shadowvol: success [[email protected] ~]#
以下のglusterコマンドを使用してボリューム情報を確認します:
[[email protected] ~]# gluster volume info shadowvol
このボリュームにアクセスしたい場合は「shadowvol 」nfs経由で次のように設定します:
[[email protected] ~]# gluster volume set shadowvol nfs.disable off
nfsを介してクライアントにReplicateボリュームをマウントします
マウントする前に、まずマウントポイントを作成します。
[[email protected] ~]# mkdir /mnt/shadowvol
注:glusterストレージの制限の1つは、GlusterFSサーバーがバージョン3のNFSプロトコルのみをサポートすることです。
以下のエントリをファイル「/etc/nfsmount.conf」に追加します 」両方のストレージサーバー(サーバー3とサーバー4)
Defaultvers =3
上記のエントリを作成した後、両方のサーバーを1回再起動します。以下のmountコマンドを使用して、ボリューム「 shadowvol 」
[[email protected] ~]# mount -t nfs -o vers=3 server4.example.com:/shadowvol /mnt/shadowvol/
永続マウントの場合は、/ etc/fstabファイルに次のエントリを追加します
server4.example.com:/shadowvol /mnt/shadowvol/ nfs vers=3 0 0
ボリュームのサイズと取り付けステータスを確認します:
[[メール保護]〜]#df -Th
配布-ボリューム設定の複製:
Distribute-Replicateボリュームを設定するために、各サーバーから1つのブリックを使用して、ボリュームを形成します。それぞれのサーバー上の既存のシンプールから論理ボリュームを作成します。
以下のコマンドを使用して、4つのサーバーすべてにブリックを作成します
サーバー1
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool1 -n prod_brick1 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick1 [[email protected] ~]# mkdir -p /bricks/prod_brick1 [[email protected] ~]# mount /dev/vg_bricks/prod_brick1 /bricks/prod_brick1/ [[email protected] ~]# mkdir /bricks/prod_brick1/brick
サーバー2
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool2 -n prod_brick2 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick2 [[email protected] ~]# mkdir -p /bricks/prod_brick2 [[email protected] ~]# mount /dev/vg_bricks/prod_brick2 /bricks/prod_brick2/ [[email protected] ~]# mkdir /bricks/prod_brick2/brick
サーバー3
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool3 -n prod_brick3 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick3 [[email protected] ~]# mkdir -p /bricks/prod_brick3 [[email protected] ~]# mount /dev/vg_bricks/prod_brick3 /bricks/prod_brick3/ [[email protected] ~]# mkdir /bricks/prod_brick3/brick
サーバー4
[[email protected] ~]# lvcreate -V 3G -T vg_bricks/brickpool4 -n prod_brick4 [[email protected] ~]# mkfs.xfs -i size=512 /dev/vg_bricks/prod_brick4 [[email protected] ~]# mkdir -p /bricks/prod_brick4 [[email protected] ~]# mount /dev/vg_bricks/prod_brick4 /bricks/prod_brick4/ [[email protected] ~]# mkdir /bricks/prod_brick4/brick
次に、「 dist-rep-vol」という名前のボリュームを作成します 」以下のglusterコマンドを使用:
[[email protected] ~]# gluster volume create dist-rep-vol replica 2 server1.example.com:/bricks/prod_brick1/brick server2.example.com:/bricks/prod_brick2/brick server3.example.com:/bricks/prod_brick3/brick server4.example.com:/bricks/prod_brick4/brick force [[email protected] ~]# gluster volume start dist-rep-vol
以下のコマンドを使用してボリューム情報を確認します:
[[email protected] ~]# gluster volume info dist-rep-vol
このボリュームでは、最初のファイルが任意の2つのブリックに配布され、次にファイルが残りの2つのブリックに複製されます。
次に、このボリュームをglusterを介してクライアントマシンにマウントします
まず、このボリュームのマウントポイントを作成しましょう:
[[email protected] ~]# mkdir /mnt/dist-rep-vol [[email protected] ~]# mount.glusterfs server1.example.com:/dist-rep-vol /mnt/dist-rep-vol/
永続的なエントリのためにfstabに以下のエントリを追加します
server1.example.com:/dist-rep-vol /mnt/dist-rep-vol/ glusterfs _netdev 0 0
dfコマンドを使用してサイズとボリュームを確認します:
それでおしまい。 glusterストレージの構成手順を楽しんでいただけたでしょうか。