一、准备
1.1 硬件要求
为了充分保证系统的稳定性和性能,要求所有glusterfs服务器硬件配置尽量一致,尤其是硬盘数量和大小。机器的RAID卡需要带电池,缓存越大,性能越好。一般情况下,建议做RAID10,如果出于空间要求的考虑,需要做RAID5,建议最好能有1-2块硬盘的热备盘。
1.2 系统要求和分区划分
系统要求使用centos 6.x,安装完成后升级到最新版本,安装的时候,不要使用LV,建议/boot分区200M,/ 分区100G、swap分区和内存一样大小,剩余空间给gluster使用,划分单独的硬盘空间。系统安装软件没有特殊要求,建议除了开发工具和基本的管理软件,其他软件一律不安装。
1.3 网络环境
网络要求全部千兆环境,gluster服务器至少有4块网卡,3块网卡绑定供gluster使用,剩余一块分配管理网络ip,用于系统管理。网卡绑定建议使用mode 0的方式,同步的网卡绑定脚本如下:
cat <
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.10.10.233
NETMASK=255.255.255.0
TYPE=Ethernet
BONDING_OPTS="mode=0 miimon=100"
EOF
cat << EOF >/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
EOF
cat << EOF >/etc/sysconfig/network-scripts/ifcfg-p2p1
DEVICE=p2p1
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
EOF
cat << EOF >/etc/sysconfig/network-scripts/ifcfg-p2p2
DEVICE=p2p2
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
EOF
二、部署
2.1 GLUSTER软件安装
1) 升级系统到最新
yum update -y
2) 编辑/etc/hosts,将所有服务器的hostname加进去
3) 安装epel源
rpm -Uvh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-7.noarch.rpm
4) 下载安装gluster软件包:
wget http://download.gluster.org/pub/gluster/glusterfs/LATEST/CentOS/glusterfs-epel.repo \
-O /etc/yum.repos.d/glusterfs-epel.repo
yum install glusterfs-devel glusterfs-fuse glusterfs-server -y
5) 启动glusterd服务
默认安装完成自动启动服务,安装完成后是一个标准的redhat服务,可以启动,停止,重启
/etc/init.d/glusterd start
/etc/init.d/glusterd stop
/etc/init.d/glusterd restart
6) 添加服务器到存储池
在第一台服务器上执行探测操作
gluster peer probe gfs2
gluster peer probe gfs3
校验集群状态
[root@hp246 ~]# gluster peer status
Number of Peers: 4
Hostname:gfs1
Uuid: 59cd74a9-a555-4560-b98e-a7eaf2058926
State: Peer in Cluster (Connected)
Hostname:gfs2
Uuid: 278d94f8-cf55-42cc-a4ad-9f84295c140b
State: Peer in Cluster (Connected)
Hostname: gfs3
Uuid: 7fd840a2-53f5-4540-b455-3e5e7eded813
State: Peer in Cluster (Connected)
如果需要移出集群 执行如下命令
gluster peer detach server
7) 创建集群卷
a) 创建一个分布卷(只是卷连接起来,跨区卷)
gluster volume create test-volume server1:/exp1 server2:/exp2 server3:/exp3
b) 创建一个复制卷(raid1)
gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
c) 创建一个条带卷(raid0)
gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2
d) 创建一个分布条带卷(raid00)
gluster volume create test-volume stripe 4 transport tcp server1:/exp1 server2:/exp2
server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7 server8:/exp8
e) 创建一个复制条带卷(raid10
gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
server3:/exp3 server4:/exp4
f) 创建一个分部复制条带卷(raid100)
gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1
server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7
server8:/exp8
g) 创建条带复制卷(raid01)
gluster volume create test-volume stripe 2 replica 2 transport tcp server1:/exp1
server2:/exp2 server3:/exp3 server4:/exp4
生产环境中要求使用复制卷,根据安全性的要求,replica 2或者replica 3。
查看卷信息
gluster volume info
启动卷
gluster volume start test-volume
8) 客户端挂载
客户端安装gluster,加载fuse模块
yum -y install wget fuse fuse-libs
modprobe fuse
Verify that the FUSE module is loaded:
# dmesg | grep -i fuse
fuse init (API version 7.13)
挂载卷
mount -t glusterfs server1:/test-volume /mnt/glusterfs
自动挂载
vim fstab
server1:/test-volume /mnt/glusterfs glusterfs defaults,_netdev 0 0
加上备用服务器挂载
mount -t glusterfs -o backupvolfile-server=10.10.10.171,backupvolfile-server=10.10.10.172 10.10.10.176:/test-volume /gfs
9) 性能监视
gluster volume profile test-volume start
显示基本性能信息
gluster volume profile test-volume info
显示最高的文件读取
gluster volume top test-volume read
显示最高的文件写
gluster volume top test-volume write
10) 设置附加属性
gluster volume set test-volume performance.cache-size 256MB
条带块大小
gluster volume set test-volume cluster.stripe-block-size 128KB
三、常见故障处理
3.1 硬盘故障
因为底层做了raid配置,有硬件故障,直接更换硬盘,会自动同步数据。
3.2 一台节点故障,
一台节点故障的情况包括以下情况:
a) 物理故障;
b) 同时有多块硬盘故障,造成数据丢失;
c) 系统损坏不可修复。
解决方法:
找一台完全一样的机器,至少要保证硬盘数量和大小一致,安装系统,配置和故障机同样的ip,安装gluster软件,保证配置都一样,在其他健康的节点上执行命令gluster peer status,查看故障服务器的uuid,
gluster peer status
Number of Peers: 2
Hostname: 10.10.10.172
Uuid: 64b345d4-6c9c-43d8-82ef-68c228c4b7ed
State: Peer in Cluster (Connected)
Hostname: 10.10.10.176
Uuid: 9133d139-f9c4-484d-acdf-d11f0452878a
State: Peer in Cluster (Disconnected)
修改新加机器的/var/lib/glusterd/glusterd.info和故障机器的一样
cat /var/lib/glusterd/glusterd.info
UUID=9133d139-f9c4-484d-acdf-d11f0452878a
在任意节点上执行
root@drbd01 ~]# gluster volume heal test-volume full
Launching Heal operation on volume test-volume has been successful
就会自动开始同步,但是同步的时候会影响整个系统的性能。
可以查看状态
[root@drbd01 ~]# gluster volume heal test-volume info
Gathering Heal info on volume test-volume has been successful
欢迎加我微信(ID:xiaolikvm)一起交流。欢迎加入云技术社区KVM/QEMU技术交流QQ,请加QQ:502207183,注明姓名,城市,及要加入KVM群。