Articles of kvm virtualization

使用KVM(virtio驱动程序)的networking性能较差 – 更新:使用vhost_net

我之前已经build立了几个基于KVM的networking,从来没有遇到这个问题,不能为我的生活认为我以前有不同的设置。 build立 基本上,我得到和完全戴尔堆栈: 2个戴尔N2024(堆叠千兆交换机) 几款适用于KVMpipe理程序的Dell R720 2个戴尔R320的网关/防火墙 所有机器运行CentOS6.5,pipe理程序,基本上标准安装几个sysctl调整。 目前,我已经有几个testing虚拟机的设置,与其主控(CentOS 6.X,基本安装,基本的木偶驱动configuration)类似的设置。 所有虚拟机是: 桥接到两个物理上分离的networking中的一个(即,每个pipe理程序具有两个以太网连接,一个用于公共/ DMZ桥接LAN,另一个是私有networking) 所有虚拟机都使用virtio进行networking,阻塞设备(基本上是运行virt-install命令的标准结果) – 例如(例如libvirt config) <interface type='bridge'> <mac address='52:54:00:11:a7:f0'/> <source bridge='dmzbr0'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> 所有虚拟机都可以访问2到8个VCPU和8和64GB RAM,而他们的驱动器是主机上的LVM卷 虚拟机中的一些简单的文件副本和ddtesting产生完全可接受的结果(在这些小规模综合testing中为300MB / s – 800MB / s) 物理机之间的networking性能 现在我已经离开了巨型帧/ MTUconfiguration,服务器到服务器之间的传输将非常高兴地超过了千兆位连接(或在那里)( 100MB / s – > 118MB / s在每台机器上进行几次大文件testing) 物理机和虚拟机之间的networking性能(以及虚拟机到虚拟机) Rsync / […]

KVM:虚拟机的最大内核数量和内存量

我有一个新的8核心机器16GB的RAM。 我想使用Ubuntu和KVM在其上运行虚拟机。 除了SSH以外,别的什么都不会在主机上运行。 我的问题是什么是我可以用于虚拟机的最大数量的内核和RAM。 我可以创build4个虚拟机,并分配2个内核和4GB RAM吗? 主机操作系统是否有这样的设置问题? 换句话说,主机运行虚拟机所需的内核和内存的最小数量是多less? 1个内核和1GB内存是否足以运行虚拟机。

如果启用了“dynamic节拍模式”,那么kern.hz在FreeBSD中仍然有任何相关性?

我在KVM设置中运行FreeBSD 9.0作为虚拟机。 在以前的FreeBSD版本中,通常强制kern.hz设置为一个较低的值,以便虚拟机不会使主机繁忙,因为它处理定时器中断而不需要做任何工作–FreeBSD手册解释说: 最重要的一步是减lesskern.hz可调参数,以降低Parallels环境下FreeBSD的CPU利用率。 这是通过添加以下行来完成的 /boot/loader.conf:kern.hz = 100 如果没有这个设置,闲置的FreeBSD Parallels客户操作系统将占用单个处理器iMac®的大约15%的CPU。 这个变化之后,使用率将接近5%。 然而,在FreeBSD 9中,“dynamic节拍模式”(aka“tickless mode”)是默认的,由默认为0的kern.eventtimer.periodic设置控制(读:无tickless模式)。 这让我怀疑 – 降低kern.hz的提示与使FreeBSD 9在虚拟机设置中很好地发挥还有什么关系?

使用SATA磁盘将SSDcaching(PCIe)添加到现有的Linux KVM节点

我目前有大型KVM节点利用8和16 RAID10arrays和硬件突袭。 我们通常提供一个单一的大卷(虚拟机备份在现场)。 KVM虚拟机使用LVM卷 目前,在我们的16个磁盘arrays中,在虚拟机级别使用dd和512-2048文件大小,我们获得了500 MB / s到1.3G / s的连续写入速度。主机级别是1.4G / s,实际磁盘的速度看起来是最大的磁盘本身。 硬件突袭卡有板载2GB内存caching。 /// 为了澄清,在磁盘I / O方面没有任何性能问题(几乎没有等待大约15-20个虚拟机) 我们正在探索尝试添加PCIe SSD卡进行caching,但理想情况是希望能够将其应用于新系统以及当前系统。 我们可以走LSI和高速公路的路线 – 没有理由。 我们也可以做所有的固态硬盘,但是我们希望除了大型的SATAarrays之外,还希望使用PCIe,因为它不需要额外的托架。 任何指针如何做到这一点? 似乎没有太多的信息,许多供应商的网站是可怕的描述他们的产品如何工作。

虚拟化 – Linux KVM-QEMU托pipeWindows VM guest,如何访问数据驱动器

使用Windows VM guest虚拟机在Linux KVM-QEMU主机上共享数据分区的最佳方式是什么? 我可以使用Sambanetworking连接到驱动器作为networking共享,但我希望可能有一个更简单的方法。 谢谢,尼克

使用DNS访问libvirt + KVM虚拟机

我有一台运行KVM + Libvirt的Ubuntu Trusty机器来pipe理小型虚拟机,并使用标准的NetworkManager连接到常规networking。 我希望能够通过DNS从主机访问虚拟机。 Libvirt使用一个虚拟专用子网(192.168.122.0/24),NAT'd通过我的eth0上的网桥(virbr0)访问世界其他地方。 Dnamasq为此虚拟networking提供DHCP + DNS。 这是虚拟networking的libvirtconfiguration: <network> <name>default</name> <uuid>400c59ff-c276-4154-ab73-9a8a8d1c6be3</uuid> <forward mode='nat'> <nat> <port start='1024' end='65535'/> </nat> </forward> <bridge name='virbr0' stp='on' delay='0'/> <mac address='52:54:00:f4:bd:37'/> <domain name='kvm'/> <dns forwardPlainNames='no'> <forwarder addr='127.0.1.1'/> <host ip='192.168.122.1'> <hostname>host</hostname> <hostname>host.kvm</hostname> </host> </dns> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254'/> </dhcp> </ip> </network> Libvirt启动一个侦听192.168.122.1:53的dnsmasq实例,它会回应所有的.knv请求,并将任何其他请求转发给我的主机。 这个dnsmasqconfiguration是由libvirt自动生成的: /var/lib/libvirt/dnsmasq/default.conf ##WARNING: THIS IS […]

Linux内核虚拟机

我一直在为一些pipe理服务器运行KVM,实际上我对它很满意,现在想要进入下一个阶段,并部署一些沉重的服务(数据挖掘,ETL,等)到他们身上。 我想知道是否有人在这里使用KVM的东西严重,并有任何问题或意见。 我特别感兴趣的是您遇到的与性能相关的问题(假设您尚未遇到稳定性问题。 为此问答制定… 您是否运行KVM来承载资源繁重的服务? 如果是1,是否有任何稳定性问题? 如果是,1和2,你有任何性能问题? (当我接触到它时,我最终会推动我的一个LVM进入一个非常负载的(非产品)环境,我会让你们知道它是如何发展的。我们运行的数据挖掘服务是尽可能的多,所以我敢肯定这个testing会很有成果!=) – 同时,我仍然期待更多的人回答上面的问题。 并且非常感谢迄今为止回应的所有人。

新的KVM访客不能访问外部LAN

我有一个KVM主机(在192.168.0.10 ),当前有一个工作的KVM来宾(在192.168.0.12 )。 在今天试图安装一个新的KVM guest虚拟机时,我遇到了一个问题:新guest虚拟机的networking只能部分工作。 我可以从新访客访问的唯一东西是networking中的资源。 尝试访问任何其他networking资源(包括通过网关的资源)会导致目的地100%的数据包丢失。 客户端通过使用eth2的桥接器连接到networking。 主机networking按预期工作,而另一个(当前只有一个)客户机的networking也通过同一个网桥连接。 closures工作的客人并不能解决问题。 两位客人都通过DHCP获取他们的networking详细信息。 在guest虚拟机的虚拟接口上从主机运行tcpdump显示guest虚拟机试图与外部世界进行通信,只能从主机和网关获取响应。 主办 有问题的客人目前正在通过vnet0连接。 # ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether […]

如何在Linux中启用KVM设备直通?

我有一个MSI-GD65游戏主板和一个Intel i7 4790.在BIOS的CPUfunction部分启用VT-D。 我正在运行Ubuntu 14.04.1 LTS,当我尝试分离设备时,出现以下消息: #virsh nodedev-detach pci_0000_00_1f_2 错误:分离设备失败pci_0000_00_1f_2错误:不支持操作:此系统当前不支持VFIO和KVM设备分配 Dmesg包含了关于IOMMU的一些信息,但是我不知道这是否意味着VT-D已启用 $ dmesg | grep -i iommu [0.027450] dmar:IOMMU 0:reg_base_addr fed90000 ver 1:0 cap c0000020660462 ecap f0101a [0.027455] dmar:IOMMU 1:reg_base_addr fed91000 ver 1:0 cap d2008020660462 ecap f010da [0.027521]在DRHD基址0xfed91000下的IOAPIC id 8 IOMMU 1 任何人都可以build议我需要做什么来启用此系统上的VT-D,并通过PCI设备传递给KVM客人吗?

服务器重载,就像内存不足,但那不是事实

我有一台运行QEMU-KVM虚拟化的Centos 6.5服务器: 硬件: 40个CPU 400 GB RAM 软件: 内核:2.6.32-431.17.1.el6.x86_64 Qemu:0.12.1.2 Libvirt:0.10.2 有3位客人,具有相同的硬件configuration: 16个CPU 120 GB RAM <memory unit ='KiB'> 125829120 </ memory> <currentMemory unit ='KiB'> 125829120 </ currentMemory> <vcpu placement ='static'> 16 </ vcpu> 客户正在运行Apache和MySQL。 在主机上只运行虚拟机旁边的一些备份和维护脚本,没有别的。 总是在几天运行后,问题开始显现。 客人的负担随机高达150左右,盗取CPU时间10-15%。 在主机上的负载大约是38-40,用户CPU时间大约30-40%,系统CPU时间40-50%。 当时主机上CPU消耗最多的进程是虚拟客户端的Qemu进程,之后为kswapd0和kswapd1,CPU使用率为100%。 内存使用情况: 内存总计378.48 GB 内存使用330.82 GB RAM免费47.66 GB SWAP共计500.24 MB SWAP使用497.13 MB SWAP free 3192 kB […]