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


期待您的关注~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1940.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

继续开始更新AI学习笔记——RAG技术

RAG技术&#xff1a; 1&#xff0c;读取文章&#xff0c;获得内容 2&#xff0c;分段成为chunks 3&#xff0c;向量化&#xff0c;形成向量数据库 4&#xff0c;用户问题&#xff0c;同样向量化 5&#xff0c;在向量库内部进行检索 6&#xff0c;检索获得有效文档&#x…

使用Netty实现一个简单的聊天服务器

✅作者简介&#xff1a;热爱Java后端开发的一名学习者&#xff0c;大家可以跟我一起讨论各种问题喔。 &#x1f34e;个人主页&#xff1a;Hhzzy99 &#x1f34a;个人信条&#xff1a;坚持就是胜利&#xff01; &#x1f49e;当前专栏&#xff1a;Netty &#x1f96d;本文内容&a…

链栈的基本操作实现

链栈的结构体定义 /*定义*/ typedef struct stacklnode{char data;struct stacklnode *next; }stacklnode,*linkstack; 初始化 /*初始化*/ void f1(linkstack *q){*qNULL; } 入栈 /*入栈*/ void f2(linkstack *q,char e ){linkstack p(linkstack)malloc(sizeof(stacklno…

c语言-常量和变量

文章目录 一、常量是什么&#xff1f;&#xff08;1&#xff09;整型常量&#xff1a;&#xff08;2&#xff09;实型常量&#xff1a;&#xff08;3&#xff09;字符常量&#xff1a;&#xff08;4&#xff09;字符串常量&#xff08;5&#xff09;地址常量 二、define 和 con…

UI设计软件全景:13款工具助力创意实现

选择恰当的UI设计工具对于创建美观且用户体验良好的应用程序界面至关重要。不同的APP功能可能需要不同的界面设计软件&#xff0c;但并非所有工具都需要精通&#xff0c;熟练掌握几个常用的就足够了。以下是13款APP界面设计软件&#xff0c;它们能够为你的团队提供绘制APP界面所…

mysql 8.0.39 Caused by: java.sql.SQLException: Illegal mix of collations 异常解决

java服务可以正常启动&#xff0c;页面发现查询报错Illegal mix of collations 报错信息&#xff1a; ### Cause: java.sql.SQLException: Illegal mix of collations (utf8mb4_general_ci,COERCIBLE) and (utf8mb4_0900_ai_ci,COERCIBLE) for operation ; uncategorized SQ…

C++友元类的分文件编写

在学习C的关于友元类的知识时&#xff0c;网课例程中是在main函数文件中编写实现&#xff0c;但是我们知道&#xff0c;一般情况下&#xff0c;类以及类的成员函数实现都是在不同文件中实现的&#xff0c;因此&#xff0c;我们会自然的想到友元类是如何在不同文件下编写实现的&…

vue2与vue3生命周期差异整理

1、vue3 与 vue2 生命周期对比 生命周期整体分为四个阶段&#xff0c;分别是&#xff1a;创建、挂载、更新、销毁&#xff0c;每个阶段都有两个钩子&#xff0c;一前一后。 生命周期Vue 2Vue 3说明创建阶段beforeCreatesetup开始创建组件之前,实例被创建&#xff0c;还没有初…

c语言之在结构体里面定义函数指针

还是在看redis3.0源码的时候&#xff0c;遇到如下问题&#xff1a; 这个时候我们回到list这个结构体的设计上面 首先我们必须要注意的是函数名字就可以看成指针地址。 所以下面我们写一个简单的实例看一下具体的用法&#xff1a; #include <stdio.h> #include <stdl…

代码随想录一刷——1.两数之和

当我们需要查询一个元素是否出现过&#xff0c;或者一个元素是否在集合里的时候&#xff0c;就要第一时间想到哈希法。 C&#xff1a; unordered_map class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int…

EDA二维码生成工具 V1.2

EDA二维码生成工具用于在原理图、PCB环境中生成矢量二维码&#xff0c;具有生成速度快、生成效率高的特点&#xff0c;支持中文字符、英文字符生成。 此工具可直接输出在原理图、原理图库文档、PCB、PCB库文档中&#xff0c;可同时输出多种格式&#xff0c;可在Altium …

鸿蒙生态崛起带来的机遇与挑战

目录 1.概述 2.生态崛起 2.1.鸿蒙生态的认知和了解 2.2.鸿蒙生态的崛起分析 2.3.开发者的机遇 2.4.华为开发者大会 3.鸿蒙生态开发的挑战 3.1.开发工具 3.2.技术难度 3.3.生态竞争 3.4.抓住机遇、应对挑战 4.鸿蒙生态未来发展趋势 4.1.发展趋势 4.2.18N 4.3.开发…

JavaCV 图像边缘检测 之 Sobel算子 算法

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

二百七十四、Kettle——ClickHouse中对错误数据表中进行数据修复(实时)

一、目的 在完成数据清洗、错误数据之后&#xff0c;需要根据修复规则对错误数据进行修复 二、Hive中原有代码 insert into table hurys_db.dwd_queue partition(day) selecta3.id,a3.device_no,a3.source_device_type,a3.sn,a3.model,a3.create_time,a3.lane_no,a3.lane_…

第2章 Android App开发基础

第 2 章 Android App开发基础 bilibili学习地址 github代码地址 本章介绍基于Android系统的App开发常识&#xff0c;包括以下几个方面&#xff1a;App开发与其他软件开发有什么不一 样&#xff0c;App工程是怎样的组织结构又是怎样配置的&#xff0c;App开发的前后端分离设计…

ARM base instruction -- csetm

Conditional Set Mask sets all bits of the destination register to 1 if the condition is TRUE, and otherwise sets all bits to 0. 如果条件为TRUE&#xff0c;则条件设置掩码将目标寄存器的所有位设置为1&#xff0c;否则将所有位设为0。 32-bit variant Applies w…

rom定制系列------小米8青春版定制安卓14批量线刷固件 原生系统

&#x1f49d;&#x1f49d;&#x1f49d;小米8青春版。机型代码platina。官方最终版为 12.5.1安卓10的版本。客户需要安卓14的固件以便使用他们的软件。根据测试&#xff0c;原生pixeExpe固件适配兼容性较好。为方便客户批量进行刷写。修改固件为可fast批量刷写。整合底层分区…

java项目之校园资料分享平台(springboot)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的校园资料分享平台。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 校园资料分享平台的主要…

Jmeter5.X性能测试

Jmeter5.X性能测试 文章目录 Jmeter5.X性能测试一、掌握Http基础协议1.1 浏览器的B/S架构和C/S架构1.2 HyperText Transfer Protocol 超文本传输协议1.3 超文本传输协议Http消息体拆分讲解1.4 HTTP的九种请求方法和响应码介绍1.5 Http请求头/响应头1.6 Http常见请求/响应头cont…

qt管理系统框架(好看界面、漂亮界面、好看的界面、漂亮的界面)

概述 最近一个项目用QT开发&#xff0c;然后找了美工帮设计了下界面。总算完工&#xff0c;后想一下干脆抽出一个基础框架&#xff0c;方便以后用。 功能 支持mysql、echarts。 支持加载动态权限菜单&#xff0c;轻松权限控制。 支持遮罩对话框、抽屉 支持开机启动动画界面 内…