เป็นไปได้หรือไม่ที่จะติดตั้งเครื่องเสมือนภายในเครื่องเสมือนอื่น


30

ฉันได้เล่นกับเครื่องเสมือน latley และสงสัยว่าฉันสามารถเรียกใช้เครื่องเสมือนภายในเครื่องเสมือนได้หรือไม่
มันเป็นไปได้?
มันใช้งานได้จริงหรือ


3
เหตุผลที่ปฏิบัติได้คือถ้าคุณเช่าเซิร์ฟเวอร์ ไม่ว่าเซิร์ฟเวอร์นั้นจะเป็นเซิร์ฟเวอร์จริงหรือเสมือนก็ไม่สำคัญ - เป็นเซิร์ฟเวอร์ของฉัน และถ้าฉันต้องการติดตั้ง VirtualPC หรือเซิร์ฟเวอร์เสมือนบนเซิร์ฟเวอร์ของฉัน: นั่นคือธุรกิจของฉัน
เอียนบอยด์

2
นั่นไม่ใช่เหตุผลเชิงปฏิบัติจริง ๆ เนื่องจาก "การปฏิบัติจริง" ของการติดตั้ง VM ภายใน VM จะขึ้นอยู่กับว่า "การปฏิบัติ" เพื่อนำความสามารถนี้ไปใช้ในแพลตฟอร์ม HW + SW ที่เลือกหรือไม่ เพียงเพราะใครบางคน "ต้องการ" ที่จะทำมันไม่ได้ทำให้การปฏิบัติ
Joe Internet

1
สำหรับใครก็ตามที่สงสัยว่าทำไมคนเราถึงอยากทำสิ่งนี้นี่คือเหตุผลของฉันแม้ว่าฉันจะยอมรับว่ามันไม่ใช่เหตุผล "โลกแห่งความจริง" และฉันก็ไม่สามารถนึกถึงสิ่งเหล่านี้ได้ ฉันกำลังศึกษาเพื่อสอบ RHCSA แต่ฉันไม่สามารถเข้าถึงระบบที่มีการจำลองเสมือนสำหรับฮาร์ดแวร์ได้ ดังนั้นฉันจึงหวังว่าจะบรรลุผลสำเร็จบนเครื่องเสมือน RHEL ที่ทำงานเป็นอินสแตนซ์ Amazon AWS เนื่องจากเครื่อง AWS (เกือบจะแน่นอน) เป็นเครื่องเสมือนดังนั้นการใช้งาน KVM บนเครื่องจึงจำเป็นต้องใช้ VM ที่ซ้อนกัน
สตีเฟ่นซี

คำตอบ:


27

การทำ VMs เป็นสิ่งที่ทำมาตลอดสำหรับฮาร์ดแวร์ IBM Mainframe ฮาร์ดแวร์นั้นทำสิ่งต่างๆมากมายเพื่อให้กระบวนการมีประสิทธิภาพมาก คุณสามารถให้ VMs ซ้อนกันในระดับความลึกตามอำเภอใจและทำงานได้ดีมาก

ฮาร์ดแวร์พีซีเมื่อเร็ว ๆ นี้ได้ทำให้เรื่องนี้เป็นไปได้ยาก เอกสารบนของ VMware กล่าวถึงในเว็บไซต์ของมัน แต่ส่วนสำคัญคือการที่คุณสามารถมี VMs ซ้อนกัน 2 ลึก แต่เฉพาะบนฮาร์ดแวร์ที่ทันสมัยมากที่สนับสนุนจริงเสมือนของฮาร์ดแวร์ (VT-x หรือ AMD-V) และความลึก VM ที่สองจะต้อง การรันการจำลองเสมือนสไตล์ BT / ไบนารีการแปลแบบเก่า นอกจากนี้ยังมีข้อ จำกัด ที่รุนแรงของจอภาพเสมือนที่คุณสามารถใช้กับแขกรับเชิญด้านในได้

ไม่จำเป็นต้องบอกว่ามันไม่รองรับและฉันคาดหวังว่ามันจะสกปรกถ้าคุณทำสิ่งใดแม้กระทั่งแปลก ๆ จากระยะไกล (เช่น Hyper-V ภายใต้ ESX) และประสิทธิภาพจะไม่ดีไม่ว่ามันจะเสถียรหรือไม่ก็ตาม


2
เอกสารนั้นมีการเปลี่ยนแปลงอย่างมีนัยสำคัญตั้งแต่สิ่งนี้ถูกเขียนเช่นเดียวกับสถานะของศิลปะ คำตอบนี้ตามที่เขียนไม่สามารถใช้ได้จริงในปัจจุบัน พิจารณาอัปเดต
Michael Hampton

1
@MichaelHampton ความคิดเห็นของคุณน่าสงสัยมากและมองโลกในแง่ดี คุณสามารถให้คำตอบหรือลิงก์ไปยังคำตอบที่ปรับปรุงแล้วได้หรือไม่?
ILMostro_7

นี่คือการเชื่อมโยงไปยังฟาง-วิกิพีเดียหน้าอธิบายวิธีการเปิดใช้virt ซ้อนกันในKVM
ILMostro_7

1
เพียงเพื่อยืนยัน - เท่าที่ Hyper-v เสนอจาก MS ไปฉันเชื่อว่า VM ที่ซ้อนกันไม่ได้รับการสนับสนุนจนถึงวันที่
RBT

2

ใช่คุณสามารถ. ตัวอย่างเช่นบน Linux คุณสามารถเรียกใช้ Xen ด้วย VM หลายเครื่องที่ใช้งาน OpenVZ, VirtualServer หรือระบบ VM ชนิดอื่น เป็นไปได้มากที่สุดและยังใช้งานได้จริงขึ้นอยู่กับวัตถุประสงค์ของคุณ

เหตุผลหนึ่งที่ฉันคิดว่าทำสิ่งนี้คือการเรียกใช้เซิร์ฟเวอร์หลายเครื่องในเครื่องเดียว ไม่ว่าคุณจะเรียกใช้เป็นลำดับชั้น VM ระดับเดียวหรือหลายรายการขึ้นอยู่กับแผนการแยกทรัพยากรของคุณ


2

หากคุณต้องการรายละเอียดที่เฉพาะเจาะจงกล่าวว่าเป็นระบบเสมือนจริงที่คุณสามารถทำได้ในซอฟต์แวร์การทำรังไม่ใช่ปัญหา ลอง qemu ฉันทำมันลึกลงไปถึง 2 ระดับ แต่คุณสามารถไปให้ลึกกว่านี้ได้การแสดงนั้นอาจไร้ประโยชน์ได้ BTW, สถาปัตยกรรมพีซีเป็นลางบอกเหตุที่ IBM สร้างขึ้น แต่สำหรับการใช้งานที่แตกต่างกันโดยสิ้นเชิงเมื่อเทียบกับที่ใช้ในปัจจุบัน


1

ฉันไม่เชื่อว่าแพ็คเกจการจำลองเสมือนส่วนใหญ่จะอนุญาตให้คุณเรียกใช้ VM ใน VM ฉันรู้ว่า VMware จะตรวจสอบเมื่อมีการติดตั้งเพื่อดูว่ามีการติดตั้งไว้ใน VM หรือไม่และฉันหวังว่าผลิตภัณฑ์อื่นจะทำเช่นเดียวกัน ฉันไม่คิดว่าคำสั่ง CPU ที่จำเป็นจะถูกนำเสนอผ่านจากไฮเปอร์ไวเซอร์ที่ทำงานบนฮาร์ดแวร์จนถึง VM เพื่อเข้าถึง VM ที่สอง หากใช้งานได้คุณจะต้องเพิ่มค่าใช้จ่ายโดยไม่ได้อะไรตอบแทน

ไม่ว่าจะเป็นในทางปฏิบัติ - ฉันไม่เห็นว่าทำไม หากคุณต้องการ VM อื่นคุณสามารถเรียกใช้งานได้ถัดจากเซิร์ฟเวอร์ที่คุณใช้งานอยู่ ฉันไม่สามารถจินตนาการถึงกรณีที่คุณต้องมี VM ทำงานอยู่ภายใน VM อื่น ค่าโสหุ้ยเพิ่มเติมโดยไม่ได้รับสัดส่วนของทรัพยากรบางอย่างจะทำให้สิ่งนี้ไม่สามารถทำได้


1

ใช่. มีหลายวิธีในการรัน VMware ESX / vSphere ในเครื่องเสมือน ฉันไม่รู้ว่าทำไมคุณถึงต้องการฝึกหัด แต่มันก็ทำเสร็จแล้ว


ฉันเคยเห็นคนที่ต้องการทดสอบ ESX ใน VM แต่การติดตั้งต้องใช้งานเพิ่มเติมที่ผ่านมาเพียงวิธีการติดตั้งปกติ ไม่ใช่สิ่งที่ทำงานนอกกรอบ
baumgart

1

ใช่คุณทำได้ แต่ชอบหลายสิ่งหลายอย่างไม่ได้หมายความว่าคุณควรทำ ฉันเห็นเซิร์ฟเวอร์ ESX เสมือนจริงที่ใช้งานเครื่องเสมือนซึ่งมีเซิร์ฟเวอร์ ESX เสมือนอื่นอยู่ภายใน ได้รับมันเป็นการทดสอบเพียงเพื่อดูว่าสามารถทำได้ (และสามารถ) ฉันจริง ๆ จะไม่แนะนำมัน


1

มันขึ้นอยู่กับเทคนิคระบบเสมือนจริง หากคุณใช้โซลูชันที่ไม่ใช่เวอร์ช่วลไลเซชั่นเสมือนจริงอย่าง UML คุณสามารถเรียกใช้งานภายในได้เช่น VMWare หรือตัวเองสำหรับเรื่องนั้น ๆ

การติดตั้งที่ใช้ UML สามารถเรียกใช้ภายใน VMWare VM และการติดตั้งที่ใช้ UML อื่น ๆ (แม้ซ้อนกัน) ตัวชี้วัดประสิทธิภาพจะไม่ได้สวยเลย!


1

ใช่เป็นไปได้ แต่ช้าจริงๆ

มันมีประโยชน์โดยเฉพาะอย่างยิ่งถ้าคุณกำลังเช่าเซิร์ฟเวอร์ที่มี IP สาธารณะ จำกัด ที่จัดสรร (ซึ่งขึ้นอยู่กับตัวอย่างเช่นที่อยู่ MAC ของคุณเพื่อไม่ให้พิษเครือข่ายของผู้ให้บริการเซิร์ฟเวอร์ของคุณ); และคุณต้องการเชื่อมต่อ VM IP ของคุณเพื่อสื่อสารโดยตรงกับอินเทอร์เน็ต ดังนั้นเมื่อคุณไม่สามารถมีมากกว่าที่อยู่ IP สาธารณะ 3 ที่ แต่ที่คุณต้องการ 10 VM มันเป็นความคิดที่ดีที่จะมี VM ใน VM ทั่วโลก: คุณจะใช้ IP สาธารณะที่คุณได้รับเพียงอย่างเดียว มีบริดจ์เชื่อมต่อย่อยมากมาย

แต่คุณสามารถใช้การผสมผสานของบริดจ์และการกำหนดค่าเครือข่ายที่กำหนดเส้นทางมันเป็นเรื่องที่ยากยิ่งขึ้นเกี่ยวกับการกำหนดค่า


0

เท่าที่ฉันรู้ว่ามันเป็นไปไม่ได้ แต่ VMware ESX สามารถทำงานได้ใน VMware Workstation IMHO นั้นดีสำหรับการทดสอบเท่านั้น


0

เช่นเดียวกับหลาย ๆ คนที่พร้อมจะพูดว่า: แน่นอนมันเป็นไปได้ ขึ้นอยู่กับว่าฮาร์ดแวร์ VM ถูกจำลองและซอฟต์แวร์เวอร์ชวลไลเซชันที่คุณใช้อยู่เพียงใด อย่างน้อย VMWare Workstation ไม่ต้องการให้คุณจำลองเสมือน

สำหรับถ้ามันใช้งานได้จริงเราอาจจะตั้งคำถามกลับมาหาคุณ: ทำไมคุณต้องทำสิ่งนั้น เกิดอะไรขึ้นกับการรัน VMs สองตัวพร้อมกัน และคุณถามว่ามันใช้งานได้จริงในระดับใด? นั่นคือหากคุณกังวลว่าการติดตั้งและกำหนดค่าอาจเป็นไปได้ หากคุณกังวลเกี่ยวกับการใช้งานจริงมากขึ้นฉันไม่สามารถนึกถึงสิ่งที่ฉันต้องทำเพื่อสิ่งนี้เว้นแต่ว่าฉันกำลังมองหาจุดบกพร่องในซอฟต์แวร์เวอร์ชวลไลเซชันหรือบางอย่าง



0

คุณทำได้ แต่ฉันไม่แนะนำ

ประสิทธิภาพมักจะได้รับความนิยมอย่างมากในกระบวนการทั้งหมดนี้ในเครื่อง "แขกของแขก" หากคุณต้องทำสิ่งนี้โดยไม่ต้องใช้ฮาร์ดแวร์และซอฟต์แวร์เฉพาะขอให้โชคดี อย่างไรก็ตามโดยทั่วไปแล้วมันไม่ใช่วิธีปฏิบัติที่ดีโดยเฉพาะอย่างยิ่งกับวิธีการทั่วไปที่ใช้เพื่อให้บรรลุ virtualization

ฉันรู้ว่าถ้าคุณพยายามเรียกใช้ VMWare ภายในระบบ VMWare มันจะบ่นและไม่อนุญาตให้คุณทำ ฉันไม่แน่ใจเกี่ยวกับ VirtualBox ฉันรู้ว่ามีคนไม่กี่คนที่ใช้งาน Docker container ภายใน Docker container ด้วยเหตุผลใดก็ตาม คุณธรรมของเรื่องราวคือ: แม้ว่ามันอาจเป็นไปได้ แต่ก็ไม่ฉลาดที่จะทำเว้นแต่คุณจะรู้ว่าคุณกำลังทำอะไรอยู่

ฉันเองก็ไม่ทราบถึงกรณีการใช้งานจริงนอกเหนือไปจากระบบเครือข่าย


2
ฮาร์ดแวร์ "พิเศษ" ที่คุณต้องการคือซีพียูที่ผลิตในช่วงเจ็ดหรือแปดปีที่ผ่านมา
Michael Hampton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.