KVM+GFS分布式文件系统高可用群集-创新互联

GlusterFS概述

GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。
开源的分布式文件系统;
由存储服务器、客户端以及 NFS/Samba 存储网关组成;

创新互联自成立以来,一直致力于为企业提供从网站策划、网站设计、网站设计制作、成都网站建设、电子商务、网站推广、网站优化到为企业提供个性化软件开发等基于互联网的全面整合营销服务。公司拥有丰富的网站建设和互联网应用系统开发管理经验、成熟的应用系统解决方案、优秀的网站开发工程师团队及专业的网站设计师团队。

GlusterFS 特点:

扩展性和高性能;
高可用性;
全局统一命名空间;
弹性卷管理;
基于标准协议

模块化堆栈架构

模块化,堆栈式的结构
通过对模块的组合,实现复杂的功能

KVM+GFS分布式文件系统高可用群集

GlusterFS工作原理(流程)

KVM+GFS分布式文件系统高可用群集

弹性 HASH 算法:

通过 HASH 算法得到一个32位的整数;
划分为 N 个连接的子空间,每个空间对应一个 Brick;

弹性 HASH 算法的优点:

保证数据平均分布在每一个 Brick 中;
解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈。

GlusterFS 的卷类型:

(1)分布式卷:

没有对文件进行分块处理;
通过扩展文件属性保存 HASH值;
支持的底层文件系统有 ext3 、ext4 、ZFS 、XFS等

特点:

文件分布在不同的服务器,不具备冗余性;
更容易和廉价地扩展卷的大小;
单点故障会造成数据丢失;
依赖底层的数据保护。

(2)条带卷:

根据偏移量将文件分为 N 块(N个条带节点),轮询的存储在每个 Brick Server 节点;
存储大文件时,性能尤为突出;
不具备冗余性,类似 raid0

特点:

数据被分割成更小块分布到块服务器群中的不同条带区;
分布减少了负载且更小的文件加速了存取的速度;
没有数据冗余

(3)复制卷:

同一个文件保存一份或多分副本;
复制模式因为要保存副本,所以磁盘利用率较低;
多个节点上的存储空间不一致,那么将安装木桶效应取最低节点的容量作为该卷的总容量

特点:

卷中所有的服务器均保存一个完整的副本;
卷的副本数量可由客户创建的时候决定;
至少由两个块服务器或更多服务器;
具备容灾性。

(4)分布式条带卷:

兼顾分布式和条带卷的功能;
主要用于大文件访问处理;
至少最少需要 4 台服务器。

(5)分布式复制卷:

兼顾分布式卷和复制卷的功能;
用于需要冗余的情况下

原理:

KVM+GFS分布式文件系统高可用群集

实验环境

node1 192.168.13.128
node2 192.168.13.129
node3 192.168.13.130
node4 192.168.13.131
kvm    192.168.13.133

node节点服务器添加一块硬盘

KVM+GFS分布式文件系统高可用群集

kvm虚拟机上开启虚拟化功能

KVM+GFS分布式文件系统高可用群集

1,分别在node节点服务器和kvm服务器上配置本地hosts文件,安装必要的gluster软件

[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# su
[root@localhost ~]# hostnamectl set-hostname kvm
[root@node1 ~]# vim /etc/hosts   ##修改本地解析文件
192.168.13.128 node1
192.168.13.129 node2
192.168.13.130 node3
192.168.13.131 node4
192.168.13.133 kvm
##所有服务器上关闭防火墙
[root@node1 ~]# systemctl stop firewalld.service   ##关闭防火墙
[root@node1 ~]# setenforce 0
##分别复制配置文件到所有服务器上
[root@node1 ~]# scp /etc/hosts root@192.168.13.129:/etc/hosts  
[root@node1 ~]# scp /etc/hosts root@192.168.13.130:/etc/hosts 
[root@node1 ~]# scp /etc/hosts root@192.168.13.131:/etc/hosts 
[root@node1 ~]# scp /etc/hosts root@192.168.13.133:/etc/hosts 
##在所有node节点服务器上挂载,修改yum配置文件
[root@node1 ~]# mkdir /gfs
[root@node1 ~]# mount.cifs //192.168.100.3/LNMP-C7 /gfs/  ##挂载
[root@node1 ~]# cd /etc/yum.repo.d/
[root@node1 yum.repos.d]# mkdir bak    ##创建备份目录
[root@node1 yum.repos.d]# mv CentOS-* bak/
[root@node1 yum.repos.d]# vim abc.repo  ##所有node节点都需要配置yum源
[abc]
name=abc
baseurl=file:///gfs/gfsrepo   ##挂载目录下的gfsrepo路径
gpgcheck=0
enabled=1
[root@node1 yum.repos.d]# yum clean all && yum makecache ##建立元数据缓存
[root@node1 yum.repos.d]# yum install -y glusterfs glusterfs-server gluster-fuse glusterfs-rdma
##安装必要的软件
[root@node1 yum.repos.d]# systemctl start glusterd   ##开启gluster服务
[root@node1 yum.repos.d]# systemctl enable glusterd  ##开机自启动
[root@node1 yum.repos.d]# ntpdate ntp1.aliyun.com   ##同步时间

2,利用磁盘分区脚本进行分区挂载(所有node节点服务器)

[root@node1 yum.repos.d]# cd /opt/ 
[root@node1 opt]# vim disk.sh //挂载磁盘脚本,一键操作
#! /bin/bash
echo "the disks exist list:"
fdisk -l |grep '磁盘 /dev/sd[a-z]'
echo "=================================================="
PS3="chose which disk you want to create:"
select VAR in `ls /dev/sd*|grep -o 'sd[b-z]'|uniq` quit
do
        case $VAR in
        sda)
                fdisk -l /dev/sda
                break ;;
        sd[b-z])
                #create partitions
                echo "n
                                p

                                w"  | fdisk /dev/$VAR

                #make filesystem
                mkfs.xfs -i size=512 /dev/${VAR}"1" &> /dev/null
    #mount the system
                mkdir -p /data/${VAR}"1" &> /dev/null
                echo -e "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0\n" >> /etc/fstab
                mount -a &> /dev/null
                break ;;
        quit)
                break;;
        *)
                echo "wrong disk,please check again";;
        esac
done
[root@node1 opt]# chmod +x fdisk.sh   ##添加执行权限
[root@node1 opt]# ./fdisk.sh   ##执行脚本
[root@node1 opt]# df -hT  ##查看挂载信息

3,创建分布式复制卷

##添加存储信任池,只要在一台主机上添加其他三台节点即可
[root@node1 opt]# gluster peer probe node2 
[root@node1 opt]# gluster peer probe node3
[root@node1 opt]# gluster peer probe node4
[root@node1 opt]# gluster volume create models replica 2 node1:/data/sdb1 node2:/data/sdb1 node3:/data/sdb1 node4:/data/sdb1 force
##创建分布式复制卷
gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force
//创建分布式卷
gluster volume create stripe-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
//创建条带卷
gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force
//创建复制卷
gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
//创建分布式条带卷
[root@node1 opt]# gluster volume start models ##启动分布式复制卷

4,在kvm服务器上挂载创建好的分布式复制卷

[root@kvm ~]# mkdir /abc
[root@kvm ~]# mount.cifs //192.168.100.3/iOS /abc/
[root@kvm ~]# cp /abc/CentOS-7-x86_64-DVD-1708.iso /opt/ &  
##将centos7镜像复制到/opt/进行后台运行
[root@kvm ~]# cd /etc/yum.repo.d/
[root@kvm yum.repos.d]# mkdir bak    ##创建备份目录
[root@kvm yum.repos.d]# mv CentOS-* bak/
[root@kvm yum.repos.d]# scp -r root@192.168.13.128:/gfs/gfsrepo /  
##复制gfs源到根目录下
[root@kvm yum.repos.d]# vim abc.repo  ##所有node节点都需要配置yum源
[abc]
name=abc
baseurl=file:///gfsrepo   ##源文件的路径
gpgcheck=0
enabled=1
[root@kvm yum.repos.d]# umount /abc/  ##centos镜像复制完成后解挂载
[root@kvm yum.repos.d]# yum install -y glusterfs glusterfs-fuse  ##安装必要的软件
[root@kvm yum.repos.d]# mv bak/* ./   ##释放原有的yum源
[root@kvm yum.repos.d]# rm -rf bak/
[root@kvm yum.repos.d]# yum list    ##yum列表更新
[root@kvm yum.repos.d]# mkdir /kvmdata   ##创建挂载点
[root@kvm yum.repos.d]# mount.glusterfs node1:models /kvmdata 
##将分布式复制卷挂载到挂载点中
[root@kvm yum.repos.d]# df -hT  ##可以看出原来一共是160G现在是80G

5,在kvm服务器上部署虚拟化平台

[root@kvm ~]# yum groupinstall "GNOME Desktop" -y   ##桌面环境
yum install qemu-kvm -y   ##kvm内核
yum install qemu-kvm-tools -y ##调试工具
yum install virt-install -y  ##命令行工具
yum install qemu-img -y   ##组件,创建磁盘,启动虚拟机
yum install bridge-utils -y ##网络支持工具
yum install libvirt -y ##虚拟机管理工具
yum install virt-manager -y ##图形化管理虚拟机
[root@kvm ~]# egrep '(vmx|svm)' /proc/cpuinfo   ##看cpu是否支持
[root@kvm ~]# lsmod | grep kvm   ##检查kvm是否安装
[root@kvm ~]# systemctl start libvirtd  ##开启服务
[root@kvm ~]# systemctl status libvirtd
[root@kvm ~]# systemctl enable libvirtd ##开启自启
[root@kvm ~]# cd /etc/sysconfig/network-scripts/
[root@kvm network-scripts]# vim ifcfg-ens33 
##末行添加
BRIDGE=br0
[root@kvm network-scripts]# cp -p ifcfg-ens33 ifcfg-br0  ##复制配置文件为桥接
[root@kvm network-scripts]# vim ifcfg-br0
TYPE=Bridge    ##桥接模式
BOOTPROTO=static  ##静态
NAME=br0     ##名字为br0
DEVICE=br0
IPADDR=192.168.13.133   ##ip地址
NETMASKE=255.255.255.0   ##子网掩码
GATEWAY=192.168.13.1   ##网关
[root@kvm network-scripts]# service network restart   ##重启网卡
[root@kvm network-scripts]# cd /kvmdata/  ##切换到GFS挂载点
[root@kvm kvmdata]# mkdir kgc_disk kgc_iso  ##创建文件系统目录及镜像目录
[root@kvm kvmdata]# cp /opt/CentOS-7-x86_64-DVD-1708.iso kgc_iso/ &
##将镜像文件复制到镜像目录中

6,用kvm的图形化界面进行操作

[root@kvm ~]# virt-manager

KVM+GFS分布式文件系统高可用群集
KVM+GFS分布式文件系统高可用群集
KVM+GFS分布式文件系统高可用群集
KVM+GFS分布式文件系统高可用群集
KVM+GFS分布式文件系统高可用群集
KVM+GFS分布式文件系统高可用群集
KVM+GFS分布式文件系统高可用群集
KVM+GFS分布式文件系统高可用群集

7,查看node节点服务器磁盘上的信息

[root@node1 ~]# cd /data/sdb1/  ##分布在各个node节点服务器上
[root@node1 sdb1]# ls
kgc_disk  kgc_iso

谢谢阅读!

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


本文名称:KVM+GFS分布式文件系统高可用群集-创新互联
分享网址:http://azwzsj.com/article/iiccp.html