KVM 高级功能部署

2024-08-31 17:36
文章标签 部署 功能 高级 kvm

本文主要是介绍KVM 高级功能部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

虚拟机迁移

        应用场景

                宿主机负载比较高时,可迁移走部分虚拟机

                迁移虚拟机集中于一台,节约资源

                升级宿主机硬件时,可先迁移走再进行升级

                可实现跨地域的远程迁移

        虚拟机迁移

                静态迁移:造成一端时间的服务停机

                动态迁移:不中断服务

                        基于共享存储的动态迁移

                        基于数据块的动态迁移

                        当传输速度大于数据变化量的时候适用,否则不适用

虚拟机优化:KSM内核同页合并

                相同内存页合并为单一内存页,并标识为“写时复制”

                KSM开启后,CPU使用量会有一定的提高

                不同虚拟机的相同类型操作系统或应用,有助于实现KSM

                适用KSM要保证有足够的交换分区

部署虚拟机迁移

        1.基础环境(4h4G)
        2. 在第一台和第二台机器上开启虚拟化在进行开机

#查看cpu是否支持虚拟化,前提必须开启虚拟化
cat /proc/cpuinfo | grep svm
        3.在两台kvm01 kvm02节点操作(部署虚拟机)

                1.切换yum源

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

                2.下载虚拟化的包

yum -y install qemu-kvm qemu-kvm-tools qemu-img bridge-utils libvirt virt-install virt-manager virt-viewersystemctl start libvirtd
systemctl enable libvirtd

                3.在宿主机上安装vnc的工具包(用来远程管理最小化的虚拟机)

                4.配置网卡

cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-br0
vi /etc/sysconfig/network-scripts/ifcfg-ens33

vi /etc/sysconfig/network-scripts/ifcfg-br0

                                重启网络服务(可能会终端ssh的连接,重新查网卡,重新连接即可)

systemctl restart network

                                 配置完后,ens33是没有IP的,br0会具有IP

                5.创建存放镜像的镜像目录

mkdir -p /data/{iso,store}

                 6.上传镜像到所创建的目录中

        4.kvm01中安装虚拟机
virt-install --name test01 -r 1024 --vcpus=1 --disk path=/data/store/test01.qcow2,size=10 -w bridge:br0 --virt-type=kvm --accelerate --autostart -c /data/iso/CentOS-7-x86_64-DVD-2207-02.iso --vnc --vncport=5901 --vnclisten=0.0.0.0
#--virt-type=kvm 不能开启虚拟化的功能,要删除这段
#-n 指定名字
#-r 指定内存大小
#--vcpus 指定虚拟CPU个数
#--disk 指定磁盘文件存放位置及大小
#-w 指定所使用的网桥
#--autostart 设置虚拟机在宿主机开机时启动
#--accelerate 内核加速
#-c 指定镜像文件
#--vncport 通过VNC Viewere连接的端口
#--vnclisten 通过VNC Viewere连接的IP

                1.打开vnc点击

                2.填写自己的IP,如图 点击ok

                3.双击打开,勾选选项,点击continue,会显示图形界面,按步骤安装即可 

                4.安装完成后点击重启,在xshell中查看状态,如果是关闭的,开启即可

virsh list --all

                5.完成后,进入vnc中,双击打开,即可看小化界面

                6.打开vnc,给新建的最小化虚拟机配置个IP

        5.测试kvm01迁移到kvm02中(静态迁移)

                1.在kvm01中关闭新建最小化虚拟机

                2. 在kvm01中生成配置文件,查询映像文件

                3.在kvm01中推送映像文件 

# 拷贝配置文件和磁盘文件到目标宿主机kvm02上面scp test01.xml 192.168.27.153:/etc/libvirt/qemu/ scp /data/store/test01.qcow2 192.168.27.153:/data/store/

                4.等待kvm传输完成后打开kvm02开始静态迁移

        6.删除虚拟机(在第二台虚拟机取消定义虚拟机) 

                关闭虚拟机后,取消定义

virsh undefine test01

        7.动态迁移

                1.在所有机器上安装nfs

yum -y install nfs-utils

                 2.在第三台机器上配置共享目录

mkdir /data
echo "/data 192.168.27.0/24(rw,sync,no_root_squash,no_all_squash)" > /etc/exports
#rw 读写访问
#sync 所有数据在请求时写入
#no_root_squash root用户具有根目录的完全访问权限
systemctl start nfs
systemctl start rpcbind
systemctl enable nfs
systemctl enable rpcbind
# 查看一下本地可挂载的目录
showmount -e localhost

                3.切换kvm01节点,传输文件到kvmnfs机器

scp /data/store/test01.qcow2 192.168.27.154:/data/

                4.在kvm01 kvm02中挂载共享目录

mount -t nfs 192.168.27.154:/data/ /data/store/

                        确保每个机器/data/store/下都有 test01.qcow2这个文件后,在kvm1中启动虚拟机

virsh start test01

                5.开始动态迁移

                        1.查询kvm01节点中的新建的虚拟机的IP,在kvmnfs节点ping这个IP

ping 192.168.27.156

                        2.在kvm01节点中开始迁移

virsh migrate --live --verbose test01 qemu+ssh://192.168.27.153/system tcp://192.168.27.153 --unsafe

                              在这过程中,在kvmnfs节点中的ping命令可以观察到,请求时间很长,甚至可能超时连接                          3.在第二台机器中生成配置文件()

virsh dumpxml test01 > /etc/libvirt/qemu/test01.xml
virsh define /etc/libvirt/qemu/test01.xml

这篇关于KVM 高级功能部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124552

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

linux部署NFS和autofs自动挂载实现过程

《linux部署NFS和autofs自动挂载实现过程》文章介绍了NFS(网络文件系统)和Autofs的原理与配置,NFS通过RPC实现跨系统文件共享,需配置/etc/exports和nfs.conf,... 目录(一)NFS1. 什么是NFS2.NFS守护进程3.RPC服务4. 原理5. 部署5.1安装NF

录音功能在哪里? 电脑手机等设备打开录音功能的技巧

《录音功能在哪里?电脑手机等设备打开录音功能的技巧》很多时候我们需要使用录音功能,电脑和手机这些常用设备怎么使用录音功能呢?下面我们就来看看详细的教程... 我们在会议讨论、采访记录、课堂学习、灵感创作、法律取证、重要对话时,都可能有录音需求,便于留存关键信息。下面分享一下如何在电脑端和手机端上找到录音功能

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

通过Docker容器部署Python环境的全流程

《通过Docker容器部署Python环境的全流程》在现代化开发流程中,Docker因其轻量化、环境隔离和跨平台一致性的特性,已成为部署Python应用的标准工具,本文将详细演示如何通过Docker容... 目录引言一、docker与python的协同优势二、核心步骤详解三、进阶配置技巧四、生产环境最佳实践