GlusterFS · 3 min read · Nov 26, 2025

UbuntuにGlusterFSをインストールして構成する方法

GlusterFSは、最初にGluster Inc.によって開発され、その後Redhatによって開発された無料のオープンソースでスケーラブルなネットワークファイルシステムです。これは、クラウドストレージ、CDN、メディアストリーミングなどのデータ集約型ワークロード向けに特別に設計されています。ペタバイトのデータを処理できるため、数千のクライアントにサービスを提供できます。NFS、SMB、CIFS、HTTP、FTPなどのさまざまなプロトコルをサポートしています。GlusterFSを使用すると、異なるディスクストレージリソースを単一のグローバル名前空間に統合できます。

このチュートリアルでは、Ubuntu 18.04でレプリケートされたGlusterFSボリュームを設定する方法を学びます。

要件

  • それぞれに2GBの外部HDDを搭載したUbuntu 18.04を実行している2台のサーバー。
  • node1には静的IPアドレス172.20.10.5が構成され、node2には172.20.10.6が構成されています。
  • 両方のサーバーにrootパスワードが構成されています。

始めに

始める前に、両方のサーバーを最新のバージョンに更新する必要があります。以下のコマンドを両方のサーバーで実行して更新できます。

apt-get update -y  
apt-get upgrade -y

両方のサーバーが更新されたら、変更を適用するために再起動します。

次に、両方のサーバーでホスト名解決を設定する必要があります。これにより、各サーバーがホスト名で互いに通信できるようになります。両方のサーバーで/etc/hostsファイルを編集して行います。

nano /etc/hosts

以下の行を追加します。

172.20.10.5 node1
172.20.10.6 node2

完了したら、ファイルを保存して閉じます。

GlusterFSのインストール

最初に、両方のサーバーにGlusterFSパッケージをインストールする必要があります。デフォルトでは、GlusterFSはUbuntu 18.04のデフォルトリポジトリにはありません。したがって、両方のサーバーにGlusterFSリポジトリを追加する必要があります。

最初に、以下のコマンドで必要なパッケージをインストールします。

apt-get install software-properties-common -y

次に、以下のコマンドでリポジトリを追加します。

add-apt-repository ppa:gluster/glusterfs-5

次に、以下のコマンドでGlusterFSサーバーをインストールします。

apt-get install glusterfs-server -y

インストールが完了したら、以下のコマンドでGlusterFSサービスを開始し、起動時に自動的に開始するように設定します。

systemctl start glusterd  
systemctl enable glusterd

以下のコマンドでGlusterFSサービスの状態を確認することもできます。

systemctl status glusterd

以下の出力が表示されるはずです。

? glusterd.service - GlusterFS, a clustered file-system server
   Loaded: loaded (/lib/systemd/system/glusterd.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2019-11-07 12:51:15 UTC; 48s ago
 Main PID: 7199 (glusterd)
    Tasks: 8 (limit: 505)
   CGroup: /system.slice/glusterd.service
           ??7199 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO

Nov 07 12:51:06 ubuntu systemd[1]: Starting GlusterFS, a clustered file-system server...
Nov 07 12:51:15 ubuntu systemd[1]: Started GlusterFS, a clustered file-system server.

GlusterFSストレージの作成

次に、両方のサーバーの外部ハードディスク(/dev/sdb)にパーティションを作成する必要があります。

/dev/sdbに新しいパーティションを作成するには、以下のコマンドを実行します。

fdisk /dev/sdb

以下の出力が表示されるはずです。

Welcome to fdisk (util-linux 2.31.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x06091fe8.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-4194303, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-4194303, default 4194303): 

Created a new partition 1 of type 'Linux' and of size 2 GiB.

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

次に、以下のコマンドでパーティションをフォーマットします。

mkfs.xfs /dev/sdb1

以下の出力が表示されるはずです。

meta-data=/dev/sdb1              isize=512    agcount=4, agsize=131008 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=0, rmapbt=0, reflink=0
data     =                       bsize=4096   blocks=524032, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

次に、以下のコマンドで両方のサーバーにGlusterFSストレージ用のディレクトリを作成します。

mkdir /glusterdata

次に、ディスク/dev/sdb1をディレクトリ/glusterdataにマウントします。

mount.xfs /dev/sdb1 /glusterdata

次に、/etc/fstabファイルを編集して再起動後もマウントを持続させます。

nano /etc/fstab

以下の行を追加します。

/dev/sdb1 /glusterdata xfs defaults 0 0

ファイルを保存して閉じたら、以下のコマンドを実行して変更を適用します。

mount -a

以下のコマンドでマウントされたディレクトリを確認できます。

df -h

以下の出力が表示されるはずです。

Filesystem      Size  Used Avail Use% Mounted on
udev            211M     0  211M   0% /dev
tmpfs            49M 1016K   48M   3% /run
/dev/sda2        30G  4.3G   25G  16% /
tmpfs           241M   12K  241M   1% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           241M     0  241M   0% /sys/fs/cgroup
/dev/loop0       87M   87M     0 100% /snap/core/4486
tmpfs            49M     0   49M   0% /run/user/0
/dev/loop1       90M   90M     0 100% /snap/core/7917
/dev/sdb1       2.0G   35M  2.0G   2% /glusterdata

GlusterFSボリュームの構成

最初に、node1にnode2を追加して信頼されたストレージプールを作成する必要があります。そのためには、node1で以下のコマンドを実行します。

gluster peer probe node2

以下のコマンドでストレージプールをリストできます。

gluster pool list

以下の出力が得られるはずです。

UUID                        Hostname    State
d049b519-9210-4bfa-a1c6-0d1454a88ea0    node2       Connected 
dbb9252e-6082-4d31-aaef-1b99e0e0c369    localhost   Connected 

次に、両方のノードにブリックディレクトリを作成します。

mkdir /glusterdata/vol1

次に、2つのレプリカを持つvol1という名前のボリュームを作成します。

gluster volume create vol1 replica 2 node1:/glusterdata/vol1 node2:/glusterdata/vol1

次に、以下のコマンドでボリュームを開始します。

gluster volume start vol1

以下のコマンドで作成したボリュームの状態を確認できます。

gluster volume status

以下の出力が得られるはずです。

Status of volume: vol1
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick node1:/glusterdata/vol1               49152     0          Y       7987 
Brick node2:/glusterdata/vol1               49152     0          Y       18565
Self-heal Daemon on localhost               N/A       N/A        Y       8010 
Self-heal Daemon on node2                   N/A       N/A        Y       18588
 
Task Status of Volume vol1
------------------------------------------------------------------------------
There are no active volume tasks

以下のコマンドで作成したボリュームに関する情報も確認できます。

gluster volume info vol1

以下の出力が得られるはずです。

Volume Name: vol1
Type: Replicate
Volume ID: e093ae7a-70ac-42b8-ab3f-a8bd186c5740
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: node1:/glusterdata/vol1
Brick2: node2:/glusterdata/vol1
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

次に、/etc/fstabファイルを編集して、両方のノードの/mntディレクトリに作成したボリュームをマウントします。これにより、サーバーが起動した後もボリュームが利用可能になります。

nano /etc/fstab

以下の行を追加します。

localhost:/vol1 /mnt glusterfs defaults,_netdev 0 0

完了したら、ファイルを保存して閉じます。その後、以下のコマンドを実行して変更を適用します。

mount -a

レプリケーションのテスト

GlusterFSサーバーは正常にインストールされ、構成されました。2つのノード間のレプリケーションをテストする時が来ました。

最初に、node1に2つのファイルを作成します。

touch /mnt/file1 /mnt/file2

次に、node2に移動して以下のコマンドを実行します。

ls -l /mnt/

node1で作成したのと同じファイルが表示されるはずです。

total 0
-rw-r--r-- 1 root root 0 Nov  7 13:42 file1
-rw-r--r-- 1 root root 0 Nov  7 13:42 file2

次に、以下のコマンドでnode2のGlusterFSサービスを停止します。

service glusterd stop

次に、node1に移動してピアの状態を確認します。

gluster peer status

node2が切断されたことが表示されるはずです。

Number of Peers: 1

Hostname: node2
Uuid: d049b519-9210-4bfa-a1c6-0d1454a88ea0
State: Peer in Cluster (Disconnected)

以下のコマンドでボリュームの状態も確認できます。

gluster volume status

以下の出力が表示されるはずです。

Status of volume: vol1
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick node1:/glusterdata/vol1               49152     0          Y       7987 
Self-heal Daemon on localhost               N/A       N/A        Y       8010 
 
Task Status of Volume vol1
------------------------------------------------------------------------------
There are no active volume tasks

次に、node1に別の2つのファイルを作成します。

touch /mnt/file3 /mnt/file4

次に、node2に移動して以下のコマンドでGlusterFSサービスを開始します。

service glusterd start

次に、node2の/mntディレクトリを確認します。

ls -l /mnt/

node1からのすべてのファイルがレプリケートされ、現在利用可能であることがわかるはずです。

total 0
-rw-r--r-- 1 root root 0 Nov  7 13:42 file1
-rw-r--r-- 1 root root 0 Nov  7 13:42 file2
-rw-r--r-- 1 root root 0 Nov  7 13:44 file3
-rw-r--r-- 1 root root 0 Nov  7 13:44 file4

結論

おめでとうございます!Ubuntu 18.04サーバーに2ノードのレプリケートGlusterfsボリュームを正常にインストールして構成しました。また、分散Glusterfsボリューム、分散レプリケートGlusterfsボリューム、ストライプGlusterfsボリューム、分散ストライプGlusterfsボリュームを設定することもできます。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。