Articles of kvm virtualization

将KVM虚拟机分配给用户(KVM用户授权)

我想给我的朋友一个虚拟机在我的专用服务器上,我希望他能够重新启动虚拟机或更改iso – 所以基本上我想要的虚拟机托pipe提供商,如Linode相同的function。 我想最简单的解决scheme是给他一个shell帐户,但如何限制壳? 是否有可能限制libvirt为我的使用情况?

为什么我的KVM,RHEL6.2服务器交换?

我有用来运行KVM虚拟机的RHEL6.2服务器。 服务器本身有16 GB的RAM。 我想看看我能运行的最大的虚拟机,而不是让qemu-kvm进程交换。 VM内存大约15GB。 (是的,我意识到这是在推动极限,但在回答诸如“15GB太多”之类的问题之前,读到最后。) [root@xxx libvirt]# virsh dumpxml VM2 | grep -i memory <memory>15000000</memory> <currentMemory>15000000</currentMemory> [root@xxx libvirt]# ps -ef | grep kvm root 872 1 16 10:55 ? 00:03:00 /usr/libexec/qemu-kvm […] -m 14649 -name VM2 […] [root@xxx libvirt]# free -k total used free shared buffers cached Mem: 16332640 16194440 138200 0 1544 15700 […]

如何从KVM虚拟机内检测pipe理程序主机名/ IP?

我们有一小群KVM / libvirt主机,上面有几百个虚拟机,由不同地点的一组系统pipe理员pipe理。 我遇到了一个问题,我通过SSH连接到虚拟机,但是我找不到它拥有的裸机主机的名称。 有没有人知道从虚拟机里面find裸机的名字的方法? 如果这不是KVM开箱即用的,那么我们可以在我们的所有虚拟机pipe理程序上应用哪些configuration示例来公开这些信息? 我们使用库存pipe理软件来跟踪我们的虚拟机及其裸机 – 但是它有缺陷,并且时不时地丢失了哪个主机拥有虚拟机。 我将解决这个问题 – 但是从虚拟机内部查找KVM主机的概念将会非常有用。 我知道这违背了许多共享环境中使用的安全原则,每个虚拟机都是卖给不同客户的产品 – 但是在我们拥有主机的环境中,安全性不是问题。

为什么在虚拟机启动之前添加的IPv6路由不起作用

我在Hetzner的Debian 7上安装了一个外部服务器,并尝试使用IPv6路由设置KVM(与IPv4相同的设置工作没有问题)。 我有一个Ubuntu服务器虚拟机有两个接口在两个不同的子网。 第一个接口通过网桥连接到主机: Host-eth0 <– external bridge –> vnet0-VM-vnet1 <– internal bridge 我configuration网桥,通过第一个VM接口添加到第二个子网的静态路由: ip -6 route add 2a01:4f8:X:Y:2::/80 via 2a01:4f8:X:Y:1::3 dev virbr_external 这会添加虚拟机启动之前的路由条目。 当我从主机到vnet1接口(2 :: 2)使用ping6时,出现以下错误消息: ping: sendmsg: Network is down 当我不在接口configuration中添加路由,并在虚拟机启动后手动调用它,一切正常。 所以我的问题是为什么路由添加IPv6地址只有在虚拟机启动后才起作用? 其他configuration详情: 主机接口 auto lo iface lo inet6 loopback auto eth0 iface eth0 inet6 static address 2a01:4f8:X:Y:0::2 netmask 128 gateway fe80::1 # […]

使用LVM和MD RAID 5的KVM中的磁盘I / O速度较慢

我一直在debian下面用kvm安装了两个星期,特别是访客I / O磁盘的性能。 系统: -Supermicro 1018d-73mtf (X10SL7-F motherboard) -16GB ECC/UB -Intel Xeon E3-1240v3 -6xWD Red 750GB 6Gb/s 在这个上,我正在两个磁盘上运行Debian Wheezy,其他四个磁盘都是用md来设置raid5,而LVM在客户端存储上。 直接在raid5上进行性能testing(通过创build一个LV并安装它并运行bonnie ++和ddtesting来衡量)是很好的,给我〜220 / 170MB / s的读/写,但是在客户端上,我得到了不错的读取和40-50MB / s的写入,在Windows(Server 2012)和Linux(Debian)上进行了testing。 我已经阅读了alignment磁盘和分区,并重新创build本书的RAID和LVM设置,但havnt收到任何性能提升。 当直接从主机写入数据时,我可以看到磁盘和lvm的负载很高,但是在客人写入的时候测量显示磁盘的大小约为20-30%,而lvm的是“红色”(100%)。 。 KVM /主机系统的正常调整已经完成,将调度程序设置为最后期限,为RAID设置条带caching,在guest虚拟机上caching=无,将SAS控制器卡重新刷新到IT模式(LSI 2308),我不知道,这里是一个关于设置的相关信息的pastebin,希望有人注意到我做了错误的东西http://pastebin.com/vuykxeVg 。 如果你需要任何其他东西粘贴它。 编辑: 这基本上是如何设置驱动器,md和lvm,有一些变化,因为我运行3个磁盘+备用。 http://dennisfleurbaaij.blogspot.se/2013/01/setting-up-linux–mdadm-raid-array-with.html 主持人和嘉宾写作testing(bonnie ++)的截图 主持人: http : //i.imgur.com/IsTprqA.png 客人: http : //i.imgur.com/uVmhFCK.png

如何在不禁用交换的情况下将重要的虚拟机保留在内存中?

VM Host – > Xenon E5-2440 w / 48G mem …一切运行CentOS6.5(2.6.32-431) 我有4个虚拟机运行每个瓦特/ 2G的内存。 他们的磁盘映像是本地文件。 主机也运行一个轻微使用的NFS服务器,但没有其他的东西。 (swappiness = 0)经过一天左右的缓冲区caching增长到接近40G,这些虚拟机几乎完全交换到磁盘。 (通过查看:grep VmSwap / proc / PID / status) 我遇到的问题是,这些虚拟机可能不经常使用,他们必须准备好。 然而,实际上他们正在被换出,造成严重的问题与他们的反应时间。 我当然是让我的访客虚拟机使用合理大小的交换文件,并让操作系统决定缓冲区caching和交换之间的平衡,但是这似乎不适用于我的用例中的主机。 除了在主机上禁用交换之外,还有哪些选项可以保持虚拟机的响应性不受影响? 尝试使用cgroups,或只是拔出交换文件的插件为这个用例?

Linux桥接KVM

我有一台Debian Wheezy机器,我试图用桥接networking来设置KVM。 不幸的是,这座桥似乎没有正确的转发stream量。 我的设置如下: 物理机器有一个eth0连接到IP地址为192.168.0.1的路由器。 这个eth0是网桥接口br0的成员,它被静态configuration为IP地址192.168.0.101。 虚拟机的networking接口是物理主机上的vnet0和虚拟机中的eth0 。 在虚拟机中,接口静态configuration为IP地址192.168.0.110。 从物理主机,我可以ping虚拟机和路由器: # ping 192.168.0.1 PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data. 64 bytes from 192.168.0.1: icmp_req=1 ttl=64 time=0.331 ms # ping 192.168.0.110 PING 192.168.0.110 (192.168.0.110) 56(84) bytes of data. 64 bytes from 192.168.0.110: icmp_req=1 ttl=64 time=0.417 ms 在虚拟机上,我可以ping物理机器: # ping 192.168.0.101: PING 192.168.0.101 (192.168.0.101) 56(84) bytes […]

将USB集线器从KVM主机传递给libvirt的guest虚拟机

我在Linux服务器上有以下USB设备: # lsusb -t /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/2p, 480M |__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/6p, 480M |__ Port 2: Dev 3, If 0, Class=HID, Driver=usbfs, 1.5M |__ Port 3: Dev 4, If 0, Class=hub, Driver=hub/4p, 480M |__ Port 1: Dev 8, If 0, Class=print, Driver=usbfs, 12M /: Bus […]

kvm快照创build失败

我有Ubuntu服务器与qemu / kvm。 我试图创build快照(进一步备份)使用libvirt并得到这个错误: # virsh snapshot-create-as –domain 56 –name copy_snap –no-metadata –disk-only –atomic –diskspec vda,snapshot=external,file=/path/to/snapshot error: internal error: cannot update AppArmor profile 'libvirt-429060e6-88af-4515-b028-e5c9493a926a' 期刊: # journalctl -f Dec 10 16:09:02 gamma libvirtd[23795]: internal error: Child process (/usr/lib/libvirt/virt-aa-helper -p 0 -r -u libvirt-429060e6-88af-4515-b028-e5c9493a926a -f /home/v.pastushenko/wiki.snap) unexpected exit status 1: virt-aa-helper: error: /var/lib/libvirt/qemu/channel/target/C7-Wiki.org.qemu.guest_agent.0 virt-aa-helper: error: skipped […]

KVM / QEMU:无需连接到虚拟机

短版本(解决scheme如下): 我有一台Windows PC。 我有一个Debian服务器(没有桌面环境)。 我有一个通过KVM / QEMU在Debian服务器上运行的Ubuntu VM。 问题:如何连接到Ubuntu VM并启动安装过程? 长版本(解决scheme如下): 情况 我有一些Linux的经验,但是我对Linux上的虚拟化很陌生。 我想在我的Debian服务器上创build多个虚拟机。 我通过ssh从Windows PC连接到Debian服务器。 Debian服务器没有安装任何桌面环境。 我使用了以下教程https://www.howtoforge.com/virtualization-with-kvm-on-a-debian-squeeze-server ,但在第3步中,它告诉我要安装virt-manager这是一个graphics工具。 正如所料,我不能通过ssh启动virt-manager。 题 我如何连接到虚拟机,并安装操作系统以及sshd服务器。 我想在初始安装后通过ssh连接到我的虚拟机。 可能的解决scheme 我发现我可以通过VNC连接到虚拟机,一些教程告诉我使用端口转发从Windows ssh到Debian,然后在Windows上启动一个VNC客户端。 但是它不会连接到VNC,因为我不知道如何configurationVM或virsh来使用正确的端口。 可能的解决scheme 这个Ubuntu教程展示了一种通过控制台直接连接的方式: https : //help.ubuntu.com/community/KVM/Access我想使用这个方法,但它需要新贵,我不想卸载我的systemd-sysv。 Ubuntu的9.4是用来制作的 可能的解决scheme 如果我有一个Ubuntu.iso会自动运行一个sshd服务器,我可以直接通过SSH连接到安装程序。 但我还没有find一个或知道如何创build一个。 解: 我find了解决这个问题的方法。 检查KVM是否会在系统上运行。 你的CPU应该支持vmx或者svm egrep '(vmx|svm)' –color=always /proc/cpuinfo 在运行Debian的物理机上安装KVM sudo apt-get install kvm qemu-kvm libvirt-bin virtinst testingvirtinst安装并退出virsh -c qemu:///system […]