5.2. ボリュームを作る・削除する – GlusterFS Community ではじめる分散ファイルシステム

.

ボリュームを作る

構文

gluster volume create <ボリューム名> stripe <分割する数> replica <複製する数> transport [tcp | rdma | tcp,rdma] <ブリック>

ボリュームを作る時は次のような情報をオプションに指定します。

  • ボリューム名:これから作成したいボリューム名。ディレクトリとして利用可能な文字であればどんなものでも可
  • stripe:分割する数を指定
  • replica:複製する数を指定
  • transport:ネットワーク通信(rpc)を使った tcp か InfiniBand を使った rdma のどちらかを指定。指定しない場合は tcp
  • ブリック:ブリックを指定。ブリックは <ホスト名>:<共有したいディレクトリ> の形式で指定し複数指定可能

また、stripe や replica を指定した場合、ボリュームの特性が変わってきます。これらの詳細についてはさまざまなボリュームオプション(その1)から始まる各ボリュームオプションを参考にして下さい。

ボリュームを作成しただけではボリュームを使うことはできません。ボリュームを使うにはこの後、ボリュームを開始・停止するを実行する必要があります。

以下にそれぞれのボリュームを作る場合のコマンド例を示します。

ディストリビューテッドボリューム

構文

gluster volume create <ボリューム名> transport [tcp | rdma | tcp,rdma] <ブリック>...

利用例

# gluster volume create test-vol server01:/srv/test-vol 192.168.33.20:/srv/test-vol server03:/srv/test-vol server04:/srv/test-vol

レプリケーテッドボリューム

構文

gluster volume create <ボリューム名> replica <複製する数> transport [tcp | rdma | tcp,rdma] <ブリック>...

利用例

# gluster volume create test-vol replica 2 server01:/srv/test-vol 192.168.33.20:/srv/test-vol

ストライプドボリューム

構文

gluster volume create <ボリューム名> stripe <分割する数> transport [tcp | rdma | tcp,rdma] <ブリック>...

利用例

# gluster volume create test-vol stripe 2 server01:/srv/test-vol 192.168.33.20:/srv/test-vol

ディストリビューテッドストライプドボリューム

構文

gluster volume create <ボリューム名> stripe <分割する数> transport [tcp | rdma | tcp,rdma] <ブリック>...

ブリックは stripe に指定した数の倍の数を指定します。

利用例

# gluster volume create test-vol stripe 2 server01:/srv/test-vol 192.168.33.20:/srv/test-vol server03:/srv/test-vol server04:/srv/test-vol

ディストリビューテッドレプリケーテッドボリューム

構文

gluster volume create <ボリューム名> replica <複製する数> transport [tcp | tdma | tcp,rdma] <ブリック>...

ブリックは replica に指定した数の倍の数を指定します。

利用例

# gluster volume create test-vol replica 2 server01:/srv/test-vol 192.168.33.20:/srv/test-vol server03:/srv/test-vol server04:/srv/test-vol

ストライプドレプリケーテッドボリューム

構文

gluster volume create <ボリューム名> stripe <分割する数> replica <複製する数> transport [tcp | rdma | tcp,rdma] <ブリック>...

ブリックは stripe と replica を倍にした数を指定します。

利用例

# gluster volume create test-vol stripe 2 replica 2 server01:/srv/test-vol 192.168.33.20:/srv/test-vol server03:/srv/test-vol server04:/srv/test-vol

ディストリビューテッドストライプドレプリケーテッドボリューム

構文

gluster volume create <ボリューム名> stripe <分割する数> replica <複製する数> transport [tcp | rdma | tcp,rdma] <ブリック>…

ブリックは stripe と replica の倍のさらに倍数を指定します。

利用例

# gluster volume create test-vol stripe 2 replica 2 server01:/srv/test-vol 192.168.33.20:/srv/test-vol server03:/srv/test-vol server04:/srv/test-vol 192.168.33.60:/srv/test-vol 192.168.33.70:/srv/test-vol 192.168.33.80:/srv/test-vol 192.168.33.90:/srv/test-vol

ボリュームを削除する

利用例

ボリュームを削除する場合、ボリュームのみを指定して gluster volume delete を実行します。この時承認したピアは承認したまま残ります。また、削除前にボリュームを停止しておく必要があります(もちろん削除時に停止することも可能です)。

ディレクトリを再利用したい場合

構文

gluster volume delete <ボリューム名>

利用例

# gluster volume delete test-vol

削除したボリューム内にブリックとして含まれていたディレクトリを再利用したい場合は単純にはいきません。

GlusterFS ではボリュームとして共有したディレクトリに属性としていくつかのパラメータを付与し、一番上のディレクトリに.glusterfsという隠しディレクトリも作成します。

このパラメータや隠しディレクトリが存在したままの状態で他のボリュームのブリックとして追加(作成)しようとしても次のようなエラーが表示されて失敗してしまいます。

<ディレクトリのパス> or a prefix of it is already part of a volume

このパラメータは次のようなコマンドで確認することができます。

getfattr -d -m - <ディレクトリのパス>

そしてこのディレクトリを再度利用したい場合は次のようなコマンドを実行します。

setfattr -x trusted.glusterfs.volume-id <ディレクトリのパス>
setfattr -x trusted.gfid <ディレクトリのパス>
rm -rfv <ディレクトリのパス>/.glusterfs

最後の rm コマンドはディレクトリ自体を削除しないように注意して下さい。次のような利用例になります。

$ setfattr -x trusted.glusterfs.volume-id /srv/test-vol
$ setfattr -x trusted.gfid /srv/test-vol
$ rm -rfv /srv/test-vol/.glusterfs

この後、GlusterFS 自体の再起動も必要かもしれません。GlusterFS の再起動はGlusterFS を起動・停止するを参考にして下さい。