本案例主要使用之前章节所学的 KVM 及 GlusterFS 技术,结合起来从而实现 KVM 高可用。利用 GlusterFS分布式复制卷,对KVM 虚拟机文件进行分布存储和冗余。分布式复制卷主要用于需要冗余的情况下把一个文件存放在两个或两个以上的节点,当其中一个节点数据丢失或者损坏之后,KVM 仍然能够通过卷组找到另一节点上存储的虚拟机文件,以保证虚拟机正常运行。当节点修复之后,GlusterFS会自动同步同一组卷组里面有数据的节点数据。
Glusterfs 简介
GlusterFS 分布式文件系统是由 Gluster 公司的创始人兼首席技术官 Anand BabuPeriasamy 编写。一个可扩展的分布式文件系统,可用于大型的、分布式的、对大量数据进行访问的应用。它可运行于廉价的普通硬件上,并提供容错功能;也可以给大量的用户提供总体性能较高的服务。GlusterFs可以根据存储需求快速调配存储,内含丰富的自动故障转移功能,且摒弃集中元数据服务器的思想。
Glusterfs 特点
GlusterFS 体系结构,将计算、存储和 IO 资源聚合到全局名称空间中,每台服务器都被视为节点,通过添加附加节点或向每个节点添加额外存储来扩展容量。通过在更多节点之间部署存储来提高性能。
GlusterFS 支持基于文件的镜像和复制、分条、负载平衡、故障转移、调度、磁盘缓存、存储配额、卷快照等功能。
GlusterFs 各客户端之间无连接,本身依赖于弹性哈希算法,而不是使用集中式或分布式元数据模型。
GlusterFS通过各种复制选项提供数据可靠性和可用性,例如复制卷、分布卷。
1.案例环境
2.案例需求
(1)部署 GlusterFS 文件系统
(2)实现 KVM 虚拟主机不会因宿主机宕机而宕机
3.案例实现思路
(1)安装 KVM。
(2)所有节点部署 GlusterFS。
(3)客户端挂载 GlusterFS
(4)KVM 使用挂载的 GlusterFS 目录创建虚拟机。
一:部署GFS高可用分布式存储环境
1:安装部署 KVM 虚拟化平台
2:部署 GlusterFS
在所有节点上执行如下命令:
(1)关闭防所有节点的防火墙、SELiunx
(2)编写 hosts 文件
(3)安装软件
注意:先设置阿里yum仓库
(4)启动 GlusterFS
在所有节点Gluster执行以下操作
(5)在 node1 上添加所有节点
(6)查看集群状态
3:创建 GlusterFS 分布式复制卷
二:为KVM主机部署GFS存储
1:KVM挂载 glusterfs 卷(所有kvm主机上都配置)
(1)安装 glusterfs 客户端软件。
(2)创建挂载目录,并挂载 models 卷。
(3)查看挂载卷。
2:在kvm01上安装虚拟机
(1)拷贝qcow2磁盘文件
将实验用到的系统镜像上传到KVM主机的root家目录中。这里直接使用CentOS官方提供的qcow2格式的系统镜像(CentOS-7-x86_64-GenericCloud-2009.qcow2),这个镜像可以直接部署到kvm或openstack的平台中。
(2)部署虚拟机
备注:
该工具提供了virt的高级命令,其中有一个virt-customize命令,可以为系统镜像设置密码。
备注:
--disk:指定存储设备及其属性
device:设备类型,如cdrom、disk或floppy等,默认为disk;
bus:磁盘总线类型,其值可以为ide、scsi、usb、virtio或xen
--virt-type:使用的hypervisor(虚拟机监视器),如kvm、qemu、xen等
--boot cdrom,hd,network:指定引导次序;
(3)登录测试
三:测试实时迁移环境
1:配置kvm01和kvm02的无密码登录环境
2:将test01虚拟机从kvm01主机迁移到kvm02主机
备注:
迁移成功后,在kvm01主机就没有了test01的资源
3:查看kvm02主机上的虚拟机状态
4:将test01从kvm02主机迁移到kvm01主机
四:创建虚拟机资源
1:为配置文件创建共享目录
2:将test01的配置文件拷贝到共享目录
3:取消定义test01虚拟机
4:重新定义test01虚拟机
五:部署群集
1:群集组件的安装(kvm01和kvm02都安装)
设置好阿里的基础源和epel扩展源
备注:
Pacemaker 是一个集群管理器。它利用OpenAIS或 heartbeat提供的消息和成员能力,由辅助节点和系统进行故障检测和回收,实现性群集服务(亦称资源)的高可用性。
Fence agent是集群管理中的一个概念,用于在发生电源故障或其他故障时确保集群的稳定性。
pcs 是集群管理的一个守护进程,利用pcs提供的工具可以对集群环境进行状态的管理。
备注:
两台kvm主机的密码要一致(本案例设置的是aptech)
2:认证组成群集的节点(只在kvm01上操作)
3:自动生成配置文件(只在kvm01上操作)
4:启动群集(只在kvm01上操作)
备注:
enable:将群集设置为开机自启
5:在任意一个kvm主机上查看pcs群集状态
6:将其中一个节点关闭,查看群集状态
在另一个节点查看状态
7:查看后再开启,让群集正常运行
8:关闭隔离设备的功能(每个设备都执行)
备注:
测试环境用的 VMware的环境,没有隔离设备,必须要关闭,否则无法实现高可用
9:向群集中添加资源
备注
meta allow-migrate="true":允许迁移模式
10:查看当前群集状态
六:KVM群集验证
1:在两台kvm主机上分别查看虚拟机状态
(1)kvm01的状态
注意:此时虚拟机在kvm01
2:删除资源test01的约束
清除某个 pcs 资源只能在某个主机上运行的限制
备注:
如果冒号后没有任何信息,表示没有约束,如果有约束会有警告提示
constraint(限制)
当把虚拟机迁移到了另一台主机,会出现约束,要想将虚拟机迁移回来,需要先清除约束
3:手动迁移
备注:
会自动选择其他节点进行迁移
4:kvm01上查看状态
5:kvm02上查看状态
备注:
迁移后,test01运行在kvm02上