วันพุธที่ 18 สิงหาคม พ.ศ. 2553

ทำความรู้จักกับ Virtualization

Introduction to Virtualization


Virtualization Technology คือ เทคโนโลยีที่ช่วยเปลี่ยนคอมพิวเตอร์หนึ่งเครื่องไปเป็นระบบจำลองเสมือนจริง (ระบบเสมือน) หลายๆ ระบบ ทำให้สามารถใช้งานหลายระบบปฏิบัติการและหลายแอพพลิเคชั่นได้อย่างเป็นอิสระ บนทรัพยากร (ฮาร์ดแวร์ เช่น CPU, Memory และ Hard disk) เดียวกัน โดยอาศัยการจำลองสภาพแวดล้อมจากเวอร์ชวลไลเซชันซอฟต์แวร์ (Virtualization Software/Virtualization Application) เราเรียกระบบปฏิบัติการที่ติดตั้งบนระบบเสมือนว่า Guest Operating System

http://www.vcharkarn.com/uploads/108/108731.png

ความแตกต่างระหว่างการทำงานแบบปกติกับระบบจำลองเสมือนจริง

http://www.vcharkarn.com/uploads/108/108732.png

นอก จากนี้ยังหมายรวมถึง การรวบรวมเอาทรัพยากรด้านการประมวลผลและการจัดเก็บข้อมูลบนเซิร์ฟเวอร์แต่ละ เครื่องมารวมกันไว้ตรงกลาง จากนั้นจึงให้ผู้ใช้สามารถนำทรัพยากรเหล่านั้นมาใช้ประโยชน์ได้ตามเหมาะสม หรือตามความต้องการของแต่ละระบบ เทคโนโลยี เสมือนนี้เกิดขึ้นตั้งแต่ปี 1996 แต่เป็นการใช้งานอยู่บนเครื่อง Mainframe ของ IBM มีการทำ Multitask ที่สามารถทำงานหลายๆ แอพพลิเคชั่นได้ในเวลาเดียวกัน ซอฟต์แวร์เวอร์ชวลไลเซชันในตลาดที่มีชื่อเสียงมากที่สุดคือ VMware

ใน อดีตผู้ผลิต Virtualization Software ยังไม่ได้มีการใช้ประสิทธิภาพจาก CPU อย่างเต็มที่ ต่อมาเมื่อเทคโนโลยีแพร่หลายมากขึ้น ส่งผลให้ผู้ผลิต CPU ต่างให้ความสำคัญกับการพัฒนาซีพียูที่ทำงานร่วมกันกับ Virtualization Technology ทำให้การทำงานแบบ Virtualization รวดเร็วและประสิทธิภาพในการทำงานดีขึ้น โดยมีชื่อทางการค้าที่แตกต่างกัน เช่น Intel® Virtualization Technology (Intel® VT or IVT) และ AMD Virtualization™ (AMD-V™)

Virtual Machine คือซอฟต์แวร์ที่ทำหน้าที่ในการทำงานเป็นตัวแทนของทรัพยากรต่างๆ บนเครื่องคอมพิวเตอร์ ตัวอย่าง เช่น การจำลอง CPU, Main Memory, I/O Device การทำงานของ Virtual Machine ต่างๆ สามารถที่จะทำงานพร้อมกันได้ในเครื่องเดียวกัน และในการเข้าใช้ทรัพยากรเครื่องของ Virtual Machine จะถูกควบคุมด้วยโปรแกรมที่เรียกว่า Virtual Machine Monitor

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

Platform Virtualization

Edit

Full Virtualization

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

Para-Virtualization
แต่ละ Virtual Machine มีรูปแบบเสมือนของฮาร์ดแวร์เหมือนกันกับแบบ Full Virtualization แต่เทคนิค Paravirtualization จะสามารถระบุไปถึงภายในกายภาพของฮาร์ดแวร์ (Physical Hardware) และมีการเปลี่ยนแปลงแก้ไขคำร้องขอของระบบปฏิบัติการเยือน ที่กำลังทำงานอยู่บนเวอร์ชวลแมชชีน (Virtual Machine) ทำให้ระบบปฏิบัติการเยือนรับรู้ได้ว่ากำลังทำงานอยู่บนซอฟต์แวร์เวอร์ ชวลแมชชีน ทำให้ประสิทธิภาพที่ได้จะใกล้เคียงกับประสิทธิภาพตามธรรมชาติของระบบปฏิบัติ การเยือน

OS-Level Virtualization
ถูก นำมาใช้โดย Parallels Virtuozzo และ Sun’s Solaris Containers สำหรับการทำ Virtualization ในระดับระบบปฏิบัติการนั้น จะไม่มีการแยกเลเยอร์ของ Hypervisor ออกมา โดยเซิร์ฟเวอร์จะทำหน้าที่ดังกล่าวแทนไปเลย และแยกฮาร์ดแวร์ออกจากคำสั่งของ Virtual Machine ทั้งหมด

เซิร์ฟเวอร์ ตัวเดียวกันนี้จะไม่สามารถรองรับการใช้งานระบบปฏิบัติการหลายๆ ระบบได้ Virtual Machine ทั้งหมดทุกตัวจะต้องใช้ระบบปฏิบัติการเดียวกัน

Resource Virtualization

Edit

เป็น แนวคิดในการจัดการ Resource โดยนำหลักการ Virtualization มาใช้ เช่น การสร้างกลุ่มของฮาร์ดดิสก์ (RAID) การสร้างกลุ่มของคอมพิวเตอร์เพื่อช่วยกันประมวลผล (Cluster/Grid) เพื่อประโยขน์ในการเพิ่มประสิทธิภาพและใช้ทรัพยากรร่วมกัน
ใน ที่นี้จะไม่ขอลงรายละเอียดมาก เนื่องจากบางหัวข้อมีท่านอื่นเขียนไว้แล้ว สามารถหาอ่านได้ในเวบวิชาการแห่งนี้ สำหรับบางหัวข้อก็รายละเอียดค่อนข้างมาก สามารถเขียนเป็นบทความใหม่ได้เลย หากมีโอกาสคงได้มาเขียนให้อ่านกันครับ

RAID

การ นำฮาร์ดดิสก์หลายๆ ตัว (Physical Drive) มาต่อเข้ากันเป็นกลุ่ม ทำให้มองเห็นเสมือนเป็นฮาร์ดดิสก์ตัวเดียว (Logical Drive) เพื่อเพิ่มขนาด/ความจุหรือความสามารถในการสำรองข้อมูล
สามารถ แบ่ง RAID ตามประเภทของการจัดการจัดเก็บข้อมูลและเทคโนโลยีได้ 5 ชนิด (ที่ใช้กันปกติ) ได้แก่ RAID-0, RAID-1, RAID-2, RAID-3, RAID-4, RAID-5

Cluster/Grid Computing

Cluster Computing คือ การเชื่อมต่อระบบการทำงานของกลุ่มคอมพิวเตอร์เข้าด้วยกันภายใต้ระบบเครือ ข่ายความเร็วสูง มักจะเกิดในสถานที่แห่งเดียวกันหรือใกล้ๆ กัน

Grid Computing คือ การเชื่อมต่อของคอมพิวเตอร์หรือ Cluster กับ คอมพิวเตอร์หรือ Cluster ในสถานที่อื่นๆ ผ่านแวนลิงก์ที่มีแบนด์วิดท์ต่ำ เน้นไปที่การใช้ทรัพยากรการประมวลผลให้เกิดประโยชน์สูงสุด ทั้งนี้เนื่องจากว่าอุปกรณ์คอมพิวเตอร์แต่ละตัวนั้นไม่ได้ทำการประมวลผลตลอด 24 ชั่วโมง จึงน่าจะมีเวลาที่ซีพียูว่างพอที่จะช่วยเหลืองานประมวลผลบางอย่างของเครื่อง อื่นๆ ในเครือข่ายได้
ความแตกต่างของ Cluster Computing และ Grid Computing นอกจากเรื่องสถานที่แล้ว ยังมีความแตกต่างอีกประการหนึ่งคือ หลักการในการคำนวณซึ่งในกรณีของ clustering นั้น มักจะเน้นไปที่ความเร็วในการประมวลผลกับงานที่เหมือนกัน แต่ใช้โปรเซสเซอร์หลายตัว ส่วนด้าน grid computing นั้นจะไม่เน้นด้านความเร็วแต่จะเน้นไปที่การใช้ทรัพยากรทั้งหมดอย่างเต็มที่ โดยมีการแบ่งงานที่แตกต่างกันไปให้กับเครื่องฮาร์ดแวร์และซอฟต์แวร์แพลตฟอร์ มที่เหมาะสมให้ทำการประมวลผล และส่งกลับมายังเครื่องส่วนกลางที่จะทำการรวบรวมผลมาวิเคราะห์อีกครั้งหนึ่ง

Storage Virtualization
คือ ทำการเชื่อมต่อด้วยเครือข่าย หรือใช้ SANs ผู้ใช้จะได้จำนวนของ Storage ที่ใหญ่ขึ้น และใช้รันแอพพลิเคชันที่ใหญ่ขึ้นได้ด้วย
Virtual Private Network (VPN), Network Address Translation (NAT) และเทคโนโลยีเครือข่ายที่ทำหน้าที่คล้ายคลึงกัน คือ การทำ Virtualization เครือข่ายโดยเชื่อมต่อเครือข่ายย่อยๆ อื่นๆ ที่แตกต่างกันเข้ามาเป็นเครือข่ายเดียว

http://www.vcharkarn.com/uploads/108/108738.png

http://www.vcharkarn.com/uploads/108/108739.png

Virtual Datacenter/Virtual Infrastructure
รูปตัวอย่างของการทำ Resource Virtualization ซึ่งน่าจะช่วยทำให้เข้าใจได้ง่ายขึ้น

Virtualization Software

Edit

Virtualization Software คือ ซอฟต์แวร์ที่ทำหน้าที่สร้างส่วนควบคุมที่เชื่อมต่อกับซอฟต์แวร์ที่ทำหน้า เป็นเครื่องคอมพิวเตอร์เสมือน (Virtual Machine)
VMware
VMware มาจากการผสมคำว่า VM (Virtual Machine) กับ ware (Software) เข้าด้วยกัน เป็นโปรแกรมของ VMware, Inc. ซึ่งเป็นผู้นำของตลาด Virtualization
VMware ติดตั้งได้ทั้งบน Windows, Linux และ Mac OS X แต่สำหรับเวอร์ชัน Server สามารถติดตั้งบนฮาร์ดแวร์ได้โดยตรงเลย ไม่ต้องอาศัยระบบปฏิบัติการเลย ผลิตภัณฑ์ของ VMware เช่น VMware Workstation, VMware Fusion, VMware ESX Server

http://www.vcharkarn.com/uploads/108/108742.png

VMware Fusion (for the Mac)

http://www.vcharkarn.com/uploads/108/108741.png

VMware Workstation

Microsoft

Microsoft Virtual PC เป็นโปรแกรมที่บริษัทไมโครซอฟต์ (Microsoft) ซื้อมาจาก Connectix และเปิดให้ผู้ใช้สามารถดาวน์โหลดมาใช้งานได้ฟรีบนระบบปฎิบัติการ วินโดวส์ (Windows) และ แม็ค โอเอส (Mac OS X) ที่ใช้ PowerPC แต่ปัจจุบันได้ยกเลิกการสนับสนุนตั้งแต่แม็คเปลี่ยนมาใช้ CPU จาก Intel ปัจจุบันได้พัฒนาเป็น Virtual PC 2007 SP1 มีทั้งเวอร์ชันสำหรับระบบปฏิบัติการแบบ 32 บิต และระบบปฏิบัติการแบบ 64 บิต สามารถติดตั้งระบบปฏิบัติการของวินโดวส์ทั้งหมดใน Virtual PC ได้ รวมถึงระบบปฏิบัติการใหม่ล่าสุด (Windows Vista, Windows Server 2008) ของไมโครซอฟต์ได้ด้วย สำหรับระบบปฏิบัติการอื่นสามารถติดตั้งใน Virtual PC ได้ แต่ไม่ได้มีการรับรองอย่างเป็นทางการ
Microsoft Virtual Server 2005 R2 เป็นผลิตภัณฑ์สำหรับ Server ซึ่งกำลังถูกแทนที่ด้วยเทคโนโลยีใหม่อย่าง Windows Server 2008 Hyper-V โดยมีพื้นฐานมาจาก Hypervisor-based Server Virtualization Technology
Microsoft Application Virtualization หรือชื่อเดิมว่า SoftGrid Application Virtualization เป็นระบบโซลูชั่นด้าน Virtualization ที่มีคุณภาพสูงกว่า ซึ่งเติมเต็มกับระบบของ Windows Server 2008 Hyper-V โดยแทนที่จะทำการสร้างระบบเสมือนจริงให้กับทั้งระบบปฏิบัติการ ระบบ Microsoft Application Virtualization จะทำการสร้างระบบเสมือนจริงเพียงเฉพาะกับแอพพลิเคชันต่างๆเท่านั้น ระบบ Microsoft Application Virtualization จึงช่วยให้แอพพลิเคชันต่างๆสามารถรันได้พร้อมกับแอพพลิเคชันอื่นๆ เสมอ แม้ว่าแอพพลิเคชันทั้งสองนั้นจะมีความขัดแย้งกันเอง หรือการรันแอพพลิเคชั่นชนิดเดียวกันแต่ต่างเวอร์ชั่นก็สามารถทำได้เช่นกัน นอกจากนั้นยังสามารถรันแอพพลิเคชั่นซึ่งปกติแล้วจะไม่สามารถรันได้พร้อมๆกัน อีกด้วย

http://www.vcharkarn.com/uploads/108/108745.png
Microsoft Virtual PC

Xen

Xen เป็น Virtualization Software แบบ Open Source ที่ทำงานบนสถาปัตยกรรมของ CPU IA-32, x86, x86-64, IA-64 และ PowerPC 970 ที่ทำงานบนระบบปฎิบัติการ Linux และ ระบบปฎิบัติการอื่นที่พัฒนามาจาก Unix เดิม Xen เป็นงานวิจัยของ Ian Pratt จากมหาวิทยาลัย Cambridge ภายใต้การสนับสนุนของ XenSource, Inc ซึ่งต่อมาถูกซื้อกิจการโดย Citrix Systems ทำให้แต่ Xen ต้องแยกตัวออกมาและถูกดูแลโดย Xen Project Advisory Board (Xen AB)
ปัจจุบัน Xen ได้ถูกรวมเข้าในเคอร์เนลลินุกซ์ (Linux Kernel) ตั้งแต่เวอร์ชัน 2.6.23 เป็นต้นไปแล้ว ทำให้สามารถใช้งาน Xen ได้ง่ายขึ้น

http://www.vcharkarn.com/uploads/108/108746.png

Windows Server 2008 running under Xen on OpenSuse 10.3

Usage Virtualization Technology

Edit

Consolidation: การรวบรวมทรัพยากรต่างๆ เช่น Storage และ Server เข้ามาอยู่จุดเดียว
- เพิ่มอัตราการใช้งานฮาร์ดแวร์ที่มีอยู่อย่างจำกัด ให้เป็นไปอย่างมีประสิทธิภาพและคุ้มค่ามากที่สุ เนื่องจากฮาร์ดแวร์บางตัวอาจจะใช้งานไม่มากนัก ขณะที่บางตัวใช้งานมากจนเกินไป
- ช่วยประหยัดพลังงานค่าไฟ ประหยัดพื้นที่ ประหยัดค่าใช้จ่ายต่างๆ
- การดูแลบริหารจัดการและบำรุงรักษาระบบทำได้ง่ายขึ้น เนื่องจากมีฮาร์ดแวร์เพียงชุดเดียวเท่านั้น
- สามารถติดตั้งได้หลายระบบปฏิบัติการและแอพพลิเคชั่นบนสภาพแวดล้อมที่แตกต่าง กัน เนื่องจากบางแอพพลิเคชัน (Legacy Applications) จำเป็นต้องทำงานบนระบบปฏิบัติการที่จำเพาะ เป็นการยืดอายุการใช้งานแอพพลิเคชั่นเก่าโดยมีค่าใช้จ่ายไม่มากและมีความ เสี่ยงน้อยที่สุด

http://www.vcharkarn.com/uploads/108/108751.png

Reliability: ความน่าเชื่อถือในการทำงาน
- เพิ่มความสะดวกและความคล่องตัวทางธุรกิจ ระบบเสมือนสามารถจัดเตรียมเพื่อรองรับหรือปรับขนาดได้ภายในไม่กี่นาทีเพื่อ รองรับการติดตั้งแอพพลิเคชั่นใหม่ ภาระงานที่เพิ่มขึ้นหรือกรณีที่เกิดความผิดพลาดขึ้นในระบบ
- การ Backup และ Recovery สามารถทำงานได้อย่างรวดเร็วขึ้น ภายใต้ Virtual Machine เดียวกัน
- รองรับการทำงานหลากหลายอย่าง อาทิ System Migration, Backup และ Recovery

http://www.vcharkarn.com/uploads/108/108750.png

Security: การรักษาความปลอดภัยที่ดีขึ้น
- สามารถกำหนดระดับความปลอดภัยให้แต่ละระบบเสมือนให้มีความแตกต่างกันได้
- การโจมตีในรูปแบบดิจิตอล (Virus, Hacker) จะถูกแยกออกจากกัน สำหรับแต่ละระบบ
- การทำงานที่ล้มเหลวส่วนใหญ่มาจากซอร์ฟแวร์ จึงมั่นใจได้ว่าความผิดพลาดที่เกิดขึ้นจะไม่ส่งผลกระทบต่อระบบเสมือนอื่นๆ

http://www.vcharkarn.com/uploads/108/108749.png

อ้างอิง
www.intel.com
www.amd.com
www.vmware.com
en.wikipedia.org
www.virtuatopia.com
www.sport-click.com
uma.sut.ac.th

ไม่มีความคิดเห็น:

แสดงความคิดเห็น