it-swarm-vi.tech

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

[.__.]
[.__.]

30
Tester101

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ể. A tài liệ trên trang web của VMware thảo luận về nó, nhưng Gist 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 thứ hai VM phải chạy ảo hóa kiểu dịch nhị phân BT/kiểu cũ. Ngoài ra, còn 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.

27
chris

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.

2
MichaelS

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 VM hệ thống. Điều này chắc chắn là 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ĩ đến để 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 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
sybreon

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ĩ các hướng dẫn CPU cần thiết sẽ được trình bày 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 được bất cứ điều gì trở lại.

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ó VM chạy bên trong một VM khác. Chi phí bổ sung mà không có mức tăng tỷ lệ của một số tài nguyên sẽ khiến điều này trở nên không thực tế.

1
baumgart

Đú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.

1
Kevin Kuphal

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 cho 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
SQLChicken

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 ả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
David Spillett

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 VM IP của bạn đượ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, đó là một ý tưởng khá hay khi có các máy ảo trong toàn cầu VM: bạn sẽ chỉ sử dụng một trong các IP công cộng đã cho của mình và sau đó có nhiều máy ảo có 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.

1
Yannovitch

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
Saabi

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. Ít nhất, VMWare Workstation 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 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 thứ gì đó.

0
mrduclaw
0
Massimo

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.

0
Mythical Juggernaut