KVM+GFS分布式存储系统构建KVM高可用

Glusterfs 简介

​ GlusterFS 分布式文件系统是由Gluster公司的创始人兼首席技术官Anand BabuPeriasamy编写。一个可扩展的分布式文件系统,可用于大型的、分布式的、对大量数据进行访问的应用。它可运行于廉价的普通硬件上,并提供容错功能;也可以给大量的用户提供总体性能较高的服务。GlusterFS可以根据存储需求快速调配存储,内含丰富的自动故障转移功能,只.摒弃集中元数据服务器的思想。适用丁数据密集型任务的可扩展网络文件系统,且免费开源。

Glusterfs 特点
  • GlusterFS 体系结构,将计算、存储和 1/O 资源聚合到全局名称空间中,每台服务器都被视为节点,通过添加附加节点或向每个节点添加额外存储米扩展容量。通过在更多节点之间部署存储来提高性能。
  • GlusterFS支持基于文件的镜像和复制、分条、负载平衡、故障转移、调度、磁盘缓存、存储配额、卷快照等功能。
  • GlusterFS各客户端之间无连接,本身依赖于弹性哈希算法,而不是使用集中式或
  • 分布式元数据模型。
  • GlusterFS 通过各种复制选项提供数据可靠性和可用性,例如复制卷、分布卷。

KVM+GFS分布式存储系统构建KVM高可用

KVM+GFS部署

主机操作系统主机名/IP地址主要软件
服务器CentOS7.9node1/192.168.10.101GlusterFS
服务器CentOS7.9node2/192.168.10.102GlusterFS
服务器CentOS7.9node3/192.168.10.103GlusterFS
服务器CentOS7.9node4/192.168.10.104GlusterFS
服务器CentOS7.9kvm01/192.168.10.105KVMGluster-client
服务器CentOS7.9kvm02/192.168.10.106KVMGluster-client
部署GFS高可用分布式存储环境
#关闭各节点的防火墙与SELinux
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#为所有节点修改hosts文件
[root@node1 ~]# vim /etc/hosts
192.168.10.101 node1
192.168.10.102 node2
192.168.10.103 node3
192.168.10.104 node4
192.168.10.105 kvm01
192.168.10.106 kvm02
#所有GFS节点设置
#安装GFS 需使用阿里yum仓库
[root@node1 ~]# yum -y install centos-release-gluster 
[root@node1 ~]# vim /etc/yum.repos.d/CentOS-Gluster-9.repo 
#更改该行
baseurl=http://mirrors.aliyun.com/$contentdir/$releasever/storage/$basearch/gluster-9/
[root@node1 ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
#启动 GlusterFS
[root@node1 ~]# systemctl start glusterd 
[root@node1 ~]# systemctl enable glusterd.service
#以下操作仅为node1 
[root@node1 ~]# gluster peer probe node2 
peer probe: success. 
[root@node1 ~]# gluster peer probe node3 
peer probe: success. 
[root@node1 ~]# gluster peer probe node4 
peer probe: success.
#查看集群状态
[root@node1 ~]# gluster peer status
#创建 GlusterFS 分布式复制卷

#在所有节点创建/data 目录
[root@node1 ~]# mkdir /data
#创建分布式复制卷。 
[root@node1 ~]# gluster volume create models replica 2 node1:/data node2:/data node3:/data node4:/data force
#启动 models 卷 
[root@node1 ~]# gluster volume start models
#查看 models 卷
[root@node1 ~]# gluster volume info models
为KVM主机部署GFS存储
#KVM挂载 glusterfs 卷(所有kvm主机上都配置)
[root@kvm01 ~]# mkdir /kvmdata  #创建挂载目录
[root@kvm01 ~]# mount -t glusterfs node1:models /kvmdata/ 
#设置永久挂载
[root@localhost ~]# vi /etc/fstab
node1:models        /kvmdata     glusterfs  defaults,_netdev  0 0
#查看是否挂载成功
[root@kvm01 ~]# df
#在kvm01上安装虚拟机
[root@kvm01 ~]# cp CentOS-7-x86_64-GenericCloud-2009.qcow2 /kvmdata/test01.qcow2
#部署虚拟机
[root@kvm01 ~]# virt-customize -a /kvmdata/test01.qcow2 --root-password password:aptech  #设置密码
[root@kvm01 ~]# virt-install --name=test01 -r 1024 --vcpus=1 --disk device=disk,bus=virtio,path='/kvmdata/test01.qcow2',size=10 -w bridge:br0 --virt-type=kvm --boot hd
#配置kvm01和kvm02的无密码登录环境
[root@kvm01 ~]# ssh-keygen -t rsa
[root@kvm01 ~]# ssh-copy-id kvm02
[root@kvm01 ~]# ssh-copy-id kvm01
#kvm02上操作
[root@kvm02 ~]# ssh-keygen -t rsa
[root@kvm02 ~]# ssh-copy-id kvm01
[root@kvm02 ~]# ssh-copy-id kvm02
测试虚拟机迁移
#将test01虚拟机从kvm01主机迁移到kvm02主机
[root@kvm01 ~]# virsh migrate --persistent --undefinesource test01 qemu+ssh://kvm02/system
[root@kvm01 ~]# virsh list --all
#将test01从kvm02主机迁移到kvm01主机
[root@kvm01 ~]# virsh --connect=qemu+ssh://kvm02/system migrate --persistent --undefinesource test01 qemu+ssh://kvm01/system
创建虚拟机资源
#为配置文件创建共享目录
[root@kvm01 ~]# mkdir /kvmdata/config
#将test01的配置文件拷贝到共享目录
[root@kvm01 ~]# cp /etc/libvirt/qemu/test01.xml /kvmdata/config/
#取消定义test01虚拟机
[root@kvm01 ~]# virsh shutdown test01
[root@kvm01 ~]# virsh undefine test01
[root@kvm01 ~]# virsh list --all
#重新定义test01虚拟机
[root@kvm02 ~]# virsh define /kvmdata/config/test01.xml 
[root@kvm01 ~]# virsh start test01
[root@kvm01 ~]# virsh list --all
部署KVM群集
#该软件包下载也需要阿里yum源
[root@kvm01 ~]# yum -y install pcs pacemaker fence-agents-all
#设置密码 2个kvm节点需一致
[root@kvm01 ~]# passwd hacluster #设置密码为aptech
[root@kvm01 ~]# systemctl start pcsd
[root@kvm01 ~]# systemctl enable pcsd
#以下在kvm01上操作
#认证组成群集的节点
[root@kvm01 ~]# pcs cluster auth kvm01 kvm02 -u hacluster -p aptech 
#自动生成配置文件
[root@kvm01 ~]# pcs cluster setup --name cluster-kvm kvm01 kvm02
#启动群集
[root@kvm01 ~]# pcs cluster start --all
[root@kvm01 ~]# pcs cluster enable --all
#在任意一个kvm主机上查看pcs群集状态
[root@kvm01 ~]# pcs status
#关闭隔离设备的功能
pcs property set stonith-enabled=false
#向群集中添加资源
[root@kvm01 ~]# pcs resource create test01 VirtualDomain hypervisor="qemu:///system" config="/kvmdata/config/test01.xml" migration_transport=ssh meta allow-migrate="true" 
#查看当前群集状态
[root@kvm01 ~]# pcs status
test01	(ocf::heartbeat:VirtualDomain):	Started kvm01 #有该行表示资源添加成功
KVM群集验证
#KVM群集验证
#将其中一个节点关闭,查看群集状态
[root@kvm01 ~]# pcs cluster stop kvm01
[root@kvm02 ~]# pcs status
Online: [ kvm02 ]
OFFLINE: [ kvm01 ]
#查看后再开启,让群集正常运行
[root@kvm01 ~]# pcs cluster start kvm01
#在两台kvm主机上分别查看虚拟机状态
#kvm01的状态
[root@kvm01 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 6     test01                         running

#kvm02的状态
[root@kvm02 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
#删除资源test01的约束
[root@kvm01 ~]# pcs constraint		##查询限制情况,如下显示结果为无限制
Location Constraints:
Ordering Constraints:
Colocation Constraints:
Ticket Constraints:
[root@kvm01 ~]# pcs resource clear test01 #如果 : 号后有内容则执行该命令
#手动迁移
[root@kvm01 ~]# pcs resource move test01 
#kvm01上查看状态
[root@kvm01 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     test01                         关闭
 #查看状态发现test01运行在kvm02上
 [root@kvm01 ~]# pcs status
 test01	(ocf::heartbeat:VirtualDomain):	Started kvm02
 #kvm02上查看状态
 [root@kvm02 ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 2     test01                         running
 #将kvm02挂起,模拟故障
 #查看kvm01中的状态 发现test01 故障转移回到kvm01了
 [root@kvm01 ~]# pcs status
  test01	(ocf::heartbeat:VirtualDomain):	Started kvm01
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
大学生参加学科竞赛有着诸多好处,不仅有助于个人综合素质的提升,还能为未来职业发展奠定良好基础。以下是一些分析: 首先,学科竞赛是提高专业知识和技能水平的有效途径。通过参与竞赛,学生不仅能够深入学习相关专业知识,还能够接触到最新的科研成果和技术发展趋势。这有助于拓展学生的学科视野,使其对专业领域有更深刻的理解。在竞赛过程中,学生通常需要解决实际问题,这锻炼了他们独立思考和解决问题的能力。 其次,学科竞赛培养了学生的团队合作精神。许多竞赛项目需要团队协作来完成,这促使学生学会有效地与他人合作、协调分工。在团队合作中,学生们能够学到如何有效沟通、共同制定目标和分工合作,这对于日后进入职场具有重要意义。 此外,学科竞赛是提高学生综合能力的一种途径。竞赛项目通常会涉及到理论知识、实际操作和创新思维等多个方面,要求参赛者具备全面的素质。在竞赛过程中,学生不仅需要展现自己的专业知识,还需要具备创新意识和解决问题的能力。这种全面的综合能力培养对于未来从事各类职业都具有积极作用。 此外,学科竞赛可以为学生提供展示自我、树立信心的机会。通过比赛的舞台,学生有机会展现自己在专业领域的优势,得到他人的认可和赞誉。这对于培养学生的自信心和自我价值感非常重要,有助于他们更加积极主动地投入学习和未来的职业生涯。 最后,学科竞赛对于个人职业发展具有积极的助推作用。在竞赛中脱颖而出的学生通常能够引起企业、研究机构等用人单位的关注。获得竞赛奖项不仅可以作为个人履历的亮点,还可以为进入理想的工作岗位提供有力的支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值