Wednesday, October 26, 2011

ESXi File Systems

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

     วันนี้ ผมอยากจะอธิบายเกี่ยวกับโครงสร้างของ ESXi นิดนึง  จิงๆเรื่องนี้ค่อนข้างใหญ่ทีเดียว  แต่ผมจะโฟกัสไปที่ file systems เป็นหลัก  ลองดูภาพข้างล่างนี้นะคับ

    ภาพนี้ผมนำมาจาก properties ของ storageที่ใช้ลงESXi  เราจะสังเกตุได้ว่า  Esxi นั้นจะมีทั้งหมด 8 partition ด้วยกัน (จิงๆคือ 4 primary partition เนื่องจากมี extended partition) แต่จากภาพ  เราไม่รู้เลยว่าแต่ละ partition นั้นใช้ทำหน้าที่อะไรกันบ้าง ดังนั้นผมจะลองขุดเพิ่มเติมโดยผมจะทำการ ssh เข้าไปที่ ESXi

    
จากภาพเราจะสามารถ map partition ไปยัง folder ที่ใช้งานได้โดยมีดังนี้  bootbank, altbootbank, scratch, store ..................... เออ  แล้วแต่ละ folder นั้นไว้ใช้เก็บอะไรละ?  ไว้ผมโชวให้ครบก่อนแล้วจะอธิบายให้นะคับ
เรามาขุดกันต่อดีกว่า   
           
    จากภาพจะเห็นได้ว่าทั้งสี่ partition ที่กล่าวมานั้นมาจาก disk ที่ชื่อ naa.600605b00151xxxxxxxx
 โดยถ้าเรานำไปโยงกับภาพก่อนหน้านี้เราจะได้ว่า scratch --->partition ID 2 , store -->partition ID 8, bootbank-->partition ID 5 ,altbootbank -->partition ID 6

    เอ.............. แล้ว partition ID 7 ไปอยู่ไหนละ  คำตอบคือ partition ที่ 7 นั้นคือ VMKcore (จากภาพแรกสุด) นั้นเอง เราสามารถดูได้จาก command  esxcfg-dumppart  ซึ่งจะโชว์ partition ที่ใช้สำหรับ dump memory ในกรณีที่เรื่องมีปัญหา
     
   สำหรับคนที่รู้linux อาจจะดูจาก command fdisk ได้เข้าใจง่ายกว่า ดังภาพข้างล่างนะคับ

         จะเห็นได้ว่า partition ที่ 3  type เป็น VMFS (Virtual Machine File Systems) ซึ่งก็คือ Local Datastore ของ ESXi นั้นเอง อีกจุดที่น่าสังเกตุคือ  Boot  *  หรือ  boot partition นั้นเอง
ตรงนี้ผมขอเตือนนะคับว่าเลข partition ที่เห็นจาก command นั้นไม่ได้เรียงในลำดับที่ถูกต้องนะคับ
อย่างเช่น boot partition นั้น ในที่นี้เห็นเป็น ID 4  แต่จิงๆแล้วคือ ID 1 เรารู้ได้จาก column start /end ซึ่งจะระบุุ block เริ่มต้นของ disk จาก 1 ไปถึง 286876672 

ปล.  partition ID 1 นั้น  type เป็น extended โดยเริ่มจาก block ที่ 5 ไปถึง block ที่ 900 นั่นหมายความว่า  partition ที่ 5-8 นั้นเป็น extended partition ที่มาจาก patition ที่ 1นะคับ

     จากที่เราได้ขุดมาดูทั้งหมดนั้น สามารถสรุปได้ดังนี้คับ

     

     เอาละมาเข้าเรื่องกันดีกว่า
     bootbank และ altbootbank นั้นจะใช้สำหรับเวลาอัพเกรด หรือ อัพpatch หลักการจะเหมือน dual boot firmware คับ โดย version ปัจจุบันที่ใช้ boot จะอยู่ที่ bootbank  ส่วนเวอชั่นใหม่นั้นจะลงไปที่ altbootbank   หลังจาก reboot ระบบจะทำการสลับ mount point ระหว่างทั้งสองอันนี้โดยเวอชั้นเก่าก็จะถูก mount ไปที่ altbootbank แทน(จะถูกลบไป  เมื่อเราทำการ upgrade,patch ครั้งถัดไป) ดังนั้นเมื่อเกิดอะไรขึ้น เราก็ยังจะสามารถถอยกลับไปยังเวอชั่นก่อนหน้านี้ได้ 1 level คับ
     store จะใช้เก็บไฟล์  Vmware tools สำหรับ Guest
     VMKcore ก็ใช้เป็นที่ รองรับ core dump
 
     ก่อนที่จะพุดถึง scratch   ผมขอชี้แจงนิดนึงเกี่ยวกับ ESXi ก่อน ไม่งั้นจะงงคับ
     Folder / (root) นั้นจะเป็น memory base นั่นคือ  file นั้นเก็บไว้บน memoryทาง VMware เรียก ESXi file systems ว่า visorfs (Hypervisor File Systems)  ดังนั้นถ้าเราreboot ข้อมูลใน / ก็จะหายไปด้วย โดยเฉพาะอย่างยิ่ง /var/log  ซึ่งใช้เก็บ log ทั้งหมด แต่ทำไมทุกครั้งที่เรา reboot ESXi คอนฟิคต่างๆไม่เห็นหายไปไหนเลย  นั่นก็เพราะว่าESXi จะทำการsave state ของตัวเองทุกๆชั่วโมง ไปเก็บไว้ที่ ไฟล์ /bootbank/state.tgz ซึ่งอย่างที่เรารู้กัน bootbank นั้นจะอยู่บน disk  แต่ๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ
ESXi ไม่ได้ save ทุกอย่างนะคับ โดยหลักๆจะsaveข้อมูล configure ใน folder /etc                     
ยังงี้ /var/log  log ผมก็หายหมดดิ ------------>  /scratch ก็มีไว้เพื่อการนี้และคับ
      scratch นั้น จะมีขนาด 4 GB จะเก็บไฟล์ที่ download มาบน ESXi , log และ /var/tmp  โดยถ้าตอนลง ESXi ระบบเห็นว่ามี disk อย่างต่ำ 5 GB  ระบบจะทำการสร้าง scratch ให้อัตโนมัติ
สามารถอ่านเพิ่มเติมได้ที่นี่คับ KB: 1033696

จากที่พูดมาทั้งหมดนะคับ
 1. เนื่องจากเก็บ folder / (root) เป็น ramdisk  ดังนั้นไม่ควรใช้เป็นที่เก็บไฟล์ที่ไม่จำเป็นคับ   ถ้าจะเก็บให้ไปใช้บน Datastore จะดีกว่า
2. อย่าหวังว่า ไฟล์ที่เก็บไว้บน / (root) จะทนการrebootได้นะคับ ESXi จะsave เฉพาะไฟล์ที่จะเป็นเท่านั้นคับ
 

Friday, October 14, 2011

VMware Fault Tolerance

สวัสดีคับ ช่วงนี้ผมได้เจอปัญหาเกี่ยวกับ Fault Tolerance หรือ ที่เราเรียกกัน FT ค่อนข้างเยอะ มีหลายๆคนยังคงสับสนระหว่าง FT กับ HA (High Availability) อีกทั้งยังไม่รู้ถึงปัจจัยต่างๆที่จะส่งผลกระทบต่อ performance ของ VM ที่ ใช้ FT งั้นจะขออธิบายคร่าวๆ เผื่อหลายๆคนที่ยังไม่เคลียร์ในเรื่องนี้นะครับ

FT ต่างกับ HA ตรงไหน ??
ในกรณีที่เครื่อง ESXi มีปัญหา เช่น ไฟดับ จะส่งผลให้ VM ทั้งหมดบนที่รันอยู่บน ESXi นั้นจะร่วงไปด้วย ,HA นั้นจะทำหน้าที่ power on เครื่อง VM ที่ดับไปนั้น ให้ไปรันอยู่บน ESXi เครื่องอื่นที่เหลืออยู่ใน Cluster (มี downtime )
สำหรับ VM ที่ทำ FT นั้นจะเหมือน การทำ clustering คับ โดยจะระบบจะสร้างเครื่อง secondary VM ขึ้นมา ดังนั้นถ้าเครื่อง primary ร่วงไป , เครื่อง secondary จะทำหน้าที่แทนทันที (ไม่มี downtime) โดยที่ทั้งสองเครื่องนี้ จะไม่มีทางรันอยู่บน ESXi(Host) เดียวกันเด็ดขาด


ข้อควรรู้เกี่ยวกับ FT
- การทำ FT นั้นไม่ต้องพึ่งพา software clustering ใดๆเลย
- Support single vCPu เท่านั้น สำหรับ support Multi processor นั้นขอให้รออีกนิดคับ ใกล้จะมาแล้ว
- CPU บางรุ่นเท่านั้นที่ support นะคับ อีกทั้งcpu เครื่องprimary,secondary ต้องอยู่ในกลุ่มเดียวกันถึงจะทำ FT ได้ โดยสามารถตรวจสอบได้จาก KB: 1008027
- OS ก็เช่นกัน ไม่ได้รองรับ OS ที่รุ่น โดยสามารถตรวจสอบได้จาก KB: 1008027

- สำหรับ version 4.0 ESX/ESXi ต้นทางและปลายทางต้องรัน version และ build number เดียวกัน
แต่สำหรับ version 4.1 ขอแค่ version FT เท่ากันก็เพียงพอคับ (สามารถดูได้จาก tab summary)
- ไม่สามารถทำ snapshot ขณะ ออน FT ได้ นั่นหมายถึง ไม่สามารถ backup ได้ด้วย vcb , vStorage API และไม่สามารถทำ storage vmotion ได้ด้วย
- CPU เครื่องprimary และ secondary ไม่ควรต่างกันเกิน 400MHz
- ไม่ควรรันเกิน 4 FT VM ต่อ 1 ESX/ESXi (จิงๆสามารถรันเกินได้นะคับ แต่ VMware ไม่แนะนำ)
- Nic ที่จะใช้ทำ FT logging ขั้นต่ำควรเป็น 1Gbps
-ไม่ support Thin-disk นะคับ
- VM ที่ทำ FT นั้น ,Memory reservation ของ VM (edit setting --->resource) จะถูกเซ็ตไว้ให้เป็นค่าเดียวกันจำนวน memory ที่เราเซ็ตไว้ตอนสร้าง VM นั้น พูดง่ายๆคือจองเมมไปใช้เต็มที่เลย
-เวลา enable FT นั้น ระบบจะทำการ copy memory เครื่อง primary ไปยังเครื่อง secondary โดยผ่านทาง feature vmotion ดังนั้น การ enable FT บ่อยๆนั้นอาจจะไม่เหมาะสมเท่าไหร่ ,process การ enable FT นั้นจะช้าหรือเร็ว จะขึ้นอยู่กับ speed ของ port vmotion และขนาดของ memory
-ควรจะ dedicate nic ให้กับการทำ FT logging เนื่องจาก network input (Rx) , disk read , user input ของเครื่อง primary นั้นจะถูกต่อส่งไปยังเครื่อง secondary โดยผ่านทาง nic นี้
-ในกรณีที่ เครื่อง primary VM ตายไป เครื่อง secondary จะทำหน้าที่เป็น primary แทน หลังจากนั้น ระบบจะทำการสร้างเครื่อง secondary ใหม่ขึ้นมาทันที โดย HA จะเป็นคนเลือกให้ว่าควรจะไปอยู่ที่ไหน แต่ที่แน่ๆไม่มีทางอยู่บน ESX/ESXi เดียวกับเครื่อง primary แน่ๆคับ โดยprocess นี้ระบบทำให้อัตโนมัติคับ
- ถ้าต้องการทำ load balance FT logging nic นั้น ----> KB: 1011966
-FT ไม่พึ่งพา vCenter จึงไม่ต้องห่วงกรณีที่ vCenter down ไป
-เราสามารถ vmotion ได้ทั้งเครื่อง primary และ secondary นะคับ
-เพื่อ balance network traffic ควร mix ระหว่าง primary และ secondary VM ของแต่ละระบบไว้ใน ESX/ESXi เดียวกัน เนื่องจาก network traffic ส่วนใหญ่นั้นจะวิ่งจาก primary -->secondary เป็นหลัก
-ถ้าเครื่อง secondary sync ตามเครื่อง primary ไม่ทัน จะทำให้ performance ของ VM นั้นตกลง เนื่องจาก เครื่อง Primary ต้องรอให้เครื่อง secondary ไล่ตามให้ทัน
- Vmware เรียก technology ในการ sync นี้ว่า vLockstep คิดซะว่าเหมือน เกียร์สองตัวเชื่อมด้วยสายพานเดียวกันคับ ถ้าตัวหน้าหมุนไป ตัวหลังก็ต้องหมุนตาม ถ้าตัวหลังหมุนช้าลง ก็จะทำให้ตัวหน้าช้าลงไปด้วย ยกตัวอย่างเช่น ESX/ESXi ที่ เครื่อง secondary อยุ่นั้น CPU ใช้งาน100% แต่ที่ ESX/ESXi ของเครื่อง primary นั้น CPU ใช้ไปแค่ 30%
จะส่งผลให้ เครื่อง secondary ไม่มีcpu resource เพียงพอที่จะไล่syncตามเครื่อง primary

หวังว่าที่กล่าวมาทั้งหมดนี้ คงช่วยตอบคำถามหลายๆคนได้นะคับ

Wednesday, September 28, 2011

Virtual Core in vSphere 5

ก่อนเวอชั่น vSphere 4.1 แอดมินไม่สามารถกำหนดจำนวน Core ให้กับ vCPU ของตนเองได้
ซึ่งโดยทั่วไปแล้ว (เวอร์ชั่นก่อนๆ)1 vCPU คือ 1 CPU socket สำหรับ Guest VM "ดังนั้น Windows 2003 Standard VM ก็จะใส่ได้แค่ 4 vCPU เนื่องจาก win standard support สูงสุดที่ 4 socket "

จากประโยคข้างบน หลายคนคงเริ่มบ่น เนื่องจากไม่คุ้มกับค่าlicenseอย่างมากกก เพราะถ้าเทียบกับการใช้งานบนเครื่อง physical เราสามารถใช้งาน CPUได้มากกว่า 4 โดยการซื้อ multi-core processor มาใช้งาน อาทิเช่น ใช้ 2 quad-core processor จะทำให้ Windows มองเห็นถึง 8 logical processor เลยทีเดียว
เพื่อแก้ปัญหาตรงนี้ ในเวอชั่น vSphere 4.1 จึงเพิ่ม feature ตรงนี้ขึ้นมา แต่จะต้องเข้าไปแก้ใน advance option ซึ่งบางคนอาจจะไม่ชอบใจนัก ดังนั้นใน vSphere 5 จึงมีเมนูให้กำหนด virtual core ให้ตั้งแต่แรก ดังรูป


ท้ายสุด หลายๆคนก็จะถามกลับมาว่า "ถ้างั้นระหว่าง 4 virtual socket / 1 virtual core กับ 2 virtual socket /2 virtual core ผมควรจะกำหนดอย่างไรดี เนื่องจากทั้งคู่ได้ผลลัพธ์เท่ากัน"
ผมแนะนำอย่างนี้คับ ถ้าไม่มีความจำเป็นหรือไม่ติดเรื่อง license ก็ให้ใช้ virtual core เป็น 1 ไปคับ แล้วเซ็ต virtual socket ตามความต้องการ จะเหมาะสมที่สุดคับ

Friday, September 23, 2011

VMFS5 versus VMFS3

วันนี้ผมมีโอกาสได้ลองเล่น VMFS 5 (VMware File System) ที่มากับ vSphere5
และพอดีไปเจอตารางเปรียบเทียบ ของทาง VMware มา เลยอยากจะเอามาแชร์ให้คับ


1.จะเห็นได้ว่า VMFS5 นั้นไม่มีลิมิตขนาดDatastore ไว้ที่ 2 TB อีกต่อไป เนื่องจากเปลี่ยนไปใช้ Partition Table แบบ GPT (เหมือนกับของ Windows 2008 )
2. จาก Block size 1,2,4,8 MB จะเหลือแค่ 1 MB
3. Sub-Block size จากเดิมที่เป็น 64K -----> 8K ทำให้ใช้พื้นที่disk ได้อย่างมีประสิทธิภาพมากขึ้น
4. การอัพเกรดจาก 3--->5 ไม่มี downtime คับ (อันนี้สำคัญที่สุด 55)

Thursday, September 22, 2011

New snapshot menu in vSphere 5

วันนี้ผมจะมาขอแนะนำ  เมนู snapshot ที่เพิ่มเข้ามาใน version  5 นะคับ
คนที่ลองเล่น version 5 ไปแล้วอาจจะยังไม่สังเกตุเห็นก็ได้   ไม่พุดมากละคับ ดุรุปกันเลยดีกว่า

เอออ แล้วมันมีไว้ทำอะไรละเนี่ย
เมนูนี้ทำขึ้นมาเพื่อแก้ปัญหาที่ทำให้ adminหลายๆคนปวดหัวใน vsphere4  คับ
     ใน vSphere4  ถ้ากระบวนการ merge/delete snapshot fail ขึ้นมา สิ่งที่เกิดขึ้นก้คือ ไฟล์snapshot นั้นจะยังคงค้างอยู่ใน Datastore แต่ใน snapshot manager จะไม่โชว์เลยว่ามี snapshot ค้างอยู่ ซึ่งถ้าadmin ไม่เข้าไปดุที่ Datastore หรือ ดูผ่าน Storage View จะไม่มีทางรุ้เลย  ซึงการจะลบ snapshot ที่ค้างเหล่านี้ออกไปนั้น จะต้องทำโดยใช้ command line เท่านั้น ไม่สามารถทำผ่าน snapshot manager ได้
     ดังนั้นในvSphere เวอชั่น 5 นี้ จึงได้เพิ่มเมนู consolidate ขึ้นมาเพื่อแก้ปัญหาตรงจุดนี้ คับ  เราสามารถที่จะสั่ง merge snapshot ได้จากเมนูนี้เลย โดยไม่ต้องไปพึ่ง command line  แบบ version 4 อีก 

ชีวิตสบายขึ้นอีกเยอะ ^_^

Wednesday, September 21, 2011

Virtual disk defragmentation

ควร defrag disk บน guest OS ไหม??  , แล้วบน Datastore (VMFS) ละควรจะทำด้วยไหม

     เป็นคำถามที่ หลายคนสงสัยมาก เนื่องจากเรามักจะdefrag disk กันในเครื่องPhysicalที่รัน Windows เพื่อต้องการประสิทธิภาพในการอ่านและเขียนdiskที่ดีขึ้น แล้วพอย้ายมาเป็น VM  เรายังจำเป็นต้องทำกระบวนการตรงนี้อยู่อีกไหม?


ผมจะขอแยกเป็นสองส่วน นั่นคือการทำ defragment บน Guest OS (Windows - NTFS)  กับการทำ defragment  บน Datastore (VMFS)


defragment บน Guest OS (Windows - NTFS)

ถ้าใช้ disk เป็นแบบ Thick  สามารถทำได้คับ  แต่ไม่จำเป็นมากนัก  เนื่องจาก VM disk นั้นจะอยู่บน share storage   การที่defrag guestไปเพียงเครื่องเดียวไม่ได้ทำให้ performance ของ guest เครื่องนั้นดีขึ้นเท่าไหร่ เพราะยังต้องแชร์กะคนอื่น  ซึ่งจะต่างจากกรณีเครื่องPhysical (local disk)

VM ที่ใช้ disk เป็น thin, มี snapshot,เป็น link clone,กำลัง backupอยู่ หรือกำลังทำ Storage VMotion     พวกนี้ไม่ควรทำ defrag คับจะมีแต่ผลเสีย  เนื่องจากจะไปทำให้ขนาดของ thin diskและsnapshot โตขึ้น,ส่งผลต่อ performance อย่างมาก

     เนื่องจาก disk defragment นั้นเป็นtaskที่สร้าง I/O สูงมาก ก่อนทำควรคิดให้ดีๆ เนื่องจากอาจจะไปส่งผลกระทบต่อ VM อื่นๆใน Datastore (share storage)นั้นได้

defragment  บน Datastore (VMFS)
ณ ขณะนี้ยังไม่มี tools มารองรับการทำงานนี้คับ  จบ!!
คือจิงๆแล้ว แทบไม่จำเป็นต้องทำเลยคับ   เหตุผลคือ virtual disk (vmdk) แต่ละไฟล์นั้นมีขนาดใหญ่ด้วยกันทั้งนั้น อีกทั้งจำนวนไฟล์ก็ไม่ได้ยิบย่อยเหมือนของWindows  โอกาสที่จะเกิดfragment ก็มีน้อยคับ

Concept บางอย่างสำหรับเครื่อง Physical ไม่สามารถนำมา apply ใช้ได้กับ โลก Virtual ได้เสมอไปนะคับ



Tuesday, September 20, 2011

Virtual machine nic teaming

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

ถาม: "เครื่อง physical ผมมี network 1Gb 4 port ทำ teaming กันอยู่ ได้ speed 4Gb , แล้วเครื่องที่เป็น VM ละคับ ผม assign 4 vNic ให้ เหมือนกัน ผมต้องทำ network teaming บน OS เหมือนกันไหม"
ตอบ :ไม่ต้องทำคับ ไปทำ teaming ที่ vswitch ทีเดียวพอคับ

ถาม:อ้าวววทำไมละคับ ก็ที่ทำไปเพื่อจะได้มี Redundancy ไง
ตอบ:virtual nic เป้นแค่ nic จำลอง เป็นแค่ driver , code เท่านั้นเอง ไม่ใช่ของจิง ที่เห็นในVMว่าspeedเป็น 1 Gb นั้น เป็นแค่เลขลวงตาจากการจำลอง network card เนื่องจากพวกนี้วิ่งกันในระดับ kernel(backpane) ,ไม่มีการ limit speed คับ
อ่านเพิ่มเติมได้ที่นี่คับ
kb.vmware.com/kb/856
อีกอย่าง ต่อให้ team vNic กันไป แต่ที่uplinkของ vswitchไม่ได้ทำ teamingไว้ VM ของคุณ network ก็หลุดอยุ่ดี ไม่ว่าจะทำ team ที่ vNic ก้ตาม

ถาม: อืมๆ งั้นถ้าจะทำ teaming เพื่อเพิ่ม speed ไง จะได้ตั้ง 4 Gb เชียวนะ
ตอบ: คำตอบก้เหมือนเดิมคับ virtual nic เป้น nic จำลองขึ้นมา โดยต่อเข้ากับ vswitch ซึ่งวิ่งอยู่ในkernel ไม่มีการlimit speed คับ ดังนั้น team เป็น 4 Gb หรือไม่backpaneก็วิ่ง speed เท่ากันอยู่ดีคับ
อีกอย่าง ถ้า uplink ของ vswitch มีแค่ 1 port จะ team vNic กันกี่ port ปลายทางก็ออกได้แค่ 1 Gb อยู่ดีละคับ

ถาม:งั้นๆถ้าเพิ่ม uplink ที่ vswitch เข้าเป็น 4port ละ
ตอบ:vSwitch ไม่รองรับ LACP (link aggregate) สำหรับ uplink port นะคับ 4 uplink ไม่สามารถเอา 1+1+1+1 ได้คับ

หวังว่า คงจะช่วยไขข้อข้องใจให้ หลายๆคนได้ไม่มากก้น้อยนะคับ


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 ได้อย่างไร


Hello Everyone!!!
ในที่สุดก็มี blog เป็นของตัวเองซักที -__-"

 Blog นี้อุทิศให้กับงานของผม  ซึ่งเกี่ยวข้องกับ Virtualization  Technology เป็นหลัก
แหะๆ  เน้นไปทาง VMware นะคับ
ผมจะพยายามมาแชร์ ประสบการณ์การทำงาน  ปัญหาที่เจอต่างๆ รวมไปถึงการขอคำปรึกษาแนะนำกูรูทั้งหลาย บน blog นี้  เพื่อเป็นแนวทางช่วยเหลือ IT คนอื่นๆ 

มีข้อสงสัยอะไร มีไรมาแนะนำ มาแชร์กันได้คับ  ^_^