Centos7+gluster安装部署其他介绍
一、环境介绍
| 主机名 | Ip | 磁盘 | Brick路径 |
| glusternode1 | 192.168.10.1 | /dev/xvdb1 | /data/brick1 |
| glusternode2 | 192.168.10.2 | /dev/xvdb1 | /data/brick1 |
| glusternode3 | 192.168.10.3 | /dev/xvdb1 | /data/brick1 |
| glusternode4 | 192.168.10.4 | /dev/xvdb1 | /data/brick1 |
| glusternode5 | 192.168.10.5 | /dev/xvdb1 | /data/brick1 |
| glusternode6 | 192.168.10.6 | /dev/xvdb1 | /data/brick1 |
| glusternode7 | 192.168.10.7 | /dev/xvdb1 | /data/brick1 |
| glusternode8 | 192.168.10.8 | /dev/xvdb1 | /data/brick1 |
二、软件安装
所有节点执行
#yum install centos-release-gluster
# mkfs.xfs -i size=512 /dev/xvdb1
# mkdir -p /data/brick1
# vi /etc/fstab
/dev/xvdb1 /data/brick1 xfs defaults 0 0
# mount -a && mount
安装gluster
# yum --enablerepo=centos-gluster*-test install glusterfs-server
# systemctl enable glusterd
# systemctl start glusterd
# systemctl status glusterd
glusternode1执行
配置gluster
[root@glusternode1 ~]# cat /etc/hosts (每个节点必须一致)
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.10.1 glusternode1
192.168.10.2 glusternode2
192.168.10.3 glusternode3
192.168.10.4 glusternode4
192.168.10.5 glusternode5
192.168.10.6 glusternode6
192.168.10.7 glusternode7
192.168.10.8 glusternode8
#gluster peer probe glusternode1
#gluster peer probe glusternode2
#gluster peer probe glusternode3
#gluster peer probe glusternode4
#gluster peer probe glusternode5
#gluster peer probe glusternode6
#gluster peer probe glusternode7
#gluster peer probe glusternode8
返回成功后,查看集群状态
[root@glusternode1 ~]# gluster peer status
Number of Peers: 7
Hostname: glusternode2
Uuid: 74611406-7eed-4428-9fed-56eccda095a4
State: Peer in Cluster (Connected)
Hostname: glusternode3
Uuid: deae6730-b32f-404d-9dda-1622dcb82216
State: Peer in Cluster (Connected)
Hostname: glusternode4
Uuid: b0c0c8b6-be47-40db-9a2a-14ffb809b287
State: Peer in Cluster (Connected)
Hostname: glusternode5
Uuid: 7b469041-fad9-44ba-8a73-718758533345
State: Peer in Cluster (Connected)
Hostname: glusternode6
Uuid: 9ca44f9e-e28e-4992-b853-49adff6f70d1
State: Peer in Cluster (Connected)
Hostname: glusternode7
Uuid: 72f22546-aea6-4192-a43b-8d9d31ea93bf
State: Peer in Cluster (Connected)
Hostname: glusternode8
Uuid: 1cd41fd4-39a0-43e6-a842-6379db743ff9
State: Peer in Cluster (Connected)
三、配置卷
1、分布式卷
分布卷可以将某个文件随机的存储在卷内的一个brick内,通常用于扩展存储能力,不支持数据的冗余。除非底层的brick使用RAID等外部的冗余措施。
选择3个主机(glusternode6-8)节点做分布式卷的测试
[root@glusternode6 ~]# mkdir /data/brick1/gv0
[root@glusternode7 ~]# mkdir /data/brick1/gv0
[root@glusternode8 ~]# mkdir /data/brick1/gv0
[root@glusternode6 ~]# gluster volume create fenbu-gv0 glusternode6:/data/brick1/gv0/ glusternode7:/data/brick1/gv0/ glusternode8:/data/brick1/gv0/
volume create: fenbu-gv0: success: please start the volume to access data
[root@glusternode6 ~]# gluster volume start fenbu-gv0
volume start: fenbu-gv0: success测试 客户端挂载fenbu-gv0 写入4个文件查看文件分布
[root@glusternode1 ~]# mount -t glusterfs glusternode6:/fenbu-gv0 /gv0
[root@glusternode1 ~]# cd /gv0
[root@glusternode1 gv0]# ll
total 0
[root@glusternode1 gv0]# touch a
[root@glusternode1 gv0]# touch b
[root@glusternode1 gv0]# touch c
[root@glusternode1 gv0]# touch d
查看服务端文件分别
[root@glusternode6 ~]# ll /data/brick1/gv0/
total 0
-rw-r--r-- 2 root root 0 Dec 5 15:29 d
[root@glusternode7 ~]# ll /data/brick1/gv0/
total 0
-rw-r--r-- 2 root root 0 Dec 5 15:29 a
-rw-r--r-- 2 root root 0 Dec 5 15:29 c
[root@glusternode8 ~]# ll /data/brick1/gv0/
total 0
-rw-r--r-- 2 root root 0 Dec 5 15:29 b
2、复制卷
复本卷在创建时可指定复本的数量,复本在存储时会在卷的不同brick上,因此有几个复本就必须提供至少多个brick
选择3个主机(glusternode6-8)节点做复制卷(复制3份)的测试
[root@glusternode6 ~]# mkdir /data/brick1/gv1
[root@glusternode7 ~]# mkdir /data/brick1/gv1
[root@glusternode8 ~]# mkdir /data/brick1/gv1
[root@glusternode6 ~]# gluster volume create replica 3 3copy-gv1 glusternode6:/data/brick1/gv1/ glusternode7:/data/brick1/gv1/ glusternode8:/data/brick1/gv1/
volume create: 3copy-gv1: success: please start the volume to access data
[root@glusternode6 ~]# gluster volume start 3copy-gv1
volume start: 3copy-gv1: success客户端挂载测试
[root@glusternode1 ~]# mount -t glusterfs glusternode6:/3copy-gv1 /gv1
[root@glusternode1 ~]# cd /gv1
[root@glusternode1 gv1]# touch ceshi服务端查看
[root@glusternode8 ~]# ll /data/brick1/gv1/
total 0
-rw-r--r-- 2 root root 0 Dec 5 15:39 ceshi
[root@glusternode7 ~]# ll /data/brick1/gv1/
total 0
-rw-r--r-- 2 root root 0 Dec 5 15:39 ceshi
[root@glusternode6 gv1]# ll /data/brick1/gv1/
total 0
-rw-r--r-- 2 root root 0 Dec 5 15:39 ceshi
3、条带卷
分片卷将单个文件分成小块(块大小支持配置,默认为128K),然后将小块存储在不同的brick上,以提升文件的访问性能。 切片个数必须等于brick个数
下面举例文件切片存放在3个brick上。
选择3个主机(glusternode6-8)节点做条带卷(切片存放在3个brick上)的测试
[root@glusternode6 ~]# mkdir /data/brick1/gv2
[root@glusternode7 ~]# mkdir /data/brick1/gv2
[root@glusternode8 ~]# mkdir /data/brick1/gv2
[root@glusternode6 gv1]# gluster volume create 3stripe-gv2 stripe 3 glusternode6:/data/brick1/gv2/ glusternode7:/data/brick1/gv2/ glusternode8:/data/brick1/gv2/
volume create: 3stripe-gv2: success: please start the volume to access data
[root@glusternode6 gv1]# gluster volume start 3stripe-gv2
volume start: 3stripe-gv2: success客户端挂载测试
[root@glusternode1 ~]# mount -t glusterfs glusternode6:/3stripe-gv2 /gv2
[root@glusternode1 ~]# cd /gv2
[root@glusternode1 gv2]# dd if=/dev/zero of=test bs=3M count=1
[root@glusternode1 gv2]# du -sh *
3.0M test
[root@glustern服务端查看
[root@glusternode6 ~]# du -sh /data/brick1/gv2/test
1.0M /data/brick1/gv2/test
[root@glusternode7 ~]# du -sh /data/brick1/gv2/test
1.0M /data/brick1/gv2/test
[root@glusternode8 ~]# du -sh /data/brick1/gv2/test
1.0M /data/brick1/gv2/test3M 文件分片后每个brick存放1M
4、分布式复制卷
此类型卷是基本复本卷的扩展,可以指定若干brick组成一个复本卷,另外若干brick组成另个复本卷。单个文件在复本卷内数据保持复制,不同文件在不同复本卷之间进行分布。
选择4个主机(glusternode1-4)节点做测试,前2个brick为文件1的2个复制,后2个brick为文件2的2个复制。先两两复制,在两两分布。
[root@glusternode1 ~]# mkdir /data/brick1/gv3
[root@glusternode2 ~]# mkdir /data/brick1/gv3
[root@glusternode3 ~]# mkdir /data/brick1/gv3
[root@glusternode4 ~]# mkdir /data/brick1/gv3
[root@glusternode1 ~]# gluster volume create 2copy-2fenbu-gv3 replica 2 glusternode1:/data/brick1/gv3/ glusternode2:/data/brick1/gv3/ glusternode3:/data/brick1/gv3/ glusternode4:/data/brick1/gv3/
Replica 2 volumes are prone to split-brain. Use Arbiter or Replica 3 to avoid this. See: http://docs.gluster.org/en/latest/Administrator%20Guide/Split%20brain%20and%20ways%20to%20deal%20with%20it/.
Do you still want to continue?
(y/n) y
volume create: 2copy-2fenbu-gv3: success: please start the volume to access data
[root@glusternode1 ~]# gluster volume start 2copy-2fenbu-gv3
volume start: 2copy-2fenbu-gv3: success
[root@glusternode1 ~]# gluster volume info 2copy-2fenbu-gv3
Volume Name: 2copy-2fenbu-gv3
Type: Distributed-Replicate
Volume ID: eca5be0c-600e-40e7-901c-a79443617c4a
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: glusternode1:/data/brick1/gv3
Brick2: glusternode2:/data/brick1/gv3
Brick3: glusternode3:/data/brick1/gv3
Brick4: glusternode4:/data/brick1/gv3
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off
客户端挂载测试
[root@glusternode1 ~]# mount -t glusterfs glusternode1:/2copy-2fenbu-gv3 /gv3
[root@glusternode1 ~]# cd /gv3
[root@glusternode1 gv3]# touch a (b c d e f g h)
预计:node1 下有4文件 node2下有node1的4复制文件. node3有4个文件,node4下有node3的4个复制文件。服务端查看
[root@glusternode1 ~]# ls /data/brick1/gv3/
a b c e
[root@glusternode2 ~]# ls /data/brick1/gv3/
a b c e
[root@glusternode3 ~]# ls /data/brick1/gv3/
d f g h
[root@glusternode4 ~]# ls /data/brick1/gv3/
d f g h
5、分布式条带卷
类似于分布式复本卷 若创建的卷的节点提供的bricks个数为stripe个数N倍时,将创建此类型的卷
选择4个主机(glusternode1-4)节点做测试,前2个brick为文件1的2个分片,后2个brick为文件2的2个分片。先两两分片,在两两分布。
[root@glusternode1 ~]# mkdir /data/brick1/gv4
[root@glusternode2 ~]# mkdir /data/brick1/gv4
[root@glusternode3 ~]# mkdir /data/brick1/gv4
[root@glusternode4 ~]# mkdir /data/brick1/gv4
[root@glusternode1 ~]# gluster volume create 2stripe-2fenbu-gv4 stripe 2 glusternode1:/data/brick1/gv4/ glusternode2:/data/brick1/gv4/ glusternode3:/data/brick1/gv4/ glusternode4:/data/brick1/gv4
volume create: 2stripe-2fenbu-gv4: success: please start the volume to access data
[root@glusternode1 ~]# gluster volume start 2stripe-2fenbu-gv4
volume start: 2stripe-2fenbu-gv4: success
[root@glusternode1 ~]# gluster volume info 2stripe-2fenbu-gv4
Volume Name: 2stripe-2fenbu-gv4
Type: Distributed-Stripe
Volume ID: 8cec373a-d1b0-4fb3-9685-32820ce35428
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: glusternode1:/data/brick1/gv4
Brick2: glusternode2:/data/brick1/gv4
Brick3: glusternode3:/data/brick1/gv4
Brick4: glusternode4:/data/brick1/gv4
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
客户端挂载测试
[root@glusternode1 ~]# mount -t glusterfs glusternode1:/2stripe-2fenbu-gv4 /gv4
[root@glusternode1 ~]# cd /gv4
分别写入2个文件大小均为2M
[root@glusternode1 gv4]#dd if=/dev/zero of=a bs=2M count=1
预计:node1 下有文件a的一半大小 node2下有文件a的另外一半大小. Node3 下有文件b的一半大小 node4下有文件b的另外一半大小。多写入几个文件查看。服务端查看
[root@glusternode2 ~]# du -sh /data/brick1/gv4/a
1.0M /data/brick1/gv4/a
[root@glusternode3 ~]# du -sh /data/brick1/gv4/a
du: cannot access ‘/data/brick1/gv4/a’: No such file or directory
[root@glusternode3 ~]# du -sh /data/brick1/gv4/bb
1.0M /data/brick1/gv4/bb
6、条带复制卷
数据将进行切片,切片在复本卷内进行复制,在不同卷间进行分布。
下面已副本2 条带3做测试,节点选择glusternode1-6。即一个文件分片3份,然后每片复制1份.相邻brick组成复制卷。可用空间为所有brick一半。
[root@glusternode1 gv4]# gluster volume create 3stripe-2copy-gv5 stripe 3 replica 2 glusternode1:/data/brick1/gv5/ glusternode2:/data/brick1/gv5/ glusternode3:/data/brick1/gv5/ glusternode4:/data/brick1/gv5 glusternode5:/data/brick1/gv5/ glusternode6:/data/brick1/gv5
Replica 2 volumes are prone to split-brain. Use Arbiter or Replica 3 to avoid this. See: http://docs.gluster.org/en/latest/Administrator%20Guide/Split%20brain%20and%20ways%20to%20deal%20with%20it/.
Do you still want to continue?
(y/n) y
volume create: 3stripe-2copy-gv5: success: please start the volume to access data
[root@glusternode1 gv4]# gluster volume start 3stripe-2copy-gv5
volume start: 3stripe-2copy-gv5: success
[root@glusternode1 gv4]# gluster volume info 3stripe-2copy-gv5
Volume Name: 3stripe-2copy-gv5
Type: Striped-Replicate
Volume ID: 3ce7b509-4a60-4bbf-807c-df16ea666cba
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 x 2 = 6
Transport-type: tcp
Bricks:
Brick1: glusternode1:/data/brick1/gv5
Brick2: glusternode2:/data/brick1/gv5
Brick3: glusternode3:/data/brick1/gv5
Brick4: glusternode4:/data/brick1/gv5
Brick5: glusternode5:/data/brick1/gv5
Brick6: glusternode6:/data/brick1/gv5
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off
即写入一个3M的文件,分片成3个1M的文件,然后每个1M的文件6个brick中相邻的2个分别复制一个并保存。
客户端挂载并写入
[root@glusternode1 gv4]# mount -t glusterfs glusternode1:/3stripe-2copy-gv5 /gv5
[root@glusternode1 gv5]# dd if=/dev/zero of=a bs=12M count=1
1+0 records in
1+0 records out
12582912 bytes (13 MB) copied, 0.0399985 s, 315 MB/s
服务端查看
[root@glusternode1 ~]# du -sh /data/brick1/gv5/
4.1M /data/brick1/gv5/
[root@glusternode2 ~]# du -sh /data/brick1/gv5/
4.1M /data/brick1/gv5/
[root@glusternode3 ~]# du -sh /data/brick1/gv5/
4.1M /data/brick1/gv5/
[root@glusternode4 ~]# du -sh /data/brick1/gv5/
4.1M /data/brick1/gv5/
[root@glusternode5 ~]# du -sh /data/brick1/gv5/
4.1M /data/brick1/gv5/
[root@glusternode6 ~]# du -sh /data/brick1/gv5/
4.1M /data/brick1/gv5/
7、分布式条带复制卷
注意:上图缺少4个brick
bricks数量为stripe个数N,和repl个数M的积N*M的整数倍
exp1 exp2 exp3 exp4组成一个分布卷,exp1和exp2组成一个stripe卷,exp3和exp4组成另一个stripe卷,1和2,3和4互为复本卷exp4-exp8组成另一个分布卷。
即先保证分布式,在条带,然后条带在复制。
下面做测试为条带2,复制2的分布式架构,即2*2*2=8 最少8个节点。
[root@glusternode1 ~]# mkdir /data/brick1/gv6
[root@glusternode2 ~]# mkdir /data/brick1/gv6
[root@glusternode3 ~]# mkdir /data/brick1/gv6
[root@glusternode4 ~]# mkdir /data/brick1/gv6
[root@glusternode5 ~]# mkdir /data/brick1/gv6
[root@glusternode6 ~]# mkdir /data/brick1/gv6
[root@glusternode7 ~]# mkdir /data/brick1/gv6
[root@glusternode8 ~]# mkdir /data/brick1/gv6
[root@glusternode1 gv5]# gluster volume create 2stripe-2copy-gv6 stripe 2 replica 2 glusternode1:/data/brick1/gv6/ glusternode2:/data/brick1/gv6/ glusternode3:/data/brick1/gv6/ glusternode4:/data/brick1/gv6 glusternode5:/data/brick1/gv6/ glusternode6:/data/brick1/gv6 glusternode7:/data/brick1/gv6 glusternode8:/data/brick1/gv6
Replica 2 volumes are prone to split-brain. Use Arbiter or Replica 3 to avoid this. See: http://docs.gluster.org/en/latest/Administrator%20Guide/Split%20brain%20and%20ways%20to%20deal%20with%20it/.
Do you still want to continue?
(y/n) y
volume create: 2stripe-2copy-gv6: success: please start the volume to access data
[root@glusternode1 gv5]# gluster volume start 2stripe-2copy-gv6
volume start: 2stripe-2copy-gv6: success
[root@glusternode1 gv5]# gluster volume info 2stripe-2copy-gv6
Volume Name: 2stripe-2copy-gv6
Type: Distributed-Striped-Replicate
Volume ID: 7c243bb9-7c09-41d4-9c29-a6e7a5339880
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 2 x 2 = 8
Transport-type: tcp
Bricks:
Brick1: glusternode1:/data/brick1/gv6
Brick2: glusternode2:/data/brick1/gv6
Brick3: glusternode3:/data/brick1/gv6
Brick4: glusternode4:/data/brick1/gv6
Brick5: glusternode5:/data/brick1/gv6
Brick6: glusternode6:/data/brick1/gv6
Brick7: glusternode7:/data/brick1/gv6
Brick8: glusternode8:/data/brick1/gv6
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off
客户端挂载并写入
[root@glusternode1 gv5]# mount -t glusterfs glusternode1:/2stripe-2copy-gv6 /gv6
[root@glusternode1 gv5]# cd /gv6
[root@glusternode1 gv6]# dd if=/dev/zero of=a bs=4M count=2
2+0 records in
2+0 records out
8388608 bytes (8.4 MB) copied, 0.0282538 s, 297 MB/s
服务端查看
[root@glusternode1 gv6]# ll /data/brick1/gv6
total 4096
-rw-r--r-- 2 root root 4194304 Dec 5 21:41 a
[root@glusternode2 ~]# ll /data/brick1/gv6
total 4096
-rw-r--r-- 2 root root 4194304 Dec 5 21:41 a
[root@glusternode3 ~]# ll /data/brick1/gv6
total 4096
-rw-r--r-- 2 root root 4194304 Dec 5 21:41 a
[root@glusternode4 ~]# ll /data/brick1/gv6
total 4096
-rw-r--r-- 2 root root 4194304 Dec 5 21:41 a
root@glusternode5 ~]# ll /data/brick1/gv6
total 0
root@glusternode6 ~]# ll /data/brick1/gv6
total 0
root@glusternode7 ~]# ll /data/brick1/gv6
total 0
root@glusternode8 ~]# ll /data/brick1/gv6
total 0
客户端多写入几个文件后会看到有其他文件存放到node4-8的节点上。
四、卷管理
卷信息
#gluster volume info
//该命令能够查看存储池中的当前卷的信息,包括卷方式、包涵的brick、卷的当前状态、卷名及UUID等。
卷状态
#gluster volume status
//该命令能够查看当前卷的状态,包括其中各个brick的状态,NFS的服务状态及当前task执行情况,和一些系统设置状态等。
启动/停止卷
# gluster volume start/stop VOLNAME
//将创建的卷启动,才能进行客户端挂载;stop能够将系统卷停止,无法使用;此外gluster未提供restart的重启命令
删除卷
# gluster volume delete VOLNAME
//删除卷操作能够将整个卷删除,操作前提是需要将卷先停止
查看卷
# gluster volume list /*列出集群中的所有卷*/
# gluster volume info [all] /*查看集群中的卷信息*/
# gluster volume status [all] /*查看集群中的卷状态*/
# gluster volume status [detail| clients | mem | inode | fd]
配置卷
# gluster volume set 扩展卷
# gluster volume add-brick
注意,如果是复制卷或者条带卷,则每次添加的Brick数必须是replica或者stripe的整数倍。
收缩卷
先将数据迁移到其它可用的Brick,迁移结束后才将该Brick移除:
# gluster volume remove-brick start
在执行了start之后,可以使用status命令查看移除进度:
# gluster volume remove-brick status
不进行数据迁移,直接删除该Brick:
# gluster volume remove-brick commit
注意,如果是复制卷或者条带卷,则每次移除的Brick数必须是replica或者stripe的整数倍。
迁移卷
使用start命令开始进行迁移:
# gluster volume replace-brick start
在数据迁移过程中,可以使用pause命令暂停迁移:
# gluster volume replace-brick pause
在数据迁移过程中,可以使用abort命令终止迁移:
# gluster volume replace-brick abort
在数据迁移过程中,可以使用status命令查看迁移进度:
# gluster volume replace-brick status
在数据迁移结束后,执行commit命令来进行Brick替换:
# gluster volume replace-brick commit
重新均衡卷
不迁移数据:
# gluster volume rebalance lay-outstart
# gluster volume rebalance start
# gluster volume rebalance startforce
# gluster volume rebalance status
# gluster volume rebalance stop
五、Brick管理
添加Brick
若是副本卷,则一次添加的Bricks 数是replica 的整数倍;stripe 具有同样的要求。
# gluster volume add-brick VOLNAME NEW-BRICK
#gluster volume add-brick dht_vol server3:/mnt/sdc1
//添加server3上的/mnt/sdc1到卷dht_vol上。
移除Brick
若是副本卷,则移除的Bricks 数是replica 的整数倍;stripe 具有同样的要求。
# gluster volume remove-brick VOLNAME BRICK start/status/commit
# gluster volume remove-brick dht_vol start
//GlusterFS_3.4.1版本在执行移除Brick的时候会将数据迁移到其他可用的Brick上,当数据迁移结束之后才将Brick移除。执行start命令,开始迁移数据,正常移除Brick。
#gluster volume remove-brick dht_vol status
//在执行开始移除task之后,可以使用status命令进行task状态查看。
#gluster volume remove-brick dht_vol commit
//使用commit命令执行Brick移除,则不会进行数据迁移而直接删除Brick,符合不需要数据迁移的用户需求。
PS :系统的扩容及缩容可以通过如上节点管理、Brick 管理组合达到目的。
(1) 扩容时,可以先增加系统节点,然后添加新增节点上的Brick 即可。
(2) 缩容时,先移除Brick ,然后再进行节点删除则达到缩容的目的,且可以保证数据不丢失。
替换Brick
# gluster volume replace-brick VOLNAME BRICKNEW-BRICK start/pause/abort/status/commit
# gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 start
//如上,执行replcace-brick卷替换启动命令,使用start启动命令后,开始将原始Brick的数据迁移到即将需要替换的Brick上。
#gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 status
//在数据迁移的过程中,可以查看替换任务是否完成。
#gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 abort
//在数据迁移的过程中,可以执行abort命令终止Brick替换。
#gluster volume replace-brick dht_vol server0:/mnt/sdb1 server0:/mnt/sdc1 commit
//在数据迁移结束之后,执行commit命令结束任务,则进行Brick替换。使用volume info命令可以查看到Brick已经被替换。
六、系统扩展维护
1、系统配额
1.1开启/关闭系统配额
# gluster volume quota VOLNAME enable/disable
//在使用系统配额功能时,需要使用enable将其开启;disable为关闭配额功能命令。
1.2设置(重置)目录配额
# gluster volume quota VOLNAME limit-usage /directory limit-value
# gluster volume quota dht_vol limit-usage /quota 10GB
//如上,设置dht_vol卷下的quota子目录的限额为10GB。
PS:这个目录是以系统挂载目录为根目录”/”,所以/quota即客户端挂载目录下的子目录quota
1.3配额查看
# gluster volume quota VOLNAME list
# gluster volume quota VOLNAME list /directory name
//可以使用如上两个命令进行系统卷的配额查看,第一个命令查看目的卷的所有配额设置,第二个命令则是执行目录进行查看。
//可以显示配额大小及当前使用容量,若无使用容量(最小0KB)则说明设置的目录可能是错误的(不存在)。
2、地域复制(geo-replication)
# gluster volume geo-replication MASTER SLAVE start/status/stop
地域复制是系统提供的灾备功能,能够将系统的全部数据进行异步的增量备份到另外的磁盘中。
#gluster volume geo-replication dht_vol 192.168.2.104:/mnt/sdb1 start
//如上,开始执行将dht_vol卷的所有内容备份到2.104下的/mnt/sdb1中的task,需要注意的是,这个备份目标不能是系统中的Brick。
3、 I/O信息查看
Profile Command 提供接口查看一个卷中的每一个 brick 的 IO 信息。
#gluster volume profile VOLNAME start
//启动profiling,之后则可以进行IO信息查看
#gluster volume profile VOLNAME info
//查看IO信息,可以查看到每一个Brick的IO信息
# gluster volume profile VOLNAME stop
//查看结束之后关闭profiling功能
4、 Top监控
Top command 允许你查看bricks 的性能例如:read, write, file open calls, file read calls, file write calls, directory open calls, and directory real calls
所有的查看都可以设置top 数,默认100
# gluster volume top VOLNAME open [brick BRICK-NAME] [list-cnt cnt]
//查看打开的fd
#gluster volume top VOLNAME read [brick BRICK-NAME] [list-cnt cnt]
//查看调用次数最多的读调用
#gluster volume top VOLNAME write [brick BRICK-NAME] [list-cnt cnt]
//查看调用次数最多的写调用
# gluster volume top VOLNAME opendir [brick BRICK-NAME] [list-cnt cnt]
# gluster volume top VOLNAME readdir [brick BRICK-NAME] [list-cnt cnt]
//查看次数最多的目录调用
# gluster volume top VOLNAME read-perf [bs blk-size count count] [brick BRICK-NAME] [list-cnt cnt]
//查看每个Brick的读性能
# gluster volume top VOLNAME write-perf [bs blk-size count count] [brick BRICK-NAME] [list-cnt cnt]
//查看每个Brick的写性能
浙公网安备 33010602011771号