KVM+GFS分布式文件系统高可用群集
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,GlusterFS概述GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。开源的分布
千家信息网最后更新 2025年02月04日KVM+GFS分布式文件系统高可用群集
GlusterFS概述
GFS是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,并提供容错功能。它可以给大量的用户提供总体性能较高的服务。
开源的分布式文件系统;
由存储服务器、客户端以及 NFS/Samba 存储网关组成;
GlusterFS 特点:
扩展性和高性能;高可用性;全局统一命名空间;弹性卷管理;基于标准协议
模块化堆栈架构
模块化,堆栈式的结构通过对模块的组合,实现复杂的功能
GlusterFS工作原理(流程)
弹性 HASH 算法:
通过 HASH 算法得到一个32位的整数;划分为 N 个连接的子空间,每个空间对应一个 Brick;
弹性 HASH 算法的优点:
保证数据平均分布在每一个 Brick 中;解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈。
GlusterFS 的卷类型:
(1)分布式卷:
没有对文件进行分块处理;通过扩展文件属性保存 HASH值;支持的底层文件系统有 ext3 、ext4 、ZFS 、XFS等
特点:
文件分布在不同的服务器,不具备冗余性;更容易和廉价地扩展卷的大小;单点故障会造成数据丢失;依赖底层的数据保护。
(2)条带卷:
根据偏移量将文件分为 N 块(N个条带节点),轮询的存储在每个 Brick Server 节点;存储大文件时,性能尤为突出;不具备冗余性,类似 raid0
特点:
数据被分割成更小块分布到块服务器群中的不同条带区;分布减少了负载且更小的文件加速了存取的速度;没有数据冗余
(3)复制卷:
同一个文件保存一份或多分副本;复制模式因为要保存副本,所以磁盘利用率较低;多个节点上的存储空间不一致,那么将安装木桶效应取最低节点的容量作为该卷的总容量
特点:
卷中所有的服务器均保存一个完整的副本;卷的副本数量可由客户创建的时候决定;至少由两个块服务器或更多服务器;具备容灾性。
(4)分布式条带卷:
兼顾分布式和条带卷的功能;主要用于大文件访问处理;至少最少需要 4 台服务器。
(5)分布式复制卷:
兼顾分布式卷和复制卷的功能;用于需要冗余的情况下
原理:
实验环境
node1 192.168.13.128node2 192.168.13.129node3 192.168.13.130node4 192.168.13.131kvm 192.168.13.133
node节点服务器添加一块硬盘
kvm虚拟机上开启虚拟化功能
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 node1192.168.13.129 node2192.168.13.130 node3192.168.13.131 node4192.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=abcbaseurl=file:///gfs/gfsrepo ##挂载目录下的gfsrepo路径gpgcheck=0enabled=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/bashecho "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` quitdo 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";; esacdone[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=abcbaseurl=file:///gfsrepo ##源文件的路径gpgcheck=0enabled=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-br0TYPE=Bridge ##桥接模式BOOTPROTO=static ##静态NAME=br0 ##名字为br0DEVICE=br0IPADDR=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
7,查看node节点服务器磁盘上的信息
[root@node1 ~]# cd /data/sdb1/ ##分布在各个node节点服务器上[root@node1 sdb1]# lskgc_disk kgc_iso
谢谢阅读!
服务
服务器
文件
分布式
节点
数据
条带
目录
磁盘
存储
配置
功能
镜像
系统
冗余
副本
工具
特点
空间
必要
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全应急预案 商务
共享单车用什么软件开发
网络安全宣传感想
手机主板软件开发
广东新品服务器服务商
成都服务器总代
软件开发高端培训学校
金现代软件开发留那好
现在比较火的软件开发语音
mysql 查看服务器
常见的网络安全类型
网络技术各种术语
数据库的扩展名是
北京惠普服务器虚拟化定制
数据库处理机制有哪些
数据库事务范式
进口网络服务器机柜哪家好
nosql数据库设计工具
开源邮件服务器软件
代理产品查询云端数据库
高级软件开发面试题java
全球恐怖主义数据库gtd
北京风诺网络技术中心
app软件开发培训中心
易门县要五年服务器吗
海南通用软件开发市场报价
数据库项目经理年薪一般多少
上传图片到指定服务器
网络安全协会工作内容
数据库技术产生与发展