この記事では、AArch64でGlusterFSを使用してCentOS7をインストールおよび構成するプロセスについて説明します。 GlusterFSは、InfibandまたはTCPを使用して複数のストレージサーバーを組み合わせ、1つの大規模なネットワークファイルシステムを作成する、オープンソースのスケールアウトファイルシステムです。
要件
GlusterFSを構成するには、CentOS 7がインストールされた2つ以上のサーバー(AArch64)が必要です。サーバーは、物理サーバーでも仮想サーバーでもかまいません。ここでは2つの仮想サーバーを使用しており、それらのホスト名を「gfs1」および「gfs2」として設定しています。ネットワーク接続は、両方でアクティブである必要があります。各ノードにはストレージデバイスが必要です。この記事で使用されている例では、ノード上にそれぞれ2GBの仮想ストレージディスクが使用されています。
サーバーのIPアドレスとホスト名を両方のノードの/etc/hostsに追加します。
45.79.161.123 gfs1
45.79.174.123 gfs2
GlusterFSのインストール
インストールを続行する前に、EPEL(Enterprise Linux用のExtaパッケージ)とGlusterFSリポジトリの両方を両方のサーバーで有効にする必要があります。 インストール時に外部の依存関係を解決します。 GlusterFSリポジトリのみを有効にし、EPELリポジトリを有効にしていない場合は、glusterfs-serverのインストール中に次のエラーメッセージが表示される可能性があります。
Error: Package: glusterfs-server-3.7.0-2.el7.x86_64 (glusterfs-epel)
Requires: liburcu-cds.so.1()(64bit)
Error: Package: glusterfs-server-3.7.0-2.el7.x86_64 (glusterfs-epel)
Requires: liburcu-bp.so.1()(64bit)
CentOSでEPELreopsitoryを有効にする:
wgetを使用して必要なファイルを取得し、rpmを使用してインストールします。
[root@gfs1 ~]# wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
--2015-05-26 10:35:33-- http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
Resolving dl.fedoraproject.org (dl.fedoraproject.org)... 209.132.181.24, 209.132.181.25, 209.132.181.23, ...
Connecting to dl.fedoraproject.org (dl.fedoraproject.org)|209.132.181.24|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 14524 (14K) [application/x-rpm]
Saving to: epel-release-7-5.noarch.rpm
100%[======================================>] 14,524 --.-K/s in 0.06s
2015-05-26 10:35:33 (239 KB/s) - ˜epel-release-7-5.noarch.rpm saved [14524/14524]
[root@localhost ~]# rpm -ivh epel-release-7-5.noarch.rpm
warning: epel-release-7-5.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID 352c64e5: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:epel-release-7-5 ################################# [100%]
GlusterFSリポジトリの有効化:
[root@gfs1 ~]# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo
--2015-05-26 10:37:49-- http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo
Resolving download.gluster.org (download.gluster.org)... 50.57.69.89
Connecting to download.gluster.org (download.gluster.org)|50.57.69.89|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1055 (1.0K) [text/plain]
Saving to: /etc/yum.repos.d/glusterfs-epel.repo
100%[======================================>] 1,055 --.-K/s in 0s
2015-05-26 10:37:49 (81.2 MB/s) - /etc/yum.repos.d/glusterfs-epel.repo saved [1055/1055]
両方のサーバーで以下の手順に従います。
両方にglusterfsをインストールします:
[root@gfs1 ~]# yum install glusterfs-server
次に、glusterfsデーモンを起動します:
root@gfs1 ~]# service glusterd start
Redirecting to /bin/systemctl start glusterd.service
サービスが正常に開始されたかどうかを確認します:
[root@gfs1 ~]# service glusterd status
Redirecting to /bin/systemctl status glusterd.service
glusterd.service - GlusterFS, a clustered file-system server
Loaded: loaded (/usr/lib/systemd/system/glusterd.service; disabled)
Active: active (running) since Tue 2015-05-26 10:42:08 UTC; 38s ago
Process: 13418 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid (code=exited, status=0/SUCCESS)
Main PID: 13419 (glusterd)
CGroup: /system.slice/glusterd.service
13419 /usr/sbin/glusterd -p /var/run/glusterd.pid
May 26 10:42:08 localhost.localdomain systemd[1]: Started GlusterFS, a cluste...
Hint: Some lines were ellipsized, use -l to show in full.
SELinuxが有効になっている場合は、ファイル/ etc / sysconfig/selinuxの「SELINUX=disabled」または「SELINUX=permissive」を変更して無効にします。
次に、iptablesをフラッシュします。
[root@gfs1 ~]# iptables -F
次に、両方のノードに同一のパーティションを作成します。ここでは2GBサイズのパーティション/dev/xvdcを使用しています。
fdisk /dev/xvdc
オプション'n'を使用して新しいパーティションを作成します。プライマリパーティションにオプション「p」を選択し、デフォルトのオプションに従います。完了したら、「w」を選択してデータをディスクに保存し、終了します。
新しく作成されたパーティションにファイルシステムを作成します:
mkfs.ext4 /dev/xvdc1
/ data /brickというディレクトリにマウントします:
[root@gfs1 ~]# mkdir -p /data/brick
[root@gfs1 ~]# mount /dev/xvdc1 /data/brick
これをfstabエントリに追加して、再起動後もマウントを保持します。
[root@gfs1 ~]# echo "/dev/xvdc1 /data/brick ext4 defaults 0 0" >> /etc/fstab
次に、信頼できるプールを構成する必要があります。
構成
ボリュームにブリックを提供するglusterサーバーから信頼できるストレージプールを作成する必要があります。
最初のサーバーで次のコマンドを実行します。
[root@gfs1 ~]# gluster peer probe gfs2
peer probe: success.
2番目のサーバーで実行します:
[root@gfs2 ~]# gluster peer probe gfs1
peer probe: success.
ストレージプールを確認します:
[root@gfs1 ~]# gluster pool list
UUID Hostname State
4d1d974d-4c75-424c-a788-7f0e71002e02 gfs2 Connected
473b1bc5-b8c0-4cea-ac86-568a77d0edf0 localhost Connected
GlusterFSボリュームの設定:
ボリュームを設定するには、1台のサーバーで以下のコマンドを実行するだけで十分です。ここでは最初のサーバー(gfs1)を使用しています。
[root@gfs1 ~]# gluster volume status
No volumes present
この例では、複製されたボリュームを作成しています。高可用性と信頼性を提供します。さまざまな種類のボリュームの詳細については、glusterコミュニティページを参照してください。
[root@gfs1 ~]# mkdir /data/brick/gvol0
[root@gfs1 ~]# gluster volume create gvol0 replica 2 gfs1:/data/brick/gvol0 gfs2:/data/brick/gvol0
volume create: gvol0: success: please start the volume to access data.
新しく作成したボリュームを開始します
[root@localhost ~]# gluster volume start gvol0
volume start: gvol0: success
詳細を確認します:
[root@localhost ~]# gluster volume info
Volume Name: gvol0
Type: Replicate
Volume ID: 4a61822d-75cf-402b-bad4-19ae57626673
Status: Started
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gfs1:/data/brick/gvol0
Brick2: gfs2:/data/brick/gvol0
Options Reconfigured:
performance.readdir-ahead: on
はい、もうすぐです!新しく作成したボリュームを任意のマウントポイントにマウントして使用を開始するだけです。
[root@gfs1 ~]# mount -t glusterfs gfs1:/gvol0 /mnt
[root@gfs2 ~]# mount -t glusterfs gfs1:/gvol0 /mnt
いずれかのサーバーからマウントされたボリュームにデータをコピーし、他のサーバーからもアクセスできることを確認します。
[root@gfs1 ~]# cp /var/log/yum.log /mnt
[root@gfs2 mnt]# ls
yum.log
結論
おめでとう! CentOS7システムでのGlusterFSの構成が完了しました。このマウントポイントは、いずれかのノードからファイルを作成、編集、または削除するために使用できる単一のファイルシステムとして機能するようになりました。インストールとセットアップのプロセス全体は非常に単純で、それほど時間はかかりません。 GlusterFSに関する追加のリソースが必要な場合は、gluster.orgを参照してください