当前位置: 首页 > news >正文

KVM虚拟机迁移:无缝迁徙,重塑云上未来

  •  作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注
  •  座右铭:   云端筑梦,数据为翼,探索无限可能,引领云计算新纪元
  •  个人主页:团儿.-CSDN博客

目录

前言:

正文:

 虚拟机迁移:

热迁移步骤:

1.开起两台图形化宿主机

2.搭建NFS服务:192.168.8.11

3.两台kvm挂载nfs共享

4.复制要迁移的虚拟机xml文件和qcow2文件到/nfs

5.取消原先的虚拟机,重新定义新的虚拟机

6.kvm主机做ssh互信

两边互信测试:

7.两台kvm修改hosts

8.qemu连接第二台kvm,热迁移

kvm调优

1.cpu优化

2.内存优化

    查看虚拟机内存限制:

    设置虚拟机最大内存:

3.磁盘I/O优化

    查看虚拟机权重:

    修改虚拟机权重:

    设置虚拟机的读写速度:

4.系统调优工具tuned/tuned-adm

查看当前系统优化方案

   显示所有优化方案

延迟性能调试的服务器配置,以提高功耗 为代价优化确定性性能

吞吐性能调整的服务器profile。如果系统没有企业级存储,则建议使用这个 profile

企业级服务器配置中使用这个profile,其中包括电池备份控制程序、缓存保护 及管理磁盘缓存

根据enterprise-storage配置,virtual-host还可减少可置换的虚拟内存,并启 用更多集合脏页写回。


前言:

随着云计算与虚拟化技术的飞速发展,KVM(Kernel-based Virtual Machine)作为Linux内核中的原生虚拟化解决方案,正逐渐成为企业IT架构中的核心组件。KVM不仅提供了高效、安全的虚拟化环境,更以其强大的可扩展性和灵活性,满足了企业对于资源优化和业务连续性的双重需求。

然而,在日益复杂的IT环境中,如何确保虚拟机的灵活调度与高效迁移,成为了企业面临的一大挑战。KVM虚拟机迁移技术,正是应对这一挑战的有力武器。它允许企业在不中断服务的情况下,将虚拟机从一台物理服务器迁移到另一台,无论是为了负载均衡、硬件升级,还是灾难恢复,都能轻松应对。

本文将深入探讨KVM虚拟机迁移的核心原理、技术实现以及最佳实践,带您领略这一技术如何重塑数字世界的灵活边界,让企业在瞬息万变的商业环境中保持领先。无论您是虚拟化技术的初学者,还是经验丰富的IT专家,都能从中获得宝贵的见解与启示。


正文:

 虚拟机迁移:

    冷迁移:关闭虚拟机,把虚拟机的配置和磁盘文件移动到其他kvm主机重新定义虚拟机
    热迁移: 把配置和磁盘文件放到共享存储,在开机状态下迁移到其他kvm主机,业务不中断

热迁移步骤:

1.开起两台图形化宿主机

kvm:192.168.8.60
kvm2:192.168.8.70

2.搭建NFS服务:192.168.8.11

yum install nfs-utils rpcbind -y
mkdir /nfsdir
vim /etc/exports
/nfsdir *(rw,no_root_squash,sync)    
systemctl restart nfs rpcbind

3.两台kvm挂载nfs共享

mkdir /nfs
mount -t nfs 192.168.8.11:/nfsdir /nfs

4.复制要迁移的虚拟机xml文件和qcow2文件到/nfs

cp /etc/libvirt/qemu/generic.xml /nfs
cp /kvm_store/generic.qcow2 /nfs
cd /nfs
 vim generic.xml 
<devices>
<source file=’/nfs/generic.qcow2’/>

 

5.取消原先的虚拟机,重新定义新的虚拟机

virsh undefine genericcd /nfs 
virsh define generic.xmlvirsh start generic

6.kvm主机做ssh互信

ssh-keygen 
cd /root/.ssh
mv id_rsa.pub  authorized_keys
scp -r /root/.ssh  root@192.168.8.70:/root

两边互信测试:

    ssh 192.168.8.70 hostnamessh 192.168.8.60 hostname


7.两台kvm修改hosts

cat >> /etc/hosts << EOF
192.168.8.60   kvm01
192.168.8.70   kvm02
EOF


8.qemu连接第二台kvm,热迁移

测试:

在60上随意打开配置文件写入内容,迁移之后在第二台查看是否同步

 注:报错提醒,两台均需安装openssh-askpass 

成功 


kvm调优

1.cpu优化

    虚拟机的vcpu,不允许超出物理cpu个数

2.内存优化

    KSM(kernel samepage merging,相同页合并)
    服务:ksm和ksmtuned
    启用:echo '1' > /sys/kernel/mm/ksm/run 

    配置文件:/etc/ksmtuned.conf 
    ksmtuned会一直保持循环执行,以调节ksm服务运行。 
    pages_shared文件记录了KSM共享的总页面数; 
    pages_sharing文件中记录了当前共享的页面数。 
    每个页面的大小为4KB,可计算出共享内存为:4 * 页面数 = 内存大小(KB)。

    查看虚拟机内存限制:

virsh memtune centos7.0

    设置虚拟机最大内存:

virsh memtune generic --hard-limit 1024000 --live

3.磁盘I/O优化

    设置在整体中的权重,范围在100-1000 
    限制具体的I/O


    查看虚拟机权重:

virsh blkiotune centos7.0

    修改虚拟机权重:

virsh blkiotune generic --weight 500

    设置虚拟机的读写速度:

virsh blkdeviotune --help

4.系统调优工具tuned/tuned-adm

    监控和收集系统各个组件的数据,并依据数据提供的信息动态调整系统设置,达到动态优化系统的目的   

 yum install tuned -ysystemctl start tuned

查看当前系统优化方案

tuned-adm active

  
显示所有优化方案

  tuned-adm list


延迟性能调试的服务器配置,以提高功耗 为代价优化确定性性能

latency-performance    

吞吐性能调整的服务器profile。如果系统没有企业级存储,则建议使用这个 profile

throughput-performance  

企业级服务器配置中使用这个profile,其中包括电池备份控制程序、缓存保护 及管理磁盘缓存

virtual-guest         

根据enterprise-storage配置,virtual-host还可减少可置换的虚拟内存,并启 用更多集合脏页写回。

同时推荐在虚拟化主机中使用这个配置,包括KVM和红帽企业版 linux虚拟化主机
        

virtual-host        tuned-adm profile virtual-host

修改优化方案为virtual-host


期待您的关注~

相关文章:

KVM虚拟机迁移:无缝迁徙,重塑云上未来

作者简介&#xff1a;我是团团儿&#xff0c;是一名专注于云计算领域的专业创作者&#xff0c;感谢大家的关注 座右铭&#xff1a; 云端筑梦&#xff0c;数据为翼&#xff0c;探索无限可能&#xff0c;引领云计算新纪元 个人主页&#xff1a;团儿.-CSDN博客 目录 前言&#…...

CSS常见适配布局方式

在网页设计中&#xff0c;布局是确保内容按预期显示的关键部分。CSS 提供了多种布局方式&#xff0c;每种方式都有其特定的用途和优势。以下是您提到的五种布局方式的详细解释&#xff1a; 1. 流式布局&#xff08;百分比布局&#xff09; 概述&#xff1a; 流式布局&#xf…...

ArkUI常用布局:构建响应式和高效的用户界面

在HarmonyOS应用开发中&#xff0c;ArkUI作为用户界面开发框架&#xff0c;提供了多种布局方式来帮助开发者构建响应式和高效的用户界面。本文将详细介绍ArkUI中的常用布局方式&#xff0c;包括线性布局、层叠布局、弹性布局、相对布局、栅格布局、列表和轮播布局&#xff0c;并…...

论面向服务架构设计及其应用

一、引言 企业应用集成&#xff08;Enterprise Application Integration&#xff0c;EAI&#xff09;是企业实现信息系统协同工作的关键途径&#xff0c;尤其是在当前多系统、多平台并存的企业环境下&#xff0c;集成需求愈发显著。面向服务架构&#xff08;Service-Oriented …...

HTML5 + CSS3 + JavaScript 编程语言学习教程

HTML5 CSS3 JavaScript 编程语言学习教程 欢迎来到这篇关于 HTML5、CSS3 和 JavaScript 的详细学习教程&#xff01;无论你是初学者还是有一定基础的开发者&#xff0c;这篇文章都将帮助你深入理解这三种技术的核心概念、语法和应用。 目录 HTML5 1.1 HTML5 简介1.2 HTML5 …...

Java日志脱敏——基于logback MessageConverter实现

背景简介 日志脱敏 是常见的安全需求&#xff0c;最近公司也需要将这一块内容进行推进。看了一圈网上的案例&#xff0c;很少有既轻量又好用的轮子可以让我直接使用。我一直是反对过度设计的&#xff0c;而同样我认为轮子就应该是可以让人拿去直接用的。所以我准备分享两篇博客…...

在 Ubuntu 22.04 上部署Apache 服务, 访问一张照片

要在 Ubuntu 22.04 上部署一张照片&#xff0c;使其可以通过 Apache 访问&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. 安装 Apache&#xff08;如果尚未安装&#xff09; 如果你还没有安装 Apache&#xff0c;可以使用以下命令&#xff1a; sudo apt update sud…...

从0学习React(10)

示例代码&#xff1a; const columns: ProColumns<API.BasicInfoItem>[] [{title: 设备编码,dataIndex: deviceCode,ellipsis: true,width: 40,},{title: 设备名称,dataIndex: deviceName,ellipsis: true,width: 50,},{title: 产线-工序,dataIndex: deviceClassifyName…...

Redis-结构化value对象的类型

文章目录 一、Redis的结构化value对象类型的介绍二、Redis的这些结构化value对象类型的通用操作查看指定key的数据类型查看所有的key判断指定key是否存在为已存在的key进行重命名为指定key设置存活时间pexpire与expire 查看指定Key的存活时间为指定key设置成永久存活 三、Redis…...

【QT】Qt对话框

个人主页~ Qt窗口属性~ Qt窗口 五、对话框2、Qt内置对话框&#xff08;1&#xff09;Message Box&#xff08;2&#xff09;QColorDialog&#xff08;3&#xff09;QFileDialog&#xff08;4&#xff09;QFontDialog&#xff08;5&#xff09;QInputDialog 五、对话框 2、Qt内…...

【计算机网络篇】数据链路层(14)虚拟局域网VLAN(概述,实现机制)

文章目录 &#x1f6f8;虚拟局域网VLAN&#x1f354;虚拟局域网VLAN的实现机制&#x1f95a;IEEE 802.1Q帧&#x1f95a;以太网交换机的接口类型&#x1f5d2;️例一&#xff1a;在一个交换机上不进行人为的VLAN划分&#xff0c;交换机各接口默认属于VLAN1且类型为Access的情况…...

伺服中的电子凸轮与追剪

一、机械凸轮 机械凸轮是一个具有曲线轮廓或凹槽的构件&#xff0c;它把运动特性传递给紧靠其边缘移动的推杆&#xff0c;推杆又带动机架做周期性运动。 凸轮的推杆位置跟随凸轮角度的周期性变化而变化&#xff0c;其运动特性与机械凸轮的外形相关&#xff0c;定义凸轮…...

Oracle 第22章:数据仓库与OLAP

第22章&#xff1a;数据仓库与OLAP 1. 数据仓库概念 数据仓库&#xff08;Data Warehouse, DW&#xff09; 是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合&#xff0c;用于支持管理决策。数据仓库中的数据通常来自不同的操作型系统或外部数据源&#xff0c;…...

在Ubuntu上安装TensorFlow与Keras

文章目录 1. 查看系统和Python版本信息1.1 查看Ubuntu版本信息1.2 查看Python版本信息 2. 安装pip2.1 下载get-pip.py2.2 运行get-pip.py2.3 查看pip版本 3. 安装Jupyter Notebook3.1 安装Jupyter Notebook3.2 运行Jupyter Notebook3.3 安装jupyter-core3.4 配置Jupyter Notebo…...

vue data变量之间相互赋值或进行数据联动

摘要&#xff1a; 使用vue时开发会用到data中是数据是相互驱动&#xff0c;经常会想到watch,computed&#xff0c;总结一下&#xff01; 直接赋值&#xff1a; 在 data 函数中定义的变量可以直接在方法中进行赋值。 export default {data() {return {a: 1,b: 2};},methods: {u…...

如何理解ref,toRef,和toRefs

1. ref ref 是 Vue 3 提供的一个用于创建响应式数据的 API。它可以用来创建简单的响应式变量&#xff0c;例如数字、字符串、布尔值或对象等。通过使用ref&#xff0c;当数据发生变化时&#xff0c;相关的组件视图会自动更新。 用法 创建响应式数据&#xff1a; import { ref …...

从单一到多元:揭秘 Hexo Diversity 主题的运行原理

揭秘 Hexo Diversity 主题的运行原理 一、 引言二、 Diversity 主题2.1 Hexo 控制台命令2.2 Hexo 核心 API2.3 运行原理2.3.1 多主题配置相关2.3.2 多主题执行指令 2.4 版本演进2.4.1 V1版本2.4.2 V2版本2.4.2.1 PC 端2.4.2.2 Phone 端 2.5 后续展望 三、 总结 一、 引言 众所…...

软考中级(系统集成项目管理工程师)案例分析计算题-笔记

案例分析计算题必拿分&#xff01;&#xff01; 1.成本进度管理 初中数学题&#xff0c;整了一堆缩写&#xff0c;容易给人绕晕 知道英文全称后就好理解了名词汇总&#xff1a; 英文缩写英文全称含义公式PVPlanned Value (计划值)按照计划到当前时间点需要花费的钱根据题目自…...

Docker打包自己项目推到Docker hub仓库(windows10)

一、启用Hyper-V和容器特性 1.应用和功能 2.点击程序和功能 3.启用或关闭Windows功能 4.开启Hyper-V 和 容器特性 记得重启生效&#xff01;&#xff01;&#xff01; 二、安装WSL2&#xff1a;写文章-CSDN创作中心https://mp.csdn.net/mp_blog/creation/editor/143057041 三…...

CesiumJS 案例 P20:监听鼠标滚轮、监听鼠标左键按下与松开、监听鼠标右键按下与松开、监听鼠标左击落点

CesiumJS CesiumJS 是一个开源的 JavaScript 库&#xff0c;它用于在网页中创建和控制 3D 地球仪&#xff08;地图&#xff09; CesiumJS 官网&#xff1a;https://www.cesium.com/ CesiumJS 下载地址&#xff1a;https://www.cesium.com/platform/cesiumjs/ CesiumJS API 文…...

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案

一、TRS收益互换的本质与业务逻辑 &#xff08;一&#xff09;概念解析 TRS&#xff08;Total Return Swap&#xff09;收益互换是一种金融衍生工具&#xff0c;指交易双方约定在未来一定期限内&#xff0c;基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...

rm视觉学习1-自瞄部分

首先先感谢中南大学的开源&#xff0c;提供了很全面的思路&#xff0c;减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接&#xff1a;https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架&#xff1a; 代码框架结构&#xff1a;readme有…...

【大模型】RankRAG:基于大模型的上下文排序与检索增强生成的统一框架

文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构C.1 指令微调阶段C.2 排名与生成的总和指令微调阶段C.3 RankRAG推理&#xff1a;检索-重排-生成 D 实验设计E 个人总结 A 论文出处 论文题目&#xff1a;RankRAG&#xff1a;Unifying Context Ranking…...

虚幻基础:角色旋转

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 移动组件使用控制器所需旋转&#xff1a;组件 使用 控制器旋转将旋转朝向运动&#xff1a;组件 使用 移动方向旋转 控制器旋转和移动旋转 缺点移动旋转&#xff1a;必须移动才能旋转&#xff0c;不移动不旋转控制器…...

k8s从入门到放弃之Pod的容器探针检测

k8s从入门到放弃之Pod的容器探针检测 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;容器探测是指kubelet对容器执行定期诊断的过程&#xff0c;以确保容器中的应用程序处于预期的状态。这些探测是保障应用健康和高可用性的重要机制。Kubernetes提供了两种种类型…...