RH236GlusterFS-管理快照
RHCSA专栏:戏说 RHCSA 认证
RHCE专栏:戏说 RHCE 认证
此文章(第十一章 GlusterFS-管理快照)收录在RHCA专栏:RHCA 回忆录
注意:
1.快照必须基于thin pool。
2.对一个volume做快照,实际也就是对brick做快照。
前提(必要时)
# gluster volume set vol1 server.allow-insecure on
#允许volume能被非安全端口的访问
# vim /etc/glusterfs/glusterd.vol
option rpc-auth-allow-insecure on
#在所有节点,允许rpc非安全验证
# systemctl restart glusterd
#在所有节点重启glusterd服务
创建快照
# gluster volume geo-replication vol1 node5::vol1-slave stop
注意:文档上说如果有做geo-replication,必须先把geo-replication停掉,实际上,必须将geo-replication删掉才可以继续做快照
# gluster snapshot create vol1-snapshot vol1
为vol1这个volume创建一个快照,叫vol1-snapshot,默认会为这个快照带一个时间戳,如果不想带,可在命令后面加上no-timestamp
查看快照
# gluster snapshot list
#列出所有快照
# gluster snapshot info SNAP-NAME
#查看快照的详细信息
# gluster snapshot status SNAP-NAME
#查看状态
对快照进行限制
软限制,警告
硬限制,针对一个volume最多能做多少个快照
自动删除,当快照个数,达到软限制,自动删除最老的快照
# gluster snapshot config
查看限制
# gluster snapshot config vol1 snap-max-hard-limit 100
对vol1这个volume作限制,硬限制为100
# gluster snapshot config snap-max-soft-limit 50
设置软限制为50%,不能对单个volume作软限制,只能设默认值
# gluster snapshot config auto-delete enable
开启自动删除,也只能设全局默认
激活快照
# gluster snapshot activate vol1-snap
激活快照,只有被激活的快照,才能被访问。
# gluster snapshot deactivate vol1-snap
不激活快照
访问快照
# mount -t glusterfs node1:/snaps/vol1-snap/vol1 /mnt/snap
将快照挂载,但只是只读的,这时,就可在挂载目录查看快照
恢复快照
# gluster volume stop vol1
恢复快照前,必须先把volume停掉
# gluster snapshot restore vol1-snap
恢复快照
# gluster volume heal vol1 full
当快照恢复后,volume也已经启动,触发self-heal
# gluster volume start vol1
还原成功后,启动volume
# gluster snapshot list
发现快照还原之后就没有了,通过查看LVM卷也能发现LVM的快照被删除了。
# gluster volume geo-replication vol1 node5::vol1-slave start
启动geo-replication
调度快照
也就是做一个创建快照的计划任务
# gluster volume set all cluster.enable-shared-storage enable
启用共享卷,所谓共享卷,也就是在集群中的所有主机都能访问,当这个选项启用后,会自动创建一个叫gluster_shared_storage的卷,并挂载到所有节点的/var/run/gluster/shared_storage目录下
# snap_scheduler.py init
初始化调度功能
# snap_scheduler.py enable
开启调度功能
# snap_scheduler.py status
查看状态
# snap_scheduler.py add "job1" "* * 1 * *" "vol1"
为vol1这个volume创建一个调度计划,名字叫job1,每月的1号做一次快照,* * * * *,分、时、日、月、周,这里计划任务就是在调用cron在做计划任务
# snap_scheduler.py edit "job1" "* * 2 * *" "vol1"
编辑计划任务
# snap_scheduler.py list
查看计划任务
# snap_scheduler.py delete "job1"
删除job1这个计划任务
课本练习
[root@workstation ~]# lab snapshot-manage setup
1. 创建snapvol卷的新快照,命名为safetysnap。
[root@servera ~]# gluster snapshot create safetysnap snapvol no-timestamp
snapshot create: success: Snap safetysnap created successfully
[root@servera ~]# gluster snapshot info safetysnap
Snapshot : safetysnap
Snap UUID : b7ec29ba-a425-4e33-ab88-befa28161642
Created : 2020-12-11 09:13:40
Snap Volumes:
Snap Volume Name : 55243a7eec904a17b384630808975a1d
Origin Volume name : snapvol
Snaps taken for snapvol : 2
Snaps available for snapvol : 254
Status : Stopped
2. 为snapvol卷启用可用户服务的快照。
原始快照和safetysnap快照都应该可以通过这种方式访问。
[root@workstation ~]# umount /mnt/snapvol
[root@servera ~]# gluster volume set snapvol features.uss enable
volume set: success
[root@workstation ~]# mount /mnt/snapvol
激活原始快照和safetysnap快照。在可以直接挂载快照或使用用户服务的快照挂载快照之前,需要先激活快照。
[root@servera ~]# gluster snapshot activate original
Snapshot activate: original: Snap activated successfully
[root@servera ~]# gluster snapshot activate safetysnap
Snapshot activate: safetysnap: Snap activated successfully
3. 按要求挂载。
[root@workstation ~]# mkdir /mnt/original
[root@workstation ~]# echo "servera:/snaps/original/snapvol /mnt/original glusterfs _netdev 0 0" >> /etc/fstab
[root@workstation ~]# mount -a
[root@workstation ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 10G 3.0G 7.0G 30% /
devtmpfs 902M 0 902M 0% /dev
tmpfs 920M 84K 920M 1% /dev/shm
tmpfs 920M 17M 904M 2% /run
tmpfs 920M 0 920M 0% /sys/fs/cgroup
tmpfs 184M 16K 184M 1% /run/user/42
tmpfs 184M 0 184M 0% /run/user/0
servera:/snapvol 2.0G 33M 2.0G 2% /mnt/snapvol
servera:/snaps/original/snapvol 2.0G 33M 2.0G 2% /mnt/original
[root@workstation ~]# cat /mnt/original/file00
This file is original
4. 将文件file02、file04、file08和file16从原始快照恢复到snapvol卷。
[root@workstation ~]# for FILE in /mnt/original/file{02,04,08,16}
> do
> cp ${FILE} /mnt/snapvol/
> done
cp: overwrite ‘/mnt/snapvol/file02’? y
cp: overwrite ‘/mnt/snapvol/file04’? y
cp: overwrite ‘/mnt/snapvol/file08’? y
cp: overwrite ‘/mnt/snapvol/file16’? y
5. 脚本评分。
[root@workstation ~]# lab snapshot-manage grade
课本练习
[root@workstation ~]# lab snapshot-schedule setup
1. 按照指定配置快照限制。
[root@servera ~]# gluster snapshot config snap-max-hard-limit 10 snap-max-soft-limit 50
Changing snapshot-max-hard-limit will limit the creation of new snapshots if they exceed the new snapshot-max-hard-limit.
If Auto-delete is enabled, snap-max-soft-limit will trigger deletion of oldest snapshot, on the creation of new snapshot, when the snap-max-soft-limit is reached.
Do you want to continue? (y/n) y
snapshot config: snap-max-hard-limit & snap-max-soft-limit for system set successfully
当超过snap-max-soft-limit时,启用自动删除快照
[root@servera ~]# gluster snapshot config auto-delete enable
snapshot config: auto-delete successfully set
启用新快照的自动激活
[root@servera ~]# gluster snapshot config activate-on-create enable
snapshot config: activate-on-create successfully set
2. 通过启用共享存储和允许crond访问标记为fusefs_t的文件,准备用于快照调度的servera和serverb。
[root@servera ~]# gluster volume set all cluster.enable-shared-storage enable
volume set: success
在servera和serverb上,通过持久地启用cron_system_cronjob_use_shares SELinux布尔值,允许crond访问标记为fusefs_t的文件
# setsebool -P cron_system_cronjob_use_shares 1
3. 在servera和serverb上初始化并启用和设置快照调度程序。
然后创建一个名为serenity的新调度程序,该调度程序每两分钟获取snapvol卷的快照
[root@servera ~]# snap_scheduler.py init
snap_scheduler: Successfully initialised snapshot scheduler for this node
[root@serverb ~]# snap_scheduler.py init
snap_scheduler: Successfully initialised snapshot scheduler for this node
[root@servera ~]# snap_scheduler.py enable
snap_scheduler: Snapshot scheduling is enabled
[root@servera ~]# snap_scheduler.py add serenity "*/2 * * * *" snapvol
snap_scheduler: Successfully added snapshot schedule
4. 验证快照现在以两分钟的间隔安排。
[root@servera ~]# snap_scheduler.py list
JOB_NAME SCHEDULE OPERATION VOLUME NAME
--------------------------------------------------------------------
serenity */2 * * * * Snapshot Create snapvol
[root@servera ~]# gluster snapshot list
original
safetysnap
Scheduled-serenity-snapvol_GMT-2020.12.11-13.56.01
[root@servera ~]# gluster snapshot list
original
safetysnap
Scheduled-serenity-snapvol_GMT-2020.12.11-13.56.01
Scheduled-serenity-snapvol_GMT-2020.12.11-13.58.01
5. 脚本评分。
[root@workstation ~]# lab snapshot-schedule grade
总结
以上就是【金鱼哥】对 GlusterFS管理快照的分享 。希望能对看到此文章的小伙伴有所帮助。
如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!