Ubuntu20.04でGlusterFSを使用して冗長ストレージプールを作成する方法
このチュートリアルの以前のバージョンは、 JustinEllingwoodによって作成されました。
序章
重要なデータを保存する場合、単一障害点を持つことは非常に危険です。 多くのデータベースやその他のソフトウェアでは、単一のアプリケーションのコンテキストでデータを分散できますが、他のシステムはファイルシステムレベルで動作して、データがディスクに書き込まれるたびに別の場所に確実にコピーされるようにすることができます。
GlusterFS は、複数のマシンのストレージリソースをプールできるネットワーク接続ストレージファイルシステムです。 これにより、多くのコンピューターに分散されている複数のストレージデバイスを単一のより強力なユニットとして扱うことができます。 GlusterFSを使用すると、さまざまな種類のストレージ構成を自由に作成できます。その多くは、RAIDレベルと機能的に類似しています。 たとえば、クラスター内の異なるノード間でデータをストライプ化することも、冗長性を実装してデータの可用性を向上させることもできます。
目標
このガイドでは、分散ファイルシステム、またはGlusterFSドキュメントで参照されているように、信頼できるストレージプールとも呼ばれる冗長クラスター化ストレージアレイを作成します。 これにより、ネットワーク上でミラー化されたRAID構成と同様の機能が提供されます。独立した各サーバーにはデータの独自のコピーが含まれ、アプリケーションがいずれかのコピーにアクセスできるようにすることで、読み取り負荷の分散に役立ちます。
この冗長なGlusterFSクラスターは、2台のUbuntu20.04サーバーで構成されます。 これは、ミラー化されたRAIDを備えたNASサーバーと同様に機能します。 次に、GlusterFSクライアントとして機能するように構成された3番目のUbuntu20.04サーバーからクラスターにアクセスします。
GlusterFSを安全に実行するための注意
GlusterFSボリュームにデータを追加すると、そのデータは、ボリュームがホストされているストレージプール内のすべてのマシンに同期されます。 ノード間のこのトラフィックはデフォルトでは暗号化されていないため、悪意のある攻撃者によって傍受される可能性があります。
このため、本番環境でGlusterFSを使用する場合は、分離されたネットワークで実行することをお勧めします。 たとえば、 Virtual Private Cloud (VPC)で実行するように設定したり、各ノード間でVPNを実行するように設定したりできます。
GlusterFSをDigitalOceanにデプロイする場合は、サーバーインフラストラクチャをDigitalOcean仮想プライベートクラウドに追加することで、分離されたネットワークにGlusterFSをセットアップできます。 これを設定する方法の詳細については、VPC製品のドキュメントを参照してください。
前提条件
このチュートリアルに従うには、Ubuntu20.04を実行している3台のサーバーが必要です。 各サーバーには、管理者権限を持つroot以外のユーザーと、UFWで構成されたファイアウォールが必要です。 これを設定するには、Ubuntu20.04の初期サーバー設定ガイドに従ってください。
注:目標のセクションで説明したように、このチュートリアルでは、2つのUbuntuサーバーをストレージプール内のサーバーとして機能し、残りの1つをクライアントとして機能するように構成する方法について説明します。これらのノードにアクセスします。
わかりやすくするために、このチュートリアルでは、次のホスト名を持つこれらのマシンを参照します。
ホスト名 | ストレージプールでの役割 |
---|---|
gluster0 | サーバ |
gluster1 | サーバ |
gluster2 | クライアント |
gluster0またはgluster1のいずれかで実行する必要のあるコマンドの背景は、それぞれ青と赤になります。
-
-
クライアント( gluster2 )でのみ実行する必要があるコマンドの背景は緑色になります。
-
複数のマシンで実行できる、または実行する必要があるコマンドの背景は灰色になります。
-
ステップ1—各マシンでDNS解決を構成する
各コンピューター間で何らかのホスト名解決を設定すると、Glusterストレージプールの管理に役立ちます。 このように、このチュートリアルの後半でgluster
コマンドでマシンのいずれかを参照する必要がある場合は、それぞれのIPアドレスの代わりに覚えやすいドメイン名またはニックネームを使用して参照できます。
予備のドメイン名がない場合、または何かをすばやく設定したい場合は、代わりに各コンピューターで/etc/hosts
ファイルを編集できます。 これは、ファイルに含まれているホスト名を静的IPアドレスに解決するようにシステムを静的に構成できるLinuxマシン上の特別なファイルです。
注:所有するドメインで認証するようにサーバーを構成する場合は、最初にドメイン登録事業者からNamecheapや Enom —適切なDNSレコードを構成します。
サーバーごとにAレコードを構成したら、ステップ2に進むことができます。 このガイドに従うときは、glusterN.example.comとglusterNを、サンプルコマンドで参照されているそれぞれのサーバーに解決されるドメイン名に置き換えてください。
DigitalOceanからインフラストラクチャを取得した場合は、ドメイン名をDigitalOcean に追加してから、サーバーごとに一意のAレコードを設定できます。
お好みのテキストエディタを使用して、各マシンでroot権限でこのファイルを開きます。 ここでは、nano
を使用します。
- sudo nano /etc/hosts
デフォルトでは、ファイルはコメントが削除された次のようになります。
127.0.1.1 hostname hostname
127.0.0.1 localhost
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
Ubuntuサーバーの1つで、各サーバーのIPアドレスに続けて、ローカルホスト定義の下のコマンドでそれらを参照するために使用する名前を追加します。
次の例では、各サーバーにglusterN.example.com
に対応する長いホスト名と、glusterN
に対応する短いホスト名が与えられています。 各行のglusterN.example.com
およびglusterN
の部分は、各サーバーへのアクセスに使用する名前(または単一のスペースで区切られた名前)に変更できます。 ただし、このチュートリアルでは、次の例全体でこれらの例を使用することに注意してください。
注:サーバーが仮想プライベートクラウドインフラストラクチャプールの一部である場合は、パブリックIPではなく/etc/hosts
ファイルで各サーバーのプライベートIPアドレスを使用する必要があります。
. . .
127.0.0.1 localhost
first_ip_address gluster0.example.com gluster0
second_ip_address gluster1.example.com gluster1
third_ip_address gluster2.example.com gluster2
. . .
これらの新しい行を1台のマシンの/etc/hosts
ファイルに追加し終えたら、それらをコピーして、他のマシンの/etc/hosts
ファイルに追加します。 各/etc/hosts
ファイルには、サーバーのIPアドレスを選択した名前にリンクする同じ行が含まれている必要があります。
終了したら、各ファイルを保存して閉じます。 nano
を使用した場合は、CTRL + X
、Y
、ENTER
の順に押してください。
各サーバー間でホスト名解決を構成したので、後でストレージプールとボリュームを設定するときにコマンドを実行するのが簡単になります。 次に、各サーバーで完了する必要のある別の手順を実行します。 つまり、Glusterプロジェクトの公式パーソナルパッケージアーカイブ(PPA)を3つのUbuntuサーバーのそれぞれに追加して、最新バージョンのGlusterFSをインストールできるようにします。
ステップ2—各マシンにソフトウェアソースを設定する
デフォルトのUbuntu20.04APTリポジトリにはGlusterFSパッケージが含まれていますが、この記事の執筆時点では、これらは最新バージョンではありません。 GlusterFSの最新の安定バージョン(この記事の執筆時点ではバージョン 7.6 )をインストールする1つの方法は、3つのUbuntuサーバーのそれぞれにGlusterプロジェクトの公式PPAを追加することです。
各サーバーで次のコマンドを実行して、GlusterFSパッケージのPPAを追加します。
- sudo add-apt-repository ppa:gluster/glusterfs-7
実際にPPAを追加することを確認するプロンプトが表示されたら、ENTER
を押します。
PPAを追加した後、各サーバーのローカルパッケージインデックスを更新します。 これにより、各サーバーは利用可能な新しいパッケージを認識します。
- sudo apt update
Glusterプロジェクトの公式PPAを各サーバーに追加し、ローカルパッケージインデックスを更新すると、必要なGlusterFSパッケージをインストールする準備が整います。 ただし、3台のマシンのうち2台がGlusterサーバーとして機能し、もう1台がクライアントとして機能するため、2つの別個のインストールおよび構成手順があります。 まず、サーバーコンポーネントをインストールしてセットアップします。
ステップ3—サーバーコンポーネントのインストールと信頼できるストレージプールの作成
ストレージプールは、複数のストレージリソースから集約された任意の量のストレージ容量です。 このステップでは、2つのサーバー(gluster0とgluster1)をクラスターコンポーネントとして構成します。
gluster0とgluster1の両方に、次のように入力してGlusterFSサーバーパッケージをインストールします。
- sudo apt install glusterfs-server
プロンプトが表示されたら、Y
を押してから、ENTER
を押してインストールを確認します。
インストールプロセスにより、GlusterFSがsystemd
サービスとして実行されるように自動的に構成されます。 ただし、サービスを自動的に開始したり、起動時に実行できるようにしたりすることはありません。
GlusterFSサービスであるglusterd
を開始するには、gluster0とgluster1の両方で次のsystemctl start
コマンドを実行します。
- sudo systemctl start glusterd.service
次に、両方のサーバーで次のコマンドを実行します。 これにより、サーバーが起動するたびにサービスを開始できるようになります。
- sudo systemctl enable glusterd.service
その後、いずれかまたは両方のサーバーでサービスのステータスを確認できます。
- sudo systemctl status glusterd.service
サービスが稼働している場合は、次のような出力が表示されます。
Output● glusterd.service - GlusterFS, a clustered file-system server
Loaded: loaded (/lib/systemd/system/glusterd.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-06-02 21:32:21 UTC; 32s ago
Docs: man:glusterd(8)
Main PID: 14742 (glusterd)
Tasks: 9 (limit: 2362)
CGroup: /system.slice/glusterd.service
└─14742 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO
前提条件の初期サーバーセットアップガイドに従っていると仮定すると、各マシンにUFWを使用してファイアウォールをセットアップすることになります。 このため、ノード間の通信を確立してストレージプールを作成する前に、各ノードでファイアウォールを開く必要があります。
Glusterデーモンはポート24007
を使用するため、ストレージプール内の他の各ノードのファイアウォールを介して各ノードがそのポートにアクセスできるようにする必要があります。 これを行うには、gluster0で次のコマンドを実行します。 gluster1_ip_address
をgluster1のIPアドレスに変更することを忘れないでください。
- sudo ufw allow from gluster1_ip_address to any port 24007
そして、gluster1で次のコマンドを実行します。 繰り返しになりますが、必ずgluster0_ip_address
をgluster0のIPアドレスに変更してください。
- sudo ufw allow from gluster0_ip_address to any port 24007
また、クライアントマシン( gluster2 )がこのポートにアクセスできるようにする必要があります。 そうしないと、後でボリュームをマウントしようとしたときに問題が発生します。 gluster0とgluster1の両方で次のコマンドを実行して、このポートをクライアントマシンに開きます。
- sudo ufw allow from gluster2_ip_address to any port 24007
次に、他のマシンがどちらのサーバーのGlusterのポートにもアクセスできないようにするには、次のブランケットdeny
ルールをgluster0とgluster1の両方に追加します。
- sudo ufw deny 24007
これで、gluster0とgluster1の間の通信を確立する準備が整いました。 そのためには、ノードの1つでgluster peer probe
コマンドを実行する必要があります。 使用するノードは関係ありませんが、次の例は、gluster0で実行されているコマンドを示しています。
- sudo gluster peer probe gluster1
基本的に、このコマンドはgluster0にgluster1を信頼し、ストレージプールの一部として登録するように指示します。 プローブが成功すると、次の出力が返されます。
Outputpeer probe: success
いずれかのノードでgluster peer status
コマンドを実行すると、ノードがいつでも通信していることを確認できます。 この例では、gluster1で実行されます。
- sudo gluster peer status
gluster1 からこのコマンドを実行すると、次のような出力が表示されます。
OutputNumber of Peers: 1
Hostname: gluster0.example.com
Uuid: a3fae496-c4eb-4b20-9ed2-7840230407be
State: Peer in Cluster (Connected)
この時点で、2つのサーバーは通信しており、相互にストレージボリュームを作成する準備ができています。
ステップ4—ストレージボリュームの作成
このチュートリアルの主な目的は、冗長ストレージプールを作成することであることを思い出してください。 この目的のために、レプリカ機能を備えたボリュームをセットアップし、データの複数のコピーを保持して、クラスターに単一障害点が発生するのを防ぎます。
ボリュームを作成するには、次の一般的な構文でgluster volume create
コマンドを使用します。
sudo gluster volume create volume_name replica number_of_servers domain1.com:/path/to/data/directory domain2.com:/path/to/data/directory force
このgluster volume create
コマンドの引数とオプションの意味は次のとおりです。
volume_name
:これは、ボリュームの作成後にボリュームを参照するために使用する名前です。 次のコマンド例は、volume1
という名前のボリュームを作成します。replica number_of_servers
:ボリューム名に続いて、作成するボリュームのタイプを定義できます。 このチュートリアルの目的は冗長ストレージプールを作成することであるため、replyボリュームタイプを使用することを思い出してください。 これには、ボリュームのデータが複製されるサーバーの数を示す引数が必要です(このチュートリアルの場合は2
)。domain1.com:/…
およびdomain2.com:/…
:これらはブリックのマシンとディレクトリの場所を定義します—ストレージの基本単位を表すGlusterFSの用語で、より大きなボリュームの一部またはコピー—volume1
を構成します。 次の例では、両方のサーバーのルートディレクトリにgluster-storage
という名前のディレクトリを作成します。force
:このオプションは、警告やオプションを無効にして、ボリュームの作成を停止します。
このチュートリアルの前半で確立された規則に従って、このコマンドを実行してボリュームを作成できます。 gluster0またはgluster1のいずれかから実行できることに注意してください。
- sudo gluster volume create volume1 replica 2 gluster0.example.com:/gluster-storage gluster1.example.com:/gluster-storage force
ボリュームが正常に作成された場合、次の出力が表示されます。
Outputvolume create: volume1: success: please start the volume to access data
この時点で、ボリュームは作成されていますが、まだアクティブではありません。 いずれかのGlusterサーバーから次のコマンドを再度実行することで、ボリュームを起動して使用できるようにすることができます。
- sudo gluster volume start volume1
ボリュームが正しく開始された場合、この出力を受け取ります。
Outputvolume start: volume1: success
次に、ボリュームがオンラインであることを確認します。 いずれかのノードから次のコマンドを実行します。
- sudo gluster volume status
これにより、次のような出力が返されます。
OutputStatus of volume: volume1
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick gluster0.example.com:/gluster-storage 49152 0 Y 18801
Brick gluster1.example.com:/gluster-storage 49152 0 Y 19028
Self-heal Daemon on localhost N/A N/A Y 19049
Self-heal Daemon on gluster0.example.com N/A N/A Y 18822
Task Status of Volume volume1
------------------------------------------------------------------------------
There are no active volume tasks
この出力に基づいて、両方のサーバーのブリックはオンラインになっています。
ボリュームを構成するための最後のステップとして、クライアントマシンがボリュームに接続してマウントできるように、両方のサーバーでファイアウォールを開く必要があります。 前のコマンドの出力例によると、volume1
は両方のマシンのポート49152
で実行されています。 これは、最初のボリュームのGlusterFSのデフォルトのポートであり、次に作成するボリュームは、ポート49153
、49154
などを使用します。
gluster0とgluster1の両方で次のコマンドを実行して、gluster2がそれぞれのファイアウォールを介してこのポートにアクセスできるようにします。
- sudo ufw allow from gluster2_ip_address to any port 49152
次に、セキュリティのレイヤーを追加するために、gluster0とgluster1の両方ののボリュームのポートに別のブランケットdeny
ルールを追加します。 これにより、クライアント以外のマシンがどちらのサーバーのボリュームにもアクセスできないようになります。
- sudo ufw deny 49152
ボリュームが稼働しているので、クライアントマシンをセットアップして、リモートで使用を開始できます。
ステップ5—クライアントコンポーネントのインストールと構成
これでボリュームが構成され、クライアントマシンで使用できるようになりました。 ただし、開始する前に、手順1で設定したPPAからglusterfs-client
パッケージをクライアントマシンにインストールする必要があります。 このパッケージの依存関係には、GlusterFSの一般的なライブラリとトランスレータモジュールの一部、およびパッケージが機能するために必要なFUSEツールが含まれます。
gluster2で次のコマンドを実行します。
- sudo apt install glusterfs-client
間もなく、リモートストレージボリュームをクライアントコンピューターにマウントします。 ただし、その前に、マウントポイントを作成する必要があります。 従来、これは/mnt
ディレクトリにありますが、便利な場所ならどこでも使用できます。
簡単にするために、マウントポイントとして機能する/storage-pool
という名前のディレクトリをクライアントマシンに作成します。 このディレクトリ名はスラッシュ(/
)で始まり、ルートディレクトリに配置されるため、sudo
権限で作成する必要があります。
- sudo mkdir /storage-pool
これで、リモートボリュームをマウントできます。 ただし、その前に、そのために使用するmount
コマンドの構文を確認してください。
sudo mount -t glusterfs domain1.com:volume_name /path/to/mount/point
mount
は、多くのUnixライクなオペレーティングシステムに見られるユーティリティです。 これは、ファイルシステム(SDカードやUSBスティックなどの外部ストレージデバイスから、このチュートリアルの場合のようにネットワーク接続ストレージまで)を、マシンの既存のファイルシステム上のディレクトリにマウントするために使用されます。 使用するmount
コマンド構文には、-t
オプションが含まれています。これには、マウントするファイルシステムの type 、 deviceの3つの引数が必要です。マウントするファイルシステムがあり、ボリュームをマウントするクライアントのディレクトリがあります。
この構文例では、device引数がホスト名、コロン、ボリュームの名前を指していることに注意してください。 GlusterFSは、各ホストの実際のストレージディレクトリを抽象化します。つまり、このコマンドは/gluster-storage
ディレクトリではなく、volume1
ボリュームをマウントするように見えます。
また、ストレージクラスターのメンバーを1つだけ指定する必要があることに注意してください。 GlusterFSサービスはそれらを1台のマシンとして扱うため、これはどちらのノードでもかまいません。
クライアントマシン( gluster2 )で次のコマンドを実行して、作成した/storage-pool
ディレクトリにボリュームをマウントします。
- sudo mount -t glusterfs gluster0.example.com:/volume1 /storage-pool
その後、df
コマンドを実行します。 これにより、ファイルシステムを呼び出すユーザーがアクセスできるファイルシステムで使用可能なディスク容量が表示されます。
- df
このコマンドは、GlusterFSボリュームが正しい場所にマウントされていることを示します。
OutputFilesystem 1K-blocks Used Available Use% Mounted on
. . .
gluster0.example.com:/volume1 50633164 1938032 48695132 4% /storage-pool
これで、クライアントのボリュームに書き込んだデータが期待どおりにサーバーノードに複製されるかどうかのテストに進むことができます。
ステップ6—冗長機能のテスト
ストレージプールとボリュームを使用するようにクライアントを設定したので、その機能をテストできます。
クライアントマシン( gluster2 )で、前の手順で定義したマウントポイントに移動します。
- cd /storage-pool
次に、いくつかのテストファイルを作成します。 次のコマンドは、ストレージプールに10個の個別の空のファイルを作成します。
- sudo touch file_{0..9}.test
各ストレージホストで以前に定義したストレージディレクトリを調べると、これらのファイルがすべて各システムに存在することがわかります。
gluster0 の場合:
- ls /gluster-storage
Outputfile_0.test file_2.test file_4.test file_6.test file_8.test
file_1.test file_3.test file_5.test file_7.test file_9.test
同様に、 gluster1 では:
- ls /gluster-storage
Outputfile_0.test file_2.test file_4.test file_6.test file_8.test
file_1.test file_3.test file_5.test file_7.test file_9.test
これらの出力が示すように、クライアントに追加したテストファイルも両方のノードに書き込まれました。
ストレージクラスター内のノードの1つがダウンした時点がある場合、ファイルシステムに変更が加えられると、ストレージプールと同期しなくなる可能性があります。 ノードがオンラインに戻った後にクライアントマウントポイントで読み取り操作を実行すると、不足しているファイルを取得するようにノードに警告します。
- ls /storage-pool
ストレージボリュームが正しくマウントされ、クラスター内の両方のマシンにデータを複製できることを確認したので、ストレージプールへのアクセスをロックダウンできます。
ステップ7—冗長機能の制限
この時点で、どのコンピューターも制限なしにストレージボリュームに接続できます。 これを変更するには、auth.allow
オプションを設定します。このオプションは、ボリュームにアクセスできるクライアントのIPアドレスを定義します。
/etc/hosts
構成を使用している場合、各サーバーに設定した名前は正しくルーティングされません。 代わりに静的IPアドレスを使用する必要があります。 一方、DNSレコードを使用している場合は、構成したドメイン名がここで機能します。
ストレージノード(gluster0またはgluster1)のいずれかで、次のコマンドを実行します。
- sudo gluster volume set volume1 auth.allow gluster2_ip_address
コマンドが正常に完了すると、次の出力が返されます。
Outputvolume set: success
いつでも制限を解除する必要がある場合は、次のように入力できます。
- sudo gluster volume set volume1 auth.allow *
これにより、どのマシンからでも再び接続できるようになります。 これは安全ではありませんが、問題のデバッグには役立ちます。
複数のクライアントがある場合は、IPアドレスまたはドメイン名を同時に指定できます(/etc/hosts
またはDNSホスト名解決のどちらを使用しているかによって異なります)。コンマで区切ってください。
- sudo gluster volume set volume1 auth.allow gluster_client1_ip,gluster_client2_ip
これで、ストレージプールが構成され、保護され、使用できるようになりました。 次に、ストレージプールのステータスに関する情報を取得するのに役立ついくつかのコマンドを学習します。
ステップ8—GlusterFSコマンドを使用してストレージプールに関する情報を取得する
GlusterFSストレージの設定の一部を変更し始めると、使用可能なオプション、稼働中のボリューム、および各ボリュームに関連付けられているノードについて混乱する可能性があります。
このデータを取得してストレージプールとやり取りするためにノードで使用できるさまざまなコマンドがいくつかあります。
各ボリュームに関する情報が必要な場合は、gluster volume info
コマンドを実行します。
- sudo gluster volume info
OutputVolume Name: volume1
Type: Replicate
Volume ID: a1e03075-a223-43ab-a0f6-612585940b0c
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gluster0.example.com:/gluster-storage
Brick2: gluster1.example.com:/gluster-storage
Options Reconfigured:
auth.allow: gluster2_ip_address
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
performance.client-io-threads: off
同様に、このノードが接続されているピアに関する情報を取得するには、次のように入力します。
- sudo gluster peer status
Number of Peers: 1
Hostname: gluster0.example.com
Uuid: cb00a2fc-2384-41ac-b2a8-e7a1793bb5a9
State: Peer in Cluster (Connected)
各ノードのパフォーマンスに関する詳細情報が必要な場合は、次のように入力してボリュームのプロファイルを作成できます。
- sudo gluster volume profile volume_name start
このコマンドが完了すると、次のように入力して収集された情報を取得できます。
- sudo gluster volume profile volume_name info
OutputBrick: gluster0.example.com:/gluster-storage
--------------------------------------------
Cumulative Stats:
%-latency Avg-latency Min-Latency Max-Latency No. of calls Fop
--------- ----------- ----------- ----------- ------------ ----
0.00 0.00 us 0.00 us 0.00 us 30 FORGET
0.00 0.00 us 0.00 us 0.00 us 36 RELEASE
0.00 0.00 us 0.00 us 0.00 us 38 RELEASEDIR
Duration: 5445 seconds
Data Read: 0 bytes
Data Written: 0 bytes
Interval 0 Stats:
%-latency Avg-latency Min-Latency Max-Latency No. of calls Fop
--------- ----------- ----------- ----------- ------------ ----
0.00 0.00 us 0.00 us 0.00 us 30 FORGET
0.00 0.00 us 0.00 us 0.00 us 36 RELEASE
0.00 0.00 us 0.00 us 0.00 us 38 RELEASEDIR
Duration: 5445 seconds
Data Read: 0 bytes
Data Written: 0 bytes
. . .
前に示したように、各ノードで実行されているすべてのGlusterFS関連コンポーネントのリストについては、gluster volume status
コマンドを実行します。
- sudo gluster volume status
OutputStatus of volume: volume1
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick gluster0.example.com:/gluster-storage 49152 0 Y 19003
Brick gluster1.example.com:/gluster-storage 49152 0 Y 19040
Self-heal Daemon on localhost N/A N/A Y 19061
Self-heal Daemon on gluster0.example.com N/A N/A Y 19836
Task Status of Volume volume1
------------------------------------------------------------------------------
There are no active volume tasks
GlusterFSストレージボリュームを管理する場合は、GlusterFSコンソールにドロップすることをお勧めします。 これにより、すべての前にsudo gluster
と入力しなくても、GlusterFS環境と対話できるようになります。
- sudo gluster
これにより、コマンドを入力できるプロンプトが表示されます。 help
は、自分の方向性を決めるのに適しています。
- help
Output peer help - display help for peer commands
volume help - display help for volume commands
volume bitrot help - display help for volume bitrot commands
volume quota help - display help for volume quota commands
snapshot help - display help for snapshot commands
global help - list global commands
終了したら、exit
を実行してGlusterコンソールを終了します。
- exit
これで、GlusterFSを次のアプリケーションと統合する準備が整いました。
結論
このチュートリアルを完了すると、2つの別々のサーバーに同時に書き込むことができる冗長ストレージシステムができあがります。 これは多くのアプリケーションに役立ち、1台のサーバーがダウンした場合でもデータを確実に利用できるようにすることができます。