จากประสบการณ์การใช้งาน Hyper-V ผมพบว่าบางครั้งต้องทำการเพิ่มหรือลดขนาดฮาร์ดดิสก์เสมือน (Virtual Hard Disk หรือ VHD) ซึ่งสามารถทำได้โดยใช้เครื่องมือ Hyper-V Manager ซึ่งผมเคยแนะนำไปแล้วในเรื่อง วิธีขยาย Virtual Hard Disk บน Hyper-V นอกจากนี้ยังสามารถทำได้โดยใช้คำสั่ง Resize-VHD ตามวิธีด้านล่างครับ
Resize-VHD
ก่อนอื่นผมขอแนะนำ Resize-VHD ให้ได้ทราบกันก่อนครับ
Resize-VHD เป็นคำสั่ง cmdlet (อ่านว่า command-let) สำหรับใช้ทำการขยาย (Expand) หรือลดขนาด (Shrink) ฮาร์ดดิสก์เสมือน สำหรับในกรณีของการลดขนาดนั้นจะรองรับเฉพาะฮาร์ดดิสก์เสมือนฟอร์แมต VHDX เท่านั้น อย่างไรก็ตามมีข้อควรทราบในกรณีที่คุณทำการลดขนาดฮาร์ดดิสก์เสมือนจะไม่สามารถลดลงเหลือน้อยกว่าขนาดที่น้อยที่สุดได้ครับ (การทำงานจะล้มเหลว)
ข้อมูลระบบที่ใช้อ้างอิง
เซิร์ฟเวอร์ Hyper-V ที่ผมใช้อ้างอิงในบทความนี้เป็น Windows Server 2012 R2 ส่วน PowerShell เป็นเวอร์ชัน 4.0 ครับ
วิธีการเปิด PowerShell
ปกติแล้ว การเปิด PowerShell บน Windows Server 2012 R2 ซึ่งติดตั้งแบบ Server with a GUI นั้น ทำได้โดยการคลิกขวาบนไอคอน PowerShell บนแถบงาน ส่วนบน Server Core นั้นทำได้โดยการรันคำสั่ง PowerShell ที่พร้อมท์คำสั่ง ซึ่งทั้ง 2 วิธี Windows จะเปิดด้วยสิทธิ์ผู้ดูแลระบบโดยอัตโนมัติ แต่ถ้าบน Windows เวอร์ชันเดสก์ท็อปจะต้องใช้วิธีการเปิด PowerShell โดยการเลือก Run as administrator ครับ
การเปลี่ยนขนาด Virtual Hard Disk ด้วย Resize-VHD
ในบทความนี้ ผมขอยกตัวอย่างการใช้งาน Resize-VHD ใน 3 สถานการณ์ คือ เพิ่มขนาดฮาร์ดดิสก์เสมือน ลดขนาดฮาร์ดดิสก์เสมือม และ ฮาร์ดดิสก์เสมือนลงไปเป็นค่าน้อยที่สุด ดังรายละเอียดด้านล่างครับ
หมายเหตุ: สำหรับตัวอย่างนี้ใช้ฮาร์ดดิสก์เสมือนชื่อ Windows 10.vhdx เก็บอยู่ในโฟลเดอร์ E:\VHD และมีขนาด 80 GB
ทิป: การดูข้อมูลฮาร์ดดิสก์ทำได้โดยใช้คำสั่ง Get-VHD
รูปที่ 1
ตัวอย่างที่ 1: ทำการขยายขนาดฮาร์ดดิสก์เสมือนชื่อ Windows 10.vhdx จาก 80 GB เป็น 120GB ทำได้โดยทำการรันคำสั่ง Resize-VHD ที่คอมมานด์พร้อมท์ของ PowerShell ดังนี้
Resize-VHD –Path “E:\VHD\Windows 10.vhdx” –SizeBytes 120GB
จะได้ผลการทำงานดังรูปที่ 2
รูปที่ 2
ตัวอย่างที่ 2: ทำการลดขนาดฮาร์ดดิสก์เสมือนชื่อ Windows 10.vhdx จาก 80 GB เป็น 120GB ทำได้โดยทำการรันคำสั่ง Resize-VHD ที่คอมมานด์พร้อมท์ของ PowerShell ดังนี้
Resize-VHD –Path “E:\VHD\Windows 10.vhdx” –SizeBytes 100GB
จะได้ผลการทำงานดังรูปที่ 3
รูปที่ 3
ตัวอย่างที่ 3: ทำการลดขนาดฮาร์ดดิสก์เสมือนชื่อ Windows 10.vhdx ลงเป็นขนาดที่เล็กที่สุดที่เป็นไปได้ (80GB) ทำได้โดยทำการรันคำสั่ง Resize-VHD ที่คอมมานด์พร้อมท์ของ PowerShell ดังนี้
Resize-VHD –Path “E:\VHD\Windows 10.vhdx” –ToMinimumSize
จะได้ผลการทำงานดังรูปที่ 4
รูปที่ 4
คู่มือการใช้งาน Resize-VHD
ส่วนคู่มือการใช้งาน Resize-VHD สามารถดูได้โดยรันคำสั่ง Get-Help Resize-VHD ที่คอมมานด์พร้อมท์ของ PowerShell ครับ
ขยาย Volume
หลังจากทำการขยายฮาร์ดดิสก์เสมือนเสร็จแล้วจะต้องทำการขยายโวลุ่มโดยการใช้ครื่องมือ Disk Manager บนระบบเกสต์ก่อนจึงจะสามารถใช้งานได้ อ่านวิธีทำได้ ที่นี่ ครับ
สรุป
ในความเห็นผม Resize-VHD เป็นคำสั่งที่ช่วยให้การเพิ่มหรือลดฮาร์ดดิสก์เสมือนบน Windows Server 2012 R2 Hyper-V ทำได้สะดวกรวดเร็วมากขึ้น และเป็นประโยชน์มากยิ่งขึ้นเมื่อใช้งาน Hyper-V บนโหมด Server Core ครับ
ข้อมูลอ้างอิง
TN Resize-VHD