Чи можливо встановити віртуальну машину всередині іншої віртуальної машини


30

Я граю з віртуальними машинами без проблем і запитав, чи зможу я запустити віртуальну машину всередині віртуальної машини?
Це можливо?
Це практично?


3
Практична причина - якщо ви орендуєте сервер. Будь сервер фізичний чи віртуальний не має значення - це мій сервер. І якщо я хочу встановити VirtualPC або Virtual Server на свій сервер: це моя справа.
Ян Бойд

2
Це насправді не є практичною причиною, оскільки "практичність" установки ВМ всередині VM в кінцевому рахунку залежатиме від того, чи "практичним" є реалізація цієї можливості в обраній платформі HW + SW. Тільки тому, що хтось "хоче" це зробити, це не робить його практичним.
Joe Internet

1
Для тих, хто цікавиться, чому можна захотіти це зробити, ось моя причина, хоча я визнаю, що це не причина "реального світу" і що я не можу реально думати про одну з них. Я навчаюсь на іспиті RHCSA, але не маю доступу до системи з апаратною віртуалізацією. Тому я сподівався досягти цього на віртуальній машині RHEL, що працює як екземпляр Amazon AWS. Оскільки машина AWS є (майже впевнено) самою віртуальною машиною, для роботи на ній KVM знадобляться вкладені віртуальні машини.
Стівен С

Відповіді:


27

Введення VM - це те, що було зроблено назавжди на апаратному забезпеченні IBM Mainframe. Це обладнання робить багато речей, щоб зробити процес дуже ефективним. Ви можете мати VM вкладені на довільну глибину, і це працює дуже добре.

Апаратне забезпечення ПК зовсім недавно зробило це ледве можливим. Документ на веб - сайті ОБГОВОРЮЄ компанії VMware це, але суть в тому , що ви можете мати віртуальні машини вкладеними 2 глибоко, але тільки на дуже сучасні апаратні засоби , які підтримує істинно апаратної віртуалізації (VT-х або AMD-V), а друга глибина VM повинна бути запуск віртуалізації старшого стилю BT / бінарного стилю перекладу. Існують також суворі обмеження щодо віртуальних моніторів, які ви можете запустити на внутрішньому гості.

Потрібно сказати, що він не підтримується, і я б очікував, що він буде справді химерним, якщо ви робите щось, навіть дивно дивне (наприклад, Hyper-V під ESX). І продуктивність не буде хорошою, незалежно від того, стабільна вона.


2
Цей документ суттєво змінився з того часу, як це було написано, як і сучасний стан. Ця відповідь, як було написано, сьогодні не застосовується. Подумайте про її оновлення.
Майкл Хемптон

1
@MichaelHampton Ваші коментарі дуже скептичні та звучать оптимістично; ви могли б надати оновлену відповідь або посилання на одну?
ILMostro_7

Ось посилання на сторінку fedora-wiki, що описує, як увімкнути вкладений virt в KVM .
ILMostro_7

1
Тільки для підтвердження. Що стосується пропозиції Hyper-v від MS, я вважаю, що вкладений VM не підтримується на сьогоднішній день.
RBT

2

Так, ти можеш. Наприклад, в Linux ви можете запускати Xen з декількома VM, що працюють на OpenVZ, VirtualServer або будь-який інший тип системи VM. Це, безумовно, можливо, а також дуже практично в залежності від вашої мети.

Однією з причин, над якою я міг би зробити це, є запуск декількох серверів на одній фізичній машині. Чи буде ви запускаєте його як єдиний рівень ієрархії віртуальних машин або декілька, залежить від вашого плану ізоляції ресурсів.


2

Якщо вам потрібна якась конкретна, скажімо, застаріла, система для віртуалізації, ви завжди можете це робити в програмному забезпеченні, тоді вкладення не є проблемою. Спробуйте qemu, я зробив це на 2 рівні глибоко, але ви можете заглибитись, але, мабуть, це зробить його марним. До речі, архітектура ПК була номенклатурною ознакою, виготовленою IBM, але для зовсім іншого використання порівняно з тим, що вона використовується сьогодні.


1

Я не вірю, що більшість пакетів віртуалізації дозволять вам запустити VM у віртуальній машині. Я знаю, що VMware перевірить, коли він встановлений, щоб побачити, чи встановлений він у VM, і я сподіваюся, що інші продукти роблять те ж саме. Я не думаю, що необхідні інструкції щодо процесора будуть представлені від гіпервізора, що працює на апаратному забезпеченні, через VM, щоб дістатися до другого VM. Якби це все спрацювало, ви також додавали б накладні витрати, не отримуючи нічого взамін.

Що стосується того, чи це практично - я не розумію, чому. Якщо вам потрібна інша VM, ви можете просто запустити її поруч із тією, яка вже працює. Я не можу уявити собі випадок, коли у вас повинен бути VM, який працює під іншим VM. Додаткові накладні витрати без пропорційного збільшення певного ресурсу зробили б це недоцільним.


1

Так. Існують навіть способи запуску VMware ESX / vSphere у віртуальній машині. Я не знаю, чому ви хотіли б на практиці, але це було зроблено.


Я бачив людей, які хочуть протестувати ESX у віртуальній машині, але для встановлення потрібна додаткова робота минулого звичайного способу встановлення. Це не те, що працює з коробки.
baumgart

1

Так, ВИ МОЖЕТЕ, але як багато речей, це не означає, що слід. Я бачив віртуалізований сервер ESX під управлінням віртуальної машини, який має ще один віртуальний сервер ESX. Зрозуміло, що це був тест просто для того, щоб побачити, чи можна це зробити (і це можна), я дійсно не рекомендував би його.


1

Це залежить від техніки віртуалізації. Якщо ви використовуєте рішення, які не є "справжньою" віртуалізацією, як UML, ви можете запустити їх всередині, скажімо, VMWare. Або самі з цього приводу.

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


1

Так, це можливо, але дуже повільно.

Це особливо корисно, якщо ви орендуєте сервер з обмеженим виділеним загальнодоступним IP (що залежить, наприклад, від вашого MAC-адреси, щоб не отруїти мережу вашого постачальника сервера); і що ви хочете, щоб ваш VM IP був з'єднаний для прямого зв'язку з Інтернетом. Отже, коли у вас не може бути більше, ніж, наприклад, 3 загальнодоступних IP-адреси, але вам потрібні 10 ВМ, це дуже гарна ідея мати VM в глобальній віртуальній машині: ви будете використовувати лише один із ваших публічних IP-адрес, а потім мають безліч підмостинних ВМ.

Але ви фактично можете використовувати суміш мостових та маршрутизованих мережевих конфігурацій, це стосується конфігурації.



0

Як і багато людей, всі готові сказали: звичайно, це можливо. Це залежить від того, наскільки добре емуляція апаратного забезпечення VM та яке програмне забезпечення для віртуалізації ви використовуєте. Принаймні, робоча станція VMWare не хоче, щоб ви її віртуалізували.

Що стосується того, що це практично, можливо, ми повинні поставити вам питання: навіщо вам потрібно робити таку річ? Що поганого в тому, щоб запустити два VM поруч? І до якої міри ви запитуєте, чи це практично? Тобто, якщо ви переживаєте, чи не практично це налаштування та налаштування, можливо, ні. Якщо ви більше переживаєте, що це практичне використання, я знову не можу придумати нічого, для чого мені потрібно це зробити, якщо я не шукаю помилок у програмному забезпеченні для віртуалізації чи чогось іншого.



0

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

Продуктивність, як правило, досить сильно вражає весь цей процес на машині "гість гостя". Якщо ви справді повинні це зробити без спеціалізованого обладнання та програмного забезпечення, удачі вам. Однак, як правило, це не є хорошою практикою, особливо із загальними методами, які використовуються для досягнення віртуалізації.

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

Я особисто не знаю жодного фактичного випадку використання для цього поза мережею.


2
«Спеціалізоване» обладнання, яке вам потрібно, - це практично будь-який процесор, виготовлений за останні сім-вісім років.
Майкл Хемптон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.