tongsiying

阅读|运动|自律

0%

gluster

复现步骤

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
环境:
10.27.38.21
10.27.38.22
10.27.38.23
10.27.38.24
步骤:
步骤1:在21~22上建卷(支持acl),2122上都挂载客户端(755
步骤2:写入文件
步骤3:扩容23~24(支持acl),暂时不rebalance
观察挂载点权限是否是755


/dev/vdb /mnt/data ext4 defaults,noatime,acl 0 0

mount -t glusterfs -o user-name=sdfsadmin,acl 10.27.17.71:dht_vol /mnt/mytest mytest指客户端挂载点



gluster volume create test-vol dev-21:/mnt/data dev-22:/mnt/data
gluster volume create test-vol dev-21:/mnt/data/br1 dev-22:/mnt/data/br1

gluster volume info

gluster volume create test-vol replica 2 transport tcp dev-21:/mnt/data/br1 dev-22:/mnt/data/br1


sh install-sdfs.sh -t client -i $GLUSTER_SERVER -v $VOL -m $CLIENT_MOUNT_PIONT
sh install-sdfs.sh -t client -i 10.27.38.21 -v test_vol -m /mnt/sdfs -f

-u user_name -f

手工安装Gluster卷,使用以下命令:
# mount -t glusterfs HOSTNAME-OR-IPADDRESS:<卷名> /VOLNAME MOUNTDIR

mount -t glusterfs 10.27.38.21:test_vol /tes-vol /mnt/sdfs
或者
# mount.glusterfs HOSTNAME-OR-IPADDRESS:<卷名> /VOLNAME MOUNTDIR
例如:
# mount -t glusterfs server1: test_vol /test-volume /mnt/glusterfs
或者
# mount.glusterfs server1:test_vol /test-volume /mnt/glusterfs

其中如果该server上有多个卷,就需要卷名。否则卷名可以省去。
注意:
Mount命令中的Server仅仅用来获取gluster配置映像中描述的卷名。随后,客户端将直接和映像中提到的服务器通讯。

自动挂载:
[root@dev-21 glusterfs]# cat /etc/glusterfs/sdfs-mounts
mount -t glusterfs -o acl 10.27.38.21:/test_vol /mnt/sdfs

gluster volume add-brick test-vol replica 2 dev-23:/mnt/data/br1 dev-24:/mnt/data/br1
lsof |grep /mnt/sdfs
setfacl -m user:eppaccess:rw- [目录]
[root@dev-21 home]# cat /etc/sysconfig/network-scripts/ifcfg-ovirtmgmt
DEVICE=ovirtmgmt
ONBOOT=yes
TYPE=Bridge
DELAY=0
BOOTPROTO=static
IPADDR=10.27.38.21
NETMASK=255.255.255.0
GATEWAY=10.27.38.254
生产环境:
mkdir -p /mnt/fdfs
chown -R eppaccess:allnetpay epp
cd ~;ls -la /epp;权限是root:root 索引/epp -> /mnt/fdfs/epp
/mnt/fdfs/epp/netpay/statement 属性:eppaccess:allnetpay drwxrwx---
getfacl /mnt/fdfs/epp/netpay/statement
user:eppaccess:rwx
/mnt/fdfs/epp/netpay/statement/bjcpdkqd 属性:drwxrwx--- bjcpdkqduser:bjcpdkqduser
getfacl /mnt/fdfs/epp/netpay/statement/bjcpdkqd
user:eppaccess:rwx

/mnt/fdfs/epp/netpay/statement/bjcpdkqd/merchant_660361893023_20180206.csv
权限是:eppaccess:eppaccess -rw-r--r--

部署gluster:
1、建虚机,ip和hostname都需要配置全,vi /etc/hosts里面也需要将其他副本级集群的ip和对应的hostname加上
2、划分磁盘,/mnt/data,修改/etc/fsta
3、配置yum
·先清除yum: yum clean all
·确认yum是好的:yum makecache
·配置yum:
4、vi /etc/yum.repos.d/stom.repo
stom.repo名字可以自定义
[root@dev-50 yum.repos.d]# cat stom.repo
[yum-cd]
name=cd rpm
baseurl=http://10.27.97.1/rh63/x86_64
gpgcheck=0
enabled=1
5、(每台都需要执行)执行安装脚本(脚本在gluster软件包里面:install-sdfs.sh)【curl ftp://10.104.249.195/yxm/sdfs529.tar.gz -u test:suning@123 -o sdfs529.tar.gz】
sh install-sdfs.sh -t server -d /dev/vdb -m /mnt/data -n eth0
/dev/vdb -m /mnt/data:为2、你创建的磁盘
eth0:ip所在网口
注:最后可能报一个hostname的错,可以忽略
6、(只需要在一台上执行)创建资源池:gluster peer probe hostname
举例:
gluster peer probe dev21
gluster peer probe dev22
7、(只需要在一台上执行)创建副本卷:gluster volume create test2_vol replica 2 transport tcp dev-21:/mnt/data/br2 dev-22:/mnt/data/br2
test-vol:卷名称(可自定义)
dev-21:/mnt/data/br1 dev-22:/mnt/data/br1:br1会自己创建
自动创建:

8、启动卷:gluster volume start test-vol
9、创建gluster客户端
脚本中其实已经安装了客户端的rpm,实在要执行就:
sh install-sdfs.sh -t client -i 10.27.38.21 -v test_vol -m /mnt/sdfs -f (客户端和服务端可以装在一起)
10、手动挂载卷
mount -t glusterfs 10.27.38.21:test_vol /test_vol /mnt/sdfs

mount -t glusterfs -o acl dev-21:/test_vol /mnt/sdfs



更改卷类型:
.更改卷的类型
语法:gluster volume set test-volume config.transport tcp,rdma OR tcp OR rdma

# gluster volume add-brick test-volume server4:/exp4


九、重新均衡卷
语法:gluster volume rebalance <VOLNAME> fix-layout start
例子:gluster volume rebalance test-volume fix-layout start
[root@dev-21 sdfs]# cd ..
[root@dev-21 mnt]# ll
total 12
drwxrwxrwx 4 root root 4096 May 31 08:54 data
drwxrwxrwx 3 root root 8192 May 31 09:04 sdfs
[root@dev-21 mnt]# ll
total 12
drwxrwxrwx 4 root root 4096 May 31 08:54 data
drwxrwxrwx 3 root root 8192 May 31 09:04 sdfs
[root@dev-21 mnt]# ll
total 12
drwxrwxrwx 4 root root 4096 May 31 08:54 data
drwxrwxrwx 3 root root 8192 May 31 09:04 sdfs
[root@dev-21 mnt]# ll
total 12
drwxrwxrwx 4 root root 4096 May 31 08:54 data
drwxrwxrwx 3 root root 8192 May 31 09:04 sdfs
[root@dev-21 mnt]# ll
total 12
drwxrwxrwx 4 root root 4096 May 31 08:54 data
drwxrwxrwx 3 root root 8192 May 31 09:04 sdfs
[root@dev-21 mnt]# date
Thu May 31 09:08:42 CST 2018
步骤1:ssh方式进入任意一个glusterfs服务器
步骤2:逐个执行如下命令(注意:例子中卷名称为test_vol,实际执行时请更换卷名称)
# gluster volume set test_vol diagnostics.brick-fuse-mount-mode 'u'
# gluster volume set test_vol diagnostics.brick-fuse-mount-user 'admin'

步骤3:分配空间(假设用户名为cloud-shop)
# gluster volume quota test_vol enable
# gluster volume quota test_vol limit-usage /cloud-shop [limit size 500GB]
步骤4:查看空间使用情况
# gluster volume quota test_vol list


设置卷的参数,然后重启一下


安装客户端的时候,注意加上 -u参数

mount -t glusterfs 10.103.21.38:sdfspool_vol /mnt/test -o user-name=cloud-shop
[root@dev-21 glusterfs]# /etc/init.d/glusterd start
Starting glusterd:[FAILED]

解决:
rm -rf /var/lib/glusterd/*


-rw-r--r-- 1 root root 3546158 May 30 10:39 1.log
-rw-r--r-- 1 root root 124 May 30 10:32 1.sh
-rw-r--r-- 1 root root 124 May 30 10:32 2.sh


/dev/vdb /mnt/data ext4 defaults,noatime,acl 0 0
[root@dev-22 ~]# vim /etc/fstab
[root@dev-22 ~]# mkfs.ext4 /dev/vdb
[root@dev-22 ~]# mount -a



nfs.disable: on
[root@sndspreapp77 ~]# gluster vol info

Volume Name: snds_vol
Type: Distributed-Replicate
Volume ID: 8a6aac39-f3ca-4485-b2c6-f8070e16c4a5
Status: Started
Number of Bricks: 2 x 2 = 4
Transport-type: tcp
Bricks:
Brick1: 10.242.176.186:/mnt/data/br1
Brick2: 10.242.176.187:/mnt/data/br1
Brick3: 10.242.176.188:/mnt/data/br1
Brick4: 10.242.176.189:/mnt/data/br1
Options Reconfigured:
nfs.disable: on


mount -t glusterfs 10.242.176.186:/snds_vol /home/sdfstest/test1

gluster部署-yx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
服务端安装:/var/run/glusterd.pid
前提:磁盘划分好了;/etc/fstab配置完成; /etc/yum.repos.d/stom.repo中yum配置好
1、vi /etc/hosts里面也需要将其他副本级集群的ip和对应的hostname加上
[root@dev-21 ~]# cat /etc/hosts
10.27.38.21 dev-21
10.27.38.22 dev-22
10.27.38.23 dev-23
10.27.38.24 dev-24

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

2、每台都需要执行安装脚本(脚本在gluster软件包里面:install-sdfs.sh)
sh install-sdfs.sh -t server -d /dev/vdb -m /mnt/data -n eth0
/dev/vdb -m /mnt/data:查看fstab:(/dev/vdb /mnt/data ext4 defaults,noatime,acl 0 0
eth0:ip所在网口
注:最后可能报一个hostname的错,可以忽略

3、启动gluster
/etc/init.d/glusterd start
centos启动gluster:systemctl start glusterd.service
systemctl restart glusterd

4、(只需要在一台上执行)创建资源池:gluster peer probe hostname(或者ip)
举例:最好是ip,host那么也行
gluster peer probe 10.27.38.21
gluster peer probe 10.27.38.22
gluster peer probe 10.27.38.23
gluster peer probe 10.27.38.24

5、(只需要在一台上执行)创建副本卷:
gluster volume create test-vol replica 2 transport tcp dev-21:/mnt/data/br2 dev-22:/mnt/data/br2 dev-23:/mnt/data/br2 dev-24:/mnt/data/br2
注释:
test-vol:卷名称(可自定义)
dev-21:/mnt/data/br1 dev-22:/mnt/data/br1 dev-23:/mnt/data/br2 dev-24:/mnt/data/br2 :br1会自动创建

6、启动卷:gluster volume start test-vol

7.删除卷:
gluster volume delete VOLNAME
客户端安装:
1、创建gluster客户端
脚本中其实已经安装了客户端的rpm,实在要执行就:
sh install-sdfs.sh -t client -i 10.27.38.21 -v test-vol -m /mnt/sdfs -f (客户端和服务端可以装在一起)

2、手动挂载卷
mount -t glusterfs 10.27.38.21:test_vol /test_vol /mnt/sdfs

mount -t glusterfs -o acl dev-21:/test_vol /mnt/sdfs

部署gluster:
1、建虚机,ip和hostname都需要配置全,vi /etc/hosts里面也需要将其他副本级集群的ip和对应的hostname加上
2、划分磁盘,/mnt/data,修改/etc/fstab
3、配置yum
·先清除yum: yum clean all
·确认yum是好的:yum makecache
·配置yum:
4、vi /etc/yum.repos.d/stom.repo
stom.repo名字可以自定义
[root@dev-50 yum.repos.d]# cat stom.repo
[yum-cd]
name=cd rpm
baseurl=http://10.27.97.1/rh63/x86_64
gpgcheck=0
enabled=1
5、(每台都需要执行)执行安装脚本(脚本在gluster软件包里面:install-sdfs.sh)【curl ftp://10.104.249.195/yxm/sdfs529.tar.gz -u test:suning@123 -o sdfs529.tar.gz】
sh install-sdfs.sh -t server -d /dev/vdb -m /mnt/data -n eth0
/dev/vdb -m /mnt/data:为2、你创建的磁盘
eth0:ip所在网口
注:最后可能报一个hostname的错,可以忽略
• 手工启动,在服务器超级用户下输入以下命令:
# /etc/init.d/glusterd start
6、(只需要在一台上执行)创建资源池:gluster peer probe hostname
举例:
gluster peer probe dev21
gluster peer probe dev22
7、(只需要在一台上执行)创建副本卷:gluster volume create test2_vol replica 2 transport tcp dev-21:/mnt/data/br2 dev-22:/mnt/data/br2
test-vol:卷名称(可自定义)
dev-21:/mnt/data/br1 dev-22:/mnt/data/br1:br1会自己创建
自动创建:

8、启动卷:gluster volume start test-vol
9、创建gluster客户端
脚本中其实已经安装了客户端的rpm,实在要执行就:
sh install-sdfs.sh -t client -i 10.27.38.21 -v test_vol -m /mnt/sdfs -f (客户端和服务端可以装在一起)
10、手动挂载卷
mount -t glusterfs 10.27.38.21:test_vol /test_vol /mnt/sdfs
mount -t glusterfs -o acl dev-21:/test_vol /mnt/sdfs

更改卷类型:
.更改卷的类型
语法:gluster volume set test-volume config.transport tcp,rdma OR tcp OR rdma
# gluster volume add-brick test-volume server4:/exp4
九、重新均衡卷
语法:gluster volume rebalance <VOLNAME> fix-layout start
例子:gluster volume rebalance test-volume fix-layout start




如何卸载:
1.将gluster相关的rpm包卸载
2.删除gluster相关的目录

gluster知识

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
1.Glusterfs简介
GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS借助TCP/IP或InfiniBandRDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据。
说起glusterfs可能比较陌生,可能大家更多的听说和使用的是NFS,GFS,HDFS之类的,这之中的NFS应该是使用最为广泛的,简单易于管理,但是NFS以及后边会说到MooseFS都会存在单点故障,为了解决这个问题一般情况下都会结合DRBD进行块儿复制。但是glusterfs就完全不用考虑这个问题了,因为它是一个完全的无中心的系统。

2.Glusterfs特点
扩展性和高性能
GlusterFS利用双重特性来提供几TB至数PB的高扩展存储解决方案。Scale-Out架构允许通过简单地增加资源来提高存储容量和性能,磁盘、计算和I/O资源都可以独立增加,支持10GbE和InfiniBand等高速网络互联。Gluster弹性哈希(ElasticHash)解除了GlusterFS对元数据服务器的需求,消除了单点故障和性能瓶颈,真正实现了并行化数据访问。

高可用性
GlusterFS可以对文件进行自动复制,如镜像或多次复制,从而确保数据总是可以访问,甚至是在硬件故障的情况下也能正常访问。自我修复功能能够把数据恢复到正确的状态,而且修复是以增量的方式在后台执行,几乎不会产生性能负载。GlusterFS没有设计自己的私有数据文件格式,而是采用操作系统中主流标准的磁盘文件系统(如EXT3、ZFS)来存储文件,因此数据可以使用各种标准工具进行复制和访问。

弹性卷管理
数据储存在逻辑卷中,逻辑卷可以从虚拟化的物理存储池进行独立逻辑划分而得到。存储服务器可以在线进行增加和移除,不会导致应用中断。逻辑卷可以在所有配置服务器中增长和缩减,可以在不同服务器迁移进行容量均衡,或者增加和移除系统,这些操作都可在线进行。文件系统配置更改也可以实时在线进行并应用,从而可以适应工作负载条件变化或在线性能调优。
(以上部分内容来源互联网)

3、术语简介
GlusterFS是一个开源的分布式文件系统。更多特性介绍附录的参考文档。

Brick:GFS中的存储单元,通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识,如'SERVER:EXPORT'

Client: 挂载了GFS卷的设备
Extended Attributes:xattr是一个文件系统的特性,其支持用户或程序关联文件/目录和元数据。
FUSE:Filesystem Userspace是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。通过在用户空间运行文件系统的代码通过FUSE代码与内核进行桥接。

Geo-Replication
GFID:GFS卷中的每个文件或目录都有一个唯一的128位的数据相关联,其用于模拟inode
Namespace:每个Gluster卷都导出单个ns作为POSIX的挂载点

Node:一个拥有若干brick的设备

RDMA:远程直接内存访问,支持不通过双方的OS进行直接内存访问。
RRDNS:round robin DNS是一种通过DNS轮转返回不同的设备以进行负载均衡的方法
Self-heal:用于后台运行检测复本卷中文件和目录的不一致性并解决这些不一致。
Split-brain:脑裂
Translator:
Volfile:glusterfs进程的配置文件,通常位于/var/lib/glusterd/vols/volname
Volume:一组bricks的逻辑集合

2 cluster管理

在创建volume之前需要先将一组存储设备组成一个存储池,通过存储设备提供的bricks来组成卷。
在设备上启动glusterd之后,可通过设备的主机名或IP地址,将设备加到存储池中。
$gluster peer probe host|ip  
$gluster peer status         #查看除本机外的其他设备状态  
$gluster peer detach host|ip #如果希望将某设备从存储池中删除  
gluster对于每个节点都会生成一个UUID来标识,因此如果节点的IP或主机名发生了变化,只需要重新执行peer probe即可。不过如果一个主机名曾经用过,想再改回去,则gluster会提示已经保存过。此时只能把节点detach掉,然后重新probe。

3 Volume管理
数据的传输协议支持tcp和infiniband rdma协议。

3.1 卷的类型
3.1.1 distributed volume

分布卷可以将某个文件随机的存储在卷内的一个brick内,通常用于扩展存储能力,不支持数据的冗余。除非底层的brick使用RAID等外部的冗余措施。

3.2 启/停/删除卷
$gluster volume start mamm-volume  
$gluster volume stop mamm-volume  
$gluster volume delete mamm-volume  

3.3 扩展收缩卷
$gluster volume add-brick mamm-volume [strip|repli <count>] brick1...  
$gluster volume remove-brick mamm-volume [repl <count>] brick1...  

扩展或收缩卷时,也要按照卷的类型,加入或减少的brick个数必须满足相应的要求。

3.4 迁移卷
主要完成数据在卷之间的在线迁移
gluster volume replace-brick mamm-volume old-brick new-brick [start|pause|abort|status|commit] 
 #迁移需要完成一系列的事务,假如我们准备将mamm卷中的brick3替换为brick5  #启动迁移过程
  $gluster volume replace-brick mamm-volume node3:/exp3 node5:/exp5 start  
#暂停迁移过程  
$gluster volume replace-brick mamm-volume node3:/exp3 node5:/exp5 pause  
#中止迁移过程  
$gluster volume replace-brick mamm-volume node3:/exp3 node5:/exp5 abort  
#查看迁移状态 
 $gluster volume replace-brick mamm-volume node3:/exp3 node5:/exp5 status  
#迁移完成后提交完成 
 $gluster volume replace-brick mamm-volume node3:/exp3 node5:/exp5 commit 

3.5 均衡卷
当对卷进行了扩展或收缩后,需要对卷的数据进行重新均衡。
$gluster volume rebalane mamm-volume start|stop|status  

3.6 触发副本自愈
$gluster volume heal mamm-volume #只修复有问题的文件  
$gluster volume heal mamm-volume full #修复所有文件  
$gluster volume heal mamm-volume info#查看自愈详情  
$gluster volume heal mamm-volume info healed|heal-failed|split-brain 

3.7 选项配置
$gluster volume set mamm-volume key value  

4 排错
4.1 错误
gluster使用了若干端口,如果出现probe peer或数据无法同步,考虑iptables对应用的影响。
 
4.2 日志
$gluster volume log rotate mamm-vol  #实现日志rotate

4.3 添加卷提示已经路径已在卷中的错误
执行下面的脚本,清除历史数据及属性信息
 
path=$1 #参数为待添加目录绝对路径  
rm -rf $path/.glu*  
setfattr -x trusted.glusterfs.volume-id $path  
setfattr -x trusted.gfid $path  

4.4 添加卷连接失败
每次向卷中添加brick后,远端的glusterd进程可能会连接关闭一段时间。此时现次执行操作会提示连接失败。等一会再执行即可。

5 客户端设置
客户端使用GFS有多种方式,性能最高的方式是使用gluster的native接口,此外还有NFS和CIFS方式。

5.1 native方式
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

5.2 NFS方式
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功能。

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

6 性能监控
6.1  性能profile
gluster volume profile mamm-vol start    
gluster volume profile info   
gluster volume profile mamm-vol stop  

6.2 实时top
显示当前某个brick或NFS文件打开/读/写/打开目录/读目录的计数
gluster volume top mamm-vol {open|read|write|opendir|readdir} brick node1:/exp1 list-cnt 1  

显示当前某个brick或NFS路径读文件或写文件数据的性能
gluster volume top mamm-vol read-perf|write-perf bs 256 count 10 brick node1:/exp1 list-cnt 1  

6.3 内部计数导出
gluster volume statedump mamm-vol  

设置导出路径
gluster volume set server.statedump-path /var/log/  

查看导出数据
gluster volume info dumpfile  

6.4 卷状态查看
gluster volume status [all|volname] [detail|clients|mem|fd|inode|callpoll]

gluster用户模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
简介:
gluster分为系统模式和用户模式

10.37.57.12410.37.57.12510.47.199.18310.47.199.239为一个sdfs集群

一、在服务端10.37.57.124上操作
0、(只需要在一台上执行)创建资源池:gluster peer probe hostname
举例:
gluster peer probe dev21
gluster peer probe dev22
1、创建卷,卷名为docker-vol,brick名字为br3
[root@sdfsdevapp210 data]# gluster volume create docker-vol replica 2 transport tcp 10.37.57.124:/mnt/data/br3 10.37.57.125:/mnt/data/br3 10.47.199.183:/mnt/data/br3 10.47.199.239:/mnt/data/br3
volume create: docker-vol: success: please start the volume to access data

2、启动卷docker-vol
[root@sdfsdevapp210 mnt]# gluster volume start docker-vol
volume start: docker-vol: success

3、创建admin目录
cd /mnt
mkdir sdfs-docker

4、将/mnt/sdfs-docker目录挂载到docker-vol卷上面
[root@sdfsdevapp210 mnt]# mount -t glusterfs 10.37.57.124:docker-vol /mnt/sdfs-docker



5、配置admin用户
[root@sdfsdevapp210 mnt]# gluster volume set docker-vol diagnostics.brick-fuse-mount-mode 'u'
volume set: success

[root@sdfsdevapp210 mnt]# gluster volume set docker-vol diagnostics.brick-fuse-mount-user 'admin'

[root@sdfsdevapp210 mnt]# gluster volume quota docker-vol enable
Enabling quota has been successful
volume set: success

之后执行查看gluster volume info
[root@sdfspreapp211 test]# gluster volume info
Volume Name: docker-vol
Type: Distribute
Volume ID: f7b63647-7483-4c10-9918-07bde8000c40
Status: Started
Number of Bricks: 4
Transport-type: tcp
Bricks:
Brick1: 10.37.57.124:/mnt/data/br3
Brick2: 10.37.57.125:/mnt/data/br3
Brick3: 10.47.199.183:/mnt/data/br3
Brick4: 10.47.199.239:/mnt/data/br3
Options Reconfigured:
features.quota: on
diagnostics.brick-fuse-mount-user: admin
diagnostics.brick-fuse-mount-mode: u


6、新建普通用户目录
cd /mnt/sdfs-docker/
mkdir FA

7、给用户FA分配2GB空间
[root@sdfsdevapp210 sdfs-docker]# gluster volume quota docker-vol limit-usage /FA 2GB
limit set on /FA

删除用户:
gluster volume quota test-vol remove /vol_ef0e194b379227cf6bb8264adff31bbd

之后执行查看gluster volume info
[root@sdfspreapp211 test]# gluster volume info
Volume Name: docker-vol
Type: Distribute
Volume ID: f7b63647-7483-4c10-9918-07bde8000c40
Status: Started
Number of Bricks: 4
Transport-type: tcp
Bricks:
Brick1: 10.37.57.124:/mnt/data/br3
Brick2: 10.37.57.125:/mnt/data/br3
Brick3: 10.47.199.183:/mnt/data/br3
Brick4: 10.47.199.239:/mnt/data/br3
Options Reconfigured:
features.limit-usage: /FA:2GB
features.quota: on
diagnostics.brick-fuse-mount-user: admin
diagnostics.brick-fuse-mount-mode: u

8、查看各个普通用户quota配额(会有僵死进程)
[root@sdfsdevapp210 sdfs-docker]# gluster volume quota docker-vol list
path limit_set size
----------------------------------------------------------------------------------
fuse mount mode is USER, but no user name found
/FA 2GB


二、在客户端上进行挂载sdfs卷
mount -t glusterfs 10.37.57.124:docker-vol /mnt/sdfs-test -o user-name=FA

注释:
10.37.57.124:服务端的ip
/mnt/sdfs-test:客户端上的目录

三、附加
扩容:
gluster volume quota docker-vol limit-usage /FA 3GB
命令和设置配额一致,只是大小变了


gluster volume status dht_vol clients
[root@sdfspreapp04 ~]# cat /etc/glusterfs/mount.sh
mount -t glusterfs -o user-name=admin,acl 10.27.17.71:dht_vol /mnt/sdfs
mount -t glusterfs -o user-name=admin,acl 10.27.17.71:dht_vol /mnt/mytest

umount -l /mnt/sdfs
选项 –l 并不是马上umount,而是在该目录空闲后再umount。还可以先用命令 ps aux 来查看占用设备的程序PID,然后用命令kill来杀死占用设备的进程,这样就umount的非常放心了

gluster系统模式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
简介:
gluster分为系统模式和用户模式

10.37.57.12410.37.57.12510.47.199.18310.47.199.239为一个sdfs集群

一、在服务端10.37.57.124上操作
0、(只需要在一台上执行)创建资源池:gluster peer probe hostname
举例:
gluster peer probe dev21
gluster peer probe dev22
1、创建卷,卷名为docker-vol,brick名字为br3
[root@sdfsdevapp210 data]# gluster volume create docker-vol replica 3 transport tcp 10.37.57.124:/mnt/data/br3 10.37.57.125:/mnt/data/br3 10.47.199.183:/mnt/data/br3 10.47.199.239:/mnt/data/br3
volume create: docker-vol: success: please start the volume to access data

2、启动卷docker-vol
[root@sdfsdevapp210 mnt]# gluster volume start docker-vol
volume start: docker-vol: success


二、在客户端上进行挂载sdfs卷
mount -t glusterfs 10.37
.57.124:docker-vol /mnt/sdfs-test

注释:
10.37.57.124:服务端的ip
/mnt/sdfs-test:客户端上的目录

打开客户端日志级别

1
2
3
4
在gluster的客户端上执行:
gluster vol set dht_vol diagnostics.client-log-level TRACETRACE是最高级别日志)

日志目录:tail -f /var/log/glusterfs/mnt-sdfs.log

gluster命令帮助

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
命令:
gluster vol list
gluster vol set help |grep client |grep log|grep level

gluster vol help


查看卷的大小:
gluster vol storage k8s-vol

gluster vol status xufx_vol clients

gluster vol status docker-vol detail




[root@sdfspreapp04 1]# gluster volume status dht_vol
Status of volume: dht_vol
Gluster process Port Online Pid
------------------------------------------------------------------------------
Brick 10.27.17.71:/mnt/data/br1 49152 Y 3132
Brick 10.27.17.73:/mnt/data/br1 49152 Y 11345
Self-heal Daemon on localhost N/A Y 3144
Self-heal Daemon on 10.27.17.73 N/A Y 11363

There are no active volume tasks

只有在迁移情况下no active才会变

其它

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
部署规划:
1、多个sdfs集群
2、每个集群对应1个卷
3、一个磁盘对应一个brick

打开客户端日志级别:
在gluster的服务端上执行:
gluster vol set dht_vol diagnostics.client-log-level TRACETRACE是最高级别日志)
日志目录:tail -f /var/log/glusterfs/mnt-sdfs.log



命令:
gluster vol list
gluster vol set help |grep client |grep log|grep level


查看卷的大小:
gluster vol storage k8s-vol



[root@sdfspreapp04 1]# gluster volume status dht_vol
Status of volume: dht_vol
Gluster process Port Online Pid
------------------------------------------------------------------------------
Brick 10.27.17.71:/mnt/data/br1 49152 Y 3132
Brick 10.27.17.73:/mnt/data/br1 49152 Y 11345
Self-heal Daemon on localhost N/A Y 3144
Self-heal Daemon on 10.27.17.73 N/A Y 11363

There are no active volume tasks

只有在迁移情况下no active才会变






客户端挂载的时候挂载一个的是一个ip,如果是三副本之类的,内部会重定向到其他副本ip地址:
backupvolfile-server mount的时候有个这个参数可以指定多个ip的
新版本好像不是叫这个名字  你google应该能找到
Mount: 10.37.57.124:k8s-vol
Mount Options: backupvolfile-server=10.37.57.125


一个集群卷不会超过128


gluster日志:/var/log/glusterfs/etc-glusterfs-glusterd.vol.log

Starting glusterd: [FAILED]
解决:卷出现混乱,将/var/lib/glusterd/vols文件全部删除


/var/lib/glusterd/vols/dht_vol/info

安装

1
1、ip和hostname都需要配置全,vi /etc/hosts里面也需要将其他副本级集群的ip和对应的hostname加上

nfs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
用户模式下:(v3模式)
mount -t nfs -o vers=3 10.242.9.152:/mnt/sdfs/SNPPCS /home/CommonFolder -vvv

客户端配置:cat /etc/exports【注:fsid不能重复,重复会导致空间统计有问题,生产出现过一次】

[root@sdfspreapp04 ~]# cat /etc/exports
/mnt/sdfs *(fsid=0,insecure,rw,async,no_root_squash,no_subtree_check)
/mnt/sdfs/SRE 10.37.81.80/28(fsid=1,insecure,rw,async,no_root_squash,no_subtree_check)
/mnt/sdfs/DWMS *(fsid=2,insecure,rw,async,no_root_squash,no_subtree_check)
/mnt/sdfs/SNBOOK *(fsid=3,insecure,rw,async,no_root_squash,no_subtree_check)
/mnt/sdfs/SVCMNG *(fsid=4,insecure,rw,async,no_root_squash,no_subtree_check)
/home/CommonFolder *(fsid=5,insecure,rw,async,no_root_squash,no_subtree_check)
/mnt/sdfs/MODELX *(fsid=6,insecure,rw,async,no_root_squash,no_subtree_check)
/mnt/sdfs/MLAAS *(fsid=7,insecure,rw,async,no_root_squash,no_subtree_check)
/mnt/sdfs/SIP *(fsid=8,insecure,rw,async,no_root_squash,no_subtree_check)

查看客户端挂载类型:
gluster volume status xg_mysqltest_vo clients
赞赏一下吧~