PR

Ubuntu 12.04 LTS で GlusterFS を使ってみる2 – マウント

以前、Ubuntu 12.04 LTS にGlusterFS をインストールし、前回はミラーリングを定義した。今回はマウントを試してみる。

スポンサードリンク

マウント

マウントするのは[VM_SERVER]:/var/gluster_brickではなく[VM_SERVER]:gluster_volであることに注意してください(「glusterfsで仮想化サーバの余っているローカルハードディスクを分散共有ストレージにする at nkjmkzk.net」より引用)

nfs としてマウント

$ sudo mkdir /mnt/GFS
$ sudo mount -t nfs 192.168.1.11:/GlusterVol1 /mnt/GFS
mount: 間違ったファイルシステムタイプ、不正なオプション、
192.168.1.11:/GlusterVol1 のスーパーブロックが不正、コードページまたは
ヘルパープログラムの未指定、或いは他のエラー
(for several filesystems (e.g. nfs, cifs) you might
need a /sbin/mount.<type> helper program)
In some cases useful info is found in syslog - try
dmesg | tail  or so

初登場192.168.1.13 (GlusterFS をインストールしていない、単純にマウントだけすることを想定した端末)で実行してみたところエラーとなった(構成は前回の記事を参照)。

$ sudo mount -t nfs 192.168.1.11:/GlusterVol1 /mnt/GFS
mount.nfs: Connection timed out

ところが、192.168.1.11 で試してもエラーとなった。うーん?

$ sudo mount -t glusterfs 192.168.1.11:/GlusterVol1 /mnt/GFS

としたら通ったらしい。nfs ではないけれど。

動作確認

$ df -h
Filesystem                 Size  Used Avail Use% Mounted on
/dev/sda1                   39G  1.7G   36G   5% /
udev                       488M  4.0K  488M   1% /dev
tmpfs                      199M  244K  199M   1% /run
none                       5.0M     0  5.0M   0% /run/lock
none                       497M     0  497M   0% /run/shm
192.168.1.11:/GlusterVol1   39G  1.7G   36G   5% /mnt/GFS

確認してみると((40G+40G)/2=)40G が見えた。

$ sudo mv glusterfs_3.3.0-1_amd64.deb /mnt/GFS/

192.168.1.11 (マウントしている)から適当に上記コマンドを実行してみた。

GlusterFS ではOS からファイル実体を見ることができるそうだ。

$ ls /GlusterFS/brick/
glusterfs_3.3.0-1_amd64.deb

ピアである192.168.1.12 (マウントしていない)を確認してみるとファイルがミラーリングされていることが確認できた。

外部からのマウント1

ちなみに、突然登場した192.168.1.13 では以下のようになる。

$ sudo mount -t glusterfs 192.168.1.11:/GlusterVol1 /mnt/GFS
mount: 未知のファイルシステムタイプ 'glusterfs'

マウントしたものを共有するなどいくつも方法があるのだろう。

(かなり適当に)GlusterFS を関係ない192.168.1.13 にインストールしたらマウントできるのだろうか。

$ sudo apt-get install nfs-common
$ wget http://download.gluster.com/pub/gluster/glusterfs/LATEST/Ubuntu/12.04/glusterfs_3.3.0-1_amd64.deb
$ sudo dpkg -i glusterfs_3.3.0-1_amd64.deb
$ sudo mount -t glusterfs 192.168.1.11:/GlusterVol1 /mnt/GFSowner

192.168.1.13 にGlusterFS を導入してマウントしてみた。

$ ls /mnt/GFS/
 glusterfs_3.3.0-1_amd64.deb

正しく反映されていた。これは面白い。

マニュアルには、速度やフェイルオーバー対策のために、FUSEを用いたマウントが推奨されています(「GlusterFSでファイルシステムクラスタを簡単作成 : アシアルブログ」より引用)

外部からのマウント2

TCPを使用して接続するには」を参照して以下のようにGlusterFS をマウントした。

$ sudo mount -o mountproto=tcp -t nfs 192.168.1.11:/GlusterVol1 /mnt/GFS/

しかし、これまでsudo として実行してきたけれど、一般ユーザーでアクセスしようとすると権限の問題で操作できない。どうしたものか。これには随分ハマった。結局のところGlusterFS ではなく、nfs などをマウントした場合の知識が欠如していたことに起因したようだ。

以下のように権限を設定したところ問題は解決した。

$ sudo chmod o+w /mnt/GFS/

動作確認

以下はGlusterFS をマウントしている端末から確認したところ。マウントは192.168.1.11 宛。

$ ls /mnt/GFS/
glusterfs_3.3.0-1_amd64.deb  無題のドキュメント 1

以下は192.168.1.12 のファイルを直接覗いたところ。

$ ls /GlusterFS/brick/
glusterfs_3.3.0-1_amd64.deb  無題のドキュメント 1

GlusterFS はファイルが直接確認できるとのこと。

ちなみに、確認した範囲ではこのディレクトリ(192.168.1.12)に対して操作を行なってもミラーリングされている192.168.1.11 にも適切に反映されていた。これは面白い。

→ 次回はベンチマーク

参考文献

  • Technical Note : NFSのインストールと設定方法 1 – Nature’s Linux Tech Portal

コメント