RSS

Virtualization & Virtual Machine Concept

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

http://img.spacethai.net/images/wvchartvm.gifVirtual Machine Concept คือ แนวคิดการสร้างเครื่องคอมพิวเตอร์เสมือนบนฮาร์ดแวร์เพียงชุดเดียวซึ่งมันสามารถทำงานได้เสมือนกับว่ามีคอมพิวเตอร์หลายๆเครื่อง โดยมีการแยกการทำงานของระบบต่างๆได้อย่างเป็นอิสระต่อกัน

มีการให้แนวคิดแรกๆของ Virtual Machine ซึ่งถูกกล่าวโดย Popek and Goldberg โดยกล่าวสั้นๆไว้ว่า”an efficient, isolated duplicate of a real machine” หรือ “มีประสิทธิภาพ และแยกการทำงานออกจากกันได้เสมือนจริง

Virtual Machine นั้นแบ่งเป็นสองประเภทใหญ่ๆคือ

กลุ่มแรก System virtual machines

มันคือ Virtual Machine ที่แยกการทำงานโดยสมบูรณ์ทั้งระบบ ไม่ว่าจะเป็นการจำลองเสมือนหมดทุกอย่างไม่ว่าจะเป็น Bios, Hardware ต่างๆ, Hard disk, ram, Netword Card รวมไปถึงอุปกรณ์อื่นๆ และสามารถเรียกใช้งานระบบปฏิบัติการได้อย่างสมบูรณ์

กลุ่มที่สองคือ process virtual machine มันถูกออกแบบมาเฉพาะเจาะจงมากกว่า System virtual machines มันอาจถูกออกแบบมาให้รันโปรแกรมโปรแกรมหนื่งหรือประมวลผลอย่างใดอย่างหนึ่งเท่านั้น ยกตัวอย่าง virtual machine ชนิดนี้เช่น Java Runtime Environment (JRE) มันคือซอร์ฟแวร์ที่รับคำสั่งจากซอร์ฟแวรืที่เป็นจาวา แล้วทำการประมวลผลและแสดงผลข้อมูลเสมือนกับเป็นระบบปฏิบัติการย่อยๆเลยทีเดียว

System virtual machines บางครั้งอาจเรียกว่า hardware virtual machines มันคือระบบที่ออกแบบมาเพื่อจำลอง เครื่องคอมพิวเตอร์หลายๆเครื่องให้ทำงานพร้อมกัน และเป็นอิสระต่อกันทั้งการใช้ข้อมูลในฮาร์ดิส การเข้าถึงแรม การใช้คำสั่งประมวลผล ตลอดจนระบบปฏิบัติการ สิ่งเหล่านี้ล้วนแยกออกจากันโดยอิสระ System virtual machines ยังถูกแบ่งออกเป็นสองชนิดคือ (Type 1 หรือ native VM) และ (Type 2 หรือ hosted VM)

http://img.spacethai.net/images/5.png

ความสามารถหลักๆของ virtual machines

http://img.spacethai.net/images/virtualmac.jpg # จะต้องรัน OS หรือระบบปฏิบัติการได้หลายๆระบบปฏิบัติการพร้อมๆกันในสภาพแวดล้อมที่เรียกว่า co-exist หรือมีการใช้งานพร้อมๆกันโดยจะต้องแยกการทำงานให้เป็นอิสระต่อกัน

# virtual machine จะสามารถเรียกใช้คำสั่งต่างๆในการประมวลผลจาก CPU ซึ่งอยู่ในหน่วยประมวลผล (processor) ได้เสมือนกับการใช้เครื่องคอมพิวเตอร์จริงๆ

# ซอร์ฟแวร์ โปรแกรมประยุกต์และ application ต่างๆ จะทำงานได้อย่างมีประสิทธิภาพและมีเสถียรภาพตลอดจนจะต้องสามารถกู้คือการทำงานได้

ข้อจำกัดของ virtual machines

แม้ในทางทฤษฏีแล้ว virtual machines ไม่ต่างอะไรกับการใช้เครื่องจริงๆ แต่ในทางปฏิบัตินั้นพบปัญหาทางอ้อมในการเข้าถึงฮาร์ดแวร์ซึ่งปัญหานั้นเกิดจากการที่ฮาร์ดแวร์ยังไม่มีประสิทธิภาพเท่าที่ควรนัก

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

แต่อย่างไรก็ดีด้วยข้อจำกัดของ ฮาร์ดแวร์ประมวลผลหรือ CPU single Core ที่ต้องอาศัยเทคนิค time-sharin ในการแบ่งช่วงเวลาเพื่อทำงานหลายๆงาน ทำการเมื่อนำ Virtual Machine มาใช้ยิ่งทำให้การประมวลผลช้าลงอย่างมาก ซึ่งซอร์ฟแวร์ที่ทำหน้าที่เป็น Virtual Machine จะต้องทำการแบ่งทรัพยากรในการประมวลผลให้มีประสิทธิตลอดจากการใช้หน่วยความจำ ซึ่งมีการนำเทคนิคที่ชื่อว่า memory virtualization มาช่วยในการจัดสรรทรัพยากรหน่วยความจำเพื่อใช้ร่วมกัน

Virtual Machine นั้นบางครั้งเราก็มักจะนำมารวมเป็นส่วนหนึ่งกับ เทคโนโลยี Virtualization ซึ่งเวชวลไลเซชันซอฟต์แวต์ก็คือการสร้างสภาพแวดล้อมจำลองของเครื่องขึ้นมา โดยที่มันจะทำงานอยู่ภายใต้ฮาร์ดแวร์นั้น เวชวล
ไล เซชันซอฟต์แวต์ก็คือการสร้างส่วนควบคุมที่เชื่อมต่อกับซอฟต์แวร์ที่ ทำหน้าเป็นเครื่องคอมพิวเตอร์เสมือนหรือที่เราเรียกว่าเวชวลแมชชีน
(Virtual Machines:VMs) ซึ่งก็คือซอฟต์แวร์ที่ทำหน้าที่ในการทำงานเป็นตัวแทนของทรัพยากรต่างๆบน เครื่องคอมพิวเตอร์ ตัวอย่าง
เช่น  การจำลองโปสเซสเซอร์  (Processor) , หน่วยความจำหลัก  (Physical memory) , การเชื่อมต่อกับเครือข่าย (Network connection) และ อุปกรณ์ อินพุท เอาท์พุท (IO Device)เป็นต้น ในส่วนซอฟต์แวต์ด้านสแตก จะรวมเอาระบบปฏิบัติการ (Operating system) และโปรแกรมต่างๆ ให้ทำงานอยู่ในส่วนบนสุดของตัว เวชวลแมชชีน ซึ่งการทำงานของซอฟต์แวร์เวชวลแมชชีนต่างๆ สามารถที่
จะทำงานพร้อมกันได้ในเครื่องเดียวกัน และในการเข้าใช้ทรัพยากรเครื่องของตัวซอฟต์แวร์เวชวลแมชชีน จะถูกควบคุมด้วยโปรแกรมที่เรียกว่า เวชวลแมชชีนมอนิเตอร์ (Virtual Machines Monitor:VMM) ซึ่งถูกออกแบบมาเพื่อช่วยในการจัดการและจัดสรรการใช้ทรัพยากรของระบบร่วมกัน รวมถึงการแปลคำสั่งจากเวชวลแมชชีนไปเป็นคำสั่งระบบของเครื่อง (Physical Hardware)

http://img.spacethai.net/images/vmwarevi3d.gifสถาปัตยกรรมของการทำเวชวลไลเซชั่น

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

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

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

ปัจจุบันมีการนำเทคโนโลยี Virtual Machine มาใช้กันอย่างหลากหลายเนื่องจากมีการพัฒนาฮาร์ดแวร์ให้มีหน่วยประมวลผลแบบหลายคอร์หรือ muti core ซึ่งรองรับการทำ Virtual Machine ให้มีประสิทธิภาพสูงขึ้นจนแทบไม่ต่างจาก การใช้หน่วยประมวลผลจริงเพราะมันสามารถทำงาน virtual machine (VM) สอง session ในขณะที่ทำงานพร้อมกันบนระบบที่มีหน่วยประมวลผลกลางเพียงตัวเดียว

แหล่งอ้างอิง

Wikipedia

intel.com

thaiopensource.org

ช่วยแปลไทยโดย Bing Google ดิกชันนารี่ และผมเอง

เรียบเรียงและวิเคราะห์ โดย เพชร อิ่มทองคำ ในนาม Phet.in.th

บทความนี้ให้ถือเป็นลิขสิทธิ ตามขอกำหนดของบล็อกนี้คือการอ้างอิงที่มา ตาม Creative Commons Attribution-NonCommercial-NoDerivs 3.0 License

เพิ่มเติมจาก iDayBlog

รันโพรเซสหลายๆตัวในเวลาเดียวกัน หลักการเดียวกับพวก Dedicate Hosting ล่ะครับ จำลองการทำงาน เสมือนว่าทำงานอยู่บนคอมฯหรือเครื่องมือหลายๆตัว หรือแยกจากกัน ทั้งที่จริงก็รันการทำงานอยู่ศูนย์กลาง

  • Share/Bookmark
, , , , , , , , , , , , , , , , , , ,

5 Comments For This Post

  1. iDayBlog Says:

    รันโพรเซสหลายๆตัวในเวลาเดียวกัน หลักการเดียวกับพวก Dedicate Hosting ล่ะครับ จำลองการทำงาน เสมือนว่าทำงานอยู่บนคอมฯหรือเครื่องมือหลายๆตัว หรือแยกจากกัน ทั้งที่จริงก็รันการทำงานอยู่ศูนย์กลาง

  2. Phet Says:

    ขอบคุณ iDayBlog ครับ
    งานนี้ตั้งใจจะเขียนเป็นการบ้านส่งอาจารย์ วิชาแอสแซมบลี

  3. lookyee Says:

    ขอบคุณมากนะคะ ^^

  4. testment Says:

    งั้นขอ ลอกหน่อยนะ ……… หุหุ

  5. jack Says:

    โอ้ว เครดิตนี้ยกให้เพชร

1 Trackbacks For This Post

  1. CS449: [Ex2] Virtualization | Salv739's Blog Says:

    [...] http://www.phet.in.th/2009/11/virtual-machine-concept/ [...]

Leave a Reply