Có thể thiết lập một máy ảo bên trong một máy ảo khác không


30

Tôi đã chơi với máy ảo latley và tự hỏi liệu tôi có thể chạy một máy ảo bên trong một máy ảo không?
Có thể không?
Có thực tế không?


3
Một lý do thực tế là nếu bạn đang thuê một máy chủ. Cho dù máy chủ là vật lý hay ảo không quan trọng - đó là máy chủ của tôi. Và nếu tôi muốn cài đặt VirtualPC hoặc Virtual Server trên máy chủ của mình: đó là việc của tôi.
Ian Boyd

2
Đó thực sự không phải là một lý do thực tế, vì "tính thực tế" của việc cài đặt VM bên trong VM cuối cùng sẽ phụ thuộc vào việc nó có "thực tế" để thực hiện khả năng này trong nền tảng HW + SW đã chọn hay không. Chỉ vì ai đó "muốn" làm điều đó không làm cho nó thực tế.
Joe Internet

1
Đối với bất kỳ ai thắc mắc tại sao người ta có thể muốn làm điều này, đây là lý do của tôi, mặc dù tôi thừa nhận rằng đó không phải là lý do "thế giới thực" và tôi thực sự không thể nghĩ ra một trong số đó. Tôi đang học bài kiểm tra RHCSA nhưng tôi không có quyền truy cập vào hệ thống ảo hóa phần cứng. Do đó, tôi đã hy vọng thực hiện được điều này trên một máy ảo RHEL chạy như một ví dụ AWS của Amazon. Do máy AWS (gần như chắc chắn) là một máy ảo, nên chạy KVM trên nó sẽ yêu cầu các máy ảo lồng nhau.
Stephen C

Câu trả lời:


27

Các máy ảo lồng nhau là thứ đã được thực hiện mãi mãi trên phần cứng Mainframe của IBM. Phần cứng đó làm rất nhiều thứ để làm cho quá trình rất rất hiệu quả. Bạn có thể có các VM được lồng vào một độ sâu tùy ý và nó hoạt động rất tốt.

Phần cứng máy tính gần đây đã làm điều này hầu như không thể. Một tài liệu trên trang web của VMware thảo luận về nó, nhưng ý chính là bạn có thể có các máy ảo lồng nhau sâu 2, nhưng chỉ trên phần cứng rất hiện đại hỗ trợ ảo hóa phần cứng thực sự (VT-x hoặc AMD-V), và độ sâu VM thứ hai phải chạy kiểu ảo hóa BT / nhị phân kiểu cũ. Cũng có những hạn chế nghiêm trọng đối với màn hình ảo mà bạn có thể chạy trên máy khách bên trong.

Không cần phải nói, nó không được hỗ trợ và tôi hy vọng nó sẽ thực sự hoàn hảo nếu bạn làm bất cứ điều gì thậm chí kỳ lạ từ xa (như Hyper-V trong ESX). Và hiệu suất sẽ không tốt, bất kể nó có ổn định hay không.


2
Tài liệu đó đã thay đổi đáng kể kể từ khi nó được viết, cũng như trạng thái của nghệ thuật. Câu trả lời này, như đã được viết, thực sự không thể áp dụng ngày hôm nay. Hãy xem xét cập nhật nó.
Michael Hampton

1
@MichaelHampton Nhận xét của bạn rất hoài nghi và âm thanh lạc quan; BẠN có thể cung cấp một câu trả lời cập nhật hoặc liên kết đến một?
ILMostro_7

Đây là một liên kết đến một trang fedora-wiki mô tả cách kích hoạt tính năng lồng nhau trong KVM .
ILMostro_7

1
Chỉ để xác nhận - Theo như cung cấp Hyper-v từ MS, tôi tin rằng VM lồng nhau không được hỗ trợ cho đến ngày.
RBT

2

Có bạn có thể. Ví dụ: trên Linux, bạn có thể chạy Xen với nhiều máy ảo chạy OpenVZ, VirtualServer hoặc một số loại hệ thống VM khác. Nó là chắc chắn nhất có thể và cũng rất thực tế tùy thuộc vào mục đích của bạn.

Một lý do mà tôi có thể nghĩ ra để làm điều này là để chạy nhiều máy chủ trên một máy vật lý. Việc bạn chạy nó dưới dạng một cấp bậc phân cấp VM hay nhiều cấp tùy thuộc vào kế hoạch cách ly tài nguyên của bạn.


2

Nếu bạn cần một số cụ thể, giả sử di sản, hệ thống được ảo hóa, bạn luôn có thể làm điều đó trong phần mềm, việc lồng nhau không phải là vấn đề. Hãy thử qemu, tôi đã làm nó sâu 2 cấp với nó, nhưng bạn có thể đi sâu hơn, hiệu suất có thể sẽ làm cho nó vô dụng, mặc dù. Kiến trúc BTW, PC là điềm báo được tạo ra bởi IBM, nhưng với những mục đích sử dụng hoàn toàn khác so với những gì nó được sử dụng cho ngày nay.


1

Tôi không tin rằng hầu hết các gói ảo hóa sẽ cho phép bạn chạy VM trong VM. Tôi biết rằng VMware sẽ kiểm tra khi cài đặt để xem nó có được cài đặt trong VM không và tôi hy vọng các sản phẩm khác cũng làm như vậy. Tôi không nghĩ rằng các hướng dẫn CPU cần thiết sẽ được trình bày thông qua từ trình ảo hóa chạy trên phần cứng thông qua VM để tiếp cận VM thứ hai. Nếu nó hoạt động, bạn cũng sẽ thêm chi phí mà không nhận lại được gì.

Về việc nó có thực tế không - tôi không hiểu tại sao. Nếu bạn cần một VM khác, bạn có thể chạy nó bên cạnh máy ảo mà bạn đã chạy. Tôi không thể tưởng tượng trường hợp bạn phải có một VM chạy bên trong một VM khác. Chi phí bổ sung mà không có mức tăng theo tỷ lệ của một số tài nguyên sẽ làm cho điều này không thực tế.


1

Vâng. Thậm chí có nhiều cách để chạy VMware ESX / vSphere trong một máy ảo. Tôi không biết tại sao bạn muốn thực hành, nhưng nó đã được thực hiện.


Tôi đã thấy mọi người muốn kiểm tra ESX trong máy ảo, nhưng quá trình cài đặt yêu cầu công việc bổ sung vượt qua phương thức cài đặt thông thường. Nó không phải là một cái gì đó hoạt động ra khỏi hộp.
baum hàm

1

Có, bạn CÓ THỂ nhưng giống như nhiều thứ không có nghĩa là bạn nên làm. Tôi đã thấy một máy chủ ESX ảo hóa chạy một máy ảo có một máy chủ ESX ảo khác bên trong nó. Cấp nó là một thử nghiệm chỉ để xem nếu nó có thể được thực hiện (và nó có thể) tôi thực sự sẽ không đề nghị nó.


1

Nó phụ thuộc vào kỹ thuật ảo hóa. Nếu bạn sử dụng các giải pháp không phải là ảo hóa "thực" như UML thì bạn có thể chạy những giải pháp bên trong, giả sử, VMWare. Hoặc chính họ cho vấn đề đó.

Các bản cài đặt dựa trên UML có thể chạy bên trong VMWare VM và các bản cài đặt dựa trên UML khác (thậm chí lồng nhau). Các số liệu hiệu suất sẽ không được mặc dù đẹp!


1

Vâng, nó có thể nhưng thực sự chậm.

Sẽ rất hữu ích nếu bạn thuê một máy chủ có IP công cộng được phân bổ hạn chế (ví dụ, tùy thuộc vào địa chỉ MAC của bạn để không đầu độc mạng của nhà cung cấp máy chủ của bạn); và rằng bạn muốn IP VM của mình được kết nối để giao tiếp trực tiếp với internet. Vì vậy, khi bạn không thể có nhiều hơn, ví dụ: 3 địa chỉ IP công cộng, nhưng bạn cần 10 VM, một ý tưởng khá hay là có VM trong một VM toàn cầu: bạn sẽ chỉ sử dụng một trong những IP công cộng nhất định của mình và sau đó có nhiều VM cầu nối phụ.

Nhưng bạn thực sự có thể sử dụng kết hợp cầu nối và cấu hình mạng được định tuyến, nó chỉ khó khăn hơn về cấu hình.


0

Theo như tôi biết thì không thể, nhưng VMware ESX có thể chạy trong VMware Workstation chẳng hạn. IMHO nó chỉ tốt cho thử nghiệm.


0

Giống như nhiều người đã sẵn sàng nói: tất nhiên là có thể. Nó phụ thuộc vào mức độ phần cứng VM được mô phỏng và phần mềm ảo hóa nào bạn đang sử dụng. VMWare Workstation, ít nhất, không muốn bạn ảo hóa nó.

Về việc nếu nó thực tế, có lẽ chúng ta nên đặt lại câu hỏi cho bạn: tại sao bạn cần phải làm điều đó? Có gì sai khi chỉ chạy hai máy ảo cạnh nhau? Và đến mức độ nào bạn hỏi nếu nó thực tế? Đó là, nếu bạn lo lắng về việc thiết lập và định cấu hình, có thể không thực tế. Nếu bạn lo lắng hơn về việc sử dụng thực tế, một lần nữa, tôi không thể nghĩ ra bất cứ điều gì tôi cần phải làm điều này trừ khi tôi đang tìm kiếm lỗi trong phần mềm ảo hóa hoặc một cái gì đó.



0

Bạn có thể, nhưng tôi không khuyên bạn nên nó.

Hiệu suất thường bị ảnh hưởng khá nhiều trong toàn bộ quá trình này trên máy "khách của khách". Nếu bạn thực sự phải làm điều này mà không có phần cứng và phần mềm chuyên dụng, chúc may mắn cho bạn. Tuy nhiên, nhìn chung nó không phải là thông lệ tốt, đặc biệt là với các phương pháp phổ biến được sử dụng để đạt được ảo hóa.

Tôi biết rằng nếu bạn cố chạy VMWare trong các hệ thống VMWare, nó sẽ phàn nàn và không cho phép bạn làm điều đó. Tôi không chắc chắn về VirtualBox. Tôi biết một vài người, vì bất kỳ lý do gì, triển khai các container Docker trong các container Docker (hoặc họ nói như vậy). Đạo đức của câu chuyện là: mặc dù có thể là có thể, nhưng có lẽ không thông minh để làm điều đó trừ khi bạn thực sự biết những gì bạn đang làm.

Cá nhân tôi không biết bất kỳ trường hợp sử dụng thực tế nào cho việc này ngoài mạng.


2
Phần cứng "chuyên dụng" mà bạn cần hầu như là bất kỳ CPU nào được sản xuất trong bảy hoặc tám năm qua.
Michael Hampton
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.