Home > ซอฟต์แวร์, ซีพียู, บทความ > Virtualization Technology เทคโนโลยีการทำเสมือนจริงของซีพียูยุคใหม่


Virtualization Technology เทคโนโลยีการทำเสมือนจริงของซีพียูยุคใหม่

March 31st, 2007

Virtualization Technology หรือที่อินเทลเรียกย่อๆ ว่า VT นั้น อินเทลใส่คุณสมบัตินี้ให้กับซีพียูตั้งแต่สมัย Pentium 4 รุ่น 672 และ 662 เป็นครั้งแรก แต่ดูเหมือนว่าจนถึงตอนนี้เทคโนโลยี VT นั้นยังไม่ถูกนำมาใช้งานอย่างเต็มที่ โดยเฉพาะกับผู้ใช้ระดับ End User อย่างเรา แต่สำหรับกลุ่มธุรกิจที่มีความจำเป็นต้องใช้งานแอพพลิเคชันเซิร์ฟเวอร์ หรือให้บริการอย่างเว็บโฮสติ้งนั้น เทคโนโลยี VT ทำให้พวกเขาสามารถลดต้นทุนในทุกๆ เรื่องลงไปได้มาก

เปิดโลกเวอร์ชวลไลเซชัน

เทคโนโลยีที่เรียกว่าการทำเวอร์ชวลไลเซชัน (Virtualization Technology, VT) หรือเทคโนโลยีการทำเสมือนจริงซึ่งแต่เดิมเรียกกันว่า Vanderpool โดยเทคโนโลยีนี้ช่วยให้ซีพียูทำตัวเสมือนว่า พวกมันกลายเป็นซีพียูหลายตัวทำงานขนานกันไป เพื่อช่วยทำให้ระบบปฏิบัติการหลายระบบสามารถทำงานได้พร้อมกันในเครื่องเดียวกัน

เทคโนโลยีของการทำเวอร์ชวลไลเซชันไม่ใช่เป็นสิ่งใหม่เลย มีซอฟต์แวร์ในตลาดที่สามารถเวอร์ชวลไลเซชันได้ และโปรแกรมจัดได้ว่ามีชื่อเสียงมากที่สุดคือ VMWare และอีกตัวที่พอจะรู้จักกันก็คือ Virtual PC ซึ่งถูกไมโครซอฟต์ซื้อไปเรียบร้อยแล้ว โดยโปรแกรมอย่าง VMWare และ Virtual นั้น ไม่เพียงแต่ทำการจำลองซีพียูเพิ่มขึ้นมาเท่านั้น แต่ว่าเป็นการจำลองเครื่องคอมพิวเตอร์ขึ้นมาทั้งเครื่องเลยทีเดียว เทคนิคนี้คอมพิวเตอร์เครื่องเดียวสามารถทำตัวได้เหมือนกับมันคอมพิวเตอร์หลายเครื่องทำงานขนานกันไป และอนุญาตให้ทำการรันระบบปฏิบัติการหลายระบบได้พร้อมกัน

รูปที่ 1 วิวัฒนาการของเทคโนโลยีเวอร์ชวลไลเซชัน ในรูปที่ 1 ได้แสดงให้เห็นพัฒนาการของเทคโนโลยีเวอร์ชวลไลเซชัน ที่เริ่มต้นจากการจำลองคอมพิวเตอร์ขึ้นมาด้วยซอฟต์แวร์ล้วนๆ จากนั้น ก็มีการพัฒนาส่วนที่เรียกว่า VMM ขึ้นมาเพื่อช่วยจัดการและจัดสรรการใช้ทรัพยากรของระบบร่วมกัน ยุคต่อมาก็เป็นการเพิ่มประสิทธิภาพในการทำงานซึ่งจริงๆ แล้วมันเป็นผลพลอยได้จากการที่ซีพียูและฮาร์ดแวร์อื่นๆ ทำงานได้เร็วขึ้น

รูปที่ 2 โปรแกรมอย่าง VMWare นั้นเป็นซอฟต์แวร์ที่ช่วยจำลองการทำงานของเครื่องคอมพิวเตอร์ทั้งเครื่องขึ้นมาและคุณสามารถที่จะทำการติดตั้งระบบปฏิบัติการใดๆ ลงไปก็ได้ไม่ว่าจะเป็น DOS, Windows, Linux หรือว่า Unix ก็ได้ อย่างนี้รูปนี้เครื่องที่เราจำลองขึ้นมาก็สามารถเข้าไปกำหนดไบออสได้เหมือนกัน

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

รูปที่ 4 นี่ก็เป็นอีกเครื่องที่เราจำลองขึ้นมาด้วยโปรแกรม VMWare ซึ่งเครื่องนี้เราได้ทำการติดตั้งระบบปฏิบัติการ Ubuntu ซึ่งเป็นลินุกซ์ยอดนิยมในปัจจุบัน ทางเทคนิคเราเรียกระบบปฏิบัติการที่ติดตั้งลงไปบนเครื่องจำลองนี้ว่า Guest OS ส่วนระบบปฏิบัติการจริงๆ ที่ติดตั้งกับเครื่องจริงเราเรียกว่า Host OS

แยกแยะความแตกต่าง

บางคงอาจเกิดความสับสนเรื่องการทำเวอร์ชวลไลเซชันกับการทำมัลติทาสก์ หรือแม้แต่การทำไฮเปอร์เทรด (Hyperthread) แต่เดี๋ยวพออ่านบทความนี้จบก็จะเข้าใจครับไม่ต้องงง

การทำมัลติทาสก์จะมีเพียงระบบปฏิบัติการระบบเดียวและมีโปรแกรมหลายตัวทำงานขนานกันไป ส่วนการทำเวอร์ชวลไลเซชันนั้น เรามีระบบปฏิบัติการหลายระบบทำงานขนานกันไป โดยแต่ละระบบมีโปรแกรมหลายตัวทำงานอยู่ แต่ละระบบปฏิบัติการจะทำงานอยู่บน “เวอร์ชวลแมชชีน (virtual machine)” ส่วนไฮเปอร์เทรดจะจำลองซีพียูขึ้นมาสองตัวจากซีพียูที่มีอยู่จริงเพียงตัวเดียวเพื่อช่วยกระจายภาระในการทำงานโดยใช้การประมวลผลหลายงานแบบสมมาตร (Symmetric MultiProcessing, SMP) ซึ่งเราไม่สามารถใช้ซีพียูเสมือนทั้งสองตัวนี้แยกกัน

รูปที่ 5 การทำงานแบบมัลติทาสก์

รูปที่ 6 การทำงานของเทคโนโลยีไฮเปอร์เทรดดิ้ง เส้นประหมายถึงซีพียูจริงส่วน CPU1 กับ CPU 2 นั้นเป็นการจำลองการทำงานในระดับฮาร์ดแวร์

รูปที่ 7 การทำงานของเทคโนโลยีเวอร์ชวลไลเซชัน เส้นประคือซีพียูซึ่งจะเป็นซีพียูแบบ Dual-Core หรือ Multi-Core แล้วทำการจำลองซีพียูขึ้นมาอีกหลายๆ ตัว

ถ้าหากซีพียูมีทั้งไฮเปอร์เทรดและเวอร์ชวลไลเซชัน ซีพียูเสมือนแต่ละตัวจะปรากฏออกมาที่ระบบปฏิบัติการเสมือนหนึ่งว่า มีซีพียูสองตัวใช้ระบบใช้สำหรับการประมวลผลหลายงานแบบสมมาตร

อันที่จริง เทคโนโลยีเวอร์ชวลไลเซชันใช้แนวคิดเดียวกับการทำงานของ Virtual Mode 8086 (V86) ซึ่งมีมาตั้งแต่ซีพียูรุ่น 386 เมื่ออยู่ในโหมด V86 เราสามารถสร้างเครื่อง 8086 เสมือนได้หลายเครื่องเพื่อทำการเรียกใช้โปรแกรมดอสขนานกันไป แต่เทคโนโลยีเวอร์ชวลไลเซชันทำให้เราสามารถสร้างเครื่องเสมือนที่ “สมบูรณ์แบบ” ได้หลายเครื่องเพื่อรันระบบปฏิบัติการแบบเต็มรูปแบบขนานกันไปได้

ไมโครซอฟต์ขอร่วมวงด้วย

บริษัทไมโครซอฟต์เจ้าแห่งระบบปฏิบัติการของโลกก็เห็นความสำคัญของเทคโนโลยีเวอร์ชวลไลเซชันนี้เหมือนกันจึงได้ซื้อโปรแกรม Virtual PC มาอยู่ในครอบครองของตน และตอนนี้ก็ให้ผู้ใช้วินโดวส์สามารถดาวน์โหลดมาให้งานได้ฟรีๆ อีกต่างหาก ใครสนใจก็เข้าไปดาวน์โหลดได้ที่ http://www.microsoft.com/windows/virtualpc/default.mspx ซึ่งล่าสุดก็เป็นรุ่น Virtual PC 2007 Beta และมีให้ดาวน์โหลดทั้งเวอร์ชันสำหรับระบบปฏิบัติการแบบ 32 บิต และระบบปฏิบัติการแบบ 64 บิต

รูปที่ 8 โปรแกรม Virtual PC ที่ไมโครซอฟต์ซื้อมาตั้งนานแล้ว แต่ว่าเรื่องหน้าตาของมันไม่ได้รับการปรับปรุงไปมากกว่าเดิม ยังคงเรียบง่ายเหมือนเดิม เข้าใจว่าทีมพัฒนาทั้งหมดคงยังไม่ไปไหน

รูปที่ 9 เราสามารถกำหนดคุณสมบัติการทำงานของเครื่องคอมพิวเตอร์ที่จะจำลองขึ้นมาได้ เหมือนกับเลือกสเปคคอมพิวเตอร์จริงๆ เลย แต่ว่าเราไม่สามารถเลือกซีพียูกับการ์ดจอได้

รูปที่ 10 นี่เป็นการจำลองเครื่องคอมพิวเตอร์ขึ้นมาด้วยโปรแกรม Virtual PC และเราได้ทำการติดตั้งวินโดวส์อีกตัวลงไป

หลายคนคงมีคำถามว่า ในเมื่อมีซอฟต์แวร์ดังเช่น VMware และ Virtual PC ที่ทำเวอร์ชวลไลเซชันได้อยู่แล้ว ทำไมเราจึงต้องมีเทคโนโลยีเวอร์ชวลไลเซชันภายในซีพียูด้วยล่ะ?

ข้อดีก็คือ ซีพียูที่มีเทคโนโลยีเวอร์ชวลไลเซชันจะมีคำสั่งชุดใหม่เพื่อควบคุมการทำเวอร์ชวลไลเซชัน คำสั่งเหล่านี้ช่วยให้การควบคุมซอฟต์แวร์ (เรียกว่า Virtual Machine Monitor หรือ VMM) กระทำได้ง่ายขึ้น ทำให้สามารถปรับปรุงสมรรถภาพขึ้นมาได้เมื่อเปรียบเทียบกับการทำเวอร์ชวลไลเซชันด้วยซอฟต์แวร์เท่านั้น

หลักการทำงาน

โปรเซสเซอร์ที่มีเทคโนโลยีเวอร์ชวลไลเซชันจะมีชุดคำสั่งพิเศษที่เรียกว่า Virtual Machine Extensions หรือ VMX โดย VMX ประกอบด้วยคำสั่งใหม่ที่ใช้สำหรับการทำเวอร์ชวลไลเซชันบนซีพียูโดยเฉพาะ ได้แก่ VMPTRLD, VMPTRST, VMCLEAR, VMREAD, VMWRITE, VMCALL, VMLAUNCH, VMRESUME, VMOFF, และ VMXON

การทำงานภายใต้การทำเวอร์ชวลไลเซชันมีสองแบบคือ root operation และ non-root operation โดยทั่วไปจะมีแต่ซอฟต์แวร์ควบคุมการทำเวอร์ชวลไลเซชันที่เรียกว่า Virtual Machine Monitor (VMM) ทำงานภายใต้ root operation ในขณะที่ระบบปฏิบัติการที่ทำงานตรงส่วนบนสุดของเวอร์ชวลแมชชีนจะทำงานภายใต้ non-root operation ซอฟต์แวร์ที่ทำงานตรงส่วนบนสุดของเวอร์ชวลแมชชีนก็ยังเรียกว่า guest software ด้วย

ในการเข้าสู่กระบวนการทำเวอร์ชวลไลเซชัน ซอฟต์แวร์ควรจะเรียกใช้คำสั่ง VMXON แล้วเรียกใช้ซอฟต์แวร์ VMM ต่อจากนั้นซอฟต์แวร์ VMM ก็สามารถทำงานบนเวอร์ชวลแมชชีนแต่ละตัวโดยใช้คำสั่ง VMLAUNCH และออกจาเวอร์ชวลแมชชีนด้วยคำสั่ง VMRESUME ถ้า VMM ต้องการปิดและออกจากกระบวนการทำเวอร์ชวลไลเซชัน มันต้องเรียกใช้คำสั่ง VMXOFF

รูปที่ 11 ปฏิบัติการของเทคโนโลยีเวอร์ชวลไลเซชัน

guest แต่ละตัวที่แสดงในรูปที่ 11 อาจเป็นระบบปฏิบัติการแตกต่างกันได้ รันซอฟต์แวร์ของตัวเองที่ไม่เหมือนกัน (หรือแม้แต่จะเป็นโปรแกรมหลายตัวพร้อมกันดังที่แสดงไว้ในรูปที่ 7)

รูปที่ 12 การแชร์ฮาร์ดแวร์เมื่อมีการใช้เวอร์ชวลไลเซชัน

ส่งท้าย

เอกสารของอินเทลระบุ “เทคโนโลยีเวอร์ชวลไลเซชันของอินเทลจะต้องมีระบบคอมพิวเตอร์พร้อมด้วยโปรเซสเซอร์ ชิปเซต, ไบออส, Virtual Machine Monitor (VMM) และอาจต้องมีซอฟต์แวร์ที่จำเป็นบางตัวเปิดใช้มันสำหรับการใช้งานบางอย่าง ประสิทธิภาพในการทำงานหรือข้อดีอื่น ๆ จะแปรเปลี่ยนไปตามลักษณะของฮาร์ดแวร์และซอฟต์แวร์

อย่างไรก็ตามเราคิดว่าเทคโนโลยี VT นั้น อาจจะยังไม่ส่งผลต่อผู้ใช้งานทั่วไปมากนัก แต่สำหรับตลาดองค์กรหรือธุรกิจที่มีความเกี่ยวข้องกันพวกแอพพลิเคชันเซิร์ฟเวอร์ บริษัทพวกที่ทำธุรกิจ Web Hosting พวกนี้รับรองได้ว่าจะได้ใช้ประโยชน์อจาก VT ได้อย่างเต็มที่แน่นอน อย่างน้อยเรื่องต้นทุนทางด้านฮาร์ดแวร์ก็ลดลง

ซอฟต์แวร์, ซีพียู, บทความ , ,

Reader:1742

  1. No comments yet.
  1. No trackbacks yet.