GlusterFS · 2 min read · Dec 06, 2025

Debian 11にGlusterFSスケーラブルネットワークファイルシステムをインストールする方法

GlusterFSまたはGlusterファイルシステムは、RedHatによって開発された無料でオープンソースの分散ファイルシステムです。GlusterFSは、複数のサーバーから1つのエンティティファイルシステムを形成するスケーラブルなファイルシステムで、ユーザーがGlusterFSボリュームに接続してマウントできるようにします。

GlusterFSは、ペタバイトのデータを処理できる現代的なファイルシステムです。また、インストールとメンテナンスが簡単で、ファイルシステムのスケーリングも容易です。

このチュートリアルでは、Debian 11サーバーに分散型でスケーラブルなネットワークファイルシステムであるGlusterFSをインストールします。データを複数のサーバーに自動的に複製するGlusterFSボリュームを設定し、高可用性ファイルシステムを設定します。さらに、Debianサーバーに追加のディスクを設定するためのLinuxパーティショニングツール「parted」の使用方法も学びます。最後に、複数のDebianサーバー間でのGlusterFSのデータ複製を確認し、高可用性も確認します。

前提条件

このチュートリアルを完了するには、以下の要件が必要です:

  • 2台または3台のDebian 11サーバー。
  • sudo/管理者権限を持つ非rootユーザー。

この例では、以下の詳細を持つ3台のDebian 11サーバーを使用します:

ホスト名    IPアドレス  
--------------------------  
node1       192.168.5.50  
node2       192.168.5.56  
node3       192.168.5.57

それだけです。これらの要件が整ったら、GlusterFSのインストールを開始します。

ホスト名とFQDNの設定

最初のステップは、GlusterFSで使用されるすべてのDebianサーバーのホスト名とFQDNを設定することです。ホスト名は「hostnamectl」コマンドを使用して設定し、FQDN(完全修飾ドメイン名)は「/etc/hosts」ファイルを介して設定できます。

ホスト名を設定するには、各サーバーで以下のコマンドを入力します。

# node1で実行  
sudo hostnamectl set-hostname node1.home.lan  
  
# node2で実行  
sudo hostnamectl set-hostname node2.home.lan  
  
# node3で実行  
sudo hostnamectl set-hostname node3.home.lan

次に、各サーバーで好みのエディタを使用して「/etc/hosts」ファイルを開きます。このチュートリアル全体では、nanoエディタを使用します。

sudo nano /etc/hosts

ファイルに以下の行を追加します。複数のホスト名を参照するIPアドレスがある場合は、以下の行に置き換えます。

192.168.5.50  node1.home.lan  node1  
192.168.5.56  node2.home.lan  node2  
192.168.5.57  node3.home.lan  node3

Ctrl+xを押して終了し、yを入力して確認し、次にENTERを押して続行します。

最後に、以下のコマンドを発行して各サーバーでFQDNを確認します。

hostname -f  
cat /etc/hosts

出力は次のようになります - node1ではFQDNはnode1.home.lannode2ではnode2.home.lannode3ではnode3.home.lanである必要があります。

setup hostname and fqdn

ディスクパーティションの設定

GlusterFSの展開には特定のドライブ/ディスクを使用することをお勧めします。この例では、各DebianサーバーにGlusterFSインストールに使用される追加のディスク「/dev/vdb」があります。このステップでは、ターミナルと「fdisk」コマンドを介してLinuxシステムに新しいディスクを設定する方法を学びます。

まず、以下の「fdisk」コマンドを発行して、Debianサーバー上の利用可能なディスクのリストを確認します。

sudo fdisk -l

出力は次のようになります - node1には2つのディスクがあり、オペレーティングシステムがインストールされている「/dev/vda」と、まだ構成されていない「/dev/vdb」があります。

list disks

‘/dev/vdb‘ディスクのパーティショニングを開始するには、以下のfdiskコマンドを入力します。fdiskツールの新しいプロンプトが表示され、「/dev/vdb」ディスクに接続します。

sudo fdisk /dev/vdb
  • 新しいパーティションを作成するには、「n」コマンドを入力します。
  • 作成するパーティションのタイプを選択します。「p」はプライマリ、「e」は拡張です。この例ではプライマリパーティションを作成するので、「p」を入力します。
  • ディスク「/dev/vdb」内で、いくつのパーティションを作成しますか?この例では1つのパーティションのみを作成するので、「1」を入力します。
  • 新しいパーティションの最初のセクターを選択します。デフォルトのままにしておくことができるので、ENTERを押して続行します。
  • 最後のセクターは、作成したいパーティションのサイズを定義する場所です。この例では約5GBになるので、「+5GB」を入力します。
  • 最後に、‘w‘を入力して、’/ dev/vdb‘ディスクで行った変更を確認して適用します。

出力「パーティションテーブルが変更されました」は、変更がディスクに適用されたことを確認します。

create partition fdisk

これで新しいパーティションが作成されましたが、まだ使用できません。新しいパーティションを特定のファイルシステム形式にフォーマットする必要があります。以下のfdiskコマンドを入力して、‘/dev/vdb’ディスクの新しいパーティションが作成されたことを確認できます。

sudo fdiks -l

出力は次のようになります - ‘/dev/vdb‘セクションで、新しいパーティション「/dev/vdb1」がサイズ「4.7GB」で作成されたことがわかります。

list partition dev/vdb

次に、以下のコマンドを発行して新しいパーティション「/dev/vdb1」をフォーマットします。この例では、パーティションをext4ファイルシステム形式にフォーマットします。

sudo mkfs -t ext4 /dev/vdb1

次に、出力は次のようになります - 新しいパーティション「/dev/vda1」がext4ファイルシステムとしてフォーマットされました。

formating partition

自動マウントパーティションの設定

このステップでは、新しいパーティション「/dev/vdb1」を「/etc/fstab」ファイルを介して自動マウントする設定を行います。また、GlusterFSにデータを保存するために使用される新しいディレクトリを作成します。

まず、新しいパーティション「/dev/vdb1」をマウントするために使用される新しいターゲットディレクトリを作成します。

# node1で実行  
mkdir -p /data/node1  
  
# node2で実行  
mkdir -p /data/node2  
  
# node3で実行  
mkdir -p /data/node3

以下のnanoエディタコマンドを使用して設定ファイル「/etc/fstab」を開きます。

sudo nano /etc/fstab

ファイルに以下の行を追加します。これにより、新しいパーティション「/dev/vdb1」がシステム起動時に自動的にマウントされます。

# node1用  
/dev/vdb1    /data/node1    ext4    defaults    0    1  
  
# node2用  
/dev/vdb1    /data/node2    ext4    defaults    0    1  
  
# node3用  
/dev/vdb1    /data/node3    ext4    defaults    0    1

次に、以下のコマンドを実行して、‘/etc/fstab’ファイルを介して構成した新しいパーティションをマウントします。エラーがなければ、準備完了です。

sudo mount -a

最後に、各サーバーの新しくマウントされたパーティションに「brick0」という新しいディレクトリを作成するために、以下のコマンドを実行します。

# node1で実行  
mkdir -p /data/node1/brick0  
  
# node2で実行  
mkdir -p /data/node2/brick0  
  
# node3で実行  
mkdir -p /data/node3/brick0

GlusterFSサーバーのインストール

このステップでは、GlusterFSクラスターに使用されるDebianサーバーにGlusterFSパッケージをインストールします。したがって、以下のコマンドをnode1node2、およびnode3サーバーで実行してください。

以下のaptコマンドを実行して、システムに基本的な依存関係をインストールします。プロンプトが表示されたらyを入力し、ENTERを押して続行します。

sudo apt install gnupg2 apt-transport-https software-properties-common

出力:

install dependencies

curlコマンドを介してGlusterFSリポジトリのGPGキーをダウンロードします。次に、新しいキーをファイル「/usr/share/keyrings/glusterfs-archive-keyring.gpg」に変換します。

curl https://download.gluster.org/pub/gluster/glusterfs/10/rsa.pub | gpg --dearmor > /usr/share/keyrings/glusterfs-archive-keyring.gpg

次に、以下のコマンドを実行して新しい環境変数を作成し、GlusterFSリポジトリをシステムに追加します。

DEBID=$(grep 'VERSION_ID=' /etc/os-release | cut -d '=' -f 2 | tr -d '"')  
DEBVER=$(grep 'VERSION=' /etc/os-release | grep -Eo '[a-z]+')  
DEBARCH=$(dpkg --print-architecture)  
  
echo "deb [signed-by=/usr/share/keyrings/glusterfs-archive-keyring.gpg] https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/${DEBID}/${DEBARCH}/apt ${DEBVER} main" | sudo tee /etc/apt/sources.list.d/gluster.list

出力:

add repo

GPGキーとリポジトリが追加されたら、以下のaptコマンドを実行してパッケージインデックスを更新およびリフレッシュします。

sudo apt update

出力:

update repo

次に、以下のコマンドを入力してGlusterFSサーバーパッケージをインストールします。確認を求められたらyを入力し、ENTERを押します。

sudo apt install glusterfs-server

出力:

install glusterfs

GlusterFSがインストールされたら、以下のsystemctlコマンドユーティリティを実行してGlusterFSサービスを開始および有効にします。これにより、GlusterFSはすべてのサーバーで実行され、今後は自動的にシステム起動時にGlusterFSサービスが開始されるようになります。

sudo systemctl start glusterd  
sudo systemctl enable glusterd

最後に、以下のsystemctlコマンドを実行してGlusterFSサービスを確認し、サービスが実行中で有効であることを確認します。

sudo systemctl status glusterd

成功した場合、出力は次のようになります - 出力「‘active (running)’」はGlusterFSが実行中であることを確認し、出力「…; enabled;」はGlusterFSが有効であり、システム起動時に自動的に開始されることを確認します。

start verify glusterfs service

この時点で、新しいディスク/パーティションを準備し、GlusterFSサーバーをインストールしました。次に、GlusterFSクラスターの作成と初期化を開始します。

ストレージプールの初期化

このステップでは、3台のDebianサーバー、node1node2、およびnode3でGlusterFSクラスターを設定します。node1からGlusterFSクラスターを初期化し、他のノードnode2node3をクラスターに追加します。

開始する前に、各サーバーがホスト名またはFQDNを介してアクセス可能であることを確認してください。各サーバーにpingコマンドを発行して確認できます。

ping node2.home.lan  
ping node3.home.lan

node1のターミナルで、以下のglusterコマンドを実行して、クラスターのメンバーnode2node3でGlusterFSクラスターを初期化します。

sudo gluster peer probe node2.home.lan  
sudo gluster peer probe node3.home.lan

出力「peer probe: success」は、GlusterFSクラスターの初期化が成功したことを確認します。

initilize cluster storage pool

次に、node2のターミナルに移動し、以下のコマンドを発行してGlusterFSクラスターの状態を確認します。

sudo gluster peer status

出力は次のようになります - node2では、接続された状態の2つのピア、node1node3が表示されます。

status node2

次に、node3のターミナルに移動し、以下のコマンドを実行してGlusterFSクラスターの状態を確認します。

sudo gluster peer status

出力 - node3では、接続された状態の2つのピア、node1node2が表示されます。

status node3

さらに、以下のコマンドを介してGlusterFSクラスターのプールのリストを確認することもできます。これはnode1node2、またはnode3サーバーで実行できます。

sudo gluster pool list

これで、3台のDebianサーバーでGlusterFSクラスターを正常に初期化しました。次のステップでは、GlusterFSでボリュームを作成し、クライアントマシンからGlusterFSボリュームをマウントする方法を学びます。

複製ボリュームの作成

GlusterFSでは、作成できるボリュームのタイプが複数あります。これには、分散ボリューム、複製ボリューム、分散複製ボリューム、分散ボリューム、分散分散ボリュームが含まれます。各ボリュームタイプの詳細については、GlusterFSの公式ドキュメントを確認してください。

このステップでは、3つの異なるGlusterFSサーバーで複製タイプの新しいGlusterFSボリュームを作成します。これにより、データはストレージプール内で自動的に1つのサーバーから別のサーバーにコピーされ、GlusterFSクラスター内で複製されます。

以下のglusterコマンドを実行して、新しい複製ボリュームをGlusterFSに作成します。この例では、3台のサーバーnode1node2、およびnode3の間で複製タイプの新しいボリューム「testVolume」を作成します。

sudo gluster volume create testVolume replica 3 node1.home.lan:/data/node1/brick0 node2.home.lan:/data/node2/brick0 node3.home.lan:/data/node3/brick0

出力「volume create: testVolume: success: …」は、新しいボリューム「testVolume」が作成されたことを確認します。

次に、使用する前に「testVolume」を開始する必要があるため、以下のコマンドを発行します。

sudo gluster volume start testVolume

出力「volume start: testVolume: success」は、「testVolume」が開始され、準備が整ったことを確認します。

出力:

最後に、以下のglusterコマンドを介して「testVolume」に関する詳細情報を確認できます。

sudo gluster volume info

出力は次のようになります - 「testVolume」のタイプは「Replicated」、デフォルトの転送は「tcp」、3つの異なるサーバーnode1node2、およびnode3です。

出力:

verify volume

これで、3つの異なるサーバーでGlusterFSクラスターを初期化し、その上に複製ボリューム「testVolume」を作成しました。次のステップでは、クライアントマシンを設定し、GlusterFSボリュームをマウントする方法を学びます。

クライアントにGlusterFSボリュームをマウント

このステップでは、クライアントマシンにGlusterFSボリュームをマウントする方法を学びます。この例では、ホスト名「client」のUbuntu/Debianベースのマシンを使用します。今、GlusterFSボリューム「testVolume」をクライアントマシンにマウントし、‘/etc/fstab’ファイルを介して自動マウントを設定します。

まず、以下のnanoエディタコマンドを使用して「/etc/hosts」ファイルを開きます。

sudo nano /etc/hosts

ファイルに以下の行を入力し、GlusterFSサーバーのIPアドレスとホスト名の詳細を変更してください。

192.168.5.50  node1.home.lan  node1  
192.168.5.56  node2.home.lan  node2  
192.168.5.57  node3.home.lan  node3

ファイルを保存し、終了します。

次に、以下のaptコマンドを実行して「glusterfs-client」パッケージをインストールします。GlusterFSボリュームをマウントするには、クライアントマシンに「glusterfs-client」パッケージをインストールする必要があります。

sudo apt install glusterfs-client

プロンプトが表示されたらyを入力し、ENTERを押して続行します。

install glusterfs client

glusterfs-clientがインストールされたら、GlusterFSボリュームのターゲットマウントディレクトリとして使用される新しいディレクトリ「/data」を作成します。

mkdir /data

以下のマウントコマンドを介してGlusterFSボリューム「testVolume」を「/data」ディレクトリにマウントします。

sudo mount.glusterfs node1.home.lan:/testVolume /data

以下のdfコマンドを介してシステム上のマウントされたディスクのリストを確認します。

sudo df -h

成功した場合、GlusterFSボリューム「testVolume」が「/data」ディレクトリにマウントされているのがわかります。

出力:

mount glusterfs

次に、‘/etc/fstab’ファイルを介してGlusterFSボリュームの自動マウントを設定します。

以下のnanoエディタコマンドを使用して「/etc/fstab」ファイルを開きます。

sudo nano /etc/fstab

ファイルに以下の行を追加します。これにより、GlusterFSボリューム「testVolume」が起動時に自動的にマウントされます。

node1.home.lan:/testVolume /data glusterfs defaults,_netdev 0 0

ファイルを保存して終了します。

これで、GlusterFSボリュームをマウントするためのクライアント設定が完了し、‘/etc/fstab’ファイルを介してGlusterFSボリュームの自動マウントが設定されました。次のステップでは、GlusterFSクラスターの複製と高可用性を確認します。

複製と高可用性のテスト

クライアントマシンで作業ディレクトリを「/data」に移動し、以下のコマンドを使用して新しいファイルを作成します。これにより、新しいファイル「1-15.md」が作成されます。

cd /data  
touch file{1..15}.md

lsコマンドを発行して、現在のディレクトリ内のファイルのリストを取得します。

ls

出力:

次に、node1のターミナルに移動し、「/data/node1/brick0」ディレクトリに移動します。次に、lsコマンドを発行してファイルとディレクトリのリストを確認します。

cd /data/node1/brick0  
ls

node1に「1-15.md」ファイルが表示されるはずです。

出力:

次に、node2のターミナルに移動し、「/data/node2/brick0」ディレクトリに移動します。次に、lsコマンドを発行してファイルとディレクトリのリストを確認します。

cd /data/node2/brick0  
ls

node2に「1-15.md」ファイルが表示されるはずです。

出力:

次に、node3のターミナルに移動し、「/data/node3/brick0」ディレクトリに移動します。次に、lsコマンドを発行してファイルとディレクトリのリストを確認します。

cd /data/node3/brick0  
ls

node3に「1-15.md」ファイルが表示されるはずです。

出力:

これにより、クライアントマシンで作成したデータがGlusterFSサーバー上の複数のサーバーに複製されます。

次に、GlusterFSの高可用性を確認するために、「node1」をオフにするかシャットダウンし、クライアントマシンがまだGlusterFSクラスターに接続されていることを確認します。

node1のターミナルに移動し、以下のコマンドを実行してサーバーをシャットダウンします。

sudo poweroff

次に、node2のターミナルに移動し、以下のコマンドを実行してGlusterFSクラスターの状態を確認します。

sudo gluster peer status

出力は次のようになります - node1の状態は「Disconnected」です。

test ha

クライアントターミナルに移動し、以下のコマンドを実行して、まだGlusterFSクラスターに接続されていることを確認します。

cd /data  
ls

出力:

これにより、GlusterFSクラスターの高可用性が機能していることが確認されます。

結論

このチュートリアルでは、3台のDebian 11サーバーでGlusterFSクラスターをインストールしました。また、fdiskを介してLinux上に新しいディスク/パーティションを設定し、/etc/fstabファイルを介してLinuxディスク/パーティションの自動マウントを構成しました。さらに、GlusterFSで複製ボリュームを作成し、GlusterFSボリュームをマウントするためにDebian/Ubuntuベースのクライアントマシンを設定する方法を学びました。

これを念頭に置いて、ネットワークからアクセス可能な高可用性ネットワークファイルシステムを持つGlusterFSクラスターを活用するために、さらに多くのディスクやサーバーを追加できます。GlusterFSの管理については、GlusterFSの公式ドキュメントを参照してください。

Share: X/Twitter LinkedIn

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

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