RAID1 เพิ่มประสิทธิภาพด้วย Linux mdadm หรือไม่


26

ฉันมี NAS 2-bay ราคาถูกพร้อม HDD 2TB เพื่อให้ทนทานต่อความล้มเหลวของดิสก์ฉันกำลังคิดที่จะซื้อ HDD 2TB ตัวที่สองและวางไว้ใน RAID1 ด้วย Linux mdadm ระบบไฟล์ ext4

สิ่งนี้จะเพิ่มหรือลดประสิทธิภาพของ NAS หรือไม่? แล้วการอ่านหรือเขียนประสิทธิภาพล่ะ?

ดูเหมือนจะมีความคิดเห็นมากมายเกี่ยวกับออนไลน์ แต่ไม่มีความเห็นเป็นเอกฉันท์

ขอบคุณ

แก้ไข:

ดังนั้นฉันจึงได้คำตอบที่แตกต่างกันสามข้อ: "เร็วกว่าเล็กน้อย", "คุณจะไม่สังเกต" และ "จะลดประสิทธิภาพลงถ้ามี" (ฉันสนใจการอ่านเป็นหลัก) Wikipedia กล่าวว่า "ประสิทธิภาพการอ่านอาจเพิ่มขึ้นเป็นเส้นตรงเชิงเส้นของจำนวนสำเนา" อันไหน?

แก้ไข 2:

ฉันพบหลักฐานการติดตั้งเพื่อรองรับ RAID1 ที่เพิ่มประสิทธิภาพการอ่านรวมถึง MD manpage:

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

ฉันค้นพบ RAID10 ของ MD ด้วย--layout=f2ซึ่งให้ความซ้ำซ้อนของ RAID1 ด้วยประสิทธิภาพการอ่านของ RAID0 และสามารถใช้กับไดรฟ์สองตัวเท่านั้น ประสิทธิภาพการเขียนลดลงอย่างไรก็ตามเนื่องจากการเขียนตามลำดับเกี่ยวข้องกับทั้งไดรฟ์ที่ค้นหาไปมาระหว่างส่วนต่าง ๆ ของไดรฟ์ man mdสำหรับรายละเอียด


2
เขียน; ช้ากว่าเล็กน้อย อ่าน; เป็นธรรมเร็วขึ้น จากสิ่งที่ฉันเข้าใจความแตกต่างในการเขียนนั้นเกือบจะเป็นศูนย์และการอ่านนั้นค่อนข้างชัดเจน
Sirex

สิ่งที่ sirex พูด .. คุณจะไม่สังเกตเห็นความแตกต่างของประสิทธิภาพการทำงานด้วยตาเปล่า .. อย่าคาดหวังว่าจะเพิ่มเป็นสองเท่าหรือครึ่งหนึ่ง
Piotr Kula


1
ฉันพลาดส่วนหนึ่ง: เข้าถึง NAS ได้รวดเร็วเพียงใด หากดิสก์หนึ่งแล้วทำการเชื่อมต่อเครือข่ายความเร็วภายในที่มากขึ้นจะไม่ช่วยอะไรคุณมากนัก
Hennes

คำตอบ:


39

ใช่การใช้งาน Linux ของ RAID1 ช่วยเพิ่มความเร็วในการอ่านดิสก์สองครั้งตราบเท่าที่มีการอ่านดิสก์สองครั้งในเวลาเดียวกัน นั่นหมายความว่าการอ่านไฟล์ 10GB หนึ่งไฟล์จะไม่ทำให้ RAID1 เร็วขึ้นกว่าบนดิสก์แผ่นเดียว แต่การอ่านไฟล์ 10GB ที่แตกต่างกันสองไฟล์ * จะใช้เวลาเร็วกว่า

ddเพื่อแสดงให้เห็นมันเพียงแค่อ่านข้อมูลบางอย่างเกี่ยวกับ sync && echo 3 > /proc/sys/vm/drop_cachesก่อนที่จะทำการอะไรล้างแคชดิสก์อ่านด้วย มิฉะนั้นhdparmจะเรียกร้องให้อ่านเร็วสุด

ไฟล์เดียว:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 65,9659 s, 159 MB/s

สองไฟล์:

# COUNT=1000; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT &; dd if=/dev/md127 of=/dev/null bs=10M count=$COUNT skip=$COUNT &
(...)
10485760000 bytes (10 GB) copied, 64,9794 s, 161 MB/s
10485760000 bytes (10 GB) copied, 68,6484 s, 153 MB/s

การอ่านข้อมูล 10 GB ใช้เวลา 65 วินาทีในขณะที่การอ่านข้อมูล 10 GB + 10 GB = 20 GB นั้นใช้เวลาทั้งหมด 68.7 วินาทีซึ่งหมายความว่าการอ่านดิสก์หลาย ๆ ตัวได้รับประโยชน์อย่างมากจาก RAID1บน Linux skip=$COUNTส่วนนั้นสำคัญมาก กระบวนการที่สองอ่านข้อมูล 10 GB จากออฟเซ็ต 10 GB

คำตอบและความคิดเห็นของ Jared ที่อ้างถึงhttp://www.unicom.com/node/459นั้นผิด มาตรฐานจากที่นั่นพิสูจน์การอ่านดิสก์ไม่ได้รับประโยชน์จาก RAID1 อย่างไรก็ตามการทดสอบดำเนินการด้วยเครื่องมือการเปรียบเทียบ Bonnie ++ ซึ่งไม่ได้ทำการอ่านสองครั้งพร้อมกัน ผู้เขียนอธิบายอย่างชัดแจ้งว่า bonnie ++ ไม่สามารถใช้สำหรับการเปรียบเทียบอาร์เรย์ RAID ( อ้างอิงถึง readme )


5

ใช่คุณจะได้รับการเพิ่มประสิทธิภาพการอ่าน + ความซ้ำซ้อน คุณสามารถจินตนาการได้อย่างง่ายดายว่าในขณะที่คุณสามารถอ่านส่วนต่าง ๆ ของไฟล์ที่เหมือนกันจาก HDD สองตัวที่แตกต่างกันเพราะไฟล์นั้นอยู่บน HDD ทั้งสองตัว

ในทางทฤษฎีถ้าคอนโทรลเลอร์ RAID ทำงานได้ถูกต้องคุณสามารถเพิ่มความเร็ว O (n) ได้


5
mdadm เป็นซอฟต์แวร์ RAID ดังนั้นจึงไม่มี "คอนโทรลเลอร์ RAID" แต่มันจะช่วยเพิ่มการอ่านที่ดีเมื่อทำการ multplie อ่านแบบขนานไม่มากในกรณีนี้ฉันคิดว่าเป็นกล่อง NAS ที่ไม่ค่อยได้รับการรับรองอย่างชัดเจน ดูที่นี่สำหรับรายละเอียด: freebsdwiki.net/index.php/…
Shadok

1
ในทางปฏิบัติประสิทธิภาพลดลงสำหรับการอ่านจากการจู่โจมซอฟต์แวร์ Linux MD ดูunicom.com/node/459 (ในการทดสอบความเร็วในการอ่านลดลงจาก 77 MB / s เป็น 74 MB / s)
ssh

2
@ssh unicom.com/node/459ผิดทั้งหมด bonnie ++ ไม่สามารถใช้งานได้สำหรับการทดสอบมิรเรอร์ RAID ซึ่งระบุไว้อย่างชัดเจนใน readme ดูคำตอบของฉันสำหรับรายละเอียดเพิ่มเติม superuser.com/a/757264/68978
Nowaker

4
  • man 4 mdสถานะ: "...โปรดทราบว่าการอ่านบาลานซ์ที่ทำโดยไดรเวอร์ไม่ได้ทำให้โปรไฟล์ประสิทธิภาพ RAID1 เหมือนกับ RAID0การสตรีมอินพุตเดี่ยว จะไม่ถูกเร่งความเร็ว (เช่นเดียว dd เดียว) แต่สตรีมเรียงลำดับตามลำดับหรือสุ่ม เวิร์กโหลดจะใช้แกนหมุนมากกว่าหนึ่งแกนในทางทฤษฎีแล้วการมี N-disk RAID1 จะอนุญาตให้เธรดตามลำดับ N อ่านจากดิสก์ทั้งหมดได้… "

  • ยิ่งไปกว่านั้นในทางปฏิบัติบนพื้นฐานของiostatผลลัพธ์ที่สังเกตได้จากการตั้งค่า RAID ของซอฟต์แวร์ HDD ทั่วไป 2 ตัวไม่มีการปรับสมดุลใด ๆ ในความเป็นจริงมันดูเหมือนว่าmdadmตัวเลือกที่มีประสิทธิภาพ--write-mostlyอยู่เสมอ


3

ไม่คุณจะไม่ได้รับประโยชน์ใด ๆ ในขณะที่อ่านจาก mdadm RAID1 ฉันถามตัวเองเกี่ยวกับเรื่องนี้เมื่อไม่นานมานี้

dstatแสดงการใช้งานดิสก์และยังbwm-ngช่วยได้มากโดยเฉพาะในกรณีนี้เนื่องจากสามารถแสดงการใช้งานการอ่าน / เขียนสำหรับสมาชิก RAID mdadm ที่แยกต่างหาก เพียงแค่กดn(ถัดไป) สองสามครั้งมันจะเปลี่ยนจากสถิติของอินเทอร์เฟซไปเป็นสถานะของดิสก์ จากนั้นสลับเป็นค่าสูงสุดด้วยtเพื่อดูการอ่าน / เขียนสูงสุดจากแต่ละดิสก์ คุณจะเห็นสิ่งต่อไปนี้:

การเขียนข้อมูลลงในโวลุ่ม RAID1 bwm-ng แสดงการเขียน 2 x เขียนไปยัง 2 ดิสก์ในเวลาเดียวกัน การอ่านจากโวลุ่ม RAID1 bwm-ng แสดงการอ่านจากไดรฟ์เดียว (สมาชิกอาเรย์)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.