view FileSystem/GFS2.md @ 2:b6c284fd5ae4

backup 2020-12-16
author autobackup
date Wed, 16 Dec 2020 15:11:16 +0900
parents e12992dca4a0
children
line wrap: on
line source

# GFS2

## GFS2とは

Global File System 2 の略。

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

環境は Fedora 20 。

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

## GFS2 の設定

### install

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

### module があるか確認

```
 $ lsmod | grep gfs2

 $ lsmod | grep dlm
```

### disk format

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

```
 $ fdisk -l
```

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

```
 $ fdisk /dev/sdb 
```

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

```
 n
```

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

```
 t
```

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

```
 w
```

### LVM の設定

Logical Volume Manager の略

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

LVM の、physical volume を作成

```
 # pvcreate /dev/sdb1
 Physical volume "/dev/sdb1" successfully created
```

physical volume の確認

```
 # pvs
```

Volume Group を作成する
fcs という名前の、 lvm2 cluster に対応した Volume Group を作成
- -c : クラスタ対応の許可
- fcs : Volume Group の名前(任意)

```
 # vgcreate -cy fcs /dev/sdb1
 Volume group "fcs" successfully created
```

```
 # 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 の名前(今回はわけないで全体を使う)

```
 # 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 はどこか」を調べる

```
 # 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 の設定ファイルの編集

```
 vim /etc/corosync/corosync.conf
```

以下のように編集する

```
 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 の設定

```
 $ vi /etc/lvm/lvm.conf
```

```
 locking_type = 1
```



```
 locking_type = 3
```

にする


### GFS2 でフォーマット

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

 # mkfs.gfs2 -p lock_dlm -t gfs2:bldsvgfs2 -j 3 /dev/fcs/fcslv


### GFS2 クラスタの起動

```
 service pcsd start
 service corosync start
 service dlm start
 service clvmd start

 mount /dev/fcs/fcslv /media/fcs
```

### 自動起動の設定

```
 systemctl enable pcsd start
```

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

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

```
 $ systemctl enable corosync
 $ systemctl enable dlm
 $ chkconfig clvmd on
```

/etc/fstab を書くのなら
```

 /dev/fcs/fcslv /media/fcs                               gfs2    _netdev,noatime,nodiratime 0 0
```