一、准备

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 </etc/sysconfig/network-scripts/ifcfg-bond0

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群。