BBU คืออะไร (raid-controller-)


13

ฉันสงสัยว่าจุดประสงค์ของ BBU คืออะไร ความเข้าใจครั้งแรกของฉันคือมันช่วยให้แคชสามารถเขียนข้อมูลลงดิสก์ในระหว่างเกิดไฟฟ้าขัดข้อง แต่คุณสมบัติบางอย่างบอกว่า BBU สามารถเก็บข้อมูลได้นานถึง 72 ชั่วโมง ฉันคาดว่าข้อมูลจะถูกเขียนไปยังแผ่นดิสก์ภายในมิลลิวินาที (ที่ระบุว่าแผ่นดิสก์ยังคงมีพลังเช่นกัน)

ดังนั้น BBU ควรไม่เพียงป้องกันแคช แต่ทั้งแผ่นเป็นเวลาไม่กี่วินาทีด้วยหรือไม่ จะไม่ปลอดภัยกว่านี้อีกแล้วเพราะข้อมูลแคชถูกเขียนลงดิสก์แทนที่จะอยู่ในแคชและรอพลังงานอีกครั้ง หลังจากนั้นประมาณหนึ่งวินาทีแผ่นดิสก์อาจถูกปิดลง


แม้ว่าแบตเตอรี่ RAID จะไม่จ่ายไฟให้กับไดรฟ์จริง แต่ก็มีบางอย่างในโลกของเราที่มีลักษณะคล้ายกับที่คุณเคยจินตนาการไว้: SSD ระดับเซิร์ฟเวอร์บางตัวมี "supercapacitors" ที่ให้พลังงานสำรองในการเขียนแคชระหว่างมิลลิวินาที
Skyhawk

คำตอบ:


17

มันไม่ได้ให้พลังงานกับดิสก์มันแค่เก็บข้อมูลไว้ในแคชสำหรับ (ในกรณีนี้) นานถึง 72 ชั่วโมงจนกว่าคุณจะนำเครื่องกลับมาออนไลน์ เมื่อคุณทำการสำรองพลังงานเครื่องจะเขียนเนื้อหาของแคชออกไปยังดิสก์

ทั้งหมดจะป้องกันความล้มเหลวของพลังงาน หาก (ด้วยเหตุผลบางอย่าง) เครื่องสูญเสียพลังงานโดยไม่ต้องล้างข้อมูลออกจากดิสก์อย่างหมดจดแบตเตอรี่จะเก็บเนื้อหาแคชไว้ให้มีชีวิตอยู่จนกว่าคุณจะสามารถรีสตาร์ทเครื่องได้

ไม่ใช่ UPS สำหรับดิสก์เนื่องจากดิสก์อาจอยู่ในดิสก์อาเรย์ภายนอกหรือแม้แต่ในวงจรไฟฟ้าอื่น แม้แต่ UPS ก็อาจล้มเหลวได้


1
ดังนั้นความแตกต่างของ UPS สำหรับดิสก์ก็คือมันถูกออกแบบมาสำหรับสถานการณ์ที่ดิสก์ไม่ได้อยู่ในวงจรไฟฟ้าเดียวกัน ในกรณีอื่น ๆ (คอนโทรลเลอร์และดิสก์ในวงจรเดียว) UPS จะดีกว่าไหม ฉันยังต้องการที่จะเขียนคำสั่งสุดท้ายลงในดิสก์แทนที่จะรอในแคชในระหว่างที่ไฟฟ้าดับ
tanascius

ดังนั้นซื้อ UPS สำหรับเซิร์ฟเวอร์ของคุณเช่นกัน! BBU มีพลังงานไม่เพียงพอที่จะเรียกใช้ชุดไดรฟ์ มันทำให้คุณมีหน้าต่างที่ใหญ่พอสำหรับให้คุณสำรองไฟและบันทึกการเปลี่ยนแปลง การหยุดทำงานส่วนใหญ่นั้นสั้นมากและคนส่วนใหญ่ไม่ต้องการค่าใช้จ่ายเพิ่มเติมของ UPS สำหรับเครื่องจักรที่ไม่จำเป็น
JamesRyan

1
BBU ทั้งหมดจะเก็บข้อมูลไว้ในแคชจนกว่าคุณจะรีสตาร์ทคอมพิวเตอร์ คอนโทรลเลอร์ทราบสิ่งที่ถูกล้างออกไปยังดิสก์ (ดิสก์ส่งสัญญาณว่าการดำเนินการเสร็จสิ้นแล้ว) สิ่งใดที่ไม่ถูกล้างออกไปยังดิสก์จะถูกเก็บรักษาไว้จนกว่าจะรีสตาร์ทเครื่อง
ConcoutedOfTunbridgeWells

13

มันทำงานได้เช่นนี้:

ระบบปฏิบัติการส่วนใหญ่มีการเรียกระบบที่อนุญาตให้เรียกว่า "การเขียนแบบซิงโครนัส" ซึ่งหมายความว่าในระหว่างการดำเนินการเขียนถ้าการเขียนเสร็จสิ้นก็รับประกันได้ว่ามันได้มุ่งมั่นที่จะดิสก์

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

ซอฟต์แวร์ที่สำคัญบางตัวเช่นซอฟต์แวร์ฐานข้อมูลทำการเขียนแบบซิงโครนัสสำหรับข้อมูลสำคัญเนื่องจากการอัพเดตแบบครึ่งเขียนในกรณีที่ไฟฟ้าดับอาจเป็นอันตรายต่อความสมบูรณ์ของฐานข้อมูล

ตัวควบคุม RAID ช้าฉาวโฉ่กับการเขียน RAID-5 ดังนั้นนี่จะกลายเป็นปัญหาหากแอพพลิเคชั่นซอฟต์แวร์ของคุณใช้การเขียนแบบซิงโครนัสจำนวนมาก ด้วยเหตุนี้คอนโทรลเลอร์ RAID-5 จึงติดตั้งแคชของตัวเอง

สิ่งที่ตัวควบคุม RAID ทำคือเขียนข้อมูลไปยังแคชแทนและ LIES ไปยังระบบปฏิบัติการบอกว่าให้ส่งข้อมูลไปยังดิสก์ในขณะที่ข้อมูลยังอยู่ในแคช RAID

แต่ถ้าเกิดไฟฟ้าดับในขณะที่ข้อมูลยังอยู่ในบัฟเฟอร์ของคอนโทรลเลอร์ RAID? คุณมีข้อมูลที่เขียนครึ่งหนึ่งและอาจไม่สอดคล้องกับดิสก์ของคุณ

คุณอาจบอกว่าพฤติกรรมนี้เอาชนะจุดประสงค์ของการเขียนแบบซิงโครนัส ... ถ้าการเขียนแคชนั้นเป็นเรื่องปกติซอฟต์แวร์แอพจะไม่ขอให้มีการเขียนแบบซิงค์ในตอนแรก

การประนีประนอมคือ: ตัวควบคุม RAID ยังคงอยู่กับระบบปฏิบัติการที่ให้ข้อมูลกับดิสก์ แต่เพื่อปกป้องข้อมูลที่สำคัญนี้ในกรณีที่ไฟฟ้าขัดข้อง RAID คอนโทรลเลอร์มีแบตเตอรี่ที่ช่วยให้แคชมีชีวิตอยู่ได้จนกว่าพลังงานจะหมด การบูรณะ

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

ทุกคนมีความสุข

นี่คือสาเหตุที่คอนโทรลเลอร์ RAID มักจะไม่ยอมให้คุณเปิดใช้งานแคชเขียนเว้นแต่ว่าคุณจะมีหน่วยแบตเตอรี่ที่ใช้งานได้และมีประจุ


ฉันจะถามเกี่ยวกับตำแหน่งของคอนโทรลเลอร์ มันเป็นส่วนหนึ่งของบอร์ดแม่หรือสร้างไว้ในฮาร์ดไดรฟ์หรือไม่?
Valentin Tihomirov

นอกจากนี้ฉันต้องการทราบว่าระบบปฏิบัติการสามารถส่งproper shutdownคำขอได้อย่างไรถ้า RAID อยู่กับมันเมื่อมีการล้างข้อมูล
Valentin Tihomirov

@ValentinTihomirov ไม่มีสิ่งนั้นเป็นproperหรือimproperปิด ระบบปฏิบัติการออกสัญญาณ powerdown และ PSU ทำเช่นนั้นหลังจากที่ปิดไฟ เมื่อปิดไฟหน่วยความจำที่ระเหยได้และเนื้อหาทั้งหมดจะหายไป!
PF4Public

4

เป็นมูลค่าการกล่าวขวัญว่าตอนนี้ตัวควบคุมดิสก์รุ่นใหม่บางรุ่นมาพร้อมกับแคชแฟลชความเร็วสูงที่เก็บข้อมูลไว้นานกว่า 72 ชั่วโมงทั่วไปซึ่งมักจะมีขนาดใหญ่กว่ามาก (~ 1GB) หากคุณต้องการรายละเอียดส่วนหนึ่งแจ้งให้เราทราบ


ขอขอบคุณสำหรับข้อมูล แต่ฉันไม่ดูแลระบบและการอาจจะไม่เคยออกแบบ RAID มืออาชีพ ... ฉันอยากรู้เพียงเกี่ยวกับ BBU :)
tanascius

3

คิดว่า BBU cache นั้นเป็นการเพิ่มระดับการป้องกันที่คล้ายกันในระบบไฟล์ที่เจอร์นัลแล้ว มีไว้เพื่อให้การทำธุรกรรมการเขียนแบบง่าย ๆ ในกรณีนี้จะเสร็จสมบูรณ์หากพวกเขาถูกขัดจังหวะโดยไฟฟ้าขัดข้อง เมื่อพลังงานลดลงคอนโทรลเลอร์จะไม่สามารถเขียนต่อได้เนื่องจากจะส่งผลให้ไม่สามารถคาดเดาได้อย่างสมบูรณ์ แต่จะเก็บข้อมูลไว้นานที่สุดเท่าที่จะทำได้และจะเขียนให้เสร็จหากว่า / เมื่อไฟฟ้ากลับมาทำงานต่อ สิ่งที่ไม่ทำคือทำหน้าที่เหมือน UPS สำหรับไดรฟ์


แต่เมื่อฉันมี UPS สำหรับไดรฟ์ + คอนโทรลเลอร์ - ฉันต้องใช้ BBU ทำอะไร เฉพาะ scneario ที่ UPS ล้มเหลวด้วยใช่ไหม
tanascius

คำถามที่ดี. หากคุณรู้ว่าเซิร์ฟเวอร์จะปิดตัวลงอย่างสง่างามฉันก็ไม่เชื่อว่าต้องมี BBU เช่นกัน
John Gardeniers

2
โดยทั่วไปแล้ว BBU มักใช้สำหรับการกำหนดค่าการเขียนกลับ ตัวควบคุม RAID บางตัวจะไม่เปิดใช้งานการเขียนกลับโดยไม่มี BBU อยู่ อย่างไรก็ตามฉันคิดว่าอาจเป็นความคิดที่ไม่ดีที่จะสมมติว่าเซิร์ฟเวอร์ของคุณจะปิดอย่างถูกต้องเสมอ
ConcoutedOfTunbridgeWells

2

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


1

หากเซิร์ฟเวอร์ของคุณขัดข้องแฮงค์หรือบางคนดึงสายไฟ BBU จะปกป้องคุณจากข้อมูลที่เสียหายหรือสูญหายหากคุณใช้แคชการเขียน การใช้ USV จะป้องกันคุณจากไฟฟ้าขัดข้องเท่านั้น

หากคุณไม่ต้องการใช้แคชการเขียนคุณไม่จำเป็นต้องมี BBU


1

การ์ด RAID สามารถมีแคชได้ 1 GB แม้ว่าโดยปกติจะไม่ได้ใช้สำหรับแคชการเขียน แต่คุณสามารถสันนิษฐานได้ว่ามันจะเก็บข้อมูลที่ไม่ได้เขียนไว้เป็นจำนวนมาก

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

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

การสมมติว่า UPS รับประกันพลังงานที่ต่อเนื่องไร้เดียงสา; ถ้าเครื่องเกิดขัดข้องและคุณต้องดึงสายไฟ

ดิสก์ SATA ผู้บริโภค (และ SSD) บางครั้งก็เขียนแคชแบบซิงโครนัสด้วยเช่นกัน แต่แคชของพวกเขามีขนาดเล็กกว่ามากและการใช้งานของผู้บริโภคก็มีความต้องการน้อยกว่า

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

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