GFS2

GFS2

# GFS2

# GFS2とは

Global File System 2 の略。

サーバ同士で同一のディスクを共有し利用することができる。

環境は Fedora 20 。

linux kernel 3.17 あたりでは、現時点ではできない

# GFS2 の設定

# install

1
2
yum install kernel-modules-extra
yum install gfs2-utils lvm2-cluster corosync dlm pacemaker

# module があるか確認

1
$ lsmod | grep gfs2
1
$ lsmod | grep dlm

# disk format

接続されているディスクの一覧

1
$ fdisk -l

ディスクのフォーマット sample

1
$ fdisk /dev/sdb 

新しくパーティションを作成する

1
n

フォーマットタイプ の入力 16進数で入力する lvm を使用するので 8e を指定

1
t

パーティションの確定と書き込み w で enter をしてしまうとディスクの中身が消えてしまうので注意

1
w

# LVM の設定

Logical Volume Manager の略

パーティションを切り分けたり合成できる

LVM の、physical volume を作成

1
2
# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created

physical volume の確認

1
# pvs

Volume Group を作成する fcs という名前の、 lvm2 cluster に対応した Volume Group を作成

  • -c : クラスタ対応の許可
  • fcs : Volume Group の名前(任意)
1
2
# vgcreate -cy fcs /dev/sdb1
Volume group "fcs" successfully created
1
2
3
4
# vgs
VG             #PV #LV #SN Attr   VSize  VFree
fcs              1   0   0 wz--n-  1.95t 1.95t
fedora_host   1   2   0 wz--n- 29.31g

Logical Volume (LV) を作成する。全体の容量を指定

  • -L : LVの容量
  • -n : LV の名前
  • fcs : 切り分ける VG の名前(今回はわけないで全体を使う)
1
2
3
4
5
6
7
# lvcreate -L 1.95t -n fcslv fcs
  Rounding up size to full physical extent 1.95 TiB
  Logical volume "fcs_lv" created
# vgs
  VG             #PV #LV #SN Attr   VSize  VFree
  fcs              1   1   0 wz--n-  1.95t 3.20g
  fedora_host   1   2   0 wz--n- 29.31g    0

「状態が ACTIVE か」「path はどこか」を調べる

1
2
3
4
# lvscan 
 ACTIVE            '/dev/fedora_host/swap' [2.98 GiB] inherit
 ACTIVE            '/dev/fedora_host/root' [26.33 GiB] inherit
 ACTIVE            '/dev/fcs/fcslv' [1.95 TiB] inherit

/dev/fcslv を使用することができる

# corosync の設定

corosync の設定ファイルの編集

1
vim /etc/corosync/corosync.conf

以下のように編集する

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
totem {
       version: 2
       secauth: off
       cluster_name: bldsvgfs2 // gfs2 のフォーマットに使用する
}

nodelist {
       node {
               ring0_addr: 10.0.0.9
               nodeid: 1
       }
       node {
               ring0_addr: 10.0.0.10
               nodeid: 2
       }
       node {
               ring0_addr: 10.0.0.11
               nodeid: 3
       }
}
quorum {
        provider: corosync_votequorum
#      two_node: 1
}

# lvm の設定

1
$ vi /etc/lvm/lvm.conf
1
locking_type = 1

1
locking_type = 3

にする

# GFS2 でフォーマット

  • -p lock_dlm : lock manager の指定。今回は dlm を使用する
  • -t fileformat:clustername : フォーマットと corosync で設定したクラスタの名前を指定
  • -j 3 : journaling 数の指定。GFS2 に接続し、ディスクを使用するホストの数を指定する
1
# mkfs.gfs2 -p lock_dlm -t gfs2:bldsvgfs2 -j 3 /dev/fcs/fcslv

# GFS2 クラスタの起動

1
2
3
4
service pcsd start
service corosync start
service dlm start
service clvmd start
1
mount /dev/fcs/fcslv /media/fcs

# 自動起動の設定

1
systemctl enable pcsd start

まだ corosync 以下は順番に実行する必要があると考えているため、 pcsd 以外のプロセスは自動起動に設定していない

自動起動の設定はこんな感じ

1
2
3
$ systemctl enable corosync
$ systemctl enable dlm
$ chkconfig clvmd on

/etc/fstab を書くのなら

1
/dev/fcs/fcslv /media/fcs                               gfs2    _netdev,noatime,nodiratime 0 0
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Built with Hugo
Theme Stack designed by Jimmy