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个数 下面举例文件切片存放在3brick上。 选择3个主机(glusternode6-8)节点做条带卷(切片存放在3brick上)的测试
[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/test
  3M 文件分片后每个brick存放1M

4、分布式复制卷

此类型卷是基本复本卷的扩展,可以指定若干brick组成一个复本卷,另外若干brick组成另个复本卷。单个文件在复本卷内数据保持复制,不同文件在不同复本卷之间进行分布。 选择4个主机(glusternode1-4)节点做测试,前2brick为文件12个复制,后2brick为文件22个复制。先两两复制,在两两分布。
[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)节点做测试,前2brick为文件12个分片,后2brick为文件22个分片。先两两分片,在两两分布。
[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、分布式条带复制卷

注意:上图缺少4brick bricks数量为stripe个数N,和repl个数M的积N*M的整数倍 exp1 exp2 exp3 exp4组成一个分布卷,exp1exp2组成一个stripe卷,exp3exp4组成另一个stripe卷,1234互为复本卷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信息,可以查看到每一个BrickIO信息

 

# 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的写性能

 

七、客户端设置

  客户端使用GFS有多种方式,性能最高的方式是使用glusternative接口,此外还有NFSCIFS方式。

1native方式

1 安装gluserfs-fuse安装包, 2 挂载卷:mount -t glusterfs host/ip:path mnt-point 注意,这里提供的IP和主机只用来为客户提供volfile信息,后续客户便直接和需要的服务器通信了。 3 设置自动挂载 echo "localhost:/mamm-vol /mnt/glusterfs glusterfs defaults,_netdev 0 0" >>/etc/fstab

2NFS方式

Gluster提供了内置的NFS服务,支持其他实现了NFSv3的客户端直接访问。 #service nfs stop       # 关闭Linux内核自带的NFS服务 #service rpcbind start  # 启动rpc端口映射管理 #rpc.statd 然后客户端挂载 mount -t nfs -o vers=3 host/ip:/path mnt-port window7客户端 程序和功能->打开或关闭windows功能,安装NFS客户端功能,即可使用mount/showmount功能。

3CIFS方式

cifs可以提供给WINsamba客户端访问,对于windows程序,可以使用//ip/path通过SMB协议来方便的使用远程资源 1 在服务器将glusterfs挂载到/mnt/gfs 2 服务器通过samba配置将/mnt/gfs导出服务,启动smb服务 3 win客户端上挂载samber服务器导出共享mount -t cifs //ip/path  /mnt-point  

posted on 2018-03-06 15:44  歪歪121  阅读(193)  评论(0)    收藏  举报