it-swarm-ru.tech

Можно ли настроить виртуальную машину внутри другой виртуальной машины?



30
Tester101

Вложенные виртуальные машины - это то, что было сделано навсегда на оборудовании IBM Mainframe. Это оборудование делает много вещей, чтобы сделать процесс очень очень эффективным. Вы можете иметь виртуальные машины, вложенные на произвольную глубину, и это работает очень хорошо.

Аппаратное обеспечение ПК совсем недавно сделало это едва ли возможным. A document на веб-сайте VMware обсуждает это, но суть в том, что у вас могут быть виртуальные машины глубиной 2, но только на очень современном оборудовании, которое поддерживает настоящую аппаратную виртуализацию (VT-x или AMD-V), и вторая VM глубина должна быть запущена виртуализация BT/двоичный стиль перевода старого стиля. Есть также серьезные ограничения для виртуальных мониторов, которые вы можете запускать на внутреннем госте.

Само собой разумеется, что это не поддерживается, и я ожидал бы, что это будет действительно ненадежным, если вы сделаете что-нибудь даже удаленно странное (например, Hyper-V под ESX). И производительность не будет хорошей, независимо от того, стабильна ли она.

27
chris

Если вам нужна какая-то конкретная, скажем, устаревшая система для виртуализации, вы всегда можете сделать это с помощью программного обеспечения, тогда вложение не является проблемой. Попробуйте qemu, я сделал это на 2 уровня глубже, но вы можете пойти глубже, хотя производительность, вероятно, сделает его бесполезным. Кстати, архитектура ПК была номенклатурой, сделанной IBM, но для совершенно другого использования по сравнению с тем, что используется сегодня.

2
MichaelS

Да, ты можешь. Например, в Linux вы можете запустить Xen с несколькими виртуальными машинами, на которых работает OpenVZ, VirtualServer или какой-либо другой вид системы VM). Это, безусловно, возможно, а также очень практично в зависимости от вашей цели.

Одна из причин, по которой я мог бы подумать, это запустить несколько серверов на одной физической машине. Запускаете ли вы его как один уровень иерархии VM или несколько), зависит от вашего плана изоляции ресурсов.

2
sybreon

Я не верю, что большинство пакетов виртуализации позволят вам запустить VM в виртуальной машине. Я знаю, что VMware проверит, когда она установлена, чтобы узнать, установлена ​​ли она в виртуальной машине, и я надеюсь, другие продукты делают то же самое. Я не думаю, что необходимые инструкции ЦП будут передаваться от гипервизора, работающего на оборудовании, до VM для достижения второй виртуальной машины. Если это сработало, Вы бы также добавили накладные расходы, не получив ничего взамен.

Что касается того, практично ли это - я не понимаю почему. Если вам нужна другая виртуальная машина, вы можете просто запустить ее рядом с той, что у вас уже есть. Я не могу представить случай, когда вы должны иметь VM), работающий внутри другой виртуальной машины. Дополнительные издержки без пропорционального увеличения некоторого ресурса сделали бы это непрактичным.

1
baumgart

Да. Существуют даже способы запуска VMware ESX/vSphere на виртуальной машине. Я не знаю, почему вы захотите на практике, но это было сделано.

1
Kevin Kuphal

Да, вы МОЖЕТЕ, но, как и многие другие вещи, это не значит, что вы должны это делать. Я видел виртуализированный сервер ESX, на котором запущена виртуальная машина с другим виртуальным сервером ESX. Конечно, это был тест, просто чтобы посмотреть, можно ли это сделать (и можно), я бы не стал его рекомендовать.

1
SQLChicken

Это зависит от техники виртуализации. Если вы используете решения, которые не являются "настоящей" виртуализацией, такие как UML, вы можете запустить их внутри, скажем, VMWare. Или сами по этому вопросу.

Установки на основе UML могут выполняться внутри виртуальных машин VMWare и других установок на основе UML (даже вложенных). Показатели производительности не будут хорошими, хотя!

1
David Spillett

Да, это возможно, но очень медленно.

Это особенно полезно, если вы арендуете сервер с ограниченным выделенным публичным IP-адресом (который зависит, например, от вашего MAC-адреса, чтобы не отравить сеть вашего сервера); и что вы хотите, чтобы ваш VM IP) был соединен напрямую для связи с Интернетом. Поэтому, когда вы не можете иметь больше, чем, например, 3 общедоступных IP-адреса, но вам нужно 10 ВМ, неплохо было бы иметь виртуальные машины в глобальном режиме VM: вы будете использовать только один из указанных общедоступных IP-адресов, а затем иметь много виртуальных машин с промежуточным мостом.

Но на самом деле вы можете использовать сочетание конфигурации моста и маршрутизируемой сети, это просто более сложно в отношении конфигурации.

1
Yannovitch

Насколько я знаю, это невозможно, но VMware ESX может запустить в VMware Workstation, например. ИМХО это только хорошо для тестирования.

0
Saabi

Как и многие люди, все уже готовы сказать: конечно, это возможно. Это зависит от того, насколько хорошо эмулируется оборудование VM) и какое программное обеспечение для виртуализации вы используете. По крайней мере, VMWare Workstation не хочет, чтобы вы виртуализировали его.

Что касается практичности, может быть, мы должны задать вам вопрос: зачем вам делать такие вещи? Что плохого в том, чтобы просто запустить две виртуальные машины рядом? И в какой степени вы спрашиваете, практично ли это? То есть, если вы беспокоитесь о целесообразности установки и настройки, вероятно, нет. Если вас больше волнует практическое использование, опять же, я не могу придумать, для чего мне нужно это делать, если я не ищу ошибки в программном обеспечении для виртуализации или что-то еще.

0
mrduclaw
0
Massimo

Вы можете, но я не рекомендую это.

Производительность обычно сильно падает во всем этом процессе на машине "гостя гостя". Если вы действительно должны сделать это без специального аппаратного и программного обеспечения, удачи вам. Однако, как правило, это не очень хорошая практика, особенно с распространенными методами, используемыми для достижения виртуализации.

Я знаю, что если вы попытаетесь запустить VMWare в системах VMWare, он будет жаловаться и не позволит вам сделать это. Я не уверен насчет VirtualBox. Я знаю нескольких людей, которые по какой-либо причине размещают Docker-контейнеры в Docker-контейнерах (или так они говорят). Мораль этой истории такова: хотя это и возможно, но вряд ли это разумно, если вы действительно не знаете, что делаете.

Лично я не знаю ни одного фактического варианта использования для этого, кроме сетевого взаимодействия.

0
Mythical Juggernaut