2017年2月4日土曜日

共有ファイルシステム(基礎)

いくつも実験したい項目はあるけど、今回はその中でも結構ポイントが高い「共有ファイルシステム」だ。
単純に共有ボリュームだけなら、別にiSCSIのLUNを複数のノード(OS)に見せておいて、どちらかでマウント、他のノードはアンマウント、としておけばいい。
HAクラスタ等を組む時の基本だ。

これだと、あくまでそのLUNを使うのは1ノードのみ。複数のノードからのI/Oは出来ない。(やってみれば分かるけど、ファイルシステムが壊れる。)

これを、複数のノードからI/O出来るような仕組みにしてみたい。

実はこれ、単純にNFSやCIFSを使えば解決しちゃうんだけど、NFSやCIFSはお世辞にも速いファイルシステムではないし、ファイルサイズ等の制約も厳しかったりする。

で、実現方法だけど、どうやらOCFS2とGFS2の2つがあるらしい。(商用製品等、他にもたくさんあるのだが…)

で、これを試してみたい。

まずは基本。以下の作業を行う。

  • 2つの仮想マシンを作成し、それぞれUbuntu16.04を導入する。(今回はホスト名gemini/cancerにした。)
  • 仮想ディスクをocfs2.qcow2という名前、10GBのサイズで1つ作成し、gemini/cancerに接続する。(警告が出るが、無視する。)
    -----2017/04/04追記-----
    こちらに書いたが、仮想ディスクをgemini/cancerに接続する時「共有可能」というチェックボックスにチェックを入れておかないと、ちょっと思った挙動を示さないようだ。
    チェックを入れておくこと
    -----2017/04/04追記終了-----
  • geminiから、新しいディスクに対して、partedパーティションの作成と、pv/vg/lvを作成する。(lvは1つでいいだろう。)
    (gemini) $ sudo parted /dev/vdb print
    (gemini) $ sudo parted /dev/vdb mklabel gpt
    (gemini) $ sudo parted /dev/vdb print
    (gemini) $ sudo parted /dev/vdb mkpart primary 0% 100%
    (gemini) $ sudo parted /dev/vdb print
    (gemini) $ sudo parted /dev/vdb set 1 lvm on
    (gemini) $ sudo parted /dev/vdb print
    (gemini) $ sudo pvcreate /dev/vdb1
    (gemini) $ sudo vgcreate vg-ocfs2 /dev/vdb1
    (gemini) $ sudo vgdisplay vg-ocfs2
    (gemini) $ sudo lvcreate -L 5G -n lv-ocfs vg-ocfs2
    (gemini) $ sudo lvdisplay vg-ocfs2/lv-ocfs
  • cancerからディスクの再認識と、lvmの再認識を行う。(ちょっとめんどくさいので、再起動する。)
    (cancer) $ sudo shutdown -r now
    (cancer) $ ls -l /dev/vd*
    (cancer) $ sudo vgdisplay vg-ocfs2
  • もう1つ仮想ディスク(gfs2.qcow2/10GB)を作成し、gemini/cancerに接続する。
  • 先程と同様に、geminiからpartedパーティションの作成と、pv/vg/lvの作成を行う。
    (gemini) $ sudo parted /dev/vdc print
    (gemini) $ sudo parted /dev/vdc mklabel gpt
    (gemini) $ sudo parted /dev/vdc print
    (gemini) $ sudo parted /dev/vdc mkpart primary 0% 100%
    (gemini) $ sudo parted /dev/vdc print
    (gemini) $ sudo parted /dev/vdc set 1 lvm on
    (gemini) $ sudo parted /dev/vdc print
    (gemini) $ sudo pvcreate /dev/vdc1
    (gemini) $ sudo vgcreate vg-gfs2 /dev/vdc1
    (gemini) $ sudo vgdisplay vg-gfs2
    (gemini) $ sudo lvcreate -L 5G -n lv-gfs vg-gfs2
    (gemini) $ sudo lvdisplay vg-gfs2/lv-gfs
  • cancerからディスクの再認識と、lvmの再認識を行う。(こちらもめんどくさいので再起動しちゃおう)
    (cancer) $ sudo shutdown -r now
    (cancer) $ ls -l /dev/vd*
    (cancer) $ sudo vgdisplay vg-gfs2

とりあえず、ここまで実施しておいた。

次回、ocfs2の環境を作ってみたい。

0 件のコメント:

コメントを投稿