Распределение оперативной памяти виртуальным машинам

264
aCoder

Я работаю над OpenStack Cloud . У меня есть две виртуальные машины. На обоих я установил CentOS 7. Я настроил одну виртуальную машину как controller nodeдругую, а другую - как compute node.

У меня есть два вопроса:

  1. Могу ли я назначить виртуальной памяти больше доступной физической памяти? Я знаю, это звучит глупо, но я читал это в каком-то блоге (извините, я не помню адрес сайта), что если у нас swap memoryудвоится объем ОЗУ, мы сможем это сделать. Это действительно так? Я никогда не испытывал такую ​​вещь. Виртуальный ящик не позволяет это сделать! Но все же, если есть способ сделать это, я бы с удовольствием это узнал.
  2. Могу ли я использовать свою физическую машину в качестве узла контроллера, в то время как узел вычисления все еще находится на виртуальной машине. Если да, то как? Могу ли я получить объяснение этому.

Спасибо.

0

2 ответа на вопрос

2
Hennes

Если вы читаете что-то с помощью «swap memory double RAM», то вы, вероятно, читаете что-то из 1990-х или старше. Это больше не актуально.

(Краткое резюме с опущенными подробностями: тогда некоторые ОС использовали только виртуальную память, а вся реальная физическая память была буфером. Использование было 2: 1).

Могу ли я назначить виртуальной памяти больше доступной физической памяти?

Технически это возможно, но программное обеспечение вашей виртуальной машины может этого не допустить. (Рабочая станция IIRC vmware этого не делает. Я почти не использовал виртуальную коробку и понятия не имею, каковы ее настройки). А выделение большего объема ОЗУ, чем у вас, нескольким виртуальным машинам может потребовать значительного подкачки (и соответствующих замедлений).

Могу ли я использовать свою физическую машину в качестве узла контроллера, в то время как узел вычисления все еще находится на виртуальной машине.

Конечно. Застенчивый нет. Ваша физическая машина является хостом. ВМ - это хост. Для большинства точек зрения для них почти нет разницы.

Вы можете рассмотреть две вещи, хотя:

  1. Networking. Разместили ли вы виртуальные машины в их собственной сети, где ничто другое (включая ваш хост) не может связаться с ними? Или в собственной сети хостов, где они могут общаться с хостом, но не с локальной сетью / Интернетом? Или они соединены с реальной сетью и действуют так же, как основной компьютер?
  2. Почему бы не установить контроллер на ВМ и сохранить все согласованным и переносимым?
Ok thats a good one. Nop vmware won't allow and so as virtualbox though I have set the maximum paging. Coming to your question, 1. Networking: I have selected the default [NAT](https://www.virtualbox.org/manual/ch06.html#network_nat). 2. yes I wanted to install the controller on the VM but I thought let me have at least the controller or probably the compute node on the physical medium. would that be a bad choice? aCoder 7 лет назад 0
Having the controller on the physical host rather than on a guest is not bad. It just makes it harder to isolate or move to a different machine. Thus you simply would not gain some of the advantages which a VM usually offers. If that is relevant to you is something only you can decide. Hennes 7 лет назад 0
As to NAT: `This separation maximizes security since by default virtual machines cannot talk to each other.`... I think you do want your machines to be able to talk to eachother. Hennes 7 лет назад 1
yup! I was thinking about [Host-only networking](https://www.virtualbox.org/manual/ch06.html#network_hostonly) which would be a better option for OpenStack services. aCoder 7 лет назад 0
But still the question remains **How to assign more than available physical RAM to a VM?** aCoder 7 лет назад 0
0
José Castillo Lema
  1. Могу ли я назначить виртуальной памяти больше доступной физической памяти?

    Да, это называется переподпиской. Вы можете настроить его в вашем nova.conf, ram_allocation_ratio. По умолчанию OpenStack равен 1,5, что означает соотношение 1: 1,5 (с 1 ГБ физической памяти вы можете «создать» 1,5 ГБ виртуальной памяти)

  2. Могу ли я использовать свою физическую машину в качестве узла контроллера, в то время как узел вычисления все еще находится на виртуальной машине. Если да, то как?

    Да, только для целей тестирования. Вложенная виртуализация не имеет хорошей производительности.

Насколько мне известно, лучшие практики требуют, чтобы вы НЕ переусердствовали ОЗУ. Хотя это возможно, он попадает в ситуации, когда вы используете файл подкачки на диске, который никогда не является желательным состоянием. Избыточное выделение ресурсов процессора - это нормально, потому что инструкции процессора поставлены в очередь. music2myear 5 лет назад 0
Согласен! Я также не рекомендую, память - единственный ресурс, который не может быть переподписан в мире виртуализации. José Castillo Lema 5 лет назад 1

Похожие вопросы