我正在尝试OpenStack云。我有两个虚拟机。我在两个虚拟机上都安装了CentOS 7
。我已将一个虚拟机设置为,controller node
另一个设置为compute node
。
我有两个问题:
- 我可以为虚拟机分配超过可用物理 RAM 的内存吗?我知道这听起来很愚蠢,但我在某个博客上读到过(抱歉,我不记得网站地址了),如果我们有
swap memory
双倍的 RAM,我们就可以做到这一点。这是真的吗?我从来没有遇到过这样的事情。Virtual Box 也不允许这样做!但如果有办法做到这一点,我还是想知道。 - 我可以使用物理机作为控制器节点,而计算节点仍然驻留在虚拟机上。如果是,那怎么办?我可以解释一下吗?
谢谢。
答案1
如果你读到过“将交换内存增加一倍 RAM”之类的内容,那么你读到的可能是 20 世纪 90 年代或更早的内容。这些内容已经不再具有相关性。
(简要总结,省略细节:当时有些操作系统只使用虚拟内存,所有实际物理内存都是缓冲区。使用率为 2:1)。
我可以为虚拟机分配超过可用物理 RAM 的内存吗?
从技术上讲,您可以这样做,但您的 VM 软件可能不允许这样做。(如果我没记错的话,vmware 工作站不允许。我几乎没用过虚拟盒,也不知道它的设置是什么)。并且,为多个 VM 分配比您拥有的更多的 RAM 可能需要进行大量分页(以及相应的减速)。
我可以使用物理机作为控制器节点,而计算节点仍然驻留在虚拟机上。
当然。不必害羞。您的物理机是主机。虚拟机是主机。从大多数角度来看,它们几乎没有区别。
不过,你可能需要考虑两件事:
- 网络。您是否将虚拟机放在自己的网络上,其他任何设备(包括您的主机)都无法访问它们?或者放在自己的主机网络上,它们可以与主机通信,但不能与 LAN/Internet 通信?或者它们是否桥接到真实网络并与主主机计算机一样运行?
- 为什么不在虚拟机上安装控制器并保持一切一致且可移植?
答案2
我可以为虚拟机分配超过可用物理 RAM 的内存吗?
是的,这叫做超额订阅。您可以在 nova.conf 中配置它,ram_allocation_ratio。OpenStack 默认值为 1.5,这意味着比率为 1:1.5(使用 1GB 的物理 RAM,您可以“创建”1.5GB 的虚拟 RAM)
我可以使用物理机作为控制器节点,而计算节点仍驻留在虚拟机上吗?如果可以,那么该怎么做?
是的,仅用于测试目的。嵌套虚拟化性能不佳。