ボリュームを作る
構文
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 を起動・停止するを参考にして下さい。
- 5.1. ノードを承認する・拒否する – GlusterFS Community ではじめる分散ファイルシステム
- 5.2. ボリュームを作る・削除する – GlusterFS Community ではじめる分散ファイルシステム
- 5.3. ボリュームを変更する – GlusterFS Community ではじめる分散ファイルシステム
- 5.4. ボリュームを開始・停止する – GlusterFS Community ではじめる分散ファイルシステム
- 5.5. GlusterFS を起動・停止する – GlusterFS Community ではじめる分散ファイルシステム
- 5.6. ボリュームをクライアントからマウントする – GlusterFS Community ではじめる分散ファイルシステム