อ่าน 9 นาที
เวอร์ชวลไลเซชัน
ในด้าน คอมพิวเตอร์ การจำลองเสมือน (หรือ virtualisation ใน ภาษาอังกฤษ แบบ เครือจักรภพ ดูความแตกต่างของการสะกด ) ซึ่งย่อว่า v12n...
เวอร์ชวลไลเซชัน

ในด้านคอมพิวเตอร์การจำลองเสมือน (หรือvirtualisationในภาษาอังกฤษแบบ เครือจักรภพ ดูความแตกต่างของการสะกด ) ซึ่งย่อว่าv12nคือชุดของเทคโนโลยีที่ช่วยให้สามารถแบ่งทรัพยากรการคำนวณทางกายภาพออกเป็นชุดของเครื่องเสมือนระบบปฏิบัติการกระบวนการ หรือคอนเทนเนอร์[ 1 ] การจำลองเสมือนเริ่มต้นขึ้นในช่วงทศวรรษ 1960 ด้วย IBM CP/CMS [ 1 ] โปรแกรมควบคุม CP ให้ผู้ใช้แต่ละคนมีคอมพิวเตอร์ System/360 แบบสแตนด์อะโลนจำลอง
ในการจำลองเสมือนด้วยฮาร์ดแวร์เครื่องโฮสต์คือเครื่องที่ใช้โดยการจำลองเสมือน และเครื่องเกสต์คือเครื่องเสมือน คำว่าโฮสต์และเกสต์ใช้เพื่อแยกแยะซอฟต์แวร์ที่ทำงานบนเครื่องจริงออกจากซอฟต์แวร์ที่ทำงานบนเครื่องเสมือน ซอฟต์แวร์หรือเฟิร์มแวร์ที่สร้างเครื่องเสมือนบนฮาร์ดแวร์โฮสต์เรียกว่าไฮเปอร์ไวเซอร์หรือมอนิเตอร์เครื่องเสมือน[ 2 ]การจำลองเสมือนด้วยฮาร์ดแวร์ไม่เหมือนกับการจำลองด้วยฮาร์ดแวร์การจำลองเสมือนด้วยฮาร์ดแวร์ช่วยอำนวยความสะดวกในการสร้างมอนิเตอร์เครื่องเสมือนและอนุญาตให้ระบบปฏิบัติการเกสต์ทำงานแยกกันได้
การจำลองเดสก์ท็อปเสมือนคือแนวคิดของการแยกเดสก์ท็อปเชิงตรรกะออกจากเครื่องคอมพิวเตอร์จริง
การจำลองเสมือนระดับระบบปฏิบัติการหรือที่เรียกว่าการใช้คอนเทนเนอร์หมายถึง คุณลักษณะ ของระบบปฏิบัติการที่เคอร์เนลอนุญาตให้มีอินสแตนซ์ พื้นที่ผู้ใช้ ที่แยกจากกันหลายตัวได้
เป้าหมายหลักของการจำลองเสมือนคือการรวมศูนย์งานด้านการบริหารจัดการ ในขณะเดียวกันก็ปรับปรุงความสามารถในการขยายขนาดและการใช้ทรัพยากรฮาร์ดแวร์โดยรวม ให้มีประสิทธิภาพยิ่งขึ้น
ประวัติศาสตร์
รูปแบบหนึ่งของการจำลองเสมือน (virtualization) ได้รับการสาธิตครั้งแรกในระบบวิจัยCP-40 ของ IBM ในปี 1967 จากนั้นจึงเผยแพร่ผ่าน ซอฟต์แวร์โอเพนซอร์สใน CP/CMS ในปี 1967–1972 และได้รับการพัฒนาใหม่ในตระกูล VM ของ IBM ตั้งแต่ปี 1972 จนถึงปัจจุบัน ผู้ใช้ CP/CMS แต่ละคนจะได้รับคอมพิวเตอร์จำลองแบบสแตนด์อะโลน เครื่องเสมือนแต่ละเครื่องมีขีดความสามารถครบถ้วนของเครื่องจริง และ (สำหรับผู้ใช้) เครื่องเสมือนนั้นไม่แตกต่างจากระบบส่วนตัว การจำลองนี้ครอบคลุมทุกด้าน และอิงตามคู่มือหลักการทำงานของฮาร์ดแวร์ ดังนั้นจึงรวมถึงองค์ประกอบต่างๆ เช่น ชุดคำสั่ง หน่วยความจำหลัก การขัดจังหวะ ข้อยกเว้น และการเข้าถึงอุปกรณ์ ผลลัพธ์ที่ได้คือเครื่องเดียวที่สามารถ ใช้ งานร่วมกันได้หลายคน
การจำลองเสมือนด้วยฮาร์ดแวร์ปรากฏขึ้นครั้งแรกในระบบ IBM System/370ในปี 1972 สำหรับใช้กับVM/370ซึ่งเป็นระบบปฏิบัติการเครื่องเสมือนตัวแรก IBM ได้เพิ่มฮาร์ดแวร์หน่วยความจำเสมือนลงในซีรี่ส์ System/370 ในปี 1972 ซึ่งไม่เหมือนกับ Intel VT-x Rings ที่ให้สิทธิ์ระดับสูงกว่าสำหรับ Hypervisor ในการควบคุมเครื่องเสมือนอย่างถูกต้อง โดยต้องเข้าถึงโหมด Supervisor และ Program หรือ User อย่างเต็มรูปแบบ
ด้วยความต้องการที่เพิ่มขึ้นสำหรับกราฟิกคอมพิวเตอร์ความละเอียดสูง (เช่นCAD ) การจำลองเสมือนของเมนเฟรมจึงลดความสนใจลงในช่วงปลายทศวรรษ 1970 เมื่อมินิคอมพิวเตอร์ ที่กำลังจะเข้ามา ส่งเสริมการจัดสรรทรัพยากรผ่านการประมวลผลแบบกระจายซึ่งรวมถึงการกลายเป็นสินค้าโภคภัณฑ์ของไมโครคอมพิวเตอร์
การเพิ่มขึ้นของกำลังการประมวลผลต่อเซิร์ฟเวอร์ x86 (และโดยเฉพาะอย่างยิ่งการเพิ่มขึ้นอย่างมากของแบนด์วิดท์ของเครือข่ายสมัยใหม่) ได้จุดประกายความสนใจในการประมวลผลบนศูนย์ข้อมูลซึ่งอาศัยเทคนิคการจำลองเสมือนอีกครั้ง ปัจจัยหลักคือศักยภาพในการรวมเซิร์ฟเวอร์: การจำลองเสมือนช่วยให้เซิร์ฟเวอร์เดียวสามารถรวมกำลังการประมวลผลบนเซิร์ฟเวอร์เฉพาะหลายเครื่องที่ไม่ได้ใช้งานอย่างมีประสิทธิภาพและคุ้มค่า สิ่งที่เห็นได้ชัดเจนที่สุดของการกลับคืนสู่รากฐานของการประมวลผลคือการประมวลผลแบบคลาวด์ซึ่งเป็นคำพ้องความหมายของการประมวลผลบนศูนย์ข้อมูล (หรือการประมวลผลแบบเมนเฟรม) ผ่านเครือข่ายแบนด์วิดท์สูง และมีความเชื่อมโยงอย่างใกล้ชิดกับการจำลองเสมือน
การใช้งานสถาปัตยกรรม x86 ในช่วงเริ่มต้นไม่ตรงตามข้อกำหนดการจำลองเสมือนของ Popek และ Goldbergเพื่อให้บรรลุ "การจำลองเสมือนแบบดั้งเดิม":
- ความเท่าเทียมกัน : โปรแกรมที่ทำงานภายใต้มอนิเตอร์เครื่องเสมือน (VMM)ควรแสดงพฤติกรรมที่เหมือนกันโดยพื้นฐานกับที่แสดงเมื่อทำงานบนเครื่องที่เทียบเท่ากันโดยตรง
- การควบคุมทรัพยากร (หรือเรียกว่าความปลอดภัย ): VMM ต้องควบคุมทรัพยากรเสมือนได้อย่างสมบูรณ์
- ประสิทธิภาพ : สัดส่วนที่สำคัญทางสถิติของคำสั่งเครื่องจะต้องถูกดำเนินการโดยไม่ต้องมีการแทรกแซงจาก VMM
สิ่งนี้ทำให้การใช้งานมอนิเตอร์เครื่องเสมือนสำหรับโปรเซสเซอร์ประเภทนี้เป็นเรื่องยาก ข้อจำกัดเฉพาะ ได้แก่ การไม่สามารถดัก จับ คำสั่งพิเศษบาง คำสั่งได้ [ 3 ]ดังนั้น เพื่อชดเชยข้อจำกัดทางสถาปัตยกรรมเหล่านี้ นักออกแบบจึงสร้างระบบเสมือนของสถาปัตยกรรม x86 ผ่านสองวิธี ได้แก่การจำลองเสมือนแบบเต็มรูปแบบหรือการจำลองเสมือนแบบบางส่วน [ 4 ] ทั้งสองวิธีสร้างภาพลวงตาของฮาร์ดแวร์ทางกายภาพเพื่อให้บรรลุเป้าหมายของระบบปฏิบัติการที่เป็นอิสระจากฮาร์ดแวร์ แต่ก็มีข้อเสียบางประการในด้านประสิทธิภาพและความซับซ้อน
ก่อนปี 2005 การจำลองเสมือนแบบเต็มรูปแบบยังไม่สามารถใช้งานได้อย่างสมบูรณ์บนแพลตฟอร์ม x86 ไฮเปอร์ไวเซอร์ หลายตัว สำหรับแพลตฟอร์ม x86 ทำได้ใกล้เคียงมากและอ้างว่าสามารถจำลองเสมือนแบบเต็มรูปแบบได้ (เช่น Adeos, Mac-on-Linux, Parallels Desktop for Mac , Parallels Workstation , VMware Workstation , VMware Server (เดิมคือ GSX Server), VirtualBox , Win4BSD และWin4Lin Pro )
ในปี 2005 และ 2006 อินเทลและเอดีเอ็ม (ทำงานแยกกัน) ได้สร้างส่วนขยายโปรเซสเซอร์ใหม่สำหรับสถาปัตยกรรม x86เรียกว่า Intel VT-x และ AMD-V ตามลำดับ บน สถาปัตยกรรม อิทาเนียมการจำลองเสมือนด้วยฮาร์ดแวร์เรียกว่า VT-i โปรเซสเซอร์ x86 รุ่นแรกที่รองรับส่วนขยายเหล่านี้ได้รับการวางจำหน่ายในช่วงปลายปี 2005 ถึงต้นปี 2006
- เมื่อวันที่ 13 พฤศจิกายน 2548 อินเทลได้เปิดตัวโปรเซสเซอร์ Pentium 4 สองรุ่น (รุ่น 662 และ 672) ซึ่งเป็นโปรเซสเซอร์อินเทลรุ่นแรกที่รองรับ VT-x
- เมื่อวันที่ 23 พฤษภาคม 2549 AMD ได้เปิดตัว Athlon 64 ("Orleans"), Athlon 64 X2 ("Windsor") และ Athlon 64 FX ("Windsor") ซึ่งเป็น โปรเซสเซอร์ AMD รุ่นแรก ที่รองรับเทคโนโลยีนี้
การจำลองฮาร์ดแวร์
การจำลองฮาร์ดแวร์เสมือน (หรือการจำลองแพลตฟอร์มเสมือน) จะรวมทรัพยากรการประมวลผลไว้ใน เครื่องเสมือนตั้งแต่หนึ่งเครื่องขึ้นไปเครื่องเสมือนจะจำลองการทำงานของคอมพิวเตอร์ (ทางกายภาพ) ด้วยระบบปฏิบัติการ ซอฟต์แวร์หรือเฟิร์มแวร์ที่สร้างเครื่องเสมือนบนฮาร์ดแวร์โฮสต์เรียกว่าไฮเปอร์ไวเซอร์หรือมอนิเตอร์เครื่องเสมือน[ 2 ]
ซอฟต์แวร์ที่ทำงานบนเครื่องเสมือนเหล่านี้จะถูกแยกออกจากทรัพยากรฮาร์ดแวร์พื้นฐาน ตัวอย่างเช่น คอมพิวเตอร์ที่ใช้Arch Linuxอาจมีเครื่องเสมือนที่มีลักษณะเหมือนคอมพิวเตอร์ที่ใช้ ระบบปฏิบัติการ Microsoft Windowsซอฟต์แวร์ที่ใช้ Windows สามารถทำงานบนเครื่องเสมือนได้[ 5 ] [ 6 ]
ประเภทต่างๆ ของการจำลองฮาร์ดแวร์เสมือน ได้แก่:
- การจำลองเสมือนแบบเต็มรูปแบบ – การจำลองเสมือนฮาร์ดแวร์จริงเกือบทั้งหมด เพื่อให้สภาพแวดล้อมซอฟต์แวร์ รวมถึงระบบปฏิบัติการแขกและแอปพลิเคชันต่างๆ สามารถทำงานได้โดยไม่ต้องแก้ไขใดๆ
- พาราเวอร์ชวลไลเซชัน – แอปพลิเคชันแขกรับเชิญจะทำงานในโดเมนที่แยกต่างหากราวกับว่ากำลังทำงานอยู่บนระบบที่แยกต่างหาก แต่ไม่ได้จำลองสภาพแวดล้อมฮาร์ดแวร์ โปรแกรมแขกรับเชิญจำเป็นต้องได้รับการดัดแปลงเป็นพิเศษเพื่อให้สามารถทำงานในสภาพแวดล้อมนี้ได้
- การจำลองเสมือนแบบไฮบริด – ส่วนใหญ่เป็นการจำลองเสมือนแบบเต็มรูปแบบ แต่ใช้ไดรเวอร์การจำลองเสมือนแบบพาราเวอร์ชวลไลเซชันเพื่อเพิ่มประสิทธิภาพของเครื่องเสมือน
เวอร์ชวลไลเซชันแบบเต็มรูปแบบ

การจำลองเสมือนแบบเต็มรูปแบบใช้เทคนิคที่รวมทรัพยากรคอมพิวเตอร์ทางกายภาพเข้าเป็นอินสแตนซ์หนึ่งหรือมากกว่าหนึ่งอินสแตนซ์ โดยแต่ละอินสแตนซ์จะทำงานในสภาพแวดล้อมเสมือนซึ่งซอฟต์แวร์หรือระบบปฏิบัติการใดๆ ที่สามารถทำงานบนฮาร์ดแวร์ดิบได้ก็สามารถทำงานในเครื่องเสมือนได้ โดยทั่วไปแล้วจะใช้เทคนิคการจำลองเสมือนแบบเต็มรูปแบบสองวิธี ได้แก่ (ก) การแปลงไบนารี และ (ข) การจำลองเสมือนแบบเต็มรูปแบบที่ได้รับความช่วยเหลือจากฮาร์ดแวร์[ 1 ]การแปลงไบนารีจะแก้ไขซอฟต์แวร์แบบเรียลไทม์โดยอัตโนมัติเพื่อแทนที่คำสั่งที่ "เจาะเครื่องเสมือน" ด้วยลำดับคำสั่งที่แตกต่างกันและปลอดภัยสำหรับเครื่องเสมือน[ 7 ]การจำลองเสมือนที่ได้รับความช่วยเหลือจากฮาร์ดแวร์ช่วยให้ระบบปฏิบัติการแขกสามารถทำงานได้อย่างโดดเดี่ยวโดยแทบไม่ต้องแก้ไขระบบปฏิบัติการ (แขก) เลย
การจำลองเสมือนอย่างสมบูรณ์นั้น จำเป็นต้องจำลองคุณสมบัติที่สำคัญทั้งหมดของฮาร์ดแวร์ลงในเครื่องเสมือนหลายเครื่อง ซึ่งรวมถึงชุดคำสั่งทั้งหมด การดำเนินการ อินพุต/เอาต์พุตการขัดจังหวะ การเข้าถึงหน่วยความจำ และองค์ประกอบอื่นๆ ที่ซอฟต์แวร์ที่ทำงานบนเครื่องจริง ใช้ และที่ตั้งใจจะให้ทำงานในเครื่องเสมือนด้วย
แนวทางนี้ได้รับการริเริ่มขึ้นในปี 1966 ด้วยเครื่อง IBM CP-40และCP-67ซึ่งเป็นรุ่นก่อนหน้าของตระกูล VM
การแปลงไบนารี
ไฮเปอร์ไวเซอร์บางตัวทำการแปลงเลขฐานสองระหว่างระบบปฏิบัติการแขกและระบบปฏิบัติการโฮสต์ ไม่ว่าจะเป็นระหว่างสถาปัตยกรรมชุดคำสั่งที่แตกต่างกัน หรือระหว่างระบบปฏิบัติการแขกและระบบปฏิบัติการโฮสต์ที่ใช้ชุดคำสั่งเดียวกัน ไฮเปอร์ไวเซอร์อาจได้รับการออกแบบให้ตีความรหัสเครื่องของระบบปฏิบัติการแขกโดยตรง หรือสร้างรหัสเครื่องสำหรับสถาปัตยกรรมของระบบปฏิบัติการโฮสต์ในรูปแบบของการแปลงเลขฐานสองแบบไดนามิก
ไฮเปอร์ไวเซอร์ทั่วไปส่วนใหญ่ รวมถึงไฮเปอร์ไวเซอร์ที่ใช้ฮาร์ดแวร์เพื่อช่วยในการจำลองเสมือน จะทำการแปลงคำสั่งบางอย่างที่เกี่ยวข้องกับการเข้าถึงฮาร์ดแวร์ให้เป็นเลขฐานสอง ในกรณีเช่นนี้ ไฮเปอร์ไวเซอร์จะดักจับคำสั่งนั้นและดำเนินการตามฟังก์ชันเพื่อจำลองอุปกรณ์ที่ต้องการ ไฮเปอร์ไวเซอร์ที่ทำการแปลงเลขฐานสองอาจได้รับการออกแบบมาเพื่อแทนที่คำสั่งภายในบริบทของระบบปฏิบัติการแขกเพื่อช่วยในเรื่องความปลอดภัยหรือประสิทธิภาพด้วย
ช่วยเหลือด้วยฮาร์ดแวร์
การจำลองเสมือนด้วยฮาร์ดแวร์ (หรือการจำลองเสมือนแบบเร่งความเร็ว; Xenเรียกว่าเครื่องเสมือนฮาร์ดแวร์ (HVM) และVirtual Ironเรียกว่าการจำลองเสมือนแบบเนทีฟ)เป็นวิธีหนึ่งในการปรับปรุงประสิทธิภาพโดยรวมของการจำลองเสมือนด้วยฮาร์ดแวร์โดยใช้ความช่วยเหลือจากโปรเซสเซอร์ของเครื่องโฮสต์ การจำลองเสมือนแบบเต็มรูปแบบใช้เพื่อจำลองสภาพแวดล้อมฮาร์ดแวร์ที่สมบูรณ์ หรือเครื่องเสมือนซึ่งระบบปฏิบัติการ แขกที่ไม่ได้รับการแก้ไข (ใช้ ชุดคำสั่งเดียวกันกับเครื่องโฮสต์) จะทำงานได้อย่างมีประสิทธิภาพในสภาวะที่แยกตัวอย่างสมบูรณ์
การจำลองเสมือนด้วยฮาร์ดแวร์ได้รับการแนะนำครั้งแรกบน โปรเซสเซอร์ IBM 308Xในปี 1980 โดยใช้คำสั่ง Start Interpretive Execution (SIE) [ 8 ] ต่อมา ได้มีการเพิ่มคำสั่งนี้ลงใน โปรเซสเซอร์ x86 ( Intel VT-x , AMD-VหรือVIA VT ) ในปี 2005, 2006 และ 2010 [ 9 ]ตามลำดับ
IBMนำเสนอเทคโนโลยีการจำลองเสมือนฮาร์ดแวร์สำหรับ ฮาร์ดแวร์ IBM Power Systemsบน ระบบปฏิบัติการ AIX , LinuxและIBM iรวมถึงเมนเฟรมIBM Z IBM เรียกรูปแบบเฉพาะของการจำลองเสมือนฮาร์ดแวร์ นี้ ว่า "พาร์ติชันเชิงตรรกะ" หรือที่เรียกกันทั่วไปว่าLPAR
การจำลองเสมือนด้วยฮาร์ดแวร์ช่วยลดภาระการบำรุงรักษาของการจำลองเสมือนแบบใช้การแปลงไบนารี เนื่องจากช่วยลด (หรือในอุดมคติคือขจัด) โค้ดที่ต้องแปลในระบบปฏิบัติการของเครื่องเสมือน นอกจากนี้ยังทำให้ได้ประสิทธิภาพที่ดีขึ้นอย่างเห็นได้ชัด
พาราเวอร์ชวลไลเซชัน
พาราเวอร์ชวลไลเซชัน (Paravirtualization) เป็นเทคนิคการจำลองเสมือนที่นำเสนออินเทอร์เฟซซอฟต์แวร์ให้กับเครื่องเสมือนซึ่งคล้ายคลึงกัน แต่ไม่เหมือนกับอินเทอร์เฟซฮาร์ดแวร์-ซอฟต์แวร์พื้นฐาน พาราเวอร์ชวลไลเซชันช่วยเพิ่มประสิทธิภาพและประสิทธิผลเมื่อเทียบกับการจำลองเสมือนแบบเต็มรูปแบบ โดยให้ระบบปฏิบัติการของเครื่องเสมือนสื่อสารกับไฮเปอร์ไวเซอร์ การที่ระบบปฏิบัติการของเครื่องเสมือนสามารถระบุเจตนาของตนไปยังไฮเปอร์ไวเซอร์ได้ ทำให้ทั้งสองฝ่ายสามารถทำงานร่วมกันเพื่อให้ได้ประสิทธิภาพที่ดีขึ้นเมื่อทำงานในเครื่องเสมือน
จุดประสงค์ของการปรับปรุงอินเทอร์เฟซนี้คือการลดส่วนของเวลาการทำงานของเครื่องเสมือนที่ใช้ไปกับการดำเนินการซึ่งยากต่อการทำงานในสภาพแวดล้อมเสมือนเมื่อเทียบกับสภาพแวดล้อมที่ไม่ใช่เสมือน การจำลองเสมือนแบบพาราเวอร์ชวลไลเซชันมี "จุดเชื่อมต่อ" ที่กำหนดไว้เป็นพิเศษเพื่อให้เครื่องเสมือนและเครื่องโฮสต์สามารถร้องขอและรับทราบงานเหล่านี้ได้ ซึ่งโดยปกติแล้วจะดำเนินการในโดเมนเสมือน (ซึ่งประสิทธิภาพการทำงานแย่กว่า) แพลตฟอร์มพาราเวอร์ชวลไลเซชันที่ประสบความสำเร็จอาจทำให้ตัวตรวจสอบเครื่องเสมือน (VMM) ง่ายขึ้น (โดยการย้ายการทำงานของงานที่สำคัญจากโดเมนเสมือนไปยังโดเมนโฮสต์) และ/หรือลดประสิทธิภาพโดยรวมของการทำงานของเครื่องภายในเครื่องเสมือน
การจำลองเสมือนแบบพาราเวอร์ชวลไลเซชันจำเป็นต้องมีการพอร์ตระบบปฏิบัติการ แขกอย่างชัดเจน สำหรับAPI พาราเวอร์ ชวลไลเซชัน – การแจกจ่ายระบบปฏิบัติการทั่วไปที่ไม่รองรับพาราเวอร์ชวลไลเซชันยังคงสามารถทำงานบน VMM ที่ใช้พาราเวอร์ชวลไลเซชันได้ อย่างไรก็ตาม แม้ในกรณีที่ระบบปฏิบัติการไม่สามารถแก้ไขได้ ก็อาจมีส่วนประกอบที่ช่วยให้ได้เปรียบด้านประสิทธิภาพที่สำคัญหลายประการของพาราเวอร์ชวลไลเซชัน ตัวอย่างเช่น โครงการ Xen Windows GPLPVมีชุดไดรเวอร์อุปกรณ์ที่รองรับพาราเวอร์ชวลไลเซชัน ซึ่งมีจุดประสงค์เพื่อติดตั้งลงใน แขกเสมือน Microsoft Windowsที่ทำงานบนไฮเปอร์ไวเซอร์Xen [ 10 ]แอปพลิเคชันดังกล่าวมีแนวโน้มที่จะเข้าถึงได้ผ่านสภาพแวดล้อมอินเทอร์เฟซเครื่องพาราเวอร์ชวลไลเซชัน ซึ่งทำให้มั่นใจได้ถึงความเข้ากันได้ของโหมดการทำงานในโมเดลอัลกอริทึมการเข้ารหัสหลายแบบ ทำให้สามารถผสานรวมได้อย่างราบรื่นภายในเฟรมเวิร์กพาราเวอร์ชวลไลเซชัน[ 11 ]
ประวัติศาสตร์
คำว่า "paravirtualization" ถูกใช้ครั้งแรกในเอกสารวิจัยที่เกี่ยวข้องกับDenali Virtual Machine Manager [ 12 ] คำนี้ยังใช้เพื่ออธิบายไฮเปอร์ไวเซอร์Xen , L4 , TRANGO, VMware , Wind Riverและ XtratuM โครงการเหล่านี้ทั้งหมดใช้หรือสามารถใช้เทคนิค paravirtualization เพื่อรองรับเครื่องเสมือนประสิทธิภาพสูงบน ฮาร์ดแวร์ x86โดยการใช้งานเครื่องเสมือนที่ไม่ต้องใช้งานส่วนที่ยากต่อการจำลองเสมือนของชุดคำสั่ง x86 จริง[ 13 ]
ในปี 2548 VMware ได้เสนออินเทอร์เฟซพาราเวอร์ชวลไลเซชัน หรือ Virtual Machine Interface (VMI) เป็นกลไกการสื่อสารระหว่างระบบปฏิบัติการแขกและไฮเปอร์ไวเซอร์ อินเทอร์เฟซนี้ช่วยให้เกิดพาราเวอร์ชวลไลเซชันแบบโปร่งใส ซึ่งเวอร์ชันไบนารีเดียวของระบบปฏิบัติการสามารถทำงานได้ทั้งบนฮาร์ดแวร์ดั้งเดิมหรือบนไฮเปอร์ไวเซอร์ในโหมดพาราเวอร์ชวลไลเซชัน
การปรากฏตัวครั้งแรกของการสนับสนุนพาราเวอร์ชวลไลเซชันในลินุกซ์เกิดขึ้นพร้อมกับการรวมพอร์ต ppc64 ในปี 2545 [ 14 ]ซึ่งสนับสนุนการรันลินุกซ์ในฐานะแขกพาราเวอร์ชวลไลเซชันบนฮาร์ดแวร์ IBM pSeries (RS/6000) และ iSeries (AS/400)
ในการประชุม USENIX ในปี 2549 ที่บอสตัน รัฐแมสซาชูเซตส์ผู้จำหน่ายการพัฒนา Linux จำนวนหนึ่ง (รวมถึง IBM, VMware, Xen และ Red Hat) ได้ร่วมมือกันในรูปแบบพาราเวอร์ชวลไลเซชันทางเลือก ซึ่งพัฒนาขึ้นครั้งแรกโดยกลุ่ม Xen เรียกว่า "paravirt-ops" [ 15 ]โค้ด paravirt-ops (มักย่อเป็น pv-ops) ถูกรวมอยู่ในเคอร์เนล Linux หลัก ตั้งแต่เวอร์ชัน 2.6.23 และมีอินเทอร์เฟซที่ไม่ขึ้นกับไฮเปอร์ไวเซอร์ระหว่างไฮเปอร์ไวเซอร์และเคอร์เนลของเกสต์ การสนับสนุนเคอร์เนลเกสต์ pv-ops เริ่มปรากฏใน Ubuntu 7.04 และ RedHat 9 ไฮเปอร์ไวเซอร์ Xen ที่ใช้เคอร์เนลเวอร์ชัน 2.6.24 หรือใหม่กว่ารองรับเกสต์ pv-ops เช่นเดียวกับผลิตภัณฑ์ Workstation ของ VMware ตั้งแต่เวอร์ชัน 6 เป็นต้นไป[ 16 ]
เวอร์ชวลไลเซชันแบบไฮบริด
การจำลองเสมือนแบบไฮบริดผสมผสานเทคนิคการจำลองเสมือนแบบเต็มรูปแบบเข้ากับไดรเวอร์แบบพาราเวอร์ชวลไลซ์เพื่อเอาชนะข้อจำกัดของการจำลองเสมือนแบบเต็มรูปแบบที่ได้รับความช่วยเหลือจากฮาร์ดแวร์[ 17 ]
แนวทางการจำลองเสมือนแบบเต็มรูปแบบที่ได้รับการสนับสนุนจากฮาร์ดแวร์จะใช้ระบบปฏิบัติการแขกที่ไม่ได้รับการดัดแปลง ซึ่งเกี่ยวข้องกับกับดัก VM จำนวนมากที่ก่อให้เกิดภาระ CPU สูง ซึ่งจำกัดความสามารถในการขยายขนาดและประสิทธิภาพของการรวมเซิร์ฟเวอร์[ 18 ]แนวทางการจำลองเสมือนแบบไฮบริดสามารถเอาชนะปัญหานี้ได้
การจำลองเดสก์ท็อป
การจำลองเดสก์ท็อปเสมือนจะแยกเดสก์ท็อปเชิงตรรกะออกจากเครื่องจริง
รูปแบบหนึ่งของการจำลองเดสก์ท็อปเสมือน คือ โครงสร้างพื้นฐานเดสก์ท็อปเสมือน (VDI) ซึ่งอาจถือได้ว่าเป็นรูปแบบการจำลองฮาร์ดแวร์เสมือนขั้นสูงกว่า แทนที่จะโต้ตอบกับคอมพิวเตอร์โฮสต์โดยตรงผ่านแป้นพิมพ์ เมาส์ และจอภาพ ผู้ใช้จะโต้ตอบกับคอมพิวเตอร์โฮสต์โดยใช้คอมพิวเตอร์เดสก์ท็อปเครื่องอื่นหรืออุปกรณ์เคลื่อนที่ผ่านการเชื่อมต่อเครือข่าย เช่นLAN , Wireless LANหรือแม้แต่อินเทอร์เน็ตนอกจากนี้ ในสถานการณ์นี้ คอมพิวเตอร์โฮสต์จะกลายเป็นคอมพิวเตอร์เซิร์ฟเวอร์ที่สามารถโฮสต์เครื่องเสมือนหลายเครื่องพร้อมกันสำหรับผู้ใช้หลายคน[ 19 ]
บริษัทต่างๆ เช่นHPและIBMนำเสนอโมเดล VDI แบบไฮบริดที่มีซอฟต์แวร์เวอร์ชวลไลเซชันและโมเดลการส่งมอบที่หลากหลายเพื่อปรับปรุงข้อจำกัดของการประมวลผลไคลเอ็นต์แบบกระจาย [ 20 ] สภาพแวดล้อมไคลเอ็นต์ที่เลือกจะย้ายเวิร์กโหลดจากพีซีและอุปกรณ์อื่นๆ ไปยังเซิร์ฟเวอร์ศูนย์ข้อมูล สร้างไคลเอ็นต์เสมือนที่มีการจัดการอย่างดี โดยมีแอปพลิเคชันและสภาพแวดล้อมการทำงานของไคลเอ็นต์ที่โฮสต์บนเซิร์ฟเวอร์และพื้นที่จัดเก็บข้อมูลในศูนย์ข้อมูล สำหรับผู้ใช้ หมายความว่าพวกเขาสามารถเข้าถึงเดสก์ท็อปได้จากทุกที่ โดยไม่ต้องผูกติดกับอุปกรณ์ไคลเอ็นต์เพียงเครื่องเดียว เนื่องจากทรัพยากรถูกรวมศูนย์ ผู้ใช้ที่ย้ายระหว่างสถานที่ทำงานยังคงสามารถเข้าถึงสภาพแวดล้อมไคลเอ็นต์เดียวกันกับแอปพลิเคชันและข้อมูลของตนได้[ 20 ]สำหรับผู้ดูแลระบบไอที หมายความว่าสภาพแวดล้อมไคลเอ็นต์ที่มีประสิทธิภาพและรวมศูนย์มากขึ้น บำรุงรักษาง่ายขึ้น และสามารถตอบสนองต่อความต้องการที่เปลี่ยนแปลงไปของผู้ใช้และธุรกิจได้รวดเร็วยิ่งขึ้น[ 21 ] เวอร์ชวลไลเซชันเซสชันอีกรูปแบบหนึ่ง อนุญาตให้ผู้ใช้หลายคนเชื่อมต่อและเข้าสู่ระบบคอมพิวเตอร์ที่ใช้ร่วมกันแต่ทรงพลังผ่านเครือข่ายและใช้งานพร้อมกันได้ แต่ละคนจะได้รับเดสก์ท็อปและโฟลเดอร์ส่วนตัวที่พวกเขาจัดเก็บไฟล์ของตน[ 19 ]ด้วยการกำหนดค่าแบบหลายที่นั่งการจำลองเซสชันสามารถทำได้โดยใช้พีซีเครื่องเดียวที่มีจอภาพ คีย์บอร์ด และเมาส์เชื่อมต่ออยู่หลายตัว
ไคลเอนต์แบบบาง (Thin clients)ซึ่งพบได้ในการจำลองเดสก์ท็อปเสมือน เป็นคอมพิวเตอร์ที่เรียบง่ายและ/หรือราคาถูก ซึ่งออกแบบมาเพื่อเชื่อมต่อกับเครือข่ายเป็นหลัก อาจมีพื้นที่จัดเก็บข้อมูลฮาร์ดดิสก์ หน่วยความ จำRAMหรือแม้แต่พลังการประมวลผล ไม่มากนัก แต่หลายองค์กรเริ่มพิจารณาถึงประโยชน์ด้านต้นทุนของการกำจัดเดสก์ท็อปแบบ "ไคลเอนต์แบบหนา" (Thick client) ที่เต็มไปด้วยซอฟต์แวร์ (และต้องเสียค่าลิขสิทธิ์ซอฟต์แวร์) และหันมาลงทุนเชิงกลยุทธ์มากขึ้น[ 22 ]
การจำลองเดสก์ท็อปช่วยลดความซับซ้อนของการจัดการเวอร์ชันซอฟต์แวร์และการแก้ไขข้อบกพร่อง โดยที่ภาพใหม่จะถูกอัปเดตบนเซิร์ฟเวอร์ และเดสก์ท็อปจะได้รับเวอร์ชันที่อัปเดตแล้วเมื่อรีบูต นอกจากนี้ยังช่วยให้สามารถควบคุมจากส่วนกลางได้ว่าผู้ใช้ได้รับอนุญาตให้เข้าถึงแอปพลิเคชันใดบ้างบนเวิร์กสเตชัน
การย้ายเดสก์ท็อปเสมือนไปยังคลาวด์จะสร้างเดสก์ท็อปเสมือนแบบโฮสต์ (HVD) ซึ่งภาพเดสก์ท็อปจะได้รับการจัดการและบำรุงรักษาจากส่วนกลางโดยบริษัทผู้ให้บริการโฮสติ้งเฉพาะทาง ข้อดี ได้แก่ ความสามารถในการปรับขนาดและการลดค่าใช้จ่ายด้านเงินทุน ซึ่งจะถูกแทนที่ด้วยค่าใช้จ่ายในการดำเนินงานรายเดือน[ 23 ]
การใช้คอนเทนเนอร์
การจำลองเสมือนระดับระบบปฏิบัติการ หรือที่เรียกว่าการใช้คอนเทนเนอร์หมายถึง คุณลักษณะ ของระบบปฏิบัติการที่เคอร์เนลอนุญาตให้มี อินสแตนซ์ พื้นที่ผู้ใช้ ที่แยกจากกันหลายตัว อินส แตนซ์ดังกล่าวเรียกว่าคอนเทนเนอร์[ 24 ]พาร์ติชัน สภาพแวดล้อมเสมือน (VE) หรือคุก ( คุก FreeBSDหรือคุก chroot ) อาจดูเหมือนคอมพิวเตอร์ (ทางกายภาพ) จากมุมมองของโปรแกรมที่ทำงานอยู่ภายใน โปรแกรมคอมพิวเตอร์ที่ทำงานบนระบบปฏิบัติการทั่วไปสามารถมองเห็นทรัพยากรทั้งหมด (อุปกรณ์ที่เชื่อมต่อ ไฟล์และโฟลเดอร์การแชร์เครือข่ายพลังงาน CPU ความสามารถของฮาร์ดแวร์ที่วัดได้) ของคอมพิวเตอร์นั้นได้ อย่างไรก็ตาม โปรแกรมที่ทำงานอยู่ภายในคอนเทนเนอร์สามารถมองเห็นได้เฉพาะเนื้อหาของคอนเทนเนอร์และอุปกรณ์ที่กำหนดให้กับคอนเทนเนอร์เท่านั้น
สิ่งนี้มอบประโยชน์มากมายที่เครื่องเสมือนมี เช่น การกำหนดมาตรฐานและความสามารถในการปรับขนาด ในขณะที่ใช้ทรัพยากรน้อยลงเนื่องจากเคอร์เนลถูกแชร์ระหว่างคอนเทนเนอร์[ 25 ]
การใช้คอนเทนเนอร์เริ่มได้รับความนิยมมากขึ้นในปี 2014 พร้อมกับการเปิดตัวDocker [ 26 ] [ 27 ]
ประเภทเบ็ดเตล็ด
- ซอฟต์แวร์
- การจำลองแอปพลิเคชันและการจำลองพื้นที่ทำงาน : การแยกแอปแต่ละตัวออกจากระบบปฏิบัติการและแอปอื่นๆ ที่อยู่เบื้องหลัง ซึ่งมีความเกี่ยวข้องอย่างใกล้ชิดกับแนวคิดของแอปพลิเคชันแบบพกพา
- การจำลองบริการเสมือน (Service virtualization ): การจำลองพฤติกรรมของส่วนประกอบเฉพาะในแอปพลิเคชันที่ใช้ส่วนประกอบหลากหลายประเภท เช่นแอปพลิเคชันที่ขับเคลื่อนด้วยAPI แอปพลิเคชันบน คลาวด์และสถาปัตยกรรมที่เน้นบริการเป็นหลัก
- หน่วยความจำ
- การจำลองหน่วยความจำเสมือน (Memory virtualization ): การรวมทรัพยากร RAM จากระบบเครือข่ายหลายระบบเข้าไว้ในกลุ่มหน่วยความจำเดียวที่รวมเป็นหนึ่งเดียวมักถูกเรียกว่า หน่วยความจำแบบ แยกส่วน (Disaggregated memory ) การรวมกลุ่มหน่วยความจำ ( Memory pooling ) หรือการเข้าถึงหน่วยความจำระยะไกล (Remote memory access ) สถาปัตยกรรมนี้มีจุดมุ่งหมายเพื่อเอาชนะข้อจำกัดด้านหน่วยความจำแบบดั้งเดิมของระบบเดียว โดยทำให้คอมพิวเตอร์หรือโหนดหลายเครื่องสามารถแบ่งปันหน่วยความจำได้อย่างมีประสิทธิภาพสูงและมีความหน่วงต่ำ
- หน่วยความจำเสมือน : ทำให้แอปพลิเคชันเข้าใจผิดว่ามีหน่วยความจำใช้งานต่อเนื่อง โดยแยกออกจากหน่วยความจำทางกายภาพที่อยู่เบื้องหลัง
- พื้นที่จัดเก็บ
- การจำลองเสมือนของพื้นที่จัดเก็บข้อมูล : กระบวนการแยกพื้นที่จัดเก็บข้อมูลเชิงตรรกะออกจากพื้นที่จัดเก็บข้อมูลทางกายภาพอย่างสมบูรณ์
- ระบบไฟล์แบบกระจาย (Distributed file system ): ระบบไฟล์ ใดๆ ที่อนุญาตให้เข้าถึงไฟล์จากโฮสต์หลายเครื่องที่ใช้งานร่วมกันผ่านเครือข่ายคอมพิวเตอร์
- ระบบไฟล์เสมือน : ชั้นนามธรรมที่อยู่เหนือระบบไฟล์ที่เป็นรูปธรรมมากขึ้น ช่วยให้แอปพลิเคชันไคลเอ็นต์สามารถเข้าถึงระบบไฟล์ที่เป็นรูปธรรมประเภทต่างๆ ได้อย่างสม่ำเสมอ
- ไฮเปอร์ไวเซอร์จัดเก็บข้อมูล : ซอฟต์แวร์ที่จัดการการจำลองเสมือนของพื้นที่จัดเก็บข้อมูลและรวมทรัพยากรจัดเก็บข้อมูลทางกายภาพเข้าเป็นกลุ่มพื้นที่จัดเก็บข้อมูลเชิงตรรกะที่ยืดหยุ่นหนึ่งกลุ่มหรือมากกว่า[ 28 ]
- ดิสก์เสมือน : โปรแกรมคอมพิวเตอร์ที่จำลองการทำงานของไดรฟ์ เช่นฮาร์ดดิสก์ไดรฟ์หรือไดรฟ์ออปติคัล (ดูการเปรียบเทียบซอฟต์แวร์สร้างอิมเมจดิสก์ )
- ข้อมูล
- การจำลองข้อมูลเสมือน (Data virtualization ): การนำเสนอข้อมูลในรูปแบบของชั้นนามธรรม ซึ่งเป็นอิสระจากระบบฐานข้อมูล โครงสร้าง และพื้นที่จัดเก็บข้อมูลพื้นฐาน
- การจำลองเสมือนฐานข้อมูล : การแยกส่วนของเลเยอร์ฐานข้อมูล ซึ่งอยู่ระหว่างเลเยอร์การจัดเก็บข้อมูลและเลเยอร์แอปพลิเคชันภายในสแต็กแอปพลิเคชันโดยรวม
- เครือข่าย
- การจำลองเสมือนเครือข่าย : การสร้างพื้นที่แอดเดรส เครือข่ายเสมือน ภายในหรือระหว่างซับเน็ตของเครือข่าย
- เครือข่ายส่วนตัวเสมือน (VPN): โปรโตคอลเครือข่ายที่แทนที่สายเคเบิลหรือสื่อทางกายภาพอื่นๆ ในเครือข่ายด้วยเลเยอร์นามธรรม ทำให้สามารถสร้างเครือข่ายผ่านทางอินเทอร์เน็ต ได้
- การจำลองเสมือนโปรโตคอลเครือข่าย (Network Protocol Virtualization ): การแยกชั้นเครือข่ายออกจากกันเพื่อเร่งความเร็วในการติดตั้งและจัดการเครือข่าย
ข้อดีและข้อเสีย
การจำลองเสมือน โดยเฉพาะอย่างยิ่งการจำลองเสมือนแบบเต็มรูปแบบ ได้พิสูจน์แล้วว่ามีประโยชน์ในด้านต่างๆ ดังนี้:
- การใช้งานระบบคอมพิวเตอร์ร่วมกันระหว่างผู้ใช้หลายคน;
- แยกผู้ใช้แต่ละคนออกจากกัน (และจากโปรแกรมควบคุม);
- จำลองการทำงานของฮาร์ดแวร์ใหม่เพื่อให้ได้ความน่าเชื่อถือ ความปลอดภัย และประสิทธิภาพการทำงานที่ดียิ่งขึ้น
เป้าหมายทั่วไปของการจำลองเสมือนคือการรวมศูนย์งานด้านการบริหารจัดการ ในขณะเดียวกันก็ปรับปรุงความสามารถในการขยายขนาดและการใช้ทรัพยากรฮาร์ดแวร์โดยรวมให้ดียิ่งขึ้น ด้วยการจำลองเสมือน ระบบปฏิบัติการหลายระบบสามารถทำงานพร้อมกันบนหน่วยประมวลผลกลาง (CPU) เดียวได้ การทำงานแบบขนานนี้มีแนวโน้มที่จะลดต้นทุนค่าใช้จ่าย และแตกต่างจากการทำงานแบบมัลติทาสกิ้ง ซึ่งเกี่ยวข้องกับการเรียกใช้โปรแกรมหลายโปรแกรมบนระบบปฏิบัติการเดียวกัน การใช้การจำลองเสมือนช่วยให้องค์กรสามารถจัดการการอัปเดตและการเปลี่ยนแปลงอย่างรวดเร็วของระบบปฏิบัติการและแอปพลิเคชันได้ดียิ่งขึ้นโดยไม่รบกวนผู้ใช้
ในที่สุด การจำลองเสมือนจะช่วยปรับปรุงประสิทธิภาพและความพร้อมใช้งานของทรัพยากรและแอปพลิเคชันในองค์กรได้อย่างมาก แทนที่จะพึ่งพาโมเดลเดิมของ "เซิร์ฟเวอร์หนึ่งเครื่อง แอปพลิเคชันหนึ่งเครื่อง" ซึ่งนำไปสู่การใช้ทรัพยากรที่ไม่เต็มประสิทธิภาพ ทรัพยากรเสมือนจะถูกนำมาใช้แบบไดนามิกเพื่อตอบสนองความต้องการทางธุรกิจโดยไม่มีส่วนเกินใดๆ[ 29 ]
เครื่องเสมือนที่ใช้ระบบปฏิบัติการที่เป็นกรรมสิทธิ์จำเป็นต้องมีใบอนุญาต ไม่ว่าระบบปฏิบัติการของเครื่องโฮสต์จะเป็นอะไรก็ตาม ตัวอย่างเช่น การติดตั้งMicrosoft Windowsลงในเครื่องเสมือนต้องเป็นไปตามข้อกำหนดด้านใบอนุญาต[ 30 ] [ 31 ] [ 32 ]
ดูเพิ่มเติม
- ซอฟต์แวร์เวอร์ชวลไลเซชันที่ใช้ AI ช่วย
- ลำดับเหตุการณ์การพัฒนาเทคโนโลยีเวอร์ชวลไลเซชัน
- การจำลองฟังก์ชันเครือข่าย
- แฝดดิจิทัล
- การจำลอง (การคำนวณ)
- การจำลองด้วยคอมพิวเตอร์
- การใช้คอนเทนเนอร์
- อัตราส่วนการรวมตัว
- การจำลองเสมือน I/O
- การตรวจสอบแอปพลิเคชัน
- ศิลปะเสมือนจริง
- การจำลองและการจำลองระบบปฏิบัติการบน Android
- การจำลองเสมือนแอปพลิเคชัน
- การจำลองเสมือนของผู้ใช้
ลิงก์ภายนอก
- บทนำเกี่ยวกับเวอร์ชวลไลเซชัน (Virtualization) เก็บถาวรเมื่อวันที่ 22 ตุลาคม 2020 ที่Wayback Machineมกราคม 2004 โดย Amit Singh
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เวอร์ชวลไลเซชัน
ในด้าน คอมพิวเตอร์ การจำลองเสมือน (หรือ virtualisation ใน ภาษาอังกฤษ แบบ เครือจักรภพ ดูความแตกต่างของการสะกด ) ซึ่งย่อว่า v12n...
ประวัติศาสตร์
รูปแบบหนึ่งของการจำลองเสมือน (virtualization) ได้รับการสาธิตครั้งแรกในระบบวิจัย CP-40 ของ IBM ในปี 1967 จากนั้นจึงเผยแพร่ผ่าน ซอฟต์แวร์โอเพนซอร์ส ใน CP/CMS ในปี 1967–1972 และได้รับการพัฒนาใหม่ใน ตระกูล VM ของ IBM ตั้งแต่ปี 1972 จนถึงปัจจุบัน ผู้ใช้ CP/CMS...
การจำลองฮาร์ดแวร์
การจำลองฮาร์ดแวร์เสมือน (หรือ การจำลองแพลตฟอร์มเสมือน) จะรวมทรัพยากรการประมวลผลไว้ใน เครื่องเสมือน ตั้งแต่หนึ่งเครื่องขึ้นไปเครื่องเสมือนจะจำลองการทำงานของคอมพิวเตอร์ (ทางกายภาพ) ด้วยระบบปฏิบัติการ ซอฟต์แวร์หรือ เฟิร์มแวร์...
เวอร์ชวลไลเซชันแบบเต็มรูปแบบ
การจำลองเสมือนแบบเต็มรูปแบบใช้เทคนิคที่รวมทรัพยากรคอมพิวเตอร์ทางกายภาพเข้าเป็นอินสแตนซ์หนึ่งหรือมากกว่าหนึ่งอินสแตนซ์ โดยแต่ละอินสแตนซ์จะทำงานในสภาพแวดล้อมเสมือนซึ่งซอฟต์แวร์หรือระบบปฏิบัติการใดๆ ที่สามารถทำงานบนฮาร์ดแวร์ดิบได้ก็สามารถทำงานในเครื่องเสมือนได้...