ในบทความนี้ ฉันอยากจะพูดถึงคุณสมบัติของอาร์เรย์ Flash AccelStor ทั้งหมดที่ทำงานร่วมกับหนึ่งในแพลตฟอร์มการจำลองเสมือนที่ได้รับความนิยมมากที่สุด - VMware vSphere โดยเฉพาะอย่างยิ่ง ให้มุ่งเน้นไปที่พารามิเตอร์เหล่านั้นที่จะช่วยให้คุณได้รับผลสูงสุดจากการใช้เครื่องมืออันทรงพลังเช่น All Flash
AccelStor NeoSapphire™ อาร์เรย์แฟลชทั้งหมดเป็น
กระบวนการปรับใช้ทั้งหมดและการกำหนดค่าที่ตามมาของการดำเนินการร่วมกันของอาร์เรย์ AccelStor และระบบการจำลองเสมือน VMware vSphere สามารถแบ่งออกเป็นหลายขั้นตอน:
- การใช้โทโพโลยีการเชื่อมต่อและการกำหนดค่าเครือข่าย SAN
- การตั้งค่าอาร์เรย์แฟลชทั้งหมด
- การกำหนดค่าโฮสต์ ESXi
- การตั้งค่าเครื่องเสมือน
อาร์เรย์ Fibre Channel ของ AccelStor NeoSapphire™ และอาร์เรย์ iSCSI ถูกใช้เป็นฮาร์ดแวร์ตัวอย่าง ซอฟต์แวร์พื้นฐานคือ VMware vSphere 6.7U1
ก่อนที่จะปรับใช้ระบบที่อธิบายไว้ในบทความนี้ ขอแนะนำอย่างยิ่งให้คุณอ่านเอกสารจาก VMware เกี่ยวกับปัญหาด้านประสิทธิภาพ (
โทโพโลยีการเชื่อมต่อและการกำหนดค่าเครือข่าย SAN
ส่วนประกอบหลักของเครือข่าย SAN คือ HBA ในโฮสต์ ESXi, สวิตช์ SAN และโหนดอาเรย์ โทโพโลยีทั่วไปสำหรับเครือข่ายดังกล่าวจะมีลักษณะดังนี้:
คำว่าสวิตช์ในที่นี้หมายถึงทั้งสวิตช์ทางกายภาพหรือชุดสวิตช์ (Fabric) ที่แยกจากกัน และอุปกรณ์ที่ใช้ร่วมกันระหว่างบริการต่างๆ (VSAN ในกรณีของ Fibre Channel และ VLAN ในกรณีของ iSCSI) การใช้สวิตช์/แฟบริคแยกกันสองตัวจะช่วยลดจุดที่เกิดข้อผิดพลาดที่อาจเกิดขึ้นได้
การเชื่อมต่อโดยตรงของโฮสต์กับอาเรย์ แม้จะรองรับ แต่ก็ไม่แนะนำให้ทำอย่างยิ่ง ประสิทธิภาพของอาร์เรย์ Flash ทั้งหมดค่อนข้างสูง และเพื่อความเร็วสูงสุด ต้องใช้พอร์ตทั้งหมดของอาเรย์ ดังนั้น จำเป็นต้องมีสวิตช์อย่างน้อยหนึ่งตัวระหว่างโฮสต์และ NeoSapphire™
การมีสองพอร์ตบนโฮสต์ HBA ยังเป็นข้อกำหนดบังคับเพื่อให้ได้รับประสิทธิภาพสูงสุดและรับประกันความทนทานต่อข้อผิดพลาด
เมื่อใช้อินเทอร์เฟซ Fibre Channel จะต้องกำหนดค่าการแบ่งเขตเพื่อกำจัดการชนกันที่อาจเกิดขึ้นระหว่างตัวเริ่มต้นและเป้าหมาย โซนถูกสร้างขึ้นบนหลักการของ “พอร์ตตัวเริ่มต้นหนึ่งพอร์ต – พอร์ตอาเรย์ตั้งแต่หนึ่งพอร์ตขึ้นไป”
หากคุณใช้การเชื่อมต่อผ่าน iSCSI ในกรณีที่ใช้สวิตช์ที่แชร์กับบริการอื่น ๆ จำเป็นต้องแยกการรับส่งข้อมูล iSCSI ภายใน VLAN ที่แยกต่างหาก ขอแนะนำเป็นอย่างยิ่งให้เปิดใช้งานการรองรับ Jumbo Frames (MTU = 9000) เพื่อเพิ่มขนาดของแพ็กเก็ตบนเครือข่าย และลดปริมาณข้อมูลโอเวอร์เฮดระหว่างการส่งข้อมูล อย่างไรก็ตาม ควรจำไว้ว่าสำหรับการทำงานที่ถูกต้อง จำเป็นต้องเปลี่ยนพารามิเตอร์ MTU บนส่วนประกอบเครือข่ายทั้งหมดตามสายโซ่ "ตัวเริ่มต้น-สวิตช์-เป้าหมาย"
การตั้งค่าอาร์เรย์แฟลชทั้งหมด
อาร์เรย์จะถูกส่งไปยังลูกค้าที่มีกลุ่มที่สร้างไว้แล้ว
เพื่อความสะดวก มีฟังก์ชันสำหรับการสร้างวอลุ่มหลายวอลุ่มในขนาดที่กำหนดในคราวเดียว ตามค่าเริ่มต้น Thin Volume จะถูกสร้างขึ้นเนื่องจากช่วยให้ใช้พื้นที่จัดเก็บข้อมูลที่มีอยู่ได้อย่างมีประสิทธิภาพมากขึ้น (รวมถึงการรองรับ Space Reclamation) ในแง่ของประสิทธิภาพ ความแตกต่างระหว่างปริมาตร "บาง" และ "หนา" จะต้องไม่เกิน 1% อย่างไรก็ตาม หากคุณต้องการ "บีบน้ำทั้งหมด" ออกจากอาร์เรย์ คุณสามารถแปลงปริมาตร "บาง" ให้เป็นปริมาตร "หนา" ได้เสมอ แต่ควรจำไว้ว่าการดำเนินการดังกล่าวไม่สามารถย้อนกลับได้
ถัดไป ยังคง "เผยแพร่" โวลุ่มที่สร้างขึ้นและตั้งค่าสิทธิ์การเข้าถึงจากโฮสต์โดยใช้ ACL (ที่อยู่ IP สำหรับ iSCSI และ WWPN สำหรับ FC) และการแยกทางกายภาพด้วยพอร์ตอาเรย์ สำหรับโมเดล iSCSI ทำได้โดยการสร้างเป้าหมาย
สำหรับโมเดล FC การเผยแพร่เกิดขึ้นผ่านการสร้าง LUN สำหรับแต่ละพอร์ตของอาเรย์
เพื่อเร่งกระบวนการตั้งค่า คุณสามารถรวมโฮสต์ออกเป็นกลุ่มได้ ยิ่งไปกว่านั้น หากโฮสต์ใช้ FC HBA แบบหลายพอร์ต (ซึ่งในทางปฏิบัติมักเกิดขึ้นบ่อยที่สุด) ระบบจะกำหนดโดยอัตโนมัติว่าพอร์ตของ HBA ดังกล่าวเป็นของโฮสต์เดียว เนื่องจาก WWPN ที่แตกต่างกันไป การสร้างชุดเป้าหมาย/LUN ยังรองรับทั้งสองอินเทอร์เฟซด้วย
หมายเหตุสำคัญเมื่อใช้อินเทอร์เฟซ iSCSI คือการสร้างหลายเป้าหมายสำหรับวอลุ่มพร้อมกันเพื่อเพิ่มประสิทธิภาพ เนื่องจากคิวบนเป้าหมายไม่สามารถเปลี่ยนแปลงได้ และจะเป็นคอขวดอย่างมีประสิทธิภาพ
การกำหนดค่าโฮสต์ ESXi
บนฝั่งโฮสต์ ESXi การกำหนดค่าพื้นฐานจะดำเนินการตามสถานการณ์ที่คาดหวังโดยสมบูรณ์ ขั้นตอนการเชื่อมต่อ iSCSI:
- เพิ่มซอฟต์แวร์ iSCSI Adapter (ไม่จำเป็น หากได้เพิ่มไปแล้ว หรือหากคุณใช้ Hardware iSCSI Adapter)
- การสร้าง vSwitch ซึ่งการรับส่งข้อมูล iSCSI จะส่งผ่าน และเพิ่มอัปลิงค์แบบฟิสิคัลและ VMkernal เข้าไป
- การเพิ่มที่อยู่อาร์เรย์ให้กับ Dynamic Discovery
- การสร้างพื้นที่เก็บข้อมูล
หมายเหตุสำคัญบางประการ:
- ในกรณีทั่วไป แน่นอน คุณสามารถใช้ vSwitch ที่มีอยู่ได้ แต่ในกรณีของ vSwitch แยก การจัดการการตั้งค่าโฮสต์จะง่ายกว่ามาก
- จำเป็นต้องแยกการจัดการและการรับส่งข้อมูล iSCSI ไปยังลิงก์ทางกายภาพและ/หรือ VLAN ที่แยกจากกัน เพื่อหลีกเลี่ยงปัญหาด้านประสิทธิภาพ
- ที่อยู่ IP ของ VMkernal และพอร์ตที่เกี่ยวข้องของอาร์เรย์ Flash ทั้งหมดจะต้องอยู่ภายในเครือข่ายย่อยเดียวกัน อีกครั้งเนื่องจากปัญหาด้านประสิทธิภาพ
- เพื่อให้มั่นใจถึงความทนทานต่อข้อผิดพลาดตามกฎของ VMware vSwitch ต้องมีอัปลิงก์ทางกายภาพอย่างน้อยสองตัว
- หากใช้ Jumbo Frames คุณจะต้องเปลี่ยน MTU ของทั้ง vSwitch และ VMkernal
- จะมีประโยชน์ในการเตือนคุณว่าตามคำแนะนำของ VMware สำหรับอะแดปเตอร์กายภาพที่จะใช้ทำงานกับการรับส่งข้อมูล iSCSI จำเป็นต้องกำหนดค่า Teaming และ Failover โดยเฉพาะอย่างยิ่ง VMkernal แต่ละรายการจะต้องทำงานผ่านอัปลิงก์เดียวเท่านั้น และอัปลิงก์ที่สองจะต้องสลับเป็นโหมดที่ไม่ได้ใช้ สำหรับการทนต่อข้อผิดพลาด คุณต้องเพิ่ม VMkernal สองรายการ ซึ่งแต่ละรายการจะทำงานผ่านอัปลิงก์ของตัวเอง
อะแดปเตอร์ VMkernel (vmk#)
อะแดปเตอร์เครือข่ายทางกายภาพ (vmnic#)
vmk1 (ที่เก็บข้อมูล01)
อะแดปเตอร์ที่ใช้งานอยู่
vmnic2
อะแดปเตอร์ที่ไม่ได้ใช้
vmnic3
vmk2 (ที่เก็บข้อมูล02)
อะแดปเตอร์ที่ใช้งานอยู่
vmnic3
อะแดปเตอร์ที่ไม่ได้ใช้
vmnic2
ไม่จำเป็นต้องมีขั้นตอนเบื้องต้นในการเชื่อมต่อผ่าน Fibre Channel คุณสามารถสร้าง Datastore ได้ทันที
หลังจากสร้าง Datastore แล้ว คุณต้องตรวจสอบให้แน่ใจว่านโยบาย Round Robin สำหรับเส้นทางไปยัง Target/LUN ถูกใช้อย่างมีประสิทธิภาพสูงสุด
ตามค่าเริ่มต้น การตั้งค่า VMware กำหนดให้มีการใช้นโยบายนี้ตามรูปแบบ: คำขอ 1000 รายการผ่านเส้นทางแรก คำขอ 1000 รายการถัดไปผ่านเส้นทางที่สอง ฯลฯ ปฏิสัมพันธ์ระหว่างโฮสต์และอาเรย์ตัวควบคุมสองตัวดังกล่าวจะไม่สมดุล ดังนั้น เราขอแนะนำให้ตั้งค่าพารามิเตอร์ Round Robin Policy = 1 ผ่าน Esxcli/PowerCLI
พารามิเตอร์
สำหรับ Esxcli:
- แสดงรายการ LUN ที่มีอยู่
รายการอุปกรณ์ nmp ของหน่วยเก็บข้อมูล esxcli
- คัดลอกชื่ออุปกรณ์
- เปลี่ยนนโยบาย Round Robin
ที่เก็บข้อมูล esxcli ตั้งค่าอุปกรณ์ nmp psp Roundrobin —type=iops —iops=1 —device= “Device_ID”
แอปพลิเคชันสมัยใหม่ส่วนใหญ่ได้รับการออกแบบมาเพื่อแลกเปลี่ยนแพ็กเก็ตข้อมูลขนาดใหญ่เพื่อเพิ่มการใช้แบนด์วิดท์ให้สูงสุดและลดภาระของ CPU ดังนั้นตามค่าเริ่มต้น ESXi จะออกคำขอ I/O ไปยังอุปกรณ์จัดเก็บข้อมูลเป็นชิ้นขนาดสูงสุด 32767KB อย่างไรก็ตาม สำหรับบางสถานการณ์ การแลกเปลี่ยนชิ้นส่วนเล็กๆ จะให้ประสิทธิผลมากกว่า สำหรับอาร์เรย์ AccelStor สถานการณ์ต่อไปนี้คือ:
- เครื่องเสมือนใช้ UEFI แทน Legacy BIOS
- ใช้การจำลองแบบ vSphere
สำหรับสถานการณ์ดังกล่าว ขอแนะนำให้เปลี่ยนค่าของพารามิเตอร์ Disk.DiskMaxIOSize เป็น 4096
สำหรับการเชื่อมต่อ iSCSI ขอแนะนำให้เปลี่ยนพารามิเตอร์ Login Timeout เป็น 30 (ค่าเริ่มต้น 5) เพื่อปรับปรุงความเสถียรของการเชื่อมต่อ และปิดใช้งานการหน่วงเวลา DelayedAck สำหรับการยืนยันแพ็กเก็ตที่ส่งต่อ ตัวเลือกทั้งสองอยู่ในไคลเอนต์ vSphere: โฮสต์ → กำหนดค่า → ที่เก็บข้อมูล → อะแดปเตอร์ที่เก็บข้อมูล → ตัวเลือกขั้นสูงสำหรับอะแดปเตอร์ iSCSI
จุดที่ค่อนข้างละเอียดอ่อนคือจำนวนวอลุ่มที่ใช้สำหรับพื้นที่เก็บข้อมูล เป็นที่ชัดเจนว่าเพื่อความสะดวกในการจัดการ มีความปรารถนาที่จะสร้างวอลุ่มขนาดใหญ่หนึ่งวอลุ่มสำหรับโวลุ่มทั้งหมดของอาเรย์ อย่างไรก็ตาม การมีอยู่หลายวอลุ่ม และด้วยเหตุนี้ที่เก็บข้อมูลจึงส่งผลดีต่อประสิทธิภาพโดยรวม (เพิ่มเติมเกี่ยวกับคิวด้านล่าง) ดังนั้น เราขอแนะนำให้สร้างอย่างน้อยสองวอลุ่ม
จนกระทั่งเมื่อไม่นานมานี้ VMware แนะนำให้จำกัดจำนวนเครื่องเสมือนบนพื้นที่เก็บข้อมูลเดียวอีกครั้งเพื่อให้ได้ประสิทธิภาพสูงสุดที่เป็นไปได้ อย่างไรก็ตาม ขณะนี้ โดยเฉพาะอย่างยิ่งกับการแพร่กระจายของ VDI ปัญหานี้ไม่รุนแรงอีกต่อไป แต่สิ่งนี้ไม่ได้ยกเลิกกฎที่มีมายาวนาน นั่นคือการแจกจ่ายเครื่องเสมือนที่ต้องใช้ IO อย่างเข้มข้นไปยังพื้นที่เก็บข้อมูลต่างๆ ไม่มีอะไรดีไปกว่าการกำหนดจำนวนเครื่องเสมือนต่อวอลุ่มที่เหมาะสมที่สุด
การตั้งค่าเครื่องเสมือน
ไม่มีข้อกำหนดพิเศษเมื่อตั้งค่าเครื่องเสมือน หรือค่อนข้างจะธรรมดา:
- การใช้เวอร์ชัน VM สูงสุดที่เป็นไปได้ (ความเข้ากันได้)
- ควรใช้ความระมัดระวังมากขึ้นในการตั้งค่าขนาด RAM เมื่อวางเครื่องเสมือนหนาแน่น เช่น ใน VDI (เนื่องจากโดยค่าเริ่มต้น เมื่อเริ่มต้น ไฟล์เพจที่มีขนาดสมส่วนกับ RAM จะถูกสร้างขึ้น ซึ่งใช้ความจุที่มีประโยชน์และมีผลกระทบต่อ การแสดงครั้งสุดท้าย)
- ใช้เวอร์ชันอะแด็ปเตอร์ที่มีประสิทธิภาพสูงสุดในแง่ของ IO: ประเภทเครือข่าย VMXNET 3 และประเภท SCSI PVSCSI
- ใช้ดิสก์ประเภท Thick Provision Eager Zeroed เพื่อประสิทธิภาพสูงสุด และใช้ Thin Provisioning เพื่อการใช้พื้นที่จัดเก็บข้อมูลสูงสุด
- หากเป็นไปได้ ให้จำกัดการทำงานของเครื่องที่ไม่ใช่ I/O ที่สำคัญโดยใช้ Virtual Disk Limit
- อย่าลืมติดตั้ง VMware Tools
หมายเหตุเกี่ยวกับคิว
คิว (หรือ I/O ที่คงค้าง) คือจำนวนคำขออินพุต/เอาต์พุต (คำสั่ง SCSI) ที่กำลังรอการประมวลผลในเวลาใดก็ตามสำหรับอุปกรณ์/แอปพลิเคชันเฉพาะ ในกรณีที่คิวล้น ข้อผิดพลาด QFULL จะเกิดขึ้น ซึ่งท้ายที่สุดส่งผลให้พารามิเตอร์เวลาแฝงเพิ่มขึ้น เมื่อใช้ระบบหน่วยเก็บข้อมูลดิสก์ (สปินเดิล) ตามทฤษฎี ยิ่งคิวสูงเท่าใด ประสิทธิภาพก็จะยิ่งสูงขึ้นเท่านั้น อย่างไรก็ตาม คุณไม่ควรละเมิดมัน เนื่องจากมันง่ายที่จะเจอกับ QFULL ในกรณีของระบบ All Flash ในแง่หนึ่ง ทุกอย่างค่อนข้างง่ายกว่า ท้ายที่สุดแล้ว อาเรย์มีเวลาแฝงที่มีลำดับความสำคัญต่ำกว่า ดังนั้น โดยส่วนใหญ่แล้ว ไม่จำเป็นต้องควบคุมขนาดของคิวแยกต่างหาก แต่ในทางกลับกัน ในบางสถานการณ์การใช้งาน (ความเบี่ยงเบนอย่างมากในข้อกำหนด IO สำหรับเครื่องเสมือนเฉพาะ การทดสอบประสิทธิภาพสูงสุด ฯลฯ) จำเป็นหากไม่เปลี่ยนพารามิเตอร์ของคิว อย่างน้อยที่สุดก็ต้องเข้าใจว่าตัวบ่งชี้ใด สามารถทำได้และสิ่งสำคัญคือด้วยวิธีใด
ในอาร์เรย์ AccelStor All Flash นั้นไม่มีข้อจำกัดเกี่ยวกับวอลุ่มหรือพอร์ต I/O หากจำเป็น แม้แต่วอลุ่มเดียวก็สามารถรับทรัพยากรทั้งหมดของอาเรย์ได้ ข้อจำกัดเดียวบนคิวคือสำหรับเป้าหมาย iSCSI ด้วยเหตุนี้เราจึงจำเป็นต้องสร้างเป้าหมายหลายรายการ (สูงสุด 8 ชิ้น) สำหรับแต่ละเล่มจึงระบุไว้ข้างต้นเพื่อเอาชนะขีดจำกัดนี้ ขอย้ำอีกครั้งว่าอาร์เรย์ AccelStor เป็นโซลูชันที่มีประสิทธิผลมาก ดังนั้นคุณควรใช้พอร์ตอินเทอร์เฟซทั้งหมดของระบบเพื่อให้ได้ความเร็วสูงสุด
ฝั่งโฮสต์ ESXi สถานการณ์แตกต่างไปจากเดิมอย่างสิ้นเชิง โฮสต์เองก็ใช้แนวทางปฏิบัติในการเข้าถึงทรัพยากรอย่างเท่าเทียมกันสำหรับผู้เข้าร่วมทุกคน ดังนั้นจึงมีคิว IO แยกต่างหากสำหรับ guest OS และ HBA คิวไปยัง guest OS จะรวมกันจากคิวไปยังอะแดปเตอร์ SCSI เสมือนและดิสก์เสมือน:
คิวไปยัง HBA ขึ้นอยู่กับประเภท/ผู้จำหน่ายเฉพาะ:
ประสิทธิภาพขั้นสุดท้ายของเครื่องเสมือนจะถูกกำหนดโดยขีดจำกัดความลึกของคิวที่ต่ำที่สุดในบรรดาส่วนประกอบของโฮสต์
ด้วยค่าเหล่านี้ เราจึงสามารถประเมินตัวบ่งชี้ประสิทธิภาพที่เราจะได้รับจากการกำหนดค่าเฉพาะได้ ตัวอย่างเช่น เราต้องการทราบประสิทธิภาพทางทฤษฎีของเครื่องเสมือน (โดยไม่มีการเชื่อมโยงบล็อก) โดยมีเวลาแฝง 0.5ms จากนั้น IOPS = (1,000/เวลาแฝง) * I/O ที่โดดเด่น (ขีดจำกัดความลึกของคิว)
ตัวอย่าง
1 ตัวอย่าง
- อะแดปเตอร์ FC Emulex HBA
- หนึ่ง VM ต่อพื้นที่เก็บข้อมูล
- อะแดปเตอร์ VMware Paravirtual SCSI
ที่นี่ขีดจำกัดความลึกของคิวถูกกำหนดโดย Emulex HBA ดังนั้น IOPS = (1000/0.5)*32 = 64K
2 ตัวอย่าง
- อะแดปเตอร์ซอฟต์แวร์ VMware iSCSI
- หนึ่ง VM ต่อพื้นที่เก็บข้อมูล
- อะแดปเตอร์ VMware Paravirtual SCSI
ในที่นี้ขีดจำกัดความลึกของคิวถูกกำหนดโดยอะแดปเตอร์ Paravirtual SCSI แล้ว ดังนั้น IOPS = (1000/0.5)*64 = 128K
รุ่นยอดนิยมของอาร์เรย์ Flash AccelStor ทั้งหมด (เช่น
ด้วยเหตุนี้ ด้วยการกำหนดค่าที่ถูกต้องของส่วนประกอบที่อธิบายไว้ทั้งหมดของศูนย์ข้อมูลเสมือน คุณจะได้รับผลลัพธ์ที่น่าประทับใจมากในแง่ของประสิทธิภาพ
สุ่ม 4K, อ่าน 70%/เขียน 30%
ในความเป็นจริง โลกแห่งความเป็นจริงนั้นซับซ้อนเกินกว่าจะอธิบายได้ด้วยสูตรง่ายๆ โฮสต์เดียวจะโฮสต์เครื่องเสมือนหลายเครื่องเสมอโดยมีการกำหนดค่าและข้อกำหนด IO ที่แตกต่างกัน และการประมวลผล I/O ได้รับการจัดการโดยโปรเซสเซอร์โฮสต์ ซึ่งมีพลังไม่สิ้นสุด ดังนั้นเพื่อปลดล็อคศักยภาพให้เต็มที่เหมือนเดิม
ที่มา: will.com