kvm

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

ZStack 3.6.0,支持云主机从任意KVM云平台在线迁移至ZStack

怎甘沉沦 提交于 2020-04-07 15:19:10
经常在新闻里听到“企业号航母”并不是新船,它是1962-2012年服役的,其核心功能已经稳定运行了50年。铁打的营盘流水的兵,船上的人经常变,电控系统和操作流程,既在尊重传统,也在持续演进之中。 体验完ZStack 3.6.0版本的更新,我看到了一个新兴商业软件的成熟过程。 如果用一个航母战斗群来比拟一个私有云计算平台,ZStack从软件功能上已经完成了“造一艘航母”的过程,这几次更新主要是“完善管理和人为操作的软装”,说通俗点就是让练兵更容易。 核心功能稳定 ZStack 很久没有发布核心功能更新和关键BUG漏洞的补丁了,这并不是ZStack黔驴技穷,而是私有云主机产品已经很完善了;我接触过十几个ZStack的客户,大家也都没反馈有什么BUG。 这里既有虚拟化软件二十年的经验积累,也是ZStack研发测试团队的军功,还是“私有云/专有云”比公有云更稳定可靠的明证。 每当有朋友想了解云主机该有哪些功能,我并不会让他们盲目上手做实验,而是推荐他们看ZStack的产品说明书,只要是围绕云主机开展的功能,1000多页说明书里应有尽有。 严谨灵活的权限和流程 企业软件的买单决策人是项目负责人、CIO和CEO,在标准软件功能雷同以后,企业更看重商业软件和自身的管理流程是否匹配。企业的权限设计是以活动目录AD为事实标准的,ZStack是我见到最用心去兼容企业权限设计的私有云软件。

KVM之KVM安装部署

让人想犯罪 __ 提交于 2020-03-27 16:34:43
一. 准备工作: 系统环境: centos 7.7 关闭selinux: [root@localhost ~]# setenforce 0 * [root@localhost ~]# sed -ri 's/^(SELINUX=). /\1disabled/g' /etc/selinux/config [root@localhost ~]# getenforce ** Disabled 2.关闭防火墙: [root@localhost ~]# systemctl status firewalld firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled) Active: inactive (dead) since Tue 2020-03-03 15:04:25 CST; 3 weeks 1 days ago Docs: man:firewalld(1) Process: 907 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0

kvm冷热状态迁移

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

qemu PCIe总线结构

三世轮回 提交于 2020-03-21 02:33:53
3 月,跳不动了?>>> 本文是写这个章节的一些边角料: source/认识鲲鹏920:一个服务器SoC/设备和设备总线.rst · Kenneth-Lee-2012/从鲲鹏920了解现代服务器实现和应用_公开 - 码云 Gitee.com ,由于没法放到那个文档的主逻辑中,我放在这里。(顺便感慨说一句,你看我在那里写一句话,可能我在背后要确认两三天。正经写点东西还是很难的) 本文用3.1.50源代码版本作为参考。 qemu可以虚拟机模拟一个虚拟的PCIe的总线系统(关于PCIe的基本原理可以看前面的这个链接)。具体模拟成的样子在具体模拟的那个机器上上定义,比如我在PC上用这个参数启动虚拟机: ~/work/qemu-run-arm64/qemu/aarch64-softmmu/qemu-system-aarch64 \ -s -cpu cortex-a57 -machine virt \ -nographic -smp 2 -m 1024m -kernel arch/arm64/boot/Image \ -append "console=ttyAMA0" mainchine是ARM平台virt,它的机器定义在就在hw/arm/virt.c中。所以它会有一个默认的PCI结构。默认是这样的: 那么如果你要在其中插入一个PCIe设备,方法就是用这个参数: -device <dev>[

kvm虚拟化之kvm虚拟机克隆

两盒软妹~` 提交于 2020-03-20 22:11:30
kvm虚拟机的克隆分为两种情况,本文也就通过以下两种情况进行克隆,克隆虚拟机为OEL5.8X64。 (1) KVM主机本机虚拟机直接克隆。 (2) 通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移)。 1. 本机虚拟机直接克隆 (1) 查看虚拟机配置文件 [root@node1 ~]# cat /etc/libvirt/qemu/oeltest01.xml <!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using: virsh edit oeltest01 or other application using the libvirt API. --> <domain type='kvm'> <name>oeltest01</name> <uuid>8f2bb4a7-c7ed-32aa-3676-9fb05923269d</uuid> <memory unit='KiB'>524288</memory> <currentMemory unit='KiB'>524288</currentMemory> <vcpu

【KVM安装】在Centos6.8中安装KVM

时光毁灭记忆、已成空白 提交于 2020-03-20 20:53:25
阅读目录 前题条件 章节1: 安装Centos6.8-进行硬件检测 章节2: 配置网络-设置桥接方式 章节3: 安装KVM 章节4: OVA转qcow2 章节5: 使用KVM创建虚拟机 章节6: 参考链接 前题条件 工作环境: VMware workstation版本为12.1.0; ==> 支持CPU虚拟化 ; Centos6.8; 必要条件: 安装KVM的必要条件是: CPU支持虚拟化 ; 选择 VMware workstation版本为12.1.0,是因为它 支持创建虚拟机时开启cpu虚拟化 主要的工作步骤: 网络桥接方式设置; 安装kvm必须的库,如:kvm,qemu,libvirt等; ova文件格式转换为qcow2格式; 在KVM上安装虚拟机; 回到顶部 一、安装Centos6.8-进行硬件检测 Centos6.8安装 安装过程中,主要注意如下两点: 选择网卡时,设置桥接连接方式; CPU虚拟化功能开启; 硬件检测 VT技术是服务器CPU的功能,但是如果CPU有这个功能而没有开启的需要我们自己操作开启。 检查CPU是否支持安装KVM: 输入指令: egrep -o '(vmx|svm)' /proc/cpuinfo 如果显示以下信息就证明是可以安装KVM的: 回到顶部 二、配置网络-设置桥接方式 配置桥接连接方式 Centos6.8 新虚拟网卡与eth0以太网网卡做桥接

kvm虚拟机克隆

本小妞迷上赌 提交于 2020-03-20 20:51:17
kvm虚拟机的克隆分为两种情况,本文也就通过以下两种情况进行克隆,克隆虚拟机为OEL5.8X64。 本文出自:http://koumm.blog.51cto.com (1) KVM主机本机虚拟机直接克隆。 (2) 通过复制配置文件与磁盘文件的虚拟机复制克隆(适用于异机的静态迁移)。 1. 本机虚拟机直接克隆 (1) 查看虚拟机配置文件 [root@node1 ~]# cat /etc/libvirt/qemu/oeltest01.xml <!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using: virsh edit oeltest01 or other application using the libvirt API. --> <domain type='kvm'> <name>oeltest01</name> <uuid>8f2bb4a7-c7ed-32aa-3676-9fb05923269d</uuid> <memory unit='KiB'>524288</memory> <currentMemory unit='KiB'

kvm克隆

别等时光非礼了梦想. 提交于 2020-03-20 20:49:11
Kvm克隆: 克隆前需要关闭kvm虚拟机 [root@super67 ~]# virt-clone -o ubuntu16 -n ubuntu16-1 -f /var/lib/libvirt/images/ubuntu16-1.img Cloning unbuntu16.raw | 107 B 00:00 Clone 'ubuntu16-1' created successfully. 查看克隆出来的配置文件: [root@super67 ~]# ll /etc/libvirt/qemu/ total 20 drwxr-xr-x 2 root root 4096 Sep 4 10:31 autostart drwx------ 3 root root 4096 Sep 4 13:43 networks -rw------- 1 root root 2297 Sep 4 13:58 ubuntu16-1.xml -rw------- 1 root root 2290 Sep 4 13:13 ubuntu16.xml -rw------- 1 root root 2574 Sep 4 10:32 www.linux1.cn.xml 对比和原来的区别: [root@super67 ~]# cd !$ cd /etc/libvirt/qemu/ [root@super67 qemu]#

[Mark] KVM 虚拟化基本原理

混江龙づ霸主 提交于 2020-03-17 06:06:53
X86 操作系统是设计在直接运行在裸硬件设备上的,因此它们自动认为它们完全占有计算机硬件。x86 架构提供四个特权级别给操作系统和应用程序来访问硬件。 Ring 是指 CPU 的运行级别,Ring 0是最高级别,Ring1次之,Ring2更次之…… 就 Linux+x86 来说, 操作系统(内核)需要直接访问硬件和内存,因此它的代码需要运行在最高运行级别 Ring0上,这样它可以使用特权指令,控制中断、修改页表、访问设备等等。 应用程序的代码运行在最低运行级别上ring3上,不能做受控操作。如果要做,比如要访问磁盘,写文件,那就要通过执行系统调用(函数),执行系统调用的时候,CPU的运行级别会发生从ring3到ring0的切换,并跳转到系统调用对应的内核代码位置执行,这样内核就为你完成了设备访问,完成之后再从ring0返回ring3。这个过程也称作用户态和内核态的切换。 那么,虚拟化在这里就遇到了一个难题,因为宿主操作系统是工作在 ring0 的,客户操作系统就不能也在 ring0 了,但是它不知道这一点,以前执行什么指令,现在还是执行什么指令,但是没有执行权限是会出错的。所以这时候虚拟机管理程序(VMM)需要避免这件事情发生。 虚机怎么通过 VMM 实现 Guest CPU 对硬件的访问,根据其原理不同有三种实现技术: 1. 全虚拟化 2. 半虚拟化 3. 硬件辅助的虚拟化 1