แนะนำความแตกต่างของ VMQ และ SR-IOV

สวัสดีครับ ไม่ได้เขียนบล๊อกซะนาน วันนี้จะมาแนะนำเรื่องเล็กๆ น้อยๆ กันครับ

ผมใช้ Hyper-V ในการทำเซิฟเวอร์มานาน หลายๆ คนคงจะสงสัยเรื่อง Network Virtualization ในแต่ละแบบครับ ว่ามันแตกต่างกันยังไง ทั้ง VMQ และ SR-IOV วันนี้ผมจะมาอธิบายให้เข้าใจง่ายๆ แบบเห็นภาพกันเลยนะครับ

ก่อนอื่น เรามาดู กรณีไม่ได้ใช้ระบบ Virtualization ใดๆ กันเลย

Intel_VMDq_Explanation_1

จากรูป จะเห็นว่า เมื่อมี Packet วิ่งเข้ามา CPU Core 0 ที่ทำหน้าที่เป็นอินเตอร์รัพท์ (Interrupt) จะมาประมวลผล packet ก่อน จากนั้นก็ส่งต่อ packet ไปให้ CPU ที่ประมวลผล VM นั้น วิธีนี้มีข้อเสียคือ packet จะวิ่งเข้าวิ่งออกได้ทีละ VM เท่านั้น เวลา packet จำนวนมากๆ มา จะเกิดอาการหน่วงขึ้นครับ เนื่องจากมันต้องรอ VM อื่นรับไปก่อน เสียเวลาโดยใช่เหตุ

ต่อไปมาดู VMQ กันครับ

Intel_VMDq_Explanation_2

จะเห็นว่า การใช้ VMQ นั้น CPU ทุกตัว จะช่วยกันรับ Packet ที่เข้ามา โดยไม่ต้องรออินเตอร์รัพท์ก่อน และการรับ Packet นั้นจะเป็นแบบคู่ขนาน หมายถึง เวลา Packet วิ่งเข้ามาเยอะๆ VM ก็ไม่ต้องรอกัน ทำให้ลดอาการหน่วงลงไปได้ครับ

ต่อไป SR-IOV

Intel_SR_IOV_Explanation_3

SR-IOV หรือ Single Root IO Virtualization อันนี้ต้องเป็นการ์ดแลนที่รองรับระบบนี้ และเสียบบนช่อง PCI-Express ด้วยครับ

ซึ่งหากเปิดใช้งาน VM จะมองเห็นการ์ดแลนที่ระดับ Hardware แลย ไม่ใช่มองเป็น Virtual Lan (เช่น คุณติดตั้ง Intel 82576 Dual Port ไว้ VM จะมองเห็นเป็น Intel 82576 เลย และต้องลง Driver ของ Intel ด้วย) เอาง่ายๆ VM คุยกับการ์ดแลนตรงๆ โดยไม่ผ่าน Virtual Switch นั่นแหละ

ผลของการที่ VM คุยกับการ์ดแลนโดยตรง โดยไม่ผ่าน V Switch ทำให้ไม่ต้องใช้ CPU ในการรับ packet เข้ามา และเพิ่มประสิทธิภาพ กรณีที่ต้องใช้งาน VM ในระดับข้อมูลที่ 10 Gbps ขึ้นไปด้วยครับ

ใส่ความเห็น