11.3. GFS2 の設定
Red Hat Enterprise Linux クラスタリングで Samba を設定するには、2 つの GFS2 ファイルシステムが必要です。1 つは CTDB 用の小規模なファイルシステム、もう 1 つは Samba 共有用のファイルシステムです。以下の例は、これら 2 つの GFS2 ファイルシステムを作成する方法を示しています。
GFS2 ファイルシステムを作成する前に、最初に LVM 論理ボリュームを各ファイルシステム用に作成してください。LVM 論理ボリュームの作成については、『論理ボリュームマネージャの管理』 を参照してください。この例では、以下の論理ボリュームを使用します。
- Samba 共有でエクスポートされるユーザーデータを保持し、そのデータに合うサイズにする
/dev/csmb_vg/csmb_lv。この例では、100GB サイズの論理ボリュームを作成します。 - 共有の CTDB 状態の情報を格納し、1GB サイズが必要な
/dev/csmb_vg/ctdb_lv。
クラスター化されたボリュームグループ及び論理ボリュームをクラスターの 1 ノードのみに作成します。
論理ボリュームに GFS2 ファイルシステムを作成するには、
mkfs.gfs2 コマンドを実行します。このコマンドは 1 クラスターノードのみで実行します。
/dev/csmb_vg/csmb_lv の論理ボリュームで Samba 共有をホストするファイルシステムを作成するには、次のコマンドを実行します。
mkfs.gfs2 -j3 -p lock_dlm -t csmb:gfs2 /dev/csmb_vg/csmb_lv
[root@clusmb-01 ~]# mkfs.gfs2 -j3 -p lock_dlm -t csmb:gfs2 /dev/csmb_vg/csmb_lv
パラメーターの意味は以下のとおりです。
-j- ファイルシステムで作成するジャーナルの数を指定します。この例では、3 つのノードから成るクラスターを作成します。つまり、ノードごとに 1 つのジャーナルを作成します。
-p- ロッキングプロトコルを指定します。
lock_dlmは GFS2 がノード間通信に使用するロッキングプロトコルです。 -t- ロックテーブル名を cluster_name:fs_name の形式で指定します。この例では、
cluster.confファイルで指定されたクラスター名はcsmbです。ファイルシステム名にはgfs2を使用します。
このコマンドの出力は以下のように表示されます。
この例では、
/dev/csmb_vg/csmb_lv ファイルシステムは全ノードの /mnt/gfs2 にマウントされます。このマウントポイントは、/etc/samba/smb.conf ファイル内で path = オプションを使って share ディレクトリの場所として指定する値と一致する必要があります。詳細は 「Samba の設定」 に記載されています。
/dev/csmb_vg/ctdb_lv 論理ボリュームの CTDB 状態の情報をホストするためにファイルシステムを作成するには、次のコマンドを実行します。
mkfs.gfs2 -j3 -p lock_dlm -t csmb:ctdb_state /dev/csmb_vg/ctdb_lv
[root@clusmb-01 ~]# mkfs.gfs2 -j3 -p lock_dlm -t csmb:ctdb_state /dev/csmb_vg/ctdb_lv
なお、このコマンドで指定するロックテーブル名は
/dev/csmb_vg/csmb_lv 上にファイルシステムを作成した例のロックテーブル名とは異なります。これで、ファイルシステムに使用される様々なデバイス用のロックテーブル名と区別します。
mkfs.gfs2 の出力は以下のように表示されます。
この例では、
/dev/csmb_vg/ctdb_lv ファイルシステムは全ノードの /mnt/ctdb にマウントされます。このマウントポイントは、/etc/sysconfig/ctdb ファイル内で CTDB_RECOVERY_LOCK オプションを使って .ctdb.lock ファイルの場所として指定する値と一致する必要があります。詳細は 「CTDB の設定」 に記載されています。