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