XEN เปิดให้ผู้ดูแลระบบสามารถใช้งาน Virtualization Technology ในสภาพแวดล้อมได้ทั้งสองแบบ ( Full virtualization และ Para-Virtualization ) แบบ Para-virtualization นักพัฒนาได้วางแผนที่จะรวมเอา Xen ‘s Virtualization Technology อยู่ในระบบปฏิบัติการ Linux 6.2.12 kernel เพื่อที่ว่าจะสามารดจัดการโครงสร้างเพื่อให้เกิดประโยชน์โดยเครื่องมือการทำ virtualization ที่มีประสิทธิภาพในสภาพแวดล้อม ของระบบปฏิบัติการ Linux เหล่านั้น Xen จะกลายเป็น Platform ที่ยอดเยี่ยมของการบริการเป็นศูนย์กลางเครือข่าย ตัวอย่างการเป็น local mirroring ที่สามารถนำใช้งานได้อย่างมีประสิทธิภาพ และมีความยืดหยุ่นในการทำงานไม่ว่าจะเป็นงานในส่วนของ dynamic web content , media stream Transcoding , distribution , multiplayer game และการทำเป็น Virtual reality server รวมถึง “smart proxies” Xen อ้างอิงตำแหน่งโดยตรง ที่จัดให้เหมาะสมของการบริการนั้นๆมาก ทำให้สามารถลดต้นทุนการที่จะต้องติดตั้งระบบปฏิบัติการในแต่ละเครื่องในกรณี ที่จะต้องรองรับ Application ที่ทำงานอยู่บนระบบปฏิบัติการที่แตกต่างกัน โดยสามารถนำมาทำงานพร้อมกันอยู่บนเครื่อง server เดียวกัน ซึ่งทำให้เป็นการลดจำนวนเครื่อง server ในอนาคตจะทำให้การปรับแต่ง server เป็นสิ่งที่ทำได้ง่ายและยืดหยุ่น ยังมีการดำเนินการอย่างต่อเนื่องในการนำ Xen’ s virtualization technology ในการนำไปทำงานอยู่บนเคอร์เนลบนระบบปฏิบัติการ BSD และ ระบบปฏิบัติการ Windows XP อีกด้วยครับคราวหน้าถ้ามีโอกาสเราลองมาทำการติดตั้ง Xen ใน Fedora Core 6 ที่ได้มีการรวมเอา Xen มาไว้ในระบบปฏิบัติการแล้ว

สถาปัตยกรรมที่ใช้ในการ Virtualization

       มีทางเลือกมากมายในการสนับสนุนเทคโนโลยีการทำงานของเวชวลไลเชชัน แต่มีเทคนิคอยู่ 2 รูปแบบที่เป็นผู้นำทางด้านเทคโนโลยีนี้อยู่ก็คือเทคนิคแบบ Full virtualization และ Para-virtualization

      Full virtualizationถูกออกแบบเพื่อเตรียมการทำให้เป็นรูปแบบ เสมือนทั้งหมดของฮาร์ดแวร์ และสร้างระบบเสมือนที่สมบูรณ์ ในที่นี้จะทำให้เราสามารถที่นำ ระบบปฏิบัติการอื่นๆ มาติดตั้งและสามารถที่จะทำงานอยู่บนเครื่องคอมพิเตอร์เดียวกันได้ ซึ่งเราจะเรียกว่าระบบปฏิบัติที่มาติดตั้งเพิ่มเติมนี้ว่า ระบบปฏิบัติการเยือน ( Guest Operating System: GOS ) โดยที่ระบบปฏิบัติการเยือนสามารถที่จะทำงานได้โดยไม่ต้องมีการแก้ไขเปลี่ยน แปลงสิ่งใดๆ กับคำสั่งที่ถูกร้องขอจากระบบปฏิบัติการเยือนนั้นๆ หรือในตัวโปรแกรมของมันเอง เพราะฉะนั้น ระบบปฏิบัติการเยือนหรือโปรแกรม จะไม่ทราบถึงสภาพแวดล้อมจำลองเสมือนจริงที่เกิดขึ้น จึงทำให้ระบบปฏิบัติการเยือนและโปรแกรมของมันทำงานอยู่บน เวชวลแมชชีน ในขณะที่ในความจริงแล้วจะต้องทำงานบนสภาวะแวดล้อมของระบบจริงๆ ( Physical system ) วิธีการนี้ทำให้เกิดประโยชน์ เพราะว่ามันได้แยกการเชื่อมต่อของซอฟต์แวร์และระบบปฏิบัติการเยือน ออกจากฮาร์ดแวร์อย่างสมบูรณ์ ดังนั้นผลลัพธ์ของวิธีการแบบ Full virtualization ก็คือสามารถให้มีเส้นทางการเคลื่อนย้ายของตัวซอฟต์แวร์ และ ภาระงานต่างๆ ( workloads ) ระหว่างระบบปฏิบัติการที่มีคุณสมบัติที่แตกต่างกัน ตัวอย่างของซอฟต์แวร์เวชวลไลเชชัน ที่ใช้เทคนิค Full virtualization ก็คือ Microsoft Virtual Server, และ VMware ESX Server


รูปที่ 1 : แสดงสถาปัตกรรมของเวชวลไลเชชันเทคโนโลยี ของ VMWARE

          อย่างไรก็ตามเทคนิคแบบ Full virtualization อาจทำให้ประสิทธิภาพการทำงานลดลง โดยที่ซอฟต์แวร์เวชวลแมชชีนมอนิเตอร์ จะต้องเตรียมให้ เวชวลแมชชีน ในการสร้างแบบเสมือนจริงของระบบทั้งหมด เช่น การทำ Virtual BIOS, Virtual memory space , และ Virtual device. ซอฟต์แวร์เวชวลแมชชีนมอนิเตอร์ จะต้องสร้างและดูแลโครงสร้างข้อมูลสำหรับองค์ประกอบของเวอร์ชวลต่างๆอีกด้วย ตัวอย่างเช่น Shadow memory page table. โดยโครงสร้างข้อมูลเหล่านี้จะต้องถูก updated สำหรับทุกๆการเข้าถึงข้อมูลที่ตรงกันของเวชวลแมชชีน


รูปที่ 2 : แสดงการทำงานของโปรแกรม VMWARE

          Para-virtualizationเป็นอีกวิธีการหนึ่งในการทำเวชวลไลเชชัน โดยนำเสนอให้แต่ละ เวชวลแมชชีน คือรูปแบบเสมือนของฮาร์ดแวร์ที่ถูกนำเสนอเช่นเดียวกันกับแบบ Full virtualization แต่มีสิ่งที่ไม่เหมือนกันก็คือในเทคนิคแบบนี้จะสามารถระบุไปถึงภายในกายภาพ ของฮาร์ดแวร์ (Physical Hardware ) โดยเทคนิค Para-virtualization ต้องการที่จะมีการเปลี่ยนแปลงแก้ไขคำร้องขอของระบบปฏิบัติการเยือน ที่กำลังทำงานอยู่บนเวชวลแมชชีน ผลลัพธ์ของมันก็คือ ระบบปฏิบัติการเยือน จะรับรู้ได้ว่ามันกำลังทำงานอยู่บนซอฟต์แวร์เวชวลแมชชีนนั่นเอง มีการยอมรับว่าประสิทธิภาพที่ได้จะใกล้เคียงกับประสิทธิภาพตามธรรมชาติของ ระบบปฏิบัติการเยือน วิธีการของ Para- virtualization ยังคงดำเนินการพัฒนาและยังมีข้อจำกัดอยู่ เช่นการเกิดแคชของข้อมูลของระบบปฏิบัติการเยือน ( Guest Operating System Cache Data ) และการเชื่อมต่อกันที่ยังไม่มีความน่าเชื่อถือเพียงพอ ( Unauthenticated Connections )

          Xen เป็นเวชวลไลเชชันซอฟ์ตแวร์ ซึ่งเป็นโอเพ่นซอร์ส พัฒนาอยู่บนพื้นฐานเทคนิคแบบ Para-virtualization ในรูปที่ 2 แสดงสถาปัตยกรรมของ Xen เวอร์ชั่น 3.0 มี Hosting ของตัวเวชวลแมชชีนอยู่ 4 ตัว ( Domain 0, VM1 , VM2, และ VM3) โดยมีอินเตอร์เฟชกับเวชวลแมชชีนมอนิเตอร์ของ Xen ซึ่งเตรียมให้รูปแบบเสมือนของฮาร์ดแวร์ ทำให้สามารถเข้าถึงฮาร์ดแวร์ได้สำหรับซอฟต์แวร์เวชวลแมชชีนที่แตกต่างกัน รูปที่ 2 ยังได้แสดงหน้าที่พิเศษของ เวชวลแมชชีน ที่เรียกว่า Domain 0.

เวชวลแมชชีนที่เรียกว่า Domain 0. เท่านั้นที่สามารถเข้าถึงตัวควบคุมที่เรียกว่า control interface ของ เวชวลแมชชีนมอนิเตอร์ ตลอดจนที่ซึ่งเวชวลแมชชีนต่างๆสามารถถูกสร้าง ( จะกลายเป็น Domain1 .. DomainX ) ถูกทำลาย และ ถูกจัดการและควบคุมซอฟต์แวร์ ให้ทำงานอยู่ในการควบคุมของ Domain 0. ผู้ดูแลระบบสามารถที่จะสร้าง เวชวลแมชชีนกับการให้สิทธิพิเศษ ตัวอย่างเช่น VM 1 ที่สามารถเข้าถึงฮาร์ดแวร์ได้โดยตรงผ่าน secure interface ที่เตรียมไว้โดย Xen ผู้ดูแลระบบสามารถสร้าง เวชวลแมชชีนอื่นๆ ที่สามารถเข้าถึงทรัพยากรของเครื่องที่จัดเตรียมไว้ให้ โดยการควบคุมของ Domain 0 และการจัดการอินเตอร์เฟส ใน Xen.


รูปที่ 3 สถาปัตยกรรมของ Xen Virtualization Technology

      ในตัวอย่างนี้ จะเห็นว่าระบบปฏิบัติการเยือน ใน VM1 และใน VM2 ถูกเปลี่ยนแปลงแก้ไขให้ทำงานอยู่เหนือการทำงานของ Xen ด้วย ทำให้ มีประสิทธิภาพในการทำงานสูง ใกล้เคียงกับประสิทธิภาพตามธรรมชาติของ ระบบปฏิบัติการเยือน วิธีการนี้สามารถถูกเรียกใช้ได้ตลอดเวลาการทำงาน การไม่มีการเปลี่ยนแปลงคำร้องขอใดๆ ของระบบปฏิบัติการเยือน ( ในเทคนิคแบบ Full virtualization ) ก็ได้ถูกรองรับด้วยเช่นกัน ดังนั้นเทคนิคแบบนี้จึงได้รับการพิจารณาใน Xen และเทคโนโลยีเวชวลไลเชชันของอินเทล ( Intel Virtualization Technology ) นักพัฒนา Xen 3.0 วางแผนที่จะรวมความสามารถในการรองรับความสามารถของเวชวลแมชชีนกับ Symmetric multiprocessing (SMP) , ระบบปฏิบัติการเยือนที่เป็นระบบปฏิบัติการแบบ 64 bits, การจัดการกับ Accelerated Graphics Port (AGP), และ Advanced Configuration and Power Interface (ACPI)

        ในโครงสร้างหลักส่วนกลางที่สำคัญในการทำของข้อมูลเสมือนจริง ก็คือการทำเสมือนจริงของตัวโปรเซสเซอร์ , หน่วยความจำ และอุปกรณ์ I/O ในการออกแบบ Xen3.0 จะต้องออกแบบให้มีความสามารถในการทำ เวชวลไลเชชัน แบบ Para-virtualization ของโครงสร้างหลักทั้งสามองค์ประกอบหลักของฮาร์ดแวร์

        (CPU Operations ) การทำงานของซีพียูเสมือน สถาปัตยกรรม x86 ของอินเทล เตรียมโหมดสิทธิพิเศษไว้ 4 ระดับ โดยโหมดเหล่านี้หรือเรียกว่า “rings” คือมีตัวเลขที่บอกเป็นตัวเลขระดับตั้งแต่ระดับ 0 ถึง 3 โดยกำหนดให้ 0 เป็นระดับที่มีค่าสิทธิพิเศษมากที่สุด ในระบบที่ไม่เป็นเวชวลไลเชชัน ระบบปฏิบัติการ จะทำงานอยู่ที่ ring 0 และในส่วนของโปรแกรมจะทำงานที่ ring 3 ส่วนใน ring 1 และ ring 2 ปกติจะไม่ถูกนำมาใช้งาน ใน Xen รูปแบบ Para-virtualization การทำงานของซอฟต์แวร์เวชวลแมชชีนมอนิเตอร์ จะทำงานที่ระดับ ring 0 , ส่วน ระบบปฏิบัติการเยือน จะทำงานอยู่ที่ ring 1 และ โปรแกรมต่างๆจะทำงานที่ระดับ ring 3. วีธีการนี้ ช่วยรับประกันได้ว่ากระบวนการการทำงานของเวชวลแมชชีนมอนิเตอร์ ซึ่งใน Xen มันจะถูกเรียกว่า Hypervisor มีสิทธิพิเศษสูงที่สุด ในขณะที่ ระบบปฏิบัติการเยือน จะทำงานในสิทธิพิเศษที่สูงกว่าตัวโปรแกรม ดังนั้นคำสั่งและสิทธิพิเศษที่ถูกส่งออกไปโดยระบบปฏิบัติการเยือน จะถูกตรวจสอบและดำเนินการโดยเวชวลแมชชีนมอนิเตอร์ รูปที่ 3 แสดงการทำงานของการทำ CPU Virtualization


รูปที่ 4 แสดงการทำงานของการทำ CPU Virtualization

       ( Memory Operations ) การทำงานของหน่วยความจำ ในสภาพแวดล้อมแบบ Non Para-virtualized ระบบปฏิบัติการ
( Operating System ) คาดว่าจะมีหน่วยความจำที่ต่อเนื่องกัน. ในกระบวนการทำงานของ Xen ในการใช้เทคนิคแบบ   Para-virtualization ระบบปฏิบัติการเยือนจะถูกเปลี่ยนแปลงแก้ไขในการเข้าถึงหน่วยความจำในแบบวิธี ที่ไม่ต่อเนื่องกัน ระบบปฏิบัติการเยือน จะรับผิดชอบในการจอง และจัดการ page table อย่างไรก็ตามการเขียนข้อมูลโดยตรงจะถูกดักและตรวจสอบการทำงานด้วยโปรแกรมเวช วลแมชชีนมอนิเตอร์ของ Xen

 

รูปที่ 4 : Memory Management Unit แบบ Para virtualization

 

รูปที่ 5 : Memory Management Unit แบบ Full virtualization

 

(IO operation) การทำงานของไอโอ ในสภาพสิ่งแวดล้อม Fully virtualized อุปกรณ์ฮาร์ดแวร์คือสิ่งที่ถูกจำลองขึ้นมา ใน Xen รูปแบบ Para-virtualization จะทำงานอยู่บนพื้นฐานการทำงานที่เรียกว่า Producer – Consumer Pointer การทำงานเช่นนี้สามารถที่จะแยกระหว่าง Data กับ Event Notification ตัวอย่างการทำงานเช่น ข้อมูลที่เป็นข้อมูลของ I/O ถูกส่งและรับจากระบบปฏิบัติการเยือนนั้น จะถูกย้ายขึ้นไปทำงานบนสถาปัตยกรรม ring โดยใช้ในการแชร์หน่วยความจำ ผ่านทาง Buffer Descriptor Ring หรือที่เราเรียกว่า I/O Descriptor rings มีลักษณะเป็นโครงสร้างลักษณะแบบคิววงกลม ( Circular Queues ) ดังแสดงในรูปที่ 6


รูปที่ 6 : แสดงโครงสร้างของ Asynchronous I/O rings,
สำหรับใช้ในการ transfer –ข้อมูล ระหว่าง Xen
และ ระบบปฏิบัติการเยือนต่างๆ

         การตอบสนองข้อมูลก็จะถูกส่งกลับไปที่ตัว I/O Descriptors Ring ทำให้หน่วยความจำถูกแชร์ ระหว่าง Domain 0 และ Guest Domain ตลอดเวลาที่มีการรับเข้าและส่งออกของข้อมูล ระบบปฏิบัติการเยือนจึงทำหน้าที่เสมือน Consumer และ Xen (ตัวโปรแกรม Hypervisor) จะทำหน้าที่เสมือน Producer การเปลี่ยนแปลงแก้ไขการร้องขอของระบบปฏิบัติการเยือน เป็นสิ่งไม่ยืดหยุ่น สำหรับ Platforms แบบ Non – Open Source เช่น ระบบปฏิบัติการ Microsoft Windows 2000, ระบบปฏิบัติการ Windows Server 2003, ผลลัพธ์ก็คือ ระบบปฏิบัติการเหล่านั้นจะไม่สนับสนุนสภาพแวดล้อมแบบ Para-virtualization นั่นเอง ในส่วนถัดไปจะอธิบาย Xen ทำงานอย่างไร กับเทคโนโลยี Virtualization ของอินเทลในการรองรับสิ่งทีเรียกว่า Unmodified Operating system

ท่านใดสนใจอ่านบทความเกี่ยวกับ Xen ย้อนหลังได้ที่ Intro Virtualization

Comments are closed.