Articles of 虚拟机

从Hyper-v导出VM作为OVF

使用Windows Server 2008 R2和Hyper-V。 我正在将所有的虚拟机从Hyper-V迁移到VMWare,为了实现这一点,IT支持人员要求我们向他们提供.ovf格式的虚拟机。 到目前为止,我已经closures并从Hyper-V中导出了虚拟机,这成功地生成了一个.vhd文件。 为了提供.ovf格式,我需要做些什么? 我已经下载了StarWind V2V转换器 ,它允许转换图像文件,但没有一个输出格式包括.ovf 。 看图像; 我也尝试了VMware vCenter Converter Standalone,但是它不提供上传我的本地.vhd文件的选项 – 请参阅图像。 看起来转换器只能连接到Hyper-V服务器,而我在Windows 200 R2服务器上安装了Hyper-V:/ 任何意见,将不胜感激。

最大化虚拟文件系统的吞吐量

我一直在使用QEMU系统来构build软件。 我遇到的问题是,系统似乎受到非常慢的磁盘访问的影响。 这不一定是一个问题,因为这不是一个真正的时间密集型操作,但我希望尽可能快地工作。 以下是我尝试加速I / O所做的一切: KVM已启用。 就仿真的处理器速度而言,这是夜晚和白天之间的差异。 Qemu通过转发的SSH端口以-display none模式运行,因此没有模拟的SDL显示屏正在吃掉CPU周期。 虚拟硬盘驱动器使用-o noatime,nodiratime安装-o noatime,nodiratime以减less不必要的写入。 硬盘映像(分别为8和12演示)采用qcow2格式,使用-o cluster_size=2M创build(这是最大默认值是65,536字节)。 请在手册页中说 :“较小的簇大小可以改善映像文件的大小,而较大的簇大小通常可以提供更好的性能 。” 文件系统是带有-o extents选项的EXT4, 手册页声称“这是一种更加高效的编码,可加快文件系统的访问速度,特别是对于大文件 。” 虚拟磁盘映像中没有存储任何快照。 我不确定这是否会减慢他们的速度,但似乎是这样; 在logging快照时,实际的文件图像大小不会增长 ,所以我猜测数据是以一种复杂的方式存储的,这样快照和“工作”驱动器将共享一个群集,直到它被更改,然后整个2MB的簇被复制到新的空间,然后数据被改变。 巧妙但是完全没有效率 我的问题是,是否有什么我失踪,以提高硬盘的效率,或过去的工作,以实现接近原生的I / O速度。 以下是我观察到的其他一些事情: 当我使用-o sync安装虚拟主机的硬盘驱动器时,系统变慢。 这对我来说似乎是反直觉的,因为写入到虚拟硬盘驱动器,这是我的实际硬盘驱动器上的一个文件, 已写入之前已经caching在RAM中。 这基本上是对磁盘的双倍缓冲,使用两倍于RAM的RAM。 戏剧性的加速是非常奇怪的,因为做一个grep ^Dirty /proc/meminfo从来没有说超过1 MB的东西。 除非将“swappiness”( /proc/sys/vm/swappiness )设置为90或更高,否则虚拟机似乎拒绝使用其交换。 虽然我同意这在磁盘I / O方面可能是一件好事,但它使得构build过程与使用RAM的fs缓冲“战斗”。 是的,我确定它有足够的RAM。

Windows虚拟机也会遭受熵的匮乏吗?

最近我们遇到了一个问题,那就是由于“熵”的长期短缺,我们的一个基于Linux的虚拟机真的很慢。 我想知道如果Windows虚拟机会遭受同样的问题。 (谷歌search没有给我相关的点击,但我可以使用错误的search条件。)

虚拟磁盘映像 – 文件或分区

我正在研究使用文件与分区之间的区别,以便在虚拟机使用中存储虚拟磁盘映像。 常见的知识是基于分区的映像比基于文件的映像更快,因为开销减less了。 这是有道理的,但我从来没有看到任何实际的数字。 我自己的testing带来了不同的结果。 当我testing一个直接到分区的虚拟磁盘,然后用ext4格式化同一个分区时,创build一个存储在ext4文件系统上的虚拟磁盘镜像,然后进行基准testing,直接到分区的虚拟化没有任何加速磁盘。 相反,在一些系统上,基于文件的映像甚至更快(可能是由于主机操作系统caching或类似的东西)。 这个testing在很多系统上重复了很多次,结果相当一致。 因此,也许抛出性能的理由,使用分区而不是虚拟磁盘映像仍然被认为是更好的 ? 有直接分区访问比图像文件更好的其他原因吗? 或者也许有其他的理由去相反? 在原始分区映像中没有获得的虚拟磁盘文件格式中的一种可能是一个优点?

将VMware VM转换为Hyper-V

我们公司正在尝试Hyper-V作为服务器虚拟化解决scheme,所以我正在寻找安全地testing所有东西的最有效的方法。 我的计划是对10个VMware VM(这些是实时生产服务器)中的每一个进行快照备份,然后使用Microsoft Virtual Machine Converter将快照转换为Hyper-V文件。 然后,我将在运行Windows Server 2012 Datacenter Edition的testing机器上安装Hyper-V服务,并将转换后的VM上传到Hyper-V。 刚刚进入networking,这听起来像一个坚实的计划? 我可能碰到什么潜在的问题? 阅读MVMC指南使得它看起来像一旦虚拟机被转换并上传到目标服务器上,它就会closures源代码。 有没有办法将VMware快照彻底转换成Hyper-V文件? 对不起,如果这个post是混乱,请告知。

主机断开后,VirtualBox访客networking丢失

我在Snow Leopard OSX主机和Windows Vista主机上运行VirtualBox。 无论何时我的主机丢失了互联网连接,即使主机连接到互联网重新build立之后,客机似乎也永远失去互联网连接。 在访客操作系统上重置访客networking,通过主机virtualbox设置断开连接,甚至重新启动客户操作系统根本没有任何帮助。 客人不能再访问互联网。 唯一的解决办法是在主机连接到Internet时重新启动VirtualBox本身。 当主机进入睡眠模式或断开笔记本电脑的工作,然后在家中重新连接时,这真的很痛苦。 客人安装了NATnetworking。 它会影响Ubuntu和Windows XP操作系统的访客机器。 这是预期的行为? 有谁知道一个修复? 还是我设置不正确?

我可以让我的用户创build虚拟机吗?

现在我的开发团队已经提出了一个能够按需创build/运行虚拟机的请求。 他们要求的是一个系统/方法/工具,他们可以select以下内容:CPU,RAM,OS,硬盘等 他们想创造它们,并在飞行中摧毁它们。 我select使用这些选项为他们pipe理VMhost似乎很疯狂,浪费时间。 我怎样才能达到? 通过脚本也许? 我们目前使用虚拟机,但如果其他虚拟化主机可以提供解决scheme,那就好了 我们有VMware Essentials许可证,连接了3台服务器。

PING icmp open socket:不允许在vserver中运行

我正在多个虚拟机上运行虚拟机环境。 单个VM有以下问题: $ ping 8.8.8.8 ping: icmp open socket: Operation not permitted $ ls -l $(which ping) -rwsr-xr-x 1 root root 30736 2007-01-31 00:10 /bin/ping $ whoami root $ mount /dev/hdv1 on / type ufs (defaults) none on /proc type proc (0) none on /tmp type tmpfs (size=16m,mode=1777) none on /dev/pts type devpts (gid=5,mode=620) $ […]

虚拟机的命名约定

什么是一个好的虚拟机命名约定或scheme? 我们正在总部build立一个虚拟化硬件服务器集群,并在我们每个州的办公室(每个州一个集群)build立一个类似的集群。 我们需要命名虚拟化硬件服务器,这很容易,但是我们也需要为在虚拟化硬件上运行的虚拟机(VM)提供一个命名约定。 命名约定对于pipe理员和开发人员来说必须是足够描述的,以便轻松识别虚拟机的用途,但又足够短,不会在键盘上产生重复的劳损。 为了让事情更有趣,我们现有的硬件命名约定在企业的function区域之间是不同的。 内部一致,但不同。 有不同的文化,如AIX,HP-UX,Linux,Windows。 我最初的想法是构build一个DNS或活动目录列表,每台机器有两个名称:一个在整个企业中是唯一的名称,而且是相当具有描述性的; 另一个是function区域的本地名称。 基本上,企业虚拟机名称空间和function区域虚拟机名称空间。 企业虚拟机名称可能很长,因为它主要是使用虚拟机进行企业间映射function区域虚拟机名称的机器。 function区域名称必须简洁明了,以便开发人员能够轻松pipe理它们。

容器和虚拟机有什么区别?

我想理解所有这些与虚拟机不同的容器。 对于这两种虚拟化方法都可以观察到具有所有操作系统的文件系统。 但是在一个Docker容器中,例如centos 5.x,如果我在容器的shell中执行uname -a ,输出将显示我的主机内核版本。 它是如何工作的,以及与经典虚拟机(vmware,virtualbox,xen等)的主要区别?