qemu

VMware 中安装kvm虚拟机

◇◆丶佛笑我妖孽 提交于 2021-02-19 04:05:51
环境准备: 安装vmware时需要自定义安装-开启虚拟化技术 安装成功之后就可以继续进行了。 1 查看CPU是否支持KVM egrep 'vmx|svm' /proc/cpuinfo --color=auto 搜索到结果就表示支持。 2 安装支持包 yum install -y qemu-kvm libvirt virt-install 3 启动并设置开机启动 systemctl start libvirtd && systemctl enable libvirtd 启动后可以看到网卡多了一个virbr0的网口,这个是libvirt默认的nat网口(默认IP是192.168.122.1),在更新的版本会发现有virbr0-nic、vnet0等网口,这些都是给虚拟机用的网口。 创建虚拟机 1 使用qemu命令创建一个15G的硬盘,硬盘的名称为:centos7 qemu-img create -f raw ./centos-kvm.raw 15G virt-install --virt-type kvm --name centos7 --ram 1024 --cdrom=/data/iso/CentOS-7-x86_64-DVD-1810.iso --disk path=/data/quem/centos-kvm.raw --network network=default -

盘点全球最厉害的 14 位程序员大神,请收下我的膝盖~

巧了我就是萌 提交于 2021-02-18 09:50:08
全球最厉害的14位程序员是谁,您知道的有几位呢? 以下排名不分先后: 1. Jon Skeet 个人名望: 程序技术问答网站Stack Overflow总排名第一的大神,每月的问答量保持在425个左右。 个人简介/主要荣誉: 谷歌软件工程师,代表作有《深入理解C#(C# In Depth)》。 网络上对Jon Skeet的评价: “他根本不需要调试器,只要他盯一下代码,错误之处自会原形毕露。” “如果他的代码没有通过编译的时候,编译器就会道歉。” “他根本不需要什么编程规范,他的代码就是编程规范。” 2. Gennady Korotkevich 个人声望: 编程大赛神童 个人简介/主要荣誉: 年仅11岁时便参加国际信息学奥林比克竞赛,创造了最年轻选手的记录。在2007-2012年间,总共取得6枚奥赛金牌;2013年美国计算机协会编程比赛冠军队成员;2014年Facebook黑客杯冠军得主。截止目前,稳居俄编程网站Codeforces声望第一的宝座,在TopCoder算法竞赛中暂列榜眼位置。 网络上对Gennady Korotkevich的评价: “一个编程神童。” “他太令人惊讶了,他相当于我在白俄罗斯建立了一支强大的编程队伍” “彻底的编程天才” 3. Linus Torvalds 个人名望: Linux之父 个人简介/主要荣誉: Linux和Git之父,一个开源的操作系统;

全球最厉害的14位程序员,大神收下我的膝盖

冷暖自知 提交于 2021-02-18 09:10:31
导读: 全球最厉害的14位程序员是谁?一起来看下让我们膜拜的这些大神都有哪些? 排名不分先后。 01 Jon Skeet 个人名望: 程序技术问答网站Stack Overflow总排名第一的大神,每月的问答量保持在425个左右。 个人简介/主要荣誉: 谷歌软件工程师,代表作有《深入理解C#(C# In Depth)》。 网络上对Jon Skeet的评价: “他根本不需要调试器,只要他盯一下代码,错误之处自会原形毕露。” “如果他的代码没有通过编译的时候,编译器就会道歉。” “他根本不需要什么编程规范,他的代码就是编程规范。” 02 Gennady Korotkevich 个人声望: 编程大赛神童 个人简介/主要荣誉: 年仅11岁时便参加国际信息学奥林比克竞赛,创造了最年轻选手的记录。在2007-2012年间,总共取得6枚奥赛金牌;2013年美国计算机协会编程比赛冠军队成员;2014年Facebook黑客杯冠军得主。截止目前,稳居俄编程网站Codeforces声望第一的宝座,在TopCoder算法竞赛中暂列榜眼位置。 网络上对Gennady Korotkevich的评价: “一个编程神童。” “他太令人惊讶了,他相当于我在白俄罗斯建立了一支强大的编程队伍。” “彻底的编程天才。” 03 Linus Torvalds 个人名望: Linux之父 个人简介/主要荣誉:

kvm和qemu交互处理io流程

瘦欲@ 提交于 2021-02-15 10:57:50
1、IO虚拟化的分类 (1)全虚拟化:宿主机截获客户机对I/O设备的访问请求,然后通过软件模拟真实的硬件。这种方式对客户机而言非常透明,无需考虑底层硬件的情况,不需要修改操作系统。 QEMU模拟I/O的情况下,当客户机中的设备驱动程序(device driver)发起I/O操作请求之时,KVM模块中的I/O操作捕获代码会拦截这次I/O请求,然后经过处理后将本次I/O请求的信息存放到I/O共享页,并通知用户控件的QEMU程序。QEMU模拟程序获得I/O操作的具体信息之后,交由硬件模拟代码来模拟出本次的I/O操作,完成之后,将结果放回到I/O共享页,并通知KVM模块中的I/O操作捕获代码。最后,由KVM模块中的捕获代码读取I/O共享页中的操作结果,并把结果返回到客户机中。当然,这个操作过程中客户机作为一个QEMU进程在等待I/O时也可能被阻塞。 另外,当客户机通过 DMA ( Direct Memory Access ) 【DMA外接设备可以不用CPU干预,直接把数据传输到内存的技术,尽量减少CPU干预的输入/输出操作方式。(使用连续物理内存,kmalloc分配)。否则外设一有数据就要中断通知CPU,CPU去读,如果频繁就时间浪费在处理中断,IO速度慢】访问大块I/O之时,QEMU模拟程序将不会把操作结果放到I/O共享页中,而是通过内存映射的方式将结果直接写到客户机的内存中去

qemu创建vm和vcpu进入kvm的流程

谁说我不能喝 提交于 2021-02-14 23:00:04
kvm是一个内核模块,它实现了一个/dev/kvm的字符设备来与用户进行交互,通过调用一系列ioctl函数可以实现qemu和kvm之间的切换。 1、qemu发起KVM_CREATE_VM的ioctl创建虚拟机 qemu从vl.c/main开始,通过configure_accelerator根据当前current_machine调用对应的accel_init_machine,如果是kvm则具体是 kvm_init 。当要创建虚拟机,kvm_init函数中会s->fd = qemu_open(" /dev/kvm ", O_RDWR);打开/dev/kvm设备,获取虚拟机句柄fd,在该fd上ret = kvm_ioctl (s, KVM_CREATE_VM , type); s->vmfd = ret;此ioctl函数在kvm中的实现为kvm_main.c中kvm_dev_ioctl函数。当传入的参数为KVM_CREATE_VM时,该函数会创建一个VM,并且返回一个vm_fd,通过该vm_fd可以操作虚拟机。 2、qemu中创建虚拟机的vcpu和qemu线程关系,并切换到kvm中 在vl.c/main的最开始会module_call_init(MODULE_INIT_MACHINE)本质就是把pc_init1赋值给了mc->init。在kvm_init创建完虚拟机后,会返回到main中

redhat6本地源NBD驱动安装

旧巷老猫 提交于 2021-02-13 06:30:17
安装NBD驱动 一.配置本地yum源 1、挂载系统安装光盘 # mount /dev/cdrom /mnt/cdrom/ # mkdir /mnt/media # cp -rf /mnt/cdrom /* /mnt/media 2、配置本地yum源 # cd /etc/yum.repos.d/ #vi rhel-source.repo [rhel-source] name=Red Hat Enterprise Linux $releasever - $basearch - Source #baseurl=ftp: //ftp.redhat.com/pub/redhat/linux/enterprise/$releasever/en/os/SRPMS/ baseurl=file: ///mnt/media/ enabled=1 gpgcheck=0 gpgkey=file: ///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release [rhel-source-beta] name=Red Hat Enterprise Linux $releasever Beta - $basearch - Source #baseurl=ftp: //ftp.redhat.com/pub/redhat/linux/beta/$releasever/en/os

基于NFS共享存储实现KVM虚拟主机动态迁移

邮差的信 提交于 2021-02-12 06:33:34
在KVM中可以将运行中的虚拟机从一个KVM主机迁移到另一个KVM主机中运行,而不需要任何停机时间。如果两个KVM主机都能够访问相同的存储池,那么实时迁移工作就很好了。要使存储池在KVM主机上都可访问,您需要使用NFS或GFS2文件系统(集群文件系统)。在本例中,我使用NFS文件系统来存储VM映像文件。在迁移过程中,VM的“内存”内容将被复制到目标KVM主机,而在某个时间点上,将发生迁移VM。注意,当您在KVM主机上共享文件系统时,将不会在网络上传输VM的磁盘映像,因为两个KVM主机都可以访问相同的存储池。 迁移介绍:迁移是指将在KVM上运行的虚拟机系统转移到其他物理机的KVM上运行 静态迁移:在虚拟机关机的情况迁移 动态迁移:在虚拟机上服务正常运行的情况下迁移,要基于共享存储 动态迁移特点: 不会对最终用户造成明显影响 仅有非常短暂的停机时间 1、 设置3台服务器主机名、配置 /etc/hosts 保证网络连接 2、 两台主机的KVM连接NFS共享存储 3、 在源主机的KVM中新建虚拟机并安装系统 4、 连接KVM、并进行迁移 首先将所有的主机关闭防火墙 [root@localhost ~]# iptables -F [root@localhost ~]# systemctl stop firewalld [root@localhost ~]# setenforce 0

libvirt qemu-system-arm, error: XML error: No PCI buses available

拜拜、爱过 提交于 2021-02-11 06:21:14
问题 I am trying to run a linux image i created with buildroot with libvirt. If i use qemu-system-arm directly, everything works as intended: /usr/bin/qemu-system-arm \ -M versatilepb \ -kernel output/images/zImage \ -dtb output/images/versatile-pb.dtb \ -drive index=0,file=output/images/rootfs.ext2,if=scsi,format=raw \ -append "root=/dev/sda console=ttyAMA0,115200" \ -net nic,model=rtl8139 \ -net user \ -nographic However, when i try to create the xml from my qemu cmdline, it fails: $ virsh

libvirt qemu-system-arm, error: XML error: No PCI buses available

吃可爱长大的小学妹 提交于 2021-02-11 06:21:10
问题 I am trying to run a linux image i created with buildroot with libvirt. If i use qemu-system-arm directly, everything works as intended: /usr/bin/qemu-system-arm \ -M versatilepb \ -kernel output/images/zImage \ -dtb output/images/versatile-pb.dtb \ -drive index=0,file=output/images/rootfs.ext2,if=scsi,format=raw \ -append "root=/dev/sda console=ttyAMA0,115200" \ -net nic,model=rtl8139 \ -net user \ -nographic However, when i try to create the xml from my qemu cmdline, it fails: $ virsh

Qemu showing as black screen for ARM (VM)

旧巷老猫 提交于 2021-02-10 14:25:48
问题 So I'm using this site to setup Qemu on my Lubuntu VM. https://azeria-labs.com/emulate-raspberry-pi-with-qemu/ My errors happen when im trying to run the Qemu but the screen appears as black and it says "Guest has not initialized the display (yet)." Looking at the error it says: Error: invalid dtb and unrecognized/unsupported machine ID r1=0x00000183 r2=0x00000100 r2[]=05 00 00 00 01 00 41 54 01 00 00 00 00 10 00 00 Available machine support: ID (hex) NAME ffffffff Generic DT based system