Назад | Перейти на главную страницу

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

В последнее время я играл с виртуальными машинами и задавался вопросом, могу ли я запустить виртуальную машину внутри виртуальной машины.
Это возможно?
Это практично?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Можно, но я не рекомендую.

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

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

Я лично не знаю каких-либо реальных вариантов использования этого, кроме сетей.