กล่าวโดยย่อ:หากใช้การ์ด RAID ระดับต่ำ (ไม่มีแคช) ให้ทำตามใจชอบแล้วเปลี่ยนเป็นซอฟต์แวร์ RAID หากใช้การ์ดระดับกลางถึงสูง (กับ BBU หรือ NVRAM) แสดงว่าฮาร์ดแวร์เป็นตัวเลือกที่ดี (แต่ไม่เสมอไป!
คำตอบยาว:เมื่อพลังในการคำนวณมี จำกัด การ์ด RAID ของฮาร์ดแวร์มีข้อได้เปรียบที่สำคัญสำหรับการคำนวณ parity / ดาวน์ซินโดรมสำหรับแผนการ RAID ที่เกี่ยวข้องกับมัน (RAID 3/4/5, RAID6, ecc)
แต่ด้วยประสิทธิภาพของ CPU ที่เคยเพิ่มขึ้นได้เปรียบนี้โดยทั่วไปหายไป: แม้ซีพียูโบราณแล็ปท็อปของฉัน (คอร์ i5 M 520, Westmere รุ่น) มีประสิทธิภาพที่แฮคเกอร์กว่า 4 GB / s และประสิทธิภาพการทำงาน RAID-6 กลุ่มอาการของโรคมากกว่า 3 Gb / s กว่า หลักดำเนินการเดียวกัน
ข้อได้เปรียบที่ RAID ของฮาร์ดแวร์รักษาไว้ในปัจจุบันคือการมีแคช DRAM ที่ป้องกันการสูญเสียพลังงานในรูปแบบของ BBU หรือ NVRAM แคชที่ได้รับการป้องกันนี้มีเวลาแฝงที่ต่ำมากสำหรับการเข้าถึงการเขียนแบบสุ่ม (และอ่านว่าการเข้าชม) และโดยทั่วไปจะแปลงการเขียนแบบสุ่มเป็นการเขียนตามลำดับ RAID ควบคุมโดยไม่ต้องเช่นแคชอยู่ใกล้ที่ไร้ประโยชน์ ยิ่งไปกว่านั้นคอนโทรลเลอร์ RAID ระดับต่ำสุดบางตัวไม่เพียง แต่ไม่มีแคชเท่านั้น แต่ยังบังคับให้ปิดการใช้งานแคช DRAM ส่วนตัวของดิสก์ซึ่งจะทำให้ประสิทธิภาพการทำงานช้าลงกว่าที่ไม่มีการ์ด RAID เลย ตัวอย่างคือการ์ด PERC H200 และ H300 ของ DELL: หากเฟิร์มแวร์รุ่นใหม่ไม่ได้เปลี่ยนพวกเขาจะปิดการใช้งานแคชส่วนตัวของดิสก์ทั้งหมด (และไม่สามารถเปิดใช้งานได้อีกครั้งในขณะที่ดิสก์เชื่อมต่อกับคอนโทรลเลอร์ RAID) ทำตัวเองและทำไม่เคยไม่เคยซื้อตัวควบคุมดังกล่าว ในขณะที่ตัวควบคุมระดับสูงกว่ามักปิดการใช้งานแคชส่วนตัวของดิสก์อย่างน้อยพวกเขาก็มีแคชที่ได้รับการปกป้องของตัวเอง - ทำให้ HDD ส่วนตัว (แต่ไม่ใช่ SSD!!) ค่อนข้างซ้ำซ้อน
นี่ไม่ใช่จุดจบ แม้แต่คอนโทรลเลอร์ที่มีความสามารถ (ตัวที่มี BBU หรือแคช NVRAM) สามารถให้ผลลัพธ์ที่ไม่สอดคล้องกันเมื่อใช้กับ SSD โดยทั่วไปแล้วเพราะ SSD ต้องการแคชส่วนตัวที่รวดเร็วสำหรับการเขียนโปรแกรม / ลบหน้า FLASH ที่มีประสิทธิภาพ และในขณะที่ตัวควบคุม (ส่วนใหญ่) ให้คุณเปิดใช้งานแคชส่วนตัวของดิสก์อีกครั้ง (เช่น: PERC H700 / 710 / 710P ให้ผู้ใช้เปิดใช้งานอีกครั้ง) หากแคชส่วนตัวนั้นไม่ได้รับการป้องกันการเขียนคุณเสี่ยงต่อการสูญเสียข้อมูลในกรณี ของการสูญเสียพลังงาน พฤติกรรมที่แท้จริงนั้นขึ้นอยู่กับตัวควบคุมและเฟิร์มแวร์ (เช่น: บน DELL S6 / i ที่มีแคช 256 MB WB และแคชของดิสก์ที่เปิดใช้งานฉันไม่มีการสูญเสียในระหว่างการทดสอบการสูญเสียพลังงานที่วางแผนไว้หลายครั้ง)
ในทางกลับกันซอฟต์แวร์โอเพ่นซอร์ส RAID นั้นเป็นสัตว์ที่สามารถควบคุมได้มากขึ้น - ซอฟต์แวร์ของพวกเขาไม่ได้อยู่ในเฟิร์มแวร์ที่เป็นกรรมสิทธิ์และมีรูปแบบและพฤติกรรมเมทาดาทาที่ชัดเจน ซอฟต์แวร์ RAID สร้างสมมติฐาน (ขวา) ว่าแคช DRAM ส่วนตัวของดิสก์ไม่ได้รับการป้องกัน แต่ในเวลาเดียวกันมันมีความสำคัญต่อประสิทธิภาพที่ยอมรับได้ดังนั้นโดยทั่วไปแล้วพวกเขาจะไม่ปิดใช้งาน แต่พวกเขาใช้คำสั่ง ATA FLUSH / FUA เพื่อให้มั่นใจว่าสำคัญ ข้อมูลบนการจัดเก็บที่มีเสถียรภาพ เนื่องจากพวกเขามักเรียกใช้จากพอร์ต SATA ที่ต่อกับชิปเซ็ต SB แบนด์วิดท์ของพวกเขานั้นดีมากและการสนับสนุนไดรเวอร์นั้นยอดเยี่ยม
อย่างไรก็ตามหากใช้กับ HDD เชิงกลรูปแบบการเข้าถึงการเขียนแบบสุ่ม (เช่นฐานข้อมูลเครื่องเสมือน) จะได้รับผลกระทบอย่างมากเมื่อเทียบกับคอนโทรลเลอร์ RAID ฮาร์ดแวร์ที่มีแคช WB ในทางตรงกันข้ามเมื่อใช้กับ SSD ระดับองค์กร (เช่น: กับแคชการเขียนที่ป้องกันด้วย Powerloss) ซอฟต์แวร์ RAID มักจะเก่งและให้ผลลัพธ์ที่สูงกว่าสิ่งที่ทำได้ด้วยการ์ด RAID ของฮาร์ดแวร์ ที่กล่าวว่าคุณต้องจำไว้ว่า SSD สำหรับผู้บริโภค (อ่าน: ด้วยแคชการเขียนกลับที่ไม่มีการป้องกัน) ในขณะที่อ่านและเขียน async ได้ดีมากให้ IOPS ต่ำมากในปริมาณงานการเขียนแบบซิงโครไนซ์
พิจารณาว่าซอฟต์แวร์ RAID นั้นไม่ได้สร้างขึ้นเท่ากันทั้งหมด ซอฟต์แวร์ Windows RAID มีชื่อเสียงไม่ดีประสิทธิภาพฉลาดและแม้แต่พื้นที่เก็บข้อมูลก็ดูเหมือนไม่แตกต่างกัน Linux MD Raid มีความรวดเร็วและหลากหลายเป็นพิเศษ แต่ Linux I / O stack ประกอบด้วยชิ้นส่วนอิสระหลายอย่างที่คุณต้องเข้าใจอย่างถี่ถ้วนเพื่อแยกประสิทธิภาพสูงสุด ZFS parity RAID (ZRAID) เป็นขั้นสูงมาก แต่หากไม่ได้รับการกำหนดค่าอย่างถูกต้องสามารถให้IOP ที่แย่มากได้ การทำมิเรอร์ + สตริปในด้านอื่น ๆ ทำงานได้ค่อนข้างดี อย่างไรก็ตามมันต้องใช้อุปกรณ์ SLOG ที่รวดเร็วสำหรับการเขียนข้อมูลแบบซิงโครนัส (ZIL)
บรรทัดล่างสุด:
- หากปริมาณงานของคุณไม่ตรงกับการเขียนแบบสุ่มคุณไม่จำเป็นต้องมีการ์ด RAID
- หากคุณจำเป็นต้องใช้การ์ด RAID ไม่ได้ซื้อได้โดยไม่ต้องควบคุม RAID แคช WB
- หากคุณวางแผนที่จะใช้ซอฟต์แวร์ SSD ควรเลือกใช้ RAID แต่โปรดจำไว้ว่าสำหรับการเขียนแบบซิงโครไนซ์สูงคุณจำเป็นต้องใช้ SSD ที่มีการป้องกันด้วยพลังงาน (เช่น: Intel S4600, Samsung PM / SM863 เป็นต้น) เพื่อประสิทธิภาพที่แท้จริงทางเลือกที่ดีที่สุดอาจเป็น Linux MD Raid แต่ทุกวันนี้ฉันมักใช้กระจกลาย ZFS หากคุณไม่สามารถเสียพื้นที่เพียงครึ่งเดียวเนื่องจากกระจกเงาและคุณต้องการคุณสมบัติขั้นสูงของ ZFS ไปกับ ZRAID แต่คิดอย่างรอบคอบเกี่ยวกับการตั้งค่า VDEV ของคุณ
- หากคุณแม้แต่ใช้ SSD ก็ต้องการการ์ด RAID ของฮาร์ดแวร์ใช้ SSD ที่มีแคชป้องกันการเขียน (Micron M500 / 550/600 มีการป้องกันบางส่วน - ไม่เพียงพอจริง ๆ แต่ดีกว่าไม่มีอะไรเลย - ในขณะที่ Intel DC และ S series มีการสูญเสียพลังงานอย่างสมบูรณ์ การป้องกันและเช่นเดียวกันอาจกล่าวได้สำหรับองค์กร Samsung SSD)
- หากคุณต้องการ RAID6 และคุณจะใช้ HDD เชิงกลปกติให้พิจารณาซื้อการ์ด RAID ที่รวดเร็วที่มีแคช WB ขนาด 512 MB (หรือมากกว่า) RAID6 มีการลงโทษประสิทธิภาพการเขียนสูงและแคช WB ขนาดที่เหมาะสมสามารถให้หน่วยเก็บข้อมูลกลางที่รวดเร็วสำหรับการเขียนแบบซิงโครนัสขนาดเล็ก (เช่น: เจอร์นัลระบบไฟล์)
- ถ้าคุณต้องการ RAID6 ที่มี HDD แต่คุณไม่สามารถ / ไม่ต้องการซื้อการ์ด RAID ของฮาร์ดแวร์ให้ลองคิดถึงการตั้งค่า RAID ซอฟต์แวร์ของคุณอย่างรอบคอบ ตัวอย่างเช่นวิธีแก้ปัญหาที่เป็นไปได้กับ Linux MD Raid คือการใช้สองอาร์เรย์: อาร์เรย์ RAID10 ขนาดเล็กสำหรับเจอร์นัลบันทึก / บันทึก DB และอาร์เรย์ RAID6 สำหรับหน่วยเก็บข้อมูลดิบ (เป็นไฟล์เซิร์ฟเวอร์) ในทางกลับกันซอฟต์แวร์ RAID5 / 6 กับ SSD นั้นเร็วมากดังนั้นคุณอาจไม่ต้องการการ์ด RAID สำหรับการตั้งค่า SSD ทั้งหมด