8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GlusterFS のスナップショットを使う

Posted at

LVM シンプロビジョニングボリュームに GlusterFS ブリックを作るとスナップショットが使えるらしいのでやってみました。

LVM シンプロビジョニングボリュームについては以前下記の投稿で書きました。

インストール

glusterfs-server は下記の記事のように g1-g4 の4台にインストールされているものとします。マウントするために glusterfs-fusr をインストールしたサーバ cl も1台設けています。

記事の通り CentOS 7 の環境を Vagrant で複数立ち上げて試しています。使用した GlusterFS のバージョンは 3.7.3 です。

LVM シンプロビジョニングボリューム作成

追加ディスクに LVM 用にパーティションを作成します。

g1-g4
parted -s -a optimal /dev/sdb mklabel msdos -- mkpart primary 1 -1 set 1 lvm on

ボリュームグループを作成します。

g1-g4
pvcreate /dev/sdb1
vgcreate vg0 /dev/sdb1

シンプールを作成します。

g1-g4
lvcreate --thin -L 10G vg0/thin

シンプロビジョニングボリュームを作成します。

g1-g4
lvcreate --thin -V 10G -n data vg0/thin

ファイルシステムを作成します。

g1-g4
mkfs.xfs /dev/vg0/data

マウントします。

g1-g4
mkdir -p /glfs/vols
cat <<EOS>>/etc/fstab
/dev/vg0/data /glfs/vols xfs defaults 0 0
EOS
mount /glfs/vols

GlusterFS を開始してボリューム作成

GlusterFS のサービスを開始します。

g1-g4
systemctl enable glusterd.service
systemctl start  glusterd.service
systemctl status glusterd.service

ノード4台からなるストレージプールを作成します。

g1
gluster peer probe g2
gluster peer probe g3
gluster peer probe g4

ボリュームを作成します。

g1
gluster volume create data replica 2 \
  g1:/glfs/vols/data \
  g2:/glfs/vols/data \
  g3:/glfs/vols/data \
  g4:/glfs/vols/data

ボリュームを開始します。

g1
gluster volume start data

スナップショットの操作

クライアントからマウントします。

cl
mkdir -p /glfs/data
mount -t glusterfs g1:/data /glfs/data

適当に書き込みます。

cl
mkdir /glfs/data/xxx
echo 1 > /glfs/data/1.txt

適当なノード(例えば g1)でスナップショットを作ります。
デフォではスナップショット名の後ろに作成時のタイムスタンプが追加されます。
とりあえず試すだけなら名前が長いと不便なので no-timestamp を指定してタイムスタンプが付かないようにします。

g1
gluster snapshot create data-01 data no-timestamp

スナップショットの情報や状態を見ることができます。

g1
gluster snapshot list
gluster snapshot info data-01
gluster snapshot status data-01

クライアントから更にいろいろ書き込みます。

cl
echo 5 > /glfs/data/5.txt
echo 6 > /glfs/data/6.txt

スナップショットをアクティブ化します。

g1
gluster snapshot activate data-01

アクティブ化するとクライアントからスナップショットをマウントできます。

cl
mkdir /glfs/data-01
mount -t glusterfs g1:/snaps/data-01/data /glfs/data-01

中身を確認してみます。通常のボリュームには 5.txt や 6.txt がありますが・・・

cl
ll /glfs/data
total 2
-rw-r--r-- 1 root root  2 Aug 23 14:24 1.txt
-rw-r--r-- 1 root root  2 Aug 23 14:30 5.txt
-rw-r--r-- 1 root root  2 Aug 23 14:30 6.txt
drwxr-xr-x 2 root root 12 Aug 23 14:24 xxx

スナップショットには 5.txt や 6.txt がありません。

cl
ll /glfs/data-01
total 1
-rw-r--r-- 1 root root  2 Aug 23 14:24 1.txt
drwxr-xr-x 2 root root 12 Aug 23 14:24 xxx

スナップショットをアンマウントします。

cl
umount /glfs/data-01

ボリュームを停止します。

g1
gluster volume stop data

スナップショットをリストアします。

g1
gluster snapshot restore data-01

ボリュームを開始します。

g1
gluster volume start data

クライアントから見てみると、スナップショットの時点に復元されていることが判ります。

cl
ll /glfs/data/
total 1
-rw-r--r-- 1 root root  2 Aug 23 14:24 1.txt
drwxr-xr-x 2 root root 12 Aug 23 14:24 xxx

ソフトリミットで古いスナップショットを自動削除

スナップショットンにソフトリミットを設定すると、スナップショットが一定数以上になると自動的に古いものから削除されるようになります。

g1
gluster snapshot config snap-max-soft-limit 80
gluster snapshot config auto-delete enable
gluster snapshot config data snap-max-hard-limit 10

設定を確認します。

g1
gluster snapshot config
Snapshot System Configuration:
snap-max-hard-limit : 256
snap-max-soft-limit : 80%
auto-delete : enable
activate-on-create : disable

Snapshot Volume Configuration:

Volume : data
snap-max-hard-limit : 10
Effective snap-max-hard-limit : 10
Effective snap-max-soft-limit : 8 (80%)

この設定は次のような意味です。

  • snap-max-hard-limit : 256
    • システムデフォルトのハードリミットは 256 個
    • これを超えてスナップショットを作成することはできない
    • ボリュームごとの設定で上書きできる
  • snap-max-soft-limit : 80%
    • ソフトリミットはハードリミットの 80%
    • これを超えたときの動作は auto-delete による
    • ボリュームごとの設定で上書きできない
  • auto-delete : enable
    • ソフトリミットに達したときの動作
    • enable なら自動的に古いスナップショットを削除
    • disable なら警告のみ
    • ボリュームごとの設定で上書きできない
  • snap-max-hard-limit : 10
    • data ボリュームのハードリミットは 10 個

スナップショットをたくさん作ってみます。

g1
gluster snapshot create data-snap data
gluster snapshot create data-snap data
gluster snapshot create data-snap data
gluster snapshot create data-snap data
gluster snapshot create data-snap data
gluster snapshot create data-snap data
gluster snapshot create data-snap data
gluster snapshot create data-snap data

8個目までは普通に作成できます。

g1
gluster snapshot list
data-snap_GMT-2015.08.23-05.56.34
data-snap_GMT-2015.08.23-05.56.48
data-snap_GMT-2015.08.23-05.56.55
data-snap_GMT-2015.08.23-05.57.03
data-snap_GMT-2015.08.23-05.57.11
data-snap_GMT-2015.08.23-05.57.17
data-snap_GMT-2015.08.23-05.57.22
data-snap_GMT-2015.08.23-05.57.28

9個目を作ってみます。

g1
gluster snapshot create data-snap data
snapshot create: success: Snap data-snap_GMT-2015.08.23-05.58.27 created successfully

一番古いスナップショットが自動的に削除されます。

g1
gluster snapshot list
data-snap_GMT-2015.08.23-05.56.48
data-snap_GMT-2015.08.23-05.56.55
data-snap_GMT-2015.08.23-05.57.03
data-snap_GMT-2015.08.23-05.57.11
data-snap_GMT-2015.08.23-05.57.17
data-snap_GMT-2015.08.23-05.57.22
data-snap_GMT-2015.08.23-05.57.28
data-snap_GMT-2015.08.23-05.58.27
8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?