QEMU Live-Migration Demo

2023-11-07 20:44
文章标签 demo live qemu migration

本文主要是介绍QEMU Live-Migration Demo,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们来做一个简单的迁移demo,两台机器的环境都是Centos7,虚拟化组件都是系统默认;步骤如下:

使用NFS做一个共享存储,setup nfs方法如下:

On server
service rpcbind start
service nfs start
service nfslock start/foo 10.1.10.100(rw,sync,no_root_squash,no_subtree_check,insecure)
exportfs -aOn client
service rpcbind start
firewall-cmd --add-service=nfs
firewall-cmd --add-service=rpc-bind
firewall-cmd --add-service=mountd

在迁移的两台机器上,创建相同的目录,例如:/media/nfs,然后分别进行挂载;

注意:我在测试的时候,其中一台作为nfs server,另外一台作为nfs client;做nfs server的那台使用了 127.0.0.1进行了挂载,如果直接使用本地目录,libvirt会报错:

error: Unsafe migration: Migration without shared storage is unsafe

创建虚拟机命令如下:

name=will1virt-install  --name=$name  --ram=$((16<<10))  --vcpus=8 \
--location=/media/disk0/VMs/CentOS-7-x86_64-DVD-2207-02.iso \
--os-type=linux \
--disk path=/media/disk1/VMs/${name}_sda.qcow2,format=qcow2,size=64 \
--console pty,target_type=serial --extra-args 'console=ttyS0,115200n8 serial' \
--network bridge=virbr0 --network user --graphics none

但是,在执行迁移时,报了如下错误:

error: Unsafe migration: Migration may lead to data corruption if disks use cache != none or cache != directsync

所以,使用virsh edit加入了cache=none

<driver name='qemu' type='qcow2' cache='none'/>

执行迁移的命令为:

virsh migrate will1 qemu+ssh://192.168.60.154/system tcp://192.168.60.154 --live --verbose

注意,如果没有tcp://192.168.60.154,在我的环境里回报错:

error: Unable to resolve address 'xxxxx' service '49152': Name or service not known

迁移成功之后:

virsh migrate will1 qemu+ssh://10.18.60.154/system tcp://10.18.60.154 --live --verbose 
root@192.168.60.154's password: 
Migration: [100 %]
virsh list --allId    Name                           State
-----------------------------------------------------     will0                          shut off-     will1                          shut off在另外一台机器上:
virsh list --allId    Name                           State
----------------------------------------------------32    will1                          running-     rocky9.2                       shut off-     test0                          shut off-     test1                          shut off

这篇关于QEMU Live-Migration Demo的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

linux 内核提权总结(demo+exp分析) -- 任意读写(四)

hijack_modprobe_path篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm     原理同hijack_prctl, 当用户执行错误格式的elf文件时内核调用call_usermod

linux 内核提权总结(demo+exp分析) -- 任意读写(三)

hijack_prctl篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   prctl函数: 用户态函数,可用于定制进程参数,非常适合和内核进行交互 用户态执行prctl函数后触发prctl系统

linux 内核提权总结(demo+exp分析) -- 任意读写(二)

hijack_vdso篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm     vdso: 内核实现的一个动态库,存在于内核,然后映射到用户态空间,可由用户态直接调用 内核中的vdso如果被修改

linux 内核提权总结(demo+exp分析) -- 任意读写(一)

cred篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   每个线程在内核中都对应一个线程结构块thread_infothread_info中存在task_struct类型结构体 struct t

linux 内核提权总结(demo+exp分析) -- ROP(二)

ret2usr CR4篇 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   smep: smep是内核的一种保护措施, 使得内核不可执行用户态代码 内核通过CR4寄存器的第20位来控制smep,

linux 内核提权总结(demo+exp分析) -- ROP(一)

基础ROP篇(linux 5.0.21) 本文转自网络文章,内容均为非盈利,版权归原作者所有。 转载此文章仅为个人收藏,分享知识,如有侵权,马上删除。 原文作者:jmpcall 专栏地址:https://zhuanlan.kanxue.com/user-815036.htm   内核提权与用户态攻击的区别 攻击流程 用户态攻击: 执行 system("/bin/sh") 获得shel

Linux 云计算底层技术之一文读懂 Qemu 架构

Qemu 架构概览 Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,我们最熟悉的就是能够模拟一台能够独立运行操作系统的虚拟机,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。 正因为 Qemu 是纯软件实现的,所有的指令都要经 Qemu 过一手,性能非常低,所以,在生产环境中,大多数的做法都是配合 KVM 来完成

实例demo理解面向接口思想

浅显的理解面向接口编程 Android开发的语言是java,至少目前是,所以理解面向接口的思想是有必要的。下面通过一个简单的例子来理解。具体的概括我也不知道怎么说。 例子: 现在我们要开发一个应用,模拟移动存储设备的读写,即计算机与U盘、MP3、移动硬盘等设备进行数据交换。已知要实现U盘、MP3播放器、移动硬盘三种移动存储设备,要求计算机能同这三种设备进行数据交换,并且以后可能会有新的第三方的

类codepen的实现可拖拽窗口demo

首先说下思想 flex或者其他布局方式,实现左右分割布局,主盒子宽度100%,左右布局中包含一个分割条(可在布局容器中,也可以单独定义)为分隔条绑定鼠标点击事件,为document绑定鼠标移动事件和鼠标放开事件,通过监听鼠标移动事件和上一个状态保存下来的鼠标位置作对比,判断当前鼠标移动方向(往左还是往右)然后计算当前鼠标位置和鼠标点击位置的距离,来计算左右容器的变化,然后通过dom的方式设置宽度

【VueJS】live-server 快速搭建服务 及 注意事项

本地开发常常需要搭建临时的服务,第一时间我们会想到用 http-server。 但现在流行修改文件浏览器自动刷新,这里可以使用 live-server 很简单就能启动一个看起来很专业的本地服务。 你只需要全局安装live-server: npm install -g live-server 并在项目根目录执行这条命令: PS E:\AblazeProject\Vue> live-serv