Я играл с виртуальными машинами и подумал, могу ли я запустить виртуальную машину внутри виртуальной машины?
Является ли это возможным?
Это практично?
Я играл с виртуальными машинами и подумал, могу ли я запустить виртуальную машину внутри виртуальной машины?
Является ли это возможным?
Это практично?
Ответы:
Вложенные виртуальные машины - это то, что было сделано навсегда на оборудовании 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-контейнерах (или так они говорят). Мораль этой истории такова: хотя это и возможно, но вряд ли это разумно, если вы действительно не знаете, что делаете.
Лично я не знаю ни одного фактического варианта использования для этого, кроме сетевого взаимодействия.