ฉันจึงตัดสินใจสร้างกลุ่ม RAID6 2 กลุ่มจาก 16HDD หรือ 4 จาก 8 HDD
นั่นไม่ใช่วิธีที่ดีที่สุดในการทำสิ่งต่าง ๆ มันอาจทำงานได้ดีพอ แต่ขึ้นอยู่กับความต้องการด้านประสิทธิภาพของคุณก็อาจไม่ได้
ขนาดที่เหมาะสำหรับอาเรย์ RAID5 / 6 นั้นจะเป็นข้อมูลที่หลากหลายของข้อมูลที่ "ครอบคลุม" อาเรย์นั้นตรงกับขนาดบล็อกของระบบไฟล์ที่อยู่ด้านบน
RAID5 / 6 อาร์เรย์ทำงานเป็นอุปกรณ์บล็อก - บล็อกหนึ่งของข้อมูลครอบคลุมดิสก์ในอาร์เรย์และบล็อกนั้นยังมีข้อมูลพาริตีด้วย คอนโทรลเลอร์ RAID ส่วนใหญ่จะเขียนข้อมูลขนาดใหญ่ถึงสองแผ่นลงในดิสก์แต่ละชุดในอาเรย์ - ค่าที่แน่นอนซึ่งสามารถกำหนดค่าได้ในระบบ RAID ที่ดีกว่า - และหน่วย Dot Hill ของคุณเป็นหนึ่งใน "ระบบ RAID ที่ดีกว่า" นั่นเป็นสิ่งสำคัญ
ดังนั้นจึงใช้ N x (จำนวนข้อมูลที่เก็บต่อดิสก์กลุ่ม) เพื่อขยายอาร์เรย์โดยที่ N คือจำนวนดิสก์ข้อมูล อาร์เรย์ RAID 5 ดิสก์มีดิสก์ 4 "ข้อมูล" และอาร์เรย์ RAID6 10 ไดรฟ์มีดิสก์ข้อมูล 8 ชุด
เพราะเมื่อข้อมูลถูกเขียนไปยังอาเรย์ RAID5 / 6 ถ้าบล็อกของข้อมูลมีขนาดใหญ่พอที่จะครอบคลุมอาเรย์ทั้งหมดความเท่าเทียมกันจะถูกคำนวณสำหรับข้อมูลนั้น - โดยปกติจะอยู่ในหน่วยความจำของคอนโทรลเลอร์ - จากนั้นแถบทั้งหมดจะถูกเขียน ดิสก์. ง่ายและรวดเร็ว
แต่ถ้าข้อมูลที่กำลังเขียนไม่ใหญ่พอที่จะครอบคลุมทั้งอาเรย์คอนโทรลเลอร์ RAID ต้องทำอะไรเพื่อคำนวณข้อมูลพาริตีใหม่ คิดเกี่ยวกับมัน - มันต้องการข้อมูลทั้งหมดในแถบทั้งหมดเพื่อคำนวณข้อมูลพาริตีใหม่
ดังนั้นถ้าคุณสร้างอาร์เรย์ RAID6 16- ไดรฟ์ด้วยค่าเริ่มต้นต่อดิสก์กลุ่มขนาด 512kb นั่นหมายความว่าใช้เวลา 7 MB เพื่อ "ขยาย" อาร์เรย์
ZFS ทำงานในบล็อกขนาด 128kb โดยทั่วไป
ดังนั้น ZFS จึงเขียนบล็อก 128kB - ไปยังอาร์เรย์ RAID6 16 ไดรฟ์ ในการกำหนดค่าที่คุณกำลังเสนอนั่นหมายถึงตัวควบคุม RAID ต้องอ่านเกือบ 7 MB จากอาร์เรย์และคำนวณความเท่าเทียมกันใน 7 เมกะไบต์เหล่านั้น จากนั้นเขียนว่าทั้ง 7 MB กลับสู่ดิสก์
หากคุณโชคดีทุกอย่างมันอยู่ในแคชและคุณจะไม่ได้รับความนิยมอย่างมาก (นี่คือหนึ่งในเหตุผลสำคัญที่ตำแหน่ง "ไม่ใช้ RAID5 / 6" มีดังต่อไปนี้ - RAID1 [0] ไม่ได้รับผลกระทบจากสิ่งนี้)
หากคุณโชคไม่ดีและคุณไม่ได้จัดแนวพาร์ติชันระบบไฟล์ของคุณอย่างเหมาะสม 128kB บล็อกนั้นจะครอบคลุมแถบ RAID สองแถบที่ไม่ได้อยู่ในแคชและคอนโทรลเลอร์จำเป็นต้องอ่าน 14 MB เพื่อคำนวณความเท่าเทียมกัน ทั้งหมดเพื่อเขียนหนึ่ง 128kB บล็อก
ตอนนี้ว่าเป็นสิ่งที่ต้องเกิดขึ้นมีเหตุผล มีการปรับแต่งมากมายที่คอนโทรลเลอร์ RAID ที่ดีสามารถใช้เพื่อลดการโหลด IO และการคำนวณของรูปแบบ IO ดังกล่าวดังนั้นจึงอาจไม่เลว
แต่ภายใต้ภาระหนักในการเขียนบล็อกขนาด 128kB ไปยังสถานที่สุ่มมีโอกาสดีมากที่ประสิทธิภาพของอาร์เรย์ RAID6 แบบ 16 ไดรฟ์ที่มีขนาดแถบ 7 MB จะแย่มากอย่างแน่นอน
สำหรับ ZFS นั้น RAID5 / 6 LUNs ต้นแบบ "อุดมคติ" สำหรับระบบไฟล์วัตถุประสงค์ทั่วไปที่การเข้าถึงส่วนใหญ่จะสุ่มอย่างมีประสิทธิภาพจะมีขนาดแถบที่เป็นตัวหารแม้กระทั่ง128kB เช่น 32kB, 64kB หรือ 128kB ในกรณีนี้จะ จำกัด จำนวนของดิสก์ข้อมูลในอาเรย์ RAID5 / 6 ถึง 1 (ซึ่งเป็นแบบไร้สาระ - แม้ว่าจะเป็นไปได้ที่จะกำหนดค่ามันจะดีกว่าถ้าใช้ RAID1 [0]), 2, 4 หรือ 8 ในสถานการณ์ที่ดีที่สุดจะใช้ขนาดแถบ 128kB สำหรับ RAID5 / 6 แต่กรณีที่ดีที่สุดไม่ได้เกิดขึ้นบ่อยครั้งในระบบไฟล์ที่ใช้งานทั่วไป - บ่อยครั้งเนื่องจากระบบไฟล์ไม่ได้จัดเก็บข้อมูลเมตาเหมือนกัน จัดเก็บข้อมูลไฟล์
ฉันขอแนะนำให้ตั้งค่า RAID5 5-disk arrays หรือ 10-disk RAID6 arrays ด้วยขนาดของ chunk per-disk ที่มีขนาดเล็กพอที่จำนวนของข้อมูลที่จะขยายทั้ง array array คือ 64kB (ใช่แล้วฉันได้ทำสิ่งนี้แล้ว ก่อนหน้าสำหรับ ZFS - หลายครั้ง) นั่นหมายความว่าสำหรับอาเรย์ RAID ที่มีดิสก์ข้อมูล 4 ขนาดต่อชิ้นดิสก์ควรมีขนาด 16kB ในขณะที่สำหรับอาเรย์ RAID แบบ 8 ดาต้าดิสก์ข้อมูลขนาดดิสก์ต่อชิ้นควรมีขนาด 8kB
แล้วให้ ZFS จะใช้ทั้งอาร์เรย์ - ไม่ได้แบ่งพาร์ติชันมัน ZFS จะจัดตำแหน่งตัวเองอย่างถูกต้องกับไดรฟ์ทั้งหมดไม่ว่าจะเป็นไดรฟ์แบบดิสก์เดี่ยวหรืออาร์เรย์ RAID ที่นำเสนอโดยคอนโทรลเลอร์ RAID
ในกรณีนี้และโดยที่ไม่ทราบถึงความต้องการพื้นที่และประสิทธิภาพที่แน่นอนของคุณฉันขอแนะนำให้ตั้งค่าอาร์เรย์ RAID6 10 ไดรฟ์สามตัวหรืออาร์เรย์ RAID5 5 ไดรฟ์ 5 ตัวพร้อมขนาดแถบ 64kB กำหนดค่าสเปคคู่ร้อนและประหยัดสี่ของคุณ ดิสก์สำหรับสิ่งที่เกิดขึ้นในอนาคต เพราะบางสิ่งจะ
แน่นอนที่สุดฉันจะไม่ใช้ระบบดิสก์นั้นในโหมด JBOD - เป็นอุปกรณ์ที่รองรับ NEBS ระดับ 3ที่ให้ความน่าเชื่อถือและการปกป้องความพร้อมใช้งานที่ติดตั้งไว้ในฮาร์ดแวร์ อย่าโยนมันทิ้งไปเพียงเพราะ "ZFS !!!!" หากเป็นชิ้นส่วนฮาร์ดแวร์สินค้าราคาถูกที่คุณรวมเข้าด้วยกันจากชิ้นส่วน ใช่โหมด JBOD พร้อม ZFS ที่จัดการกับ RAID นั้นดีที่สุด - แต่นั่นไม่ใช่ฮาร์ดแวร์ที่คุณมี ใช้คุณสมบัติที่ฮาร์ดแวร์มีให้