glusterfs异地备份--GeoReplication
注意:本篇命令比较生僻,务必熟悉在官方文档中查阅相关命令
上草图~
实验环境:
1)node1、node2组成的卷v1是本地存储
2)node5上的卷v_geo是异地存储(不建立peer关系即可)
3)卷v1是master,卷v_geo是slave
注意:异地卷v_geo空间大小至少要等于本地卷v1大小
1)本地卷v1分布式两节点,有效空间6G
2)异地卷v_geo空间10G
实验需求:
把本地卷v1的内容备份到异地卷v_geo中
1、在node5上,创建卷v_geo(切记:node5不要和其他节点创建peer关系)
分区已存在:/dev/vda3
卷组vg已存在:vg_bricks
卷组vg重命名
# vgrename vg_bricks vg0
创建池pool
# lvcreate -L 20G -T vg0/thin_pool
创建精简lv
# lvcreate -V 10G -n lv1 -T vg0/thin_pool
格式化精简lv
# mkfs.xfs /dev/vg0/lv1
创建挂载点
# mkdir /xx
# vim /etc/fstab
/dev/vg0/lv1 /xx xfs defaults 0 0
# mount -a
挂载点中创建目录
# mkdir /xx/data
安装/启动glusterfs
# yum -y install glusterfs
# systemctl start glusterd
# systemctl enable glusterd
创建卷v_geo
# gluster volume create v_geo node5:/xx/data
# gluster volume start v_geo
# gluster volume info v_geo
Volume Name: v_geo
Type: Distribute
Status: Started
Number of Bricks: 1
Brick1: node5:/xx/data
performance.readdir-ahead: on
2、在node5上,创建管理备份的用户、组
# groupadd group1
# useradd -g group1 bob
# echo redhat |passwd --stdin bob
3、在node5上,创建备份目录
# mkdir /var/root
# chmod 711 /var/root
4、在node5上,修改配置文件
# vim /etc/glusterfs/glusterd.vol
# option base-port 49152
增加以下几行:
option mountbroker-root /var/root #指定备份目录
option mountbroker-geo-replication.bob v_geo #指定管理备份的用户、卷
option geo-replication-log-group group1 #指定管理备份用户的组
option rpc-auth-allow-insecure on
end-volume
# systemctl restart glusterd
3、在node1上,配置免密登录node5
创建密钥对
# ssh-keygen -N ""
拷贝公钥id_rsa.pub给node5
# ssh-copy-id bob@node5 #bob密码:redhat
测试免密登录
# ssh bob@node5
# ssh [email protected]
4、在node1上,生成glusterfs类型的证书/密钥
# gluster system:: execute gsec_create
Common secret pub file present at /var/lib/glusterd/geo-replication/common_secret.pem.pub
5、在node1上,建立卷v1和卷v_geo的复制关系
# gluster volume geo-replication v1 bob@node5::v_geo create push-pem
#复制卷v1,使用bob用户登录node5,复制为v_geo
Creating geo-replication session between v1 & bob@node5::v_geo has been successful
6、在node5上,设置主辅关系(只能在slave上设置)
# /usr/libexec/glusterfs/set_geo_rep_pem_keys.sh bob v1 v_geo
Successfully copied file.
Command executed successfully.
7、在client中创建文件
# mount node1:/v1
# touch /mnt/aa{1..10}
node1中查看:
# ls /xx/data
aa1 aa3 aa4 aa8
node2中查看
# ls /yy/data
aa10 aa2 aa5 aa6 aa7 aa9
8、在node1上开启复制
# gluster volume geo-replication v1 bob@node5::v_geo start
Starting geo-replication session between v1 & bob@node5::v_geo has been successful
查看复制状态
# gluster volume geo-replication v1 bob@node5::v_geo status
MASTER NODE MASTER VOL MASTER BRICK SLAVE USER SLAVE SLAVE NODE STATUS CRAWL STATUS
----------------------------------------------------------------------------------------------------------------------------------------------
node1.domain1.rhce.cc v1 /xx/data bob bob@node5::v_geo node5 Active Changelog Crawl
node2.domain1.rhce.cc v1 /yy/data bob bob@node5::v_geo node5 Active Changelog Crawl
复制状态为:Active 表示复制成功
在node5上查看
# ls /xx/data
aa1 aa10 aa2 aa3 aa4 aa5 aa6 aa7 aa8 aa9
停止复制
# gluster volume geo-replication v1 bob@node5::v_geo stop
删除复制
# gluster volume geo-replication v1 bob@node5::v_geo delete