Monday, May 9, 2016

Enable Nested Virtualization บน Windows Server 2016 Technical Preview 5

 

หลังจากได้ทดลองเล่น Windows Server 2016 ตั้งแต่ TP3 มาก็ยังไม่มีโอกาศได้ทดสอบ feature nested virtualization ของ Hyper-V สักที วันนี้พอมีเวลาว่างๆ ก็มานั่งอับเดตข้อมูลตรงนี้ให้กับผู้ที่ยังไม่รู้จัก feature นี้แหละผู้ที่ต้องการอยากจะทดลองใช้งาน feature นี้ดูก็นำไปลองใช้งานกันดูได้ครับ

เข้าเรื่องเลยละกัน !!!

nested virtualization คืออะไรตอบอย่างง่ายๆ คือ รัน hyper-v ซ้อน hyper-v อธิบายตรงตัวสุดๆ ละ แล้วเจ้า nested virtualization มีเอาไว้ทำไม?

อันนี้วัตถุประสงค์แบบชัดเจนเลยคงไม่ตายตัวครับสามารถตอบได้หลายๆ เหตุผลครับ อย่างแรกเลยคือ เพื่อให้ท่านๆ ทั้งหลายสามารถทดสอบ การทำงานเกี่ยวกับ Hyper-V เองโดยไม่ต้องมี Physical Server หลายๆเครื่องเพื่อให้สามารถทดสอบ feature & function การทำงานแบบ HA หรือ Replica บลาๆๆ นู้นนี้นั้น ก็ตามแต่ หรือบางท่านอาจจะอยากทดสอบ Virtualization Management software ก็คร่าวนี้แหละ ได้ลองเล่นได้สมดังใจหวัง โดยใช้ Server เพียงตัวเดียวเท่านั้นครับ

 

ข้อกำหนดการใช้งานพื้นฐานของ nested virtualization มีอะไรบ้าง (As is TP5)

1. VM ต้องกำหนด memory allocate เป็นแบบ fix memory เท่านั้นไม่รองรับ dynamic memory และมีขนาด memory ขั้นต่ำที่ 4 GB

2. nested virtualization นี้จำเป็นจะต้องใช้งาน feature Intel-VT ณ ตอนนี้รองรับแค่ Intel-VT (แต่ยังไม่ confirm 100% ว่า AMD-V จะรองรับหรือไม่ในเวอร์ชั่นจริง)

3. Hypervisor version(Physical Host และ VM ที่จะติดตั้ง Hyper-V) จะต้องมี Build version ขั้นต่ำที่ 10565 ขึ้นไป

 

สิ่งที่ต้องทราบก่อนทำการใช้งาน nested virtualization (Know Issue)

1. Host ที่เปิดใช้งาน feature Device Guard จะไม่สามารถ enable expose virtualization extensions ไปยัง VM ได้

2. Host ที่เปิดใช้งาน feature Virtulization Based Security (VBS) จะไม่สามารถ enable expose virtualization extensions ไปยัง VM ได้

3. เมื่อ enable expose virtualization extensions ไปที่ VM แล้วจะไม่สามารถใช้งาน feature เหล่านี้ได้บน VM

- Dynamic memory

- Runtime memory resize will fail

- Checkpoint (Snapshot)

- Live Migration

- Save State/Restore State

4. หลังจาก enable expose virtualization extensions แล้ว MAC spoofing จำเป็นจะต้อง enable ด้วยเพื่อให้ network สามารถใช้งานได้สำหรับ VM Guest

 

ขั้นตอนการ enable nested virtualization

1. Host ติดตั้ง TP5 และ VM ที่จะติดตั้ง Hyper-V ก็ติดตั้ง TP5 ด้วยเช่นกัน

2. เปิด windows powershell (Run as administrator) แล้วรันคำสั่งนี้เพื่อ enable expose virtulization (**มั่นใจว่า VM Shutdown อยู่ก่อนรันคำสั่ง)

[PS] Set-VMProcessor –VMName ‘vmName’ -ExposeVirtualizationExtensions $true

image

3. fix memory และกำหนดค่าขั้นต่ำที่ 4GB (RAM ของ Host ใครเยอะๆก็จัดไปตามอำเภอใจครับ)

4. enable MAC Spoofing ของเครื่อง VM Guest ที่จะติดตั้ง Hyper-V

5. จากนั้นก็ Start VM ขึ้นมาแล้วก็ติดตั้ง Hyper-V Role ได้เลยครับ

image

image

หลังจากติดตั้ง Hyper-V ใน VM Guest แล้วก็ลองทดสอบสร้าง VM Guest ซ้อน Guest เข้าไปอีกหนึ่ง Guest แล้วทอสอบรัน VM Guest ดูว่าได้หรือไม่?

image

 

สำหรับบทความนี้ก็ขอจบการนำเสนอ nested virtualization ไปเพียงเท่านี้ครับผม

ไว้พบกันบทความหน้าครับ

No comments:

Post a Comment