ผลกระทบของระดับ RAID บน IOPS [ปิด]


11

เกี่ยวกับ IOPS ฉันได้เห็นหลายแหล่งบนเว็บที่แนะนำว่า IOPS ของจำนวนดิสก์ที่กำหนดนั้นเป็นเพียง IOPS ของดิสก์เดี่ยวคูณด้วยจำนวนดิสก์

หากความเข้าใจของฉันเกี่ยวกับ IOPS นั้นถูกต้อง (และฉันก็ไม่แน่ใจเหมือนกัน) ฉันจะคิดว่าความจริงจะขึ้นอยู่กับปัจจัยอื่น ๆ - ระดับ RAID ด้วย RAID 1/10 ข้อมูลทั้งหมดจะถูกทำซ้ำบนดิสก์อย่างน้อยสองแผ่นลดความขัดแย้งในดิสก์เฉพาะสำหรับรูปแบบ IO บางอย่าง อย่างไรก็ตามในระดับ RAID แบบสไทรพ์เช่น RAID 0/5/6 ข้อมูลจะถูกกระจายแทนที่จะทำซ้ำหมายถึงการร้องขอการอ่านต่อเนื่องอาจเป็นแกนหมุนเดียวกันซึ่งนำไปสู่การบล็อกในขณะที่ IO ก่อนหน้านี้เสร็จสมบูรณ์ การเขียนมีการโต้แย้งมากยิ่งขึ้น

ฉันควรจะเพิ่มว่าฉันซาบซึ้งในความเป็นจริงที่ซับซ้อนมากขึ้นเนื่องจากการเพิ่มประสิทธิภาพที่หลากหลายและปัจจัยอื่น ๆ คำถามของฉันเป็นจริงเพียงแค่ขับรถว่าในระดับพื้นฐานมากความเข้าใจของฉันในสิ่งที่หมายถึง IOPS อยู่ในทิศทางที่ถูกต้อง อาจเป็นได้ว่าการยืนยันของฉันที่ IOPS อาจได้รับอิทธิพลจากระดับ RAID ในลักษณะที่บ่งชี้ความเข้าใจผิดขั้นพื้นฐานของแนวคิด


4
คุณกำลังทำให้สิ่งนี้ง่ายขึ้นจนถึงจุดที่คุณไม่รวมผลกระทบของแคชคอนโทรลเลอร์ RAID, OS, ลักษณะการทำงานของแอปพลิเคชัน, ซิงโครนัสหรืออะซิงโครนัส I / O และประเภทดิสก์ ดังนั้น ... คุณกำลังค้นหาอะไร
ewwhite

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

ฉันถูกล่อลวงให้ถามว่าใครมีคำแนะนำใด ๆ เกี่ยวกับการอ่านที่มีคุณภาพดีเกี่ยวกับทฤษฎีและแนวคิดเกี่ยวกับพื้นที่จัดเก็บและประสิทธิภาพการทำงาน แต่ฉันไม่ทำอย่างที่ฉันคิดว่าอาจเป็นคำถามที่ไม่เหมาะสมสำหรับ ServerFault ดูเหมือนว่าจะมีการเขียนที่มีคุณภาพสูงเล็กน้อยในหัวข้อที่ปรากฏบนเว็บที่ฉันได้พบมาบางทีอาจเป็นเพราะมันเป็นเรื่องที่ค่อนข้างซับซ้อนซึ่งมีน้อยคนที่เข้าใจอย่างถ่องแท้
dbr

ประสิทธิภาพของ RAID ขึ้นอยู่กับฮาร์ดแวร์คอนโทรลเลอร์และข้อ จำกัด ในการติดตั้งมากกว่าระดับ RAID เช่น RAID0, RAID1, RAID5 และ RAID6 ในทางทฤษฎีสามารถใช้ดิสก์ทั้งหมดสำหรับการอ่านเป็นระยะเวลานานดังนั้นพวกเขาจึงสามารถมีความเร็วในการอ่านที่แน่นอนบนตัวควบคุมในอุดมคติ
Zac67

คำตอบ:


12

สำหรับ HDDนั้นโดยทั่วไปแล้ว IOPS จะใช้เวลาในการเข้าถึงของดิสก์ซึ่งเป็นผลรวมของการค้นหาเวลาแฝง + ความล่าช้าในการหมุน + การถ่ายโอนล่าช้า เนื่องจากตัวแปรเหล่านี้ขึ้นอยู่กับรูปแบบการเข้าถึงและไม่มีการโต้ตอบอย่างชัดเจนกับเลย์เอาต์ RAID ที่เฉพาะเจาะจง (เช่น: ขนาดแถบ) และตัวควบคุม (เช่น: การปรับจูนล่วงหน้าอ่าน)การตอบกลับอย่างง่ายใด ๆ จะผิด

อย่างไรก็ตามลองมีรูปที่เป็น ballpark ในการประมาณครั้งแรก IOPS รับประกันโดยอาร์เรย์ n-disk ควรเป็น n-times IOPS ของดิสก์เดียว อย่างไรก็ตามทั้งระดับ RAID และรูปแบบการเข้าถึงข้อมูลโดยการเปลี่ยนน้ำหนักระหว่างการค้นหา / การหมุน / การแฝงการถ่ายโอนการเปลี่ยนแปลงแบบลำดับแรกโดยประมาณทางดราม่า

ให้ทำตัวอย่างสมมติว่า 100 IOPS ต่อดิสก์เดี่ยว (ค่า tipical สำหรับดิสก์ 7200 RPM) และอาร์เรย์ 4 ดิสก์ (ยกเว้น RAID1 มัก จำกัด อยู่ที่ 2 ทางเท่านั้น):

  • ดิสก์เดียวคือ 100 IOPS ทั้งการอ่านและการเขียน (หมายเหตุ: เนื่องจากการเขียนรวมกันการเขียน IOPS มักจะสูงกว่าการอ่าน IOPS แต่ให้เพิกเฉยต่อความเรียบง่าย)
  • RAID0 (4 ทางสตริป) มีถึง 4 เท่า IOPS แบบสุ่มและถึง 4 เท่า IOPS ตามลำดับ คำสำคัญที่นี่คือ "สูงถึง": เนื่องจากลักษณะของการสตริปและการจัดตำแหน่งข้อมูลถ้าส่วนที่เข้าถึงแบบสุ่มอยู่ในดิสก์เดียวอย่างแพร่หลายคุณจะจบลงด้วย IOPS ที่ต่ำกว่ามาก
  • RAID1 (การทำมิเรอร์แบบสองทิศทาง) มีความซับซ้อนมากขึ้นในโปรไฟล์ เนื่องจากดิสก์ที่แตกต่างกันสามารถค้นหาข้อมูลที่แตกต่างกันมันมี IOPS สุ่มอ่านสูงสุด 2 เท่า แต่ 1x (หรือต่ำกว่าเล็กน้อยเนื่องจากค่าใช้จ่าย) IOPS เขียนแบบสุ่ม หากทุกสิ่งที่สอดคล้องกัน (เช่น: ขนาดใหญ่ แต่ไม่ 100% อ่านตามลำดับตัวควบคุม RAID ใช้แนวคิดชิ้น / ลาย / จัดการแม้ในโหมดมิเรอร์อ่านล่วงหน้าทำงานอย่างถูกต้อง ฯลฯ ) อ่านตามลำดับสามารถบางครั้งได้ถึง 2 เท่าเดียว ค่าดิสก์ในขณะที่การเขียนตามลำดับยังคงอยู่ที่ 1x ดิสก์เดี่ยว (เช่น: ไม่มีการเร่งความเร็ว)
  • RAID10 (การทำมิเรอร์แบบ 4 ทิศทาง) คือประสิทธิภาพที่ชาญฉลาดในแบบครึ่งทางระหว่างการสตริป RAID0 แบบ 4 ทิศทางและการทำมิรเรอร์แบบสองทาง มันมี IOPS สุ่มอ่านได้สูงถึง 4x และสุ่มเขียน IOPS ได้มากถึง 2x สำหรับการถ่ายโอนตามลำดับ RAID1 caveat ใช้: บางครั้งก็มีมากถึง 4x การอ่านตามลำดับ IOPS แต่เพียง 2 เท่าของ IOPS การเขียนตามลำดับ โปรดทราบว่าบางการดำเนิน RAID10 (คือลินุกซ์ MDRAID) จัดให้มีรูปแบบที่แตกต่างกันสำหรับอาร์เรย์ RAID10 ที่มีรายละเอียดที่แตกต่างกันประสิทธิภาพ
  • RAID5 (สไทรพ์แพตช์) มีค่าสูงสุดเป็น 4 เท่าของการสุ่มอ่าน IOPS ในขณะที่การเขียนแบบสุ่ม IOPS ขึ้นอยู่กับปัจจัยหลายประการว่าขนาดการเขียนมีความสัมพันธ์กับขนาดสตริปความพร้อมใช้งานของแคชแถบขนาดใหญ่ ตัวเอง (อ่าน - สร้างใหม่ - เขียนเทียบกับอ่าน - แก้ไข - เขียน) ฯลฯ สามารถอยู่ที่ใดก็ได้ระหว่าง 0.5x (หรือต่ำกว่า) และ 2x IOPS ของดิสก์เดียว ปริมาณงานต่อเนื่องสามารถคาดการณ์ได้มากขึ้นด้วย 3x IOPS ของดิสก์เดียว (ทั้งสำหรับการอ่านและการเขียน)
  • RAID6 (สไทรพด์พาริตีคู่) ทำตัวคล้ายกับพี่ชายของ RAID5 แต่มีสมรรถนะการเขียนต่ำกว่า มันมี IOPS สุ่มอ่านได้สูงสุดถึง 4 เท่าของดิสก์เดียว แต่ประสิทธิภาพการเขียนแบบสุ่มนั้นต่ำกว่า RAID5 ด้วยค่าสัมบูรณ์ที่เท่ากัน (0.5x - 2x) แต่มีค่าเฉลี่ยของคำต่ำกว่าจริง การอ่านและเขียนแบบลำดับจะถูก จำกัด ไว้ที่ 2X the IOPS ของดิสก์เดียว

ขอผมพูดซ้ำ: ข้างต้นง่ายและเกือบจะหัก อย่างไรก็ตามถ้าคุณต้องการที่จะเล่นกับ (อย่างรุนแรงที่ไม่สมบูรณ์) RAID IOPS เครื่องคิดเลขให้ดูที่นี่

ตอนนี้กลับไปสู่โลกแห่งความจริง เกี่ยวกับปริมาณงานที่โลกแห่งความจริงRAID10 มักจะเป็นตัวเลือกที่เร็วขึ้นและต้องการการรักษาที่มีประสิทธิภาพสูงแม้ในใบหน้าของอาร์เรย์ที่เสื่อมโทรม ไม่ควรใช้ RAID5 และ RAID6 กับเวิร์กโหลดที่ไวต่อประสิทธิภาพเว้นแต่ว่าจะมีการอ่านเป็นศูนย์กลางหรือเรียงตามลำดับ เป็นที่น่าสังเกตว่าตัวควบคุม RAID ที่ร้ายแรงมีแคชการเขียนกลับที่ป้องกันการสูญเสียพลังงานขนาดใหญ่ส่วนใหญ่เพื่อเอาชนะ อย่าใช้ RAID5 / 6 กับคอนโทรลเลอร์ RAID ที่ไม่ใช้แคชเว้นแต่ว่าคุณจะไม่สนใจความเร็วของอาเรย์

SSD นั้นเป็นสัตว์ร้ายที่ต่างกัน เนื่องจากพวกเขามีเวลาเข้าถึงเฉลี่ยที่ต่ำกว่ามาก RAIDs แบบพาริตี้จึงมีค่าใช้จ่ายที่ต่ำกว่าและมีตัวเลือกที่ทำงานได้ดีกว่า HDD อย่างไรก็ตามในเวิร์กโหลดแบบสุ่มเขียนเล็ก ๆ ฉันจะใช้การตั้งค่า RAID10 อย่างไรก็ตาม


อย่าใช้ RAID5 / 6 กับคอนโทรลเลอร์ RAID ที่ไม่ใช้แคชเว้นแต่ว่าคุณจะไม่สนใจความเร็วของอาเรย์ คุณสามารถหลีกเลี่ยงสิ่งนี้ได้หากคุณรู้ว่าคุณกำลังทำอะไรอยู่และควบคุมรูปแบบ IO ของคุณอย่างเข้มงวด หากคุณไม่ทำอะไรเลยนอกจากลำดับ IO ที่ตรงกับขนาดแถบของอาเรย์คุณสามารถใช้ RAID5 / 6 แบบไม่แคชได้ และแคชไม่สามารถบันทึกประสิทธิภาพได้หากคุณทำการสุ่มเขียนบล็อกขนาดเล็กลงในอาร์เรย์ RAID5 / 6 แม้ว่าค่าของ "ปฏิบัติการ IO เพียงพอ" ที่ฆ่าประสิทธิภาพอาจมีจำนวนมากสำหรับคอนโทรลเลอร์ RAID ที่ดีจริงๆ
Andrew Henle

@AndrewHenle แน่นอนว่าเฉพาะการอ่าน / เขียนตามลำดับซึ่งมีการจัดแนวแถบแม้ตัวควบคุมแบบไร้สายในโหมด RAD5 / 6 สามารถให้ผลลัพธ์ที่ดีแก่คุณ อย่างไรก็ตามนี่เป็นรูปแบบการใช้งานที่แคบมาก (เช่น: การสตรีมและการสำรองข้อมูล) สำหรับภาระงานตามวัตถุประสงค์ทั่วไปคอนโทรลเลอร์ไร้รูปแบบที่รวมกับ RAID พาริตีใด ๆ จะช้ามาก คอนโทรลเลอร์บางตัวอาจต้องการแคชการเขียนกลับที่มีการป้องกันด้วย Powerloss เพื่อให้คุณสามารถสร้างพาริตี้ RAID ได้
shodanshok

ฉันกำลังคิดเกี่ยวกับผู้ดูแลระบบที่สงสัยว่าเหตุใดจึงมีที่เก็บจดหมายองค์กรของพวกเขา 21- ไดรฟ์อาร์เรย์ RAID6 ที่มีขนาดแถบ 19-MB- เพราะขนาดแถบที่ใหญ่กว่าต้องเร็วกว่านั้นก็ช้า ....
Andrew Henle

1

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

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

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