前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >KVM虚拟化开源高可用方案(七)GLUSTERFS搭建及常见故障处理

KVM虚拟化开源高可用方案(七)GLUSTERFS搭建及常见故障处理

作者头像
力哥聊运维与云计算
发布2019-06-28 12:32:48
9550
发布2019-06-28 12:32:48
举报

一、准备

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 <<EOF >/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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2012-11-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档