kvm+glusterfs+pcs分布式存储构建kvm高可用群集。

  • kvm+glusterfs+pcs分布式存储构建kvm高可用群集。

    • 高可用指能在短时间内自动完成故障转移,kvm在实现故障自动转移的方式如果要考虑速度那么基于共享存储的迁移方法无疑是最快的。而共享存储的高可用就可以用glusterfs来实现。

      • glusterfs可以利用分布式复制卷兼顾了性能与容错。其全局统一命名空间与无元数据架构也是不可多得的优势。

    • 话不多说进入实验

      • 拓扑

        • 目标1:部署glusterfs文件系统,实现kvm基于共享存储的动态迁移。

        • 目标2:实现kvm虚拟机主机的故障自动切换

          • 通过pcs实现

      • 部署glusterfs群集

        • 关闭所有节点的防火墙与内核安全机制

        • 修改hosts文件添加域名节点信息(全部节点)

          • 192.168.10.101 node1 192.168.10.102 node2 192.168.10.103 node3 192.168.10.104 node4 192.168.10.201 kvm01 192.168.10.202 kvm02

        • 联网安装glusterfs软件(全部节点)

          • yum -y install centos-release-gluster

            • 安装完成过后修改其yum仓库的配置文件,将国外源替换为国内源。

          • yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

            • 最后确保安装包在15个或以上

          • 所有glusterfs节点都启动该服务并永久启动

            • systemctl start glusterd.service && systemctl enable glusterd.service

        • 添加节点信息(单个节点)

          • gluster peer probe node2:以此类推,不添加自己的

          • 最后在其它节点能查看除自己外的其他节点

            • gluster peer status

        • 创建brick目录,为了方便本案例采用系统自带的,实际环境中要单独创建brick挂载目录。

          • mkdir /data

        • 创建分布式复制卷

          • gluster volume create models replica 2 node1:/data node2:/data node3:/data node4:/data force

        • 最后启动并查看卷信息

          • gluster volume start models

          • gluster volume info models

      • kvm实现基于共享存储的动态迁移

        • kvm服务器需要安装gluster客户端软件

          • yum -y install glusterfs glusterfs-fuse

        • 创建并挂载和永久挂载glusterfs目录

          • mkdir /kvmdata

          • mount -t glusterfs node1:models /kvmdata/

          • echo “node1:models /kvmdata glusterfs defaults,_netdev 0 0">>/etc/fstab

          • df -h 查看

        • 在kvm01上安装虚拟机

          • 准备好centos官方提供的qcow2格式的系统镜像

            • (CentOS-7-x86_64-GenericCloud-2009.qcow2)

          • 将其拷贝到共享目录中为了后续命令的方便进行重命名

            • cp CentOS-7-x86_64-GenericCloud-2009.qcow2 /kvmdata/test01.qcow2

          • 可以选择为该镜像文件设置root密码

            • virt-customize -a /kvmdata/test01.qcow2 --root-password password:aptech

          • 执行安装动作

            • 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

          • 最后利用virt-manager进行登录测试查看虚拟机是否能正常运行

        • 配置kvm01与kvm02的无密码登录环境两台机可同步进行

          • ssh-keygen -t rsa

          • ssh-copy-id kvm01

          • ssh-copy-id kvm02

        • 最后进行迁移测试,验证两端各自的迁移是否能成功

          • virsh migrate --persistent --undefinesource test01 qemu+ssh://kvm02/system

          • 查看状态

            • virsh list --all

          • 分别验证kvm01的迁移效果与kvm02的迁移效果

      • 实现高可用环境

        • 前提准备

          • 在共享目录中创建虚拟机资源目录,将配置文件也拷贝到共享资源目录

            • mkdir /kvmdata/config

            • cp /etc/libvirt/qemu/test01.xml /kvmdata/config/

              • 这一步利用导出也可以

                • virsh dumpxml test01 >/kvmdata/config

          • 重新定义虚拟机使之使用共享目录的配置文件

            • virsh shutdown test01

              • 关机才能被取消定义

            • virsh undefine test01

            • virsh define /kvmdata/config/test01.xml

            • virsh start test01

              • 最后启动并验证登录状态,要求不但是running状态,利用virt-manager要看到登录界面。

        • 群集管理工具部署

          • 如果要加入到该群集都需要安装该组件

          • 设置好阿里网络资源并安装软件包

            • yum -y install pcs pacemaker fence-agents-all

              • pacemaker

                • 一个集群管理器,利用openAIS或hearbeat提供的消息和成员能力,由辅助接点和系统进行故障检测和回收,实现资源的高可用性。

              • fence-agents-all

                • 集群管理的概念,发生电源故障或其他故障时确保集群的稳定运行。

              • pcs

                • 一个集群管理的守护进程,利用pcs提供的工具对集群配置以及状态进行管理。

          • 安装完毕后会自动生成一个hacluster的用户,需要为该用户设置密码,为后续加入集群做验证提供凭证。

            • passwd hacluster 本案例密码为:aptech

          • 最后启动该服务

            • systemctl enable pscd --now

          • 单节点操作

            • pcs cluster auth kvm01 kvm02 -u hacluster -p aptech

              • 加入集群认证

            • pcs cluster setup --name chluster-kvm kvm01 kvm02

              • 设定集群名称

            • 最后启动

              • pcs cluster start --all

                • 启动所有节点

              • pcs cluster enable --all

                • 所有节点开机自启

            • pcs status

              • 查看集群信息状态

            • 关闭设备隔离

              • pcs property set stonith-enabled=false

                • 当设备硬件不一样时,开启此功能可以忽略不同硬件带来的设备差异性

            • 添加资源

              • pcs resource create test01 VirtualDomain hypervisor=”qemu:///system“ config=”/kvmdata/config/test01.xml“ migration_transport=ssh meta allow-migrate=”true“

            • 再次查看资源状态

              • pcs status

                • 注意是否有资源

            • 迁移前的准备工作

              • 清除资源限制

                • pcs resource clear test01

                  • 清空针对test01的资源限制

                • pcsconstraint

                  • 查看资源限制

                    • Location Constraints: Ordering Constraints: Colocation Constraints: Ticket Constraints:

                      • 冒号后无内容表示没有资源限制

                • 当虚拟机迁移后会出现资源限制,因此要清除资源限制才能继续迁移。

            • 最后可以尝试验证迁移功能

              • pcs resource move test01

                • 手动迁移

              • 挂起运行虚拟机的主机验证是否会转移

                • 挂起后重新恢复虚拟机会显示还在运行,必须重启才能验证

复制以上内容到xmind即可实现条理性笔记。 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值