GlusterFS ではボリュームを作る上で多くのボリュームオプションを用意しています。このボリュームオプションは RAID のようにミラーリング(レプリケーテッド)やストライプを行います。今回はこれら GlusterFS で利用可能なボリュームオプションについて説明します。
ブリックとは
ボリュームオプションを説明する前にブリックについても説明します。ブリックはサーバ内で共有しているディレクトリ1つを指します。1つのサーバ内では複数のブリックを共有することも可能です。
ディストリビューテッド
複数のブリックをまたいでファイルを保存する方式です。サーバを増やせば増やした分、クライアントからは容量が増えて見えるため、拡張性に優れます。一台サーバが落ちるとそこに保存されていたファイルにはアクセスできなくなります。
このオプション用のボリュームを作るには以下のようなコマンドを実行します。
gluster volume create <ボリューム名> [transport [tcp | rdma | rcp,rdma]] <ブリック>...
ブリックは “<ホスト>:<共有するディレクトリ>” のように指定します。
以下はコマンド例です(transport を省略すると tcp が使われます)
$ sudo gluster volume create test-volume 192.168.1.130:/srv/test-volume 192.168.1.131:/srv/test-volume
レプリケーテッド
複数のブリックにレプリカとして指定した数の同じファイルを置く方式です。4台レプリカが指定されていれば4つの同じファイルが各ブリックに作成されます。一番容量の少ないブリックに合わせてサイズが決まる為、拡張性はありません。一方で何台サーバ(ブリック)が落ちてもレプリカが1つでも残っていればアクセス可能な為、可用性に優れます。
このオプション用のボリュームを作るには以下のようなコマンドを実行します。
gluster volume create <ボリューム名> replica <複製数> [transport [tcp | rdma | rcp,rdma]] <ブリック>...
以下はコマンド例です。ブリックは replica に指定した数と同じ数分指定します。
$ sudo gluster volume create test-volume replica 2 192.168.1.130:/srv/test-volume 192.168.1.131:/srv/test-volume
ストライプド
1つのファイルをストライプとして指定した数に分割して複数のブリックに配置する方式です。ファイルへのアクセスは複数の分割されたブリックから取得する為、処理が分散され大きなファイルでは高速化が期待できます。一方で1つでもサーバ(ブリック)が落ちてしまうと全てのファイルにアクセスできなくなります(分割して持っている為)。
このオプション用のボリュームを作るには以下のようなコマンドを実行します。
gluster volume create <ボリューム名> stripe <分割数> [transport [tcp | rdma | rcp,rdma]] <ブリック>...
以下はコマンド例です。ブリックは stripe に指定した数と同じ数分指定します。
$ sudo gluster volume create test-volume stripe 2 192.168.1.130:/srv/test-volume 192.168.1.131:/srv/test-volume
ディストリビューテッドストライプド
ストライプしたブロック(ファイルの中のブロック)を複数のブリックに分散して配置する方式でストライプの上にディストリビューテッドがあるイメージです。ストライプとディストリビューテッドが組合わさっている為、適度な性能向上と拡張性があります。一方で1つでもサーバ(ブリック)が落ちてしまうと特定のファイルにアクセスできなくなります。また多くのブリックを必要とします(最低4つ)。
このオプション用のボリュームを作るには以下のようなコマンドを実行します。
gluster volume create <ボリューム名> stripe <分割数> [transport [tcp | rdma | rcp,rdma]] <ブリック>...
以下はコマンド例です。ブリックは stripe に指定した数の倍数分を指定します。
$ sudo gluster volume create test-volume stripe 2 192.168.1.130:/srv/test-volume 192.168.1.131:/srv/test-volume 192.168.1.132:/srv/test-volume 192.168.1.133:/srv/test-volume
ディストリビューテッドレプリケーテッド
レプリケーテッドの上にディストリビューテッドを置く方式です。レプリケーテッドとディストリビューテッドを組み合わせている為、適度な拡張性と可用性があります。一方で多くのブリック(サーバ)を必要とします(最低4つ)。
このオプション用のボリュームを作るには以下のようなコマンドを実行します。
gluster volume create <ボリューム名> replica <複製数> [transport [tcp | rdma | rcp,rdma]] <ブリック>...
以下はコマンド例です。ブリックは replica に指定した数の倍数分を指定します。
$ sudo gluster volume create test-volume replica 2 192.168.1.130:/srv/test-volume 192.168.1.131:/srv/test-volume 192.168.1.132:/srv/test-volume 192.168.1.133:/srv/test-volume
ストライプドレプリケーテッド
レプリケーテッドの上にストライプドを置く方式です。この2つを組み合わせることで大きなファイルアクセスへの性能向上と可用性を備えます。一方で、このボリュームオプションも多くのブリックを必要とします(最低4つ)。
このオプション用のボリュームを作るには以下のようなコマンドを実行します。
gluster volume create <ボリューム名> stripe <分割数> replica <複製数> [transport [tcp | rdma | rcp,rdma]] <ブリック>...
以下はコマンド例です。ブリックは stripe と replica を掛けた数分指定します。
$ sudo gluster volume create test-volume stripe 2 replica 2 192.168.1.130:/srv/test-volume 192.168.1.131:/srv/test-volume 192.168.1.132:/srv/test-volume 192.168.1.133:/srv/test-volume
ディストリビューテッドストライプドレプリケーテッド
レプリケーテッドの上にストライプドを置き、さらにディストリビューテッドを置く方式です。全てを組み合わせることで適度な可用性・性能・拡張性を備えます。ただ、これを実現する為に非常に多くのブリックを必要とします(最低8つ)。これらのブリックは同じサーバ内でも可能ですが、可用性・性能が落ちます。
このオプション用のボリュームを作るには以下のようなコマンドを実行します。
gluster volume create <ボリューム名> stripe <分割数> replica <複製数> [transport [tcp | rdma | rcp,rdma]] <ブリック>...
以下はコマンド例です。ブリックは stripe と replica を掛けた数のさらに倍数分指定します。
$ sudo gluster volume create test-volume stripe 2 replica 2 192.168.1.130:/srv/test-volume 192.168.1.131:/srv/test-volume 192.168.1.132:/srv/test-volume 192.168.1.133:/srv/test-volume 192.168.1.134:/srv/test-volume 192.168.1.135:/srv/test-volume 192.168.1.136:/srv/test-vlume 192.168.1.137:/srv/test-volume