Articles of 虚拟化

如果容器没有Guest OS,为什么我们使用Docker的OS Base Image?

我刚刚开始研究Docker,对我来说有一些困惑。 正如我在Docker的网站上看到的,容器与虚拟机不同。 据我所知,一个容器只是一个内部运行整个隔离文件系统的沙箱。 我也读过一个容器没有安装Guest OS。 相反,它依赖于底层的操作系统内核。 所有这一切都很好。 我感到困惑的是Docker镜像以操作系统命名。 我们看到像Ubuntu,Debian,Fedora,CentOS等图像。 我的观点是:那些图像是什么,真的? 与创build虚拟机和安装Debian相比,创build基于Debian映像的容器有什么不同? 我以为容器没有安装Guest OS,但是当我们创build镜像时,我们将它们放在一个名为OS的命名镜像上。 另外,在例子中,我们看到当我们做docker run ubuntu echo "hello world" ,似乎我们正在Ubuntu上运行一个虚拟机,并运行命令echo "hello world" 。 当我们做docker run -it ubuntu /bin/bash ,看起来我们正在Ubuntu上运行一个虚拟机,并使用命令行来访问它。 无论如何,那些以操作系统命名的图像都是关于什么的? 运行带有其中一个映像的容器和使用相应的客户操作系统启动虚拟机有什么不同? 是这样的想法,我们只是与主机操作系统共享内核(因此我们可以访问底层的机器硬件资源,而不需要虚拟化硬件),但仍然使用容器上每个不同系统的文件和二进制文件支持我们想运行的任何应用程序?

将VMware vSphere基础架构replace为开源替代scheme?

我们正在计划从VMware(和第三方应用程序)到开源替代品(免费将会很好)的缓慢迁移。 基本上,我们想从一些小的集群实验室开始,然后在未来迁移生产环境(35+ ESX,1500个虚拟机)(X年,不急) 我们的select是将CentOS / Scientific Linux作为select的操作系统,将KVM作为pipe理程序。 我们正在考虑的vCenter备选scheme是Convirt ,但是我们不知道我们在VMware中使用的所有function是由Convirt(HA,DRS,集群等)提供的,还是我们应该尝试一些其他方法有任何想法吗?) 监控正在被Nagios取代,备份/复制将被一些脚本魔术所取代。 那么,有没有人可以给我们一些build议,或类似的情况? PS.-这是我在serverfault的第一个问题,我的英文水平不是很好,但我希望这个问题是可以理解的。 PS2.-我忘记提到我们也提供VDI。 而我们一直在想的另一个select是Spice 。

VMware Linux服务器 – 你怎么知道你是虚拟现实还是真正的硬件?

一个有趣的问题。 我已经login到一个Linux(最有可能的SuSE)主机。 有什么方法可以通过编程方式告诉我是否是VM主机? 另外假定vmtools没有安装。

我怎么知道我是否在虚拟机上工作?

有没有办法知道我正在使用的Windows机器是虚拟的还是物理的? (我正在用RDP连接到机器,如果它是一个虚拟机,它正在工作并由VMWare来处理)。

虚拟机是否比底层的物理机器慢?

这个问题是相当普遍的,但最具体的说,我有兴趣知道运行Ubuntu Enterprise Cloud的虚拟机是否比没有虚拟化的同一台物理机慢。 多less(1%,5%,10%)? 有没有人测量Web服务器或数据库服务器(虚拟VS物理)的性能差异? 如果取决于configuration,让我们来想象两个四核处理器,12 GB内存和一堆SSD磁盘,运行64位ubuntu企业服务器。 最重要的是,只有1个虚拟机允许使用所有可用的资源。

vSphere教育 – 使用*太多内存configuration虚拟机有什么缺点?

VMware内存pipe理似乎是一个棘手的平衡行为。 有了集群RAM,资源池,VMware的pipe理技术(TPS,膨胀,主机交换),客户机内RAM利用率,交换,预留,份额和限制,还有很多变数。 我处于客户端使用专用vSphere群集资源的情况。 但是,他们正在configuration虚拟机,就好像它们在物理硬件上一样。 反过来,这意味着一个标准的VM版本可能有4个vCPU和16GB或更多的RAM。 我来自小的学校(1个vCPU,最小的RAM),检查现实世界的使用和必要的调整。 不幸的是,许多供应商的要求和不熟悉虚拟化的人需要更多的资源,而不是必要的…我有兴趣量化这个决定的影响。 来自“问题”群集的一些示例。 资源池摘要 – 看起来几乎是4:1过度提交。 注意大量的膨胀的RAM。 资源分配 – “最差情况分配”列显示,这些虚拟机在受限条件下可以访问configuration的RAM的50%以下。 上面列表中顶级虚拟机的实时内存利用率图。 4个vCPU和64GB RAM分配。 平均使用9GB以下。 同一个VM的摘要 在vSphere环境中过度使用和过度configuration资源(特别是RAM)有什么缺点? 假设虚拟机可以运行在更less的内存中,那么说虚拟机的configuration比实际需要更多的内存,这是否公平呢? 有什么反驳: “如果一个虚拟机有16GB的RAM分配,但只使用4GB,有什么问题? ”? 例如,客户需要教育虚拟机与物理硬件不一样吗? 应该使用什么特定的度量来度量RAM的使用情况。 跟踪“主动”与时间的峰值? 看着“消费”? 更新:我使用vCenter Operations Manager来分析此环境,并获取上面列出的群集统计信息的一些详细信息。 虽然事情肯定是过度的,虚拟机实际上是过度configuration与不必要的内存,真正(微小)的内存足迹显示在集群/主机级别没有内存争夺… 我的结论是,虚拟机应该是正确的大小,有一点点的操作系统级caching的缓冲区。 超出无知或供应商的“要求”导致这里提出的情况。 在任何情况下,内存膨胀似乎都很糟糕,因为性能会受到影响,所以正确的大小可以帮助防止这种情况发生。 更新2:这些虚拟机中的一些开始崩溃: kernel:BUG: soft lockup – CPU#1 stuck for 71s! VMware将此描述为大量内存过度使用的症状 。 所以我想这个问题的答案。 vCops“超大型虚拟机”报告… vCops“可回收废物”图…

从物理的VirtualBox中创build一个虚拟机

有什么办法来创build一个虚拟机,你可以在物理安装中使用VirtualBox吗? 例如,如果我在物理计算机上安装了Windows XP,并且希望在另一台计算机上拥有该计算机的虚拟版本, 这样不用重新安装和重新configuration整个操作系统就可以节省大量的时间。 我想可能会有微软授权的问题。 但是,即使Windows不可能,也可以使用物理Linux机器并创build一个VirtualBox的版本? 其他桌面虚拟化软件是否提供此function?

如何[礼貌地告诉软件供应商他们不知道他们在说什么

不是一个技术性的问题,而是一个有效的问题。 场景: 带有2个8核Xeon E5-2667 CPU和256GB RAM的HP ProLiant DL380 Gen 8,运行ESXi 5.5。 给定供应商系统的八个虚拟机。 四台虚拟机用于testing,四台虚拟机用于生产。 每个环境中的四个服务器执行不同的function,例如:Web服务器,主应用程序服务器,OLAP DB服务器和SQL DB服务器。 CPU共享configuration为阻止testing环境影响生产。 SAN上的所有存储。 我们对性能有一些疑问,供应商坚持要给生产系统更多的内存和vCPU。 但从vCenter可以清楚地看到,现有的configuration还没有被触及,例如:主应用服务器的CPU利用率每月查看率在8%左右,奇数高达30%。 高峰往往与备份软件踢进一致。 RAM上的类似故事 – 服务器上的最高利用率数据是〜35%。 因此,我们一直在使用Process Monitor(Microsoft SysInternals)和Wireshark进行挖掘,我们向厂商推荐的是他们首先进行了一些TNS调优。 但是,这是不言而喻的。 我的问题是:我们如何让他们确认我们发送给他们的VMware统计数据足以certificate更多的RAM / vCPU不能提供帮助? —更新12/07/2014 — 有趣的一周。 我们的ITpipe理层已经表示,我们应该改变虚拟机的分配,现在我们正在等待业务用户的停机。 奇怪的是,商业用户是说,应用程序的某些方面运行缓慢(相比之下,我不知道),但他们会“让我们知道”什么时候我们可以采取系统(抱怨,发牢骚!)。 另外,系统的“慢”方面显然不是HTTP(S)元素,即: 大部分用户使用的“瘦应用程序”。 这听起来像是主要金融机构使用的“胖客户”,显然是“慢”。 这意味着我们正在考虑调查中的客户端和客户端 – 服务器交互。 由于这个问题的最初目的是为了寻求帮助,是否要去“捅它”的路线,或者只是做出改变,而现在我们正在做出改变,我会用龙的答案closures它。 谢谢大家的意见。 像往常一样,serverfault已经不仅仅是一个论坛 – 它也像一个心理学家的沙发一样:-)

在虚拟机中运行数据库有什么缺点? 我如何克服它们?

在虚拟机内运行任何东西都会有一定程度的性能影响,但它对数据库系统的性能有什么影响? 我发现这个学术参考文件有一些有趣的基准,但这只是一个有限的testing,只使用Xen和PostgreSQL。 结论是,使用虚拟机“不会在性能上花费太高”(尽pipe您可能会认为实际的数据是这样说的)。 与在虚拟机中运行数据库相关的技术,pipe理和其他缺点是什么? 请张贴可以客观事实支持的答案,我对炒作或其他任何半宗教性的争论都不感兴趣(极客的激情在许多方面都很好,但这对我们来说无能为力。 话虽如此, 在虚拟机中运行数据库时会出现什么问题? (请张贴参考) 这些问题是重要的吗? 他们只在某些情况下显着吗? 什么是解决方法?

为什么系统通常在BIOS设置中默认禁用虚拟化?

我还没有看到一个系统的默认configuration启用MMU和定向I / O虚拟化。 通常情况下,这需要重新启动并进入BIOS,以便在需要时启用它,例如在虚拟机上支持64位。 如果打开并且没有使用虚拟化,是否会出现某种实质性的处理器开销? 如果没有,那么默认closures的原因是什么?