环境介绍:
OS:CentOS6.4x86_64Minimal
Servers:sc2-log1,sc2-log2,sc2-log3,sc2-log4
Client:sc2-ads15
具体步骤:
1.在sc2-log{1-4}上安装GlusterFS软件包:
代码如下
#wget-P/etc/yum.repos.dhttp://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo
#yuminstall-yglusterfs-3.4.2-1.el6glusterfs-server-3.4.2-1.el6glusterfs-fuse-3.4.2-1.el6
#/etc/init.d/glusterdstart
#chkconfigglusterfsdon
2.在sc2-log1上配置整个GlusterFS集群:
代码如下
[root@sc2-log1~]#glusterpeerprobesc2-log1
1peerprobe:success:onlocalhostnotneeded
[root@sc2-log1~]#glusterpeerprobesc2-log2
1peerprobe:success
[root@sc2-log1~]#glusterpeerprobesc2-log3
1peerprobe:success
[root@sc2-log1~]#glusterpeerprobesc2-log4
1peerprobe:success
[root@sc2-log1~]#glusterpeerstatus
01NumberofPeers:3
02
03Hostname:sc2-log2
04Port:24007
05Uuid:399973af-bae9-4326-9cbd-b5b05e5d2927
06State:PeerinCluster(Connected)
07
08Hostname:sc2-log3
09Port:24007
10Uuid:833a7b8d-e3b3-4099-baf9-416ee7213337
11State:PeerinCluster(Connected)
12
13Hostname:sc2-log4
14Port:24007
15Uuid:54bf115a-0119-4021-af80-7a6bca137fd9
16State:PeerinCluster(Connected)
3.在sc2-log{1-4}上创建数据存放目录:
代码如下
#mkdir-p/usr/local/share/{models,geoip,wurfl}
#ls-l/usr/local/share/
1total24
2drwxr-xr-x2rootroot4096Apr112:19geoip
3drwxr-xr-x2rootroot4096Apr112:19models
4drwxr-xr-x2rootroot4096Apr112:19wurfl
4.在sc2-log1上创建GlusterFS磁盘:
代码如下
[root@sc2-log1~]#glustervolumecreatemodelsreplica4sc2-log1:/usr/local/share/modelssc2-log2:/usr/local/share/modelssc2-log3:/usr/local/share/modelssc2-log4:/usr/local/share/modelsforce
1volumecreate:models:success:pleasestartthevolumetoaccessdata
[root@sc2-log1~]#glustervolumecreategeoipreplica4sc2-log1:/usr/local/share/geoipsc2-log2:/usr/local/share/geoipsc2-log3:/usr/local/share/geoipsc2-log4:/usr/local/share/geoipforce
1volumecreate:geoip:success:pleasestartthevolumetoaccessdata
[root@sc2-log1~]#glustervolumecreatewurflreplica4sc2-log1:/usr/local/share/wurflsc2-log2:/usr/local/share/wurflsc2-log3:/usr/local/share/wurflsc2-log4:/usr/local/share/wurflforce
1volumecreate:wurfl:success:pleasestartthevolumetoaccessdata
[root@sc2-log1~]#glustervolumestartmodels
1volumestart:models:success
[root@sc2-log1~]#glustervolumestartgeoip
1volumestart:geoip:success
[root@sc2-log1~]#glustervolumestartwurfl
1volumestart:wurfl:success
[root@sc2-log1~]#glustervolumeinfo
01VolumeName:models
02Type:Replicate
03VolumeID:b29b22bd-6d8c-45c0-b199-91fa5a76801f
04Status:Started
05NumberofBricks:1x4=4
06Transport-type:tcp
07Bricks:
08Brick1:sc2-log1:/usr/local/share/models
09Brick2:sc2-log2:/usr/local/share/models
10Brick3:sc2-log3:/usr/local/share/models
11Brick4:sc2-log4:/usr/local/share/models
12
13VolumeName:geoip
14Type:Replicate
15VolumeID:69b0caa8-7c23-4712-beae-6f536b1cffa3
16Status:Started
17NumberofBricks:1x4=4
18Transport-type:tcp
19Bricks:
20Brick1:sc2-log1:/usr/local/share/geoip
21Brick2:sc2-log2:/usr/local/share/geoip
22Brick3:sc2-log3:/usr/local/share/geoip
23Brick4:sc2-log4:/usr/local/share/geoip
24
25VolumeName:wurfl
26Type:Replicate
27VolumeID:c723a99d-eeab-4865-819a-c0926cf7b88a
28Status:Started
29NumberofBricks:1x4=4
30Transport-type:tcp
31Bricks:
32Brick1:sc2-log1:/usr/local/share/wurfl
33Brick2:sc2-log2:/usr/local/share/wurfl
34Brick3:sc2-log3:/usr/local/share/wurfl
35Brick4:sc2-log4:/usr/local/share/wurfl
5.在sc2-ads15上部署客户端并mountGlusterFS文件系统:
[sc2-ads15][root@sc2-ads15~]#wget-P/etc/yum.repos.dhttp://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo
[sc2-ads15][root@sc2-ads15~]#yuminstall-yglusterfs-3.4.2-1.el6glusterfs-fuse-3.4.2-1.el6
[sc2-ads15][root@sc2-ads15~]#mkdir-p/mnt/{models,geoip,wurfl}
[sc2-ads15][root@sc2-ads15~]#mount-tglusterfs-orosc2-log3:models/mnt/models/
[sc2-ads15][root@sc2-ads15~]#mount-tglusterfs-orosc2-log3:geoip/mnt/geoip/
[sc2-ads15][root@sc2-ads15~]#mount-tglusterfs-orosc2-log3:wurfl/mnt/wurfl/
[sc2-ads15][root@sc2-ads15~]#df-h
1FilesystemSizeUsedAvailUse%Mountedon
2/dev/mapper/vg_t-lv_root
359G7.7G48G14%/
4tmpfs3.9G03.9G0%/dev/shm
5/dev/xvda1485M33M428M8%/boot
6sc2-log3:models98G8.6G85G10%/mnt/models
7sc2-log3:geoip98G8.6G85G10%/mnt/geoip
8sc2-log3:wurfl98G8.6G85G10%/mnt/wurfl
6.相关数据读写可用性测试:
在sc2-ads15挂载点上写入数据:
代码如下
[sc2-ads15][root@sc2-ads15~]#umount/mnt/models
[sc2-ads15][root@sc2-ads15~]#mount-tglusterfssc2-log3:models/mnt/models/
[sc2-ads15][root@sc2-ads15~]#echoThisissc2-ads15》/mnt/models/hello.txt
[sc2-ads15][root@sc2-ads15~]#mkdir/mnt/testdir
在sc2-log1数据目录中进行查看:
[root@sc2-log1~]#ls/usr/local/share/models/
1hello.txttestdir
结果:数据写入成功
在sc2-log1数据目录中直接写入数据:
代码如下
[root@sc2-log1~]#echoThisissc2-log1》/usr/local/share/models/hello.2.txt
[root@sc2-log1~]#mkdir/usr/local/share/models/test2
在sc2-ads15挂载点上进行查看:
[sc2-ads15][root@sc2-ads15~]#ls/mnt/models
[sc2-ads15][root@sc2-ads15~]#ls-l/mnt/models
1hello.txttestdir
结果:数据写入失败
在sc2-log1挂载点上写入数据:
代码如下
[root@sc2-log1~]#mount-tglusterfssc2-log1:models/mnt/models/
[root@sc2-log1~]#echoThisissc2-log1》/mnt/models/hello.3.txt
[root@sc2-log1~]#mkdir/mnt/models/test3
在sc2-ads15挂载点上进行查看:
[sc2-ads15][root@sc2-ads15models]#ls/mnt/models
1hello.2.txthello.3.txthello.txttest2test3testdir
结果:数据写入成功,同时之前写入失败的数据也成功加载了。
最终结论:
在数据目录中直接写入数据,会导致其它节点因为得不到通知而使数据同步失败。
正确的做法是所有的读写操作都通过挂载点来进行。
7.其它操作笔记:
删除GlusterFS磁盘:
代码如下
#glustervolumestopmodels
#glustervolumedeletemodels
卸载GlusterFS磁盘:
代码如下
sc2-log4
ACL访问控制:
代码如下
#glustervolumesetmodelsauth.allow10.60.1.*,10.70.1.*
添加GlusterFS节点:
代码如下
#glusterpeerprobesc2-log5
#glusterpeerprobesc2-log6
#glustervolumeadd-brickmodelssc2-log5:/data/glustersc2-log6:/data/gluster
迁移GlusterFS磁盘数据:
代码如下
#glustervolumeremove-brickmodelssc2-log1:/usr/local/share/modelssc2-log5:/usr/local/share/modelsstart
#glustervolumeremove-brickmodelssc2-log1:/usr/local/share/modelssc2-log5:/usr/local/share/modelsstatus
#glustervolumeremove-brickmodelssc2-log1:/usr/local/share/modelssc2-log5:/usr/local/share/modelscommit
修复GlusterFS磁盘数据(例如在sc2-log1宕机的情况下):
代码如下
#glustervolumereplace-brickmodelssc2-log1:/usr/local/share/modelssc2-log5:/usr/local/share/modelscommit-force
#glustervolumehealmodelsfull
通过本文的介绍,想必你已经对GlusterFS在CentOS6.4的安装配置有了一定的了解,除此之外,本文还介绍了GlusterFS的其他操作方法。