qemu

kvm常用操作

二次信任 提交于 2020-04-27 19:21:18
kvm常用操作 # 创建qcow2文件 qemu-img create -f qcow2 demo.qcow2 200G ​ # 挂载盘 attach-disk gz-demo /datafs2/vm/gz-demo/demo.qcow2 vdc --subdriver qcow2 --config ​ #修改内存大小 virsh setmaxmem 64G demo --config ​ #修改cpu核数 virsh setvcpus demo 8 --config ​ #重启 virsh reboot demo ​ #导出虚拟机配置文件 virsh dumpxml demo > demo.xml ​ #导入虚拟机配置文件 virsh define demo.xml ​ 虚拟机停机迁移步骤 从原宿主导出虚拟机配置文件. virsh dumpxml demo > demo.xml 目标宿主导入虚拟机配置文件 virsh define demo.xml 关闭原虚拟机,拷贝原有路径虚拟机文件,如果目录有变更,需要编辑修改磁盘文件路径 virsh shutdown demo scp demo ${detination}:/data/ 出现CPU不支持报错 error: unsupported configuration: guest and host CPU are not

KVM之二

淺唱寂寞╮ 提交于 2020-04-24 20:11:12
一、虚拟机磁盘的格式 1.1 根据存储数据方式的不同可以分为两种格式,一种是稀疏模式。一种是全镜像模式,全镜像模式无法做快照,IO层面是有qemu模拟的,CPU和内存是有KVM实现的,以下是KVM的功能 KVM 所支持的功能包括: 支持 CPU 和 memory 超分(Overcommit) 支持半虚拟化 I/O (virtio) 支持热插拔 (cpu,块设备、网络设备等) 支持实时迁移(Live Migration) 支持 PCI 设备直接分配和 单根I/O 虚拟化 (SR-IOV) 支持 内核同页合并 (KSM ) 支持 NUMA (Non-Uniform Memory Access,非一致存储访问结构 ) 1.2 KVM工具集合 libvirt:操作和管理 KVM 虚机的虚拟化 API,使用 C 语言编写,可以由 Python, Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,vmware,XEN,Hyper-v,LXC 等 Hypervisor。 Virsh:基于 libvirt 的 命令行工具 (CLI) Virt-Manager:基于 libvirt 的 GUI 工具 virt-v2v:虚机格式迁移工具 virt-* 工具:包括 Virt-install (创建KVM虚机的命令行工具), Virt-viewer (连接到虚机屏幕的工具)

Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核

為{幸葍}努か 提交于 2020-04-18 05:11:20
Qemu搭建ARM vexpress开发环境(二)----通过u-boot启动Linux内核 标签(空格分隔): Qemu ARM Linux 在上文《 Qemu搭建ARM vexpress开发环境(一) 》中已经简单讲述了通过Qemu模拟直接启动Linux内核,并挂在SD卡根文件系统的方法,这种方法是直接启动内核,与实际应用中ARM板的启动方式:u-boot、kernel、rootfs有些不同。现在就来讲述下通过Qemu搭建通过u-boot启动Linux内核并挂载根文件系统的方法。 1. 开发环境简述 嵌入式系统要正常运行,应该包含:u-boot、kernel、rootfs、appfs。这几部分在ARM开发板Flash上的位置关系应该类似于下图所示: BootLoader BootParameters Kernel Rootfs Appfs rootfs可以添加到开发板的Flash,也可以不用添加到开发板,而是部署到PC机上,开发板在运行完kernel,要挂载rootfs时,可以通过NFS网络挂载到设定好的PC机上的rootfs根文件系统上(下一篇文章《Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统》会详细讲解NFS网络挂载根文件系统的具体操作方法)。 2. 准备u-boot 用来使用u-boot启动加载Linux内核 2.1 下载u-boot 从

Centos 6.8安装配置KVM

ε祈祈猫儿з 提交于 2020-04-16 12:46:32
【推荐阅读】微服务还能火多久?>>> 一、检查计算机CPU虚拟化 grep '{vmx|svm}' /proc/cpuinfo 二、安装KVM相关软件包 [root@hostname ~]#yum install -y libvirt-client #libvirt客户端,最主要的的功能之一就是在宿主机关机时通知虚拟机也关机。 [root@hostname ~]#yum install -y gpxe-roms-qemu #虚拟机iPXE启动固件,支持虚拟机网络启动。 [root@hostname ~]#yum install -y libvirt-python #libvirt为python提供的api。 [root@hostname ~]#yum install -y python-virtinst #一套python的虚拟机安装工具。 [root@hostname ~]#yum install -y qemu-kvm #kvm在用户控件运行的程序。 [root@hostname ~]#yum install -y virt-manager #基于libvirt的图像化虚拟机管理软件。 [root@hostname ~]#yum install -y libvirt #用于管理虚拟机,它提供了一套虚拟机操作api。 [root@hostname ~]#yum install

Qemu中PCI设备透传(PCI-Assign)源码分析

不打扰是莪最后的温柔 提交于 2020-04-14 16:22:57
【推荐阅读】微服务还能火多久?>>> 在网上看到很多人说 Qemu 的 PCI-Assign 透传不支持 IOMMU ,而 VFIO 透传却可以(还被当做一种优势进行推荐)。而 VFIO 跟 SRIOV 并非有必然联系,那就是说 VFIO 和 PCI-Assign 进本都是靠软件实现的了?既然都是软件实现的,为啥 PCI-Assign 不可以,而 VFIO 可以呢?这不科学啊!从来也没人说清楚这件事,到源码里看一下吧!(最后发现他们说的都是错的,网上无根据的文章不要乱信) PCI-Assign透传的基本使用步骤 随便在网上找一个 PCI-Assign 透传的使用方法: How to use 'pci pass-through' to run Linux in Qemu accessing real Ath9k adapter =============================================================================== # Boot kernel with 'intel_iommu=on' # Unbind driver from the device and bind 'pci-stub' to it $ echo "168c 0030" > /sys/bus/pci/drivers/pci-stub/new_id

Create a QEMU Bridge Using the Socket Networking Backend

北城以北 提交于 2020-04-12 18:41:21
问题 I am trying to create a bridge to an interface in my host, much like the Virtualbox's and VMWare's bridge adapters, in QEMU, using a combination of socket networking and a Python library called Scapy (essentially, relying on WinPcap/Npcap on Windows OSes or libpcap on Unix OSes behind the scenes). Here's the bridge script I created to connect the VLAN created by the socket network backend of QEMU to the outside interfaces: import argparse import scapy import threading import socket import

How do I get Qemu USB Passthrough to work for iPad / iPhone?

南笙酒味 提交于 2020-04-11 06:23:08
问题 I'm trying to setup a Mac OS virtual machine to do iPad development. The host system is Ubuntu 18.04, and I'm using the stock qemu packages from the Ubuntu repo. I've got a Mojave VM up and running using these instructions, and in the script to boot the VM, I've added this line: -device usb-host,vendorid=0x05ac,productid=0x12ab \ The devices in question are an iPad Air 2, and an iPad Mini 4, which seem to share the same product ids, according to lsusb. Here's the issue: when I boot into my

使用qemu和kgdb调试内核源码

人走茶凉 提交于 2020-04-07 11:34:51
kgdb文档: http://kernel.org/doc/htmldocs/kgdb.html 修改.config # CONFIG_DEBUG_RODATA is not set CONFIG_FRAME_POINTER=y CONFIG_KGDB=y CONFIG_KGDB_SERIAL_CONSOLE=y CONFIG_KGDB_KDB=y CONFIG_KDB_KEYBOARD=y #! /bin/sh #qemu-system-x86_64 -kernel kernel/bzImage -append "root=/dev/sda" -boot c -hda busybox.img -k en-us -s -S qemu-system-x86_64 -kernel kernel/bzImage -append "root=/dev/sda kgdboc=kms,kbd,ttyS0,115200 kgdbwait kgdbcon" -boot c -hda busybox.img -k en-us -serial tcp::1234,server gdb设置 gdb vmlinux set debug remote 1 开启远程调试 set architecture i386:x86-64:intel set remotebaud 115200 target remote

霸气de小男生 提交于 2020-04-06 13:09:14
UNIX诞生,1970年1月1日 • 发行版的名称/版本由发行方决定 – Red Hat Enterprise Linux 5/6/7 – Suse Linux Enterprise 12 – Debian Linux 7.8 – Ubuntu Linux 14.10/15.04 • 是一套完整Linux系统 – Linux内核 + 各种外围软件 • CentOS,社区企业操作系统 ________________________________________ 文件系统:在空间中,数据排列组合存储的规则 • 传统的MBR分区模式 – 1~4个主分区 – 0~3个主分区+1个扩展分区(n个逻辑分区) • 注意事项 – MBR分区表只能记录4个主分区,编号范围1-4 – 当有必要使用4个以上分区时,需要建立扩展分区(占 主分区编号),扩展分区最多只能有1个 – 扩展分区作为一个中间性质的容器,从其中再划分出 的分区空间即为逻辑分区 ________________________________________ • 典型的文件系统类型 – EXT4,第四代扩展文件系统,RHEL6系列默认 – XFS,高级日志文件系统,RHEL7系列默认 – SWAP,交换空间(虚拟内存) ________________________________________ 分区表示 hd,表示IDE设备

kvm冷热状态迁移

眉间皱痕 提交于 2020-03-25 05:14:14
KVM迁移 静态迁移(冷迁移) 对于静态迁移,你可以在宿主机上保存一个完成的客户机镜像快照,然后在宿主机中关闭或者暂停该客户机,然后将客户机的镜像文件复制到另一台宿主机中,使用在源主机中启动该客户机时的命令来启动复制过来的镜像。 动态迁移(热迁移) 如果宿主机和目的宿主机共享存储系统,则只需要通过网络发送客户机的vCPU执行状态,内存中的内容,虚机设备的状态到目的主机上。共享存系统指的时源和目的虚机的镜像文件目录是在一个共享的存储上的。 在基于共享存储系统时,KVM动态迁移的具体过程为: 1、迁移开始时,客户机依然在宿主机上运行,与此同时,客户机的内存页被传输到目的主机上。 2、QEMU/KVM 会监控并记录下迁移过程中所有已被传输的内存页的任何修改,并在所有内存页都传输完成后即开始传输在前面过程中内存页的更改内容。 3、QEMU/KVM 会估计迁移过程中的传输速度,当剩余的内存数据量能够在一个可以设定的时间周期(默认 30 毫秒)内传输完成时,QEMU/KVM 会关闭源宿主机上的客户机,再将剩余的数据量传输到目的主机上,最后传输过来的内存内容在目的宿主机上恢复客户机的运行状态。 4、至此,KVM 的动态迁移操作就完成了。迁移后的客户机尽可能与迁移前一致,除非目的主机上缺少一些配置,比如网桥等。 注意,当客户机中内存使用率非常大而且修改频繁时