Monday, September 19, 2011

ESXi Multipathing and HCL for Storage/SAN devices

   หลายๆคนไม่มากก็น้อย คงอาจจะเคยเข้าไป  เช็คกันว่า storage ที่จะนำมาใช้งานกับ vSphere นั้นมันอยู่ใน compatibility list  หรือไม่

   ถ้าอยู่ใน VMware HCL (HW compatability list) นี้ก็จบ  นำไปใช้งานได้  ตามเวอชั่นของ ESX/ESXi นั้นๆ  ดังรุป



แต่เคยสังเกตุกันไหมคับว่า  ในหน้าเวป VMware HCL นั้น มี criteria ให้ search มากว่า แค่ รุ่น ยี่ห้อ และ fw ของ storage   ยิ่งไปกว่านั้น ณ ปัจจุบัน VMware ได้เปลี่ยนเมนู หน้าเวปนี้ใหม่   เอาแบบว่า ดุกันแล้วงงทีเดียว
ผมจะยกตัวอย่างรุปนี้ให้ดุนะคับ

ปล. ถ้าใครไม่เคยเข้าไป    ลองตามนี้เลยคับ http://www.vmware.com/resources/compatibility
 ใน drop down "What are you looking for"   เลือก Storage/SAN 
 

 ทางฝั่งซ้ายผมคงไม่ต้องอธิบายอะไรมาก  เราน่าจะรุ้ๆกันอยู่   แต่พอหันมาดุฝั่งขวา ........โหหหอะไรเนี่ยเต็มไปหมดเลยยยยยย

             ก่อนที่ผมจะมาไล่อธิบายให้ทีละตัว  อยากจะขอเกริ่นไว้ก่อนว่า รายละเอียดทางฝั่งขวาทั้งหมดมาจากโครงสร้างของ VMware ที่เรียกว่า PSA (Plugable Storage Architecture) และ VAAI (vStorage API for Array Integration) 

-PSA แปลกันตงๆเลยก็คือ โครงสร้าง storage ที่สามารถเขียน Plug-in มาเสียบใช้งานได้  โดย Plug-in เหล่านี้อาจะเป็นของ  VMware เอง หรือ ของ Third-party storage เวนเดอร์ก้ได้
-VAAI นั้นจะเป็นความสามารถในการ offload งาน storage บางอย่างจาก ESXi ไปยัง storage แทน  


เอาละมาเข้าเรื่องกันดีกว่าผมขอคุยถึง PSA ก่อนนะคับ
         จากในรูป ตัวย่อ Plugin หลักๆ3 ตัว นั่นคือ  MPP , PSP , SATP
         Plug-in เหล่านี้คืออะไร?
         พวกนี้คือ Plugin  ที่เกี่ยวข้องกับการทำ Multipath ทั้งสิ้น  ผมขออธิบายด้วยรุปละกัน
       Default Multipath Plugin ที่มากับ VMware คือ NMP (Native Multipath Plugin) มีหน้าที่หลักในการเลือกใช้ sub plugins ( VMware SATP  , VMware PSP  ) ให้ถูกต้อง



SATP (Storage Array Type Plugin) จะทำหน้าที่คอยตรวจสอบ สถานะของlink หรือ  path ระหว่าง ESXi กับ storage controller เพื่อทำการ fail over link/path ในกรณีที่เส่นทางที่ I/O วิ่งอยู่เกิด down ไป
PSP (Path Selection Policy )  ในทางกลับกัน  PSP จะเป็นคนคอยตัดสินใจว่า ควรจะ fail over ไปยัง path ไหนตามที่เรากำหนด policy ไว้

โดยที่เวนเดอร์เจ้าอื่นๆก็ สามารถเขียน plug-in เพื่อมาใช้งานแทน plug-in ของทาง VMware ได้

ในช่อง SATP Plugin ของ VMware HCL จะเห็นประเภทของSATP ต่างๆโดยพวกนี้จะขึ้นกับ Storage ที่นำมาเชื่อมต่อ , VMW_SATP_XX คือ SATP ของทาง VMware เอง โดยXX  จะแทนรูปแบบ/รุ่น ของ Storage เช่น EQL =Equal Logic , SYMM = Symmetrix

เช่นเดียวกัน  PSP Plugin ก็จะมีประเภทของ policy ที่ใช้ในการเลือกเส้นทางที่จะส่ง I/O (default policy ของ ทางVMware มีทั้งหมด สี่แบบด้วยกัน )


MRU (Most Recently Used)  จะพยายามเลือกใช้เส้นทางที่ปัจจุบันที่สุดเพียงเส้นเดียวเสมอ 
FIXED  ตรงไปตรงมาคับ   จะพยายามใช้เส้นที่เราเลือกไว้เพียงเส้นเดียวเสมอ  
Round Robin  จะสลับ I/O ไปมาระหว่างแต่ละ path ไม่ตายตัวเหมือนสองอันแรก โดยขึ้นกับสองเงื่อนไข  (จำนวน I/O ,  Bytes)
VMW_PSP_FIXED_AP    ESXi จะเป็นคนเลือกเองว่าควรจะใช้เส้นไหน

แล้วจะเลือกใช้อันไหนดีละ ?  รอดุตัวอย่างนะคับ   ต่อไปผมจะพุดถึง VAAI บ้าง
 
VAAI มีไว้ทำอะไร

VAAI จะช่วยให้ ESXi สามารถแบ่งเบาภาระงาน I/O บางอย่างออกจากตัวเองไปลงที่ storage ได้ ซึ่งไม่ใช่ทุก storage ที่จะ support ตรงนี้

โดยหลักๆแล้ว  จะมีงานสามแบบที่ VAAI offloadได้  นั้นคือ Block-Zero , Full copy , HW assist Locking ผมจะไม่ขอลงลึกนะคับ   ถ้าสนใจมากว่านี้ ไว้โพสถามมาละกัน ยกตัวอย่างเช่น
 Full copy     แทนที่จะให้ESXi เป็นคนก้อป (I/O วิ่งผ่าน VMkernel)   ESXi จะก็สั่งให้ storage copy ให้แทน  ซึ่งจะทำให้เวลาในการ copy ลดลงไป

เอาละสุดท้ายแล้ว  ผมจะให้ดุละกันคับว่า ที่กล่าวมาทั้งหมดนั้นเรานำไปประยุกต์ใช้ในการอ่าน VMware HCL ได้อย่างไร


ในที่นี้ผมจะลองเปรียบเทียบระหว่าง Storage สองรุ่นนะคับ

อันแรก  Dell/EMC CLARiiON CX4-960  ซึ่งเป็นรุ่นกลาง

 อันที่สอง XIV  ซึ่งเป้นรุ่นใหญ่ของ IBM

            จากภาพจะเห็นเลยว่า สำหรับ  ESXi 5.0 นั้น
            - XIV support VAAI ทั้งสามfeature แต่ CX4-960 นั้นไม่
            - XIV จะ support  NMP แต่ CX4-960  สามารถใช้ Powerpath (Third-party MPP)หรือ NMP ได้ ทั้งคู่ ขึ้นอยู่กับ driver ที่เราเลือกใช้
            -CX4-960 support  "FIXED policy" แต่ไม่ support "Round Robin policy" เหมือนของ XIV  
           - SATP plugin ของ ESXi 5.0  (VMW_SATP_XX) support ทั้ง CX และ XIV
           - CX4-960  จะต้องลง driver เพิ่ม , XIV จำเป็นต้องลง driver เพิ่มในกรณีที่เป็น Fw 10.2.4

พวกนี้เป็นแค่ guide ที่ VMware  ทดสอบแล้วรองรับมาเท่านั้น  ,เราจำเป็นต้องเช็คที่ document ของ storage นั้นๆด้วย เพื่อความชัวร์อีกที

ปล.  ALUA ย่อมาจาก Asymetric LUN Access

        
จากที่ผมกล่าวมาทั้งหมดนั้น   น่าจะเห็นภาพคร่าวๆแล้วนะครับ
 ถ้ามีข้อสงสัยอะไร  หรือ  มีข้อแนะนำ  ช่วยกันแชร์ด้วยนะคับ          

2 comments:

  1. Block Zero ,HW Assisted Locking แล้ว สองอันนี้หมายถึงอะไร

    ReplyDelete
  2. ขอบคุณมากครับได้ความรู้เพิ่มขึ้นมากเลย

    ReplyDelete