BBWC: trên lý thuyết là một ý tưởng tốt nhưng đã bao giờ lưu dữ liệu của bạn chưa?


26

Tôi quen thuộc với những gì BBWC (Bộ nhớ cache ghi pin) dự định sẽ làm - và trước đây đã sử dụng chúng trong các máy chủ của tôi ngay cả với UPS tốt. Có những thất bại nặng nề nó không cung cấp bảo vệ cho. Tôi tò mò muốn hiểu liệu nó thực sự mang lại bất kỳ lợi ích thực tế nào trong thực tế.

(NB Tôi đặc biệt tìm kiếm phản hồi từ những người có BBWC và gặp sự cố / thất bại và liệu BBWC có giúp phục hồi hay không)

Cập nhật

Sau phản hồi ở đây, tôi ngày càng hoài nghi về việc liệu BBWC có bổ sung bất kỳ giá trị nào không.

Để có sự tự tin về tính toàn vẹn dữ liệu, hệ thống tập tin PHẢI biết khi nào dữ liệu được cam kết lưu trữ không bay hơi (không nhất thiết là đĩa - một điểm tôi sẽ quay lại). Điều đáng chú ý là rất nhiều đĩa nói dối khi dữ liệu đã được cam kết vào đĩa ( http://brad.livejournal.com/2116715.html ). Mặc dù có vẻ hợp lý khi cho rằng việc vô hiệu hóa bộ đệm trên đĩa có thể làm cho các đĩa trung thực hơn, nhưng vẫn không có gì đảm bảo rằng đây cũng là trường hợp.

Do bộ đệm lớn theo kiểu chữ trong BBWC, một rào cản có thể yêu cầu nhiều dữ liệu hơn được cam kết vào đĩa do đó gây ra sự chậm trễ khi ghi: lời khuyên chung là vô hiệu hóa các rào cản khi sử dụng bộ đệm ghi lại không dễ bay hơi (và vô hiệu hóa trên- bộ nhớ đệm). Tuy nhiên, điều này dường như làm suy yếu tính toàn vẹn của hoạt động ghi - chỉ vì nhiều dữ liệu được duy trì trong bộ lưu trữ không bay hơi không có nghĩa là nó sẽ phù hợp hơn. Thật vậy, được cho là không có ranh giới giữa các giao dịch hợp lý dường như có ít cơ hội để đảm bảo tính nhất quán hơn so với khác.

Nếu BBWC thừa nhận các rào cản tại thời điểm dữ liệu đi vào bộ lưu trữ không bay hơi (thay vì được cam kết với đĩa) thì có vẻ như nó sẽ đáp ứng yêu cầu về tính toàn vẹn dữ liệu mà không bị phạt hiệu năng - ngụ ý rằng các rào cản vẫn được bật. Tuy nhiên, vì các thiết bị này thường thể hiện hành vi phù hợp với việc xả dữ liệu vào thiết bị vật lý (chậm hơn đáng kể với các rào cản) và lời khuyên rộng rãi để vô hiệu hóa các rào cản, do đó chúng không thể hành xử theo cách này. TẠI SAO KHÔNG?

Nếu I / O trong HĐH được mô hình hóa thành một chuỗi các luồng thì có một số phạm vi để giảm thiểu hiệu ứng chặn của rào cản ghi khi bộ đệm ghi được quản lý bởi HĐH - vì ở cấp độ này chỉ có giao dịch logic (một luồng duy nhất ) cần phải được cam kết. Mặt khác, một BBWC không có kiến ​​thức về các bit dữ liệu tạo nên giao dịch sẽ phải cam kết toàn bộ bộ đệm của nó vào đĩa. Liệu các nhân / hệ thống tập tin thực sự thực hiện điều này trong thực tế sẽ đòi hỏi nhiều nỗ lực hơn so với việc tôi sẵn sàng đầu tư vào lúc này.

Một sự kết hợp của các đĩa nói với các nhân tố về những gì đã được cam kết và mất điện đột ngột chắc chắn dẫn đến tham nhũng - và với một hệ thống tập tin có cấu trúc nhật ký hoặc nhật ký không thực hiện một fsck đầy đủ sau khi ngừng hoạt động, chắc chắn tham nhũng sẽ không được phát hiện. một nỗ lực được thực hiện để sửa chữa nó.

Về các chế độ của sự cố, theo kinh nghiệm của tôi, hầu hết các lần mất điện đột ngột xảy ra do mất nguồn điện lưới (dễ dàng giảm thiểu bằng một UPS và tắt máy được quản lý). Những người kéo cáp sai ra khỏi giá hàm ý hygene trung tâm dữ liệu kém (ghi nhãn và quản lý cáp). Có một số loại sự cố mất điện đột ngột không được ngăn chặn bởi UPS - sự cố trong PSU hoặc VRM, BBWC với các rào cản sẽ cung cấp tính toàn vẹn dữ liệu trong trường hợp xảy ra sự cố ở đây, tuy nhiên mức độ phổ biến như vậy là gì? Rất hiếm khi đánh giá bởi sự thiếu phản ứng ở đây.

Chắc chắn việc di chuyển khả năng chịu lỗi cao hơn trong ngăn xếp sẽ đắt hơn đáng kể so với BBWC - tuy nhiên việc triển khai một máy chủ như một cụm có rất nhiều lợi ích khác cho hiệu năng và tính khả dụng.

Một cách khác để giảm thiểu tác động của việc mất điện đột ngột là triển khai SAN - AoE biến điều này thành một đề xuất thiết thực (tôi không thực sự thấy điểm trong iSCSI) nhưng một lần nữa lại có chi phí cao hơn.


3
Các máy chủ tệp NetApp trong nhiều năm đã có bộ đệm ghi NVRAM và tôi đã có một số lượng khá lớn trong số đó bị mất nguồn và không làm hỏng hệ thống tệp của họ. Thật khó để chứng minh rằng một cái gì đó đã cứu một người, bởi vì một người đã được cứu, thảm họa đã không xảy ra; bằng chứng nào bạn sẽ tìm kiếm?
MadHatter hỗ trợ Monica

Có thể cho rằng, bạn cũng nên suy nghĩ về các chế độ thất bại của bộ đệm ghi được hỗ trợ bằng pin, trong đó bộ đệm ghi không có pin.
Stefan Lasiewski

1
Không phải là một cuộc thăm dò - tôi đã dành rất nhiều thời gian để điều tra việc này - và có thể tìm thấy nhiều thông tin về những gì BBWC phải làm - nhưng rất ít thông tin về những lợi ích đã được nhận ra trong thực tế. Lưu ý rằng phản hồi duy nhất tôi có dưới đây khi ai đó nói rằng BBWC đã lưu dữ liệu của họ là nơi không có tắt máy được quản lý trong trường hợp mất điện. Cho đến nay, không có gì bác bỏ sự nghi ngờ của tôi rằng: trong khi một BBWC có thể lưu dữ liệu của bạn trong một số trường hợp, những trường hợp này có thể tránh được bằng các phương tiện khác.
symcbean

1
Không, đó là bằng chứng cho thấy việc không có BBWC có thể làm mất dữ liệu của bạn . Chứng minh rằng - và tôi nghi ngờ hầu hết các quản trị hệ thống đường dài trên hệ thống này có những câu chuyện, nơi dữ liệu dễ bay hơi được mất trong cúp điện; Tôi chắc chắn làm điều đó - sẽ không chứng minh rằng có BBWC có thể lưu dữ liệu của bạn , đó là những gì OP yêu cầu.
MadHatter hỗ trợ Monica

1
Một số phân tích và mô hình hóa thêm cho thấy BBWC + không có rào cản nào có thể dẫn đến tham nhũng không bị phát hiện với bất kỳ bộ lập lịch IO nào ngoài NOOP (tôi có thể sai về điều này nhưng tôi đã rất cố gắng tìm ra bằng chứng để đề xuất khác). Xem thêm symcbean.blogspot.co.uk/2014/03/ từ
symcbean

Câu trả lời:


34

Chắc chắn rồi. Tôi đã có bộ đệm được hỗ trợ bằng pin (BBWC) và bộ đệm ghi được hỗ trợ flash (FBWC) sau đó bảo vệ dữ liệu trên máy bay sau sự cố và mất điện đột ngột.

Trên các máy chủ HP ProLiant, thông báo tiêu biểu là:

POST Error: 1792-Drive Array Reports Valid Data Found in Array Accelerator

Điều đó có nghĩa là, " Này, có dữ liệu trong bộ đệm ghi còn tồn tại khi khởi động lại / mất điện !! Tôi sẽ ghi lại vào đĩa ngay bây giờ !! "

Một trường hợp thú vị là cái chết của tôi về một hệ thống bị mất điện trong cơn lốc xoáy , chuỗi mảng là:

POST Error: 1793-Drive Array - Array Accelerator Battery Depleted - Data Loss
POST Error: 1779-Drive Array Controller Detects Replacement Drives
POST Error: 1792-Drive Array Reports Valid Data Found in Array Accelerator

Lỗi POST 1793 là duy nhất. - Trong khi hệ thống đang sử dụng, nguồn điện bị gián đoạn trong khi dữ liệu nằm trong bộ nhớ Bộ gia tốc mảng. Tuy nhiên, do thực tế đây là một cơn lốc xoáy, nguồn điện không được phục hồi trong vòng bốn ngày, do đó, các mảng pin đã cạn kiệt và dữ liệu bên trong bị mất. Máy chủ có hai bộ điều khiển RAID. Bộ điều khiển khác có bộ phận FBWC, tồn tại lâu hơn nhiều so với pin. Ổ đĩa đó đã phục hồi đúng cách. Một số lỗi dữ liệu dẫn đến mảng được hỗ trợ bởi pin trống.


Mặc dù có rất nhiều thời gian chạy pin tại cơ sở, bốn ngày không có nguồn điện và các điều kiện nguy hiểm khiến mọi người không thể tắt máy chủ một cách an toàn. nhập mô tả hình ảnh ở đây


5
Rất nhiều thông tin, công việc tốt để giữ những đầu ra đó trong thời gian dài.
deed02392

Hấp dẫn! Tôi tự hỏi liệu HP có kế hoạch đưa vào bộ điều khiển Mảng thông minh cùng bộ đệm không có pin mà họ đặt trong P2000
Gabriel Talavera

4
@GabrielTalavera Có, HP đã sử dụng bộ đệm (tụ điện) được hỗ trợ flash từ năm 2010 hoặc lâu hơn. Không còn pin.
ewwhite

Tương tự ở đây bằng cách sử dụng Adaptec;) Không còn phải lo lắng và thay thế thường xuyên.
TomTom

Cảm ơn ewwhite - chính xác là loại điều tôi đang tìm kiếm. Một câu hỏi: điều gì đã xảy ra với nguồn điện của UPS? Có phải UPS của bạn không làm sập hệ thống khi thấp?
symcbean

10

Vâng, đã có trường hợp đó.

Máy chủ "không có UPS" trong trung tâm dữ liệu (với trung tâm dữ liệu có UPS). Lỗi PDU - hệ thống bị sập mạnh. Không mất dữ liệu.

Và cơ bản là vậy. Điểm hay của BBWC là nó nằm trong máy. Có một UPS - tin tôi đi, đôi khi ai đó làm điều gì đó ngu ngốc (như kéo nhầm cáp). Một UPS là bên ngoài. Ôi, cáp đó;)


Cảm ơn TomTom. Vì vậy, nó cho phép bạn chuyển tiếp dữ liệu của mình sang rào cản tiếp theo thay vì quay ngược lại dữ liệu trước đó (trừ khi bạn không sử dụng nhật ký hoặc ghi nhật ký hệ thống tệp có cấu trúc). Đây là một trong những điểm chính tôi đang cố gắng đánh giá ở đây. Nó dường như có khả năng duy trì tốt hơn một chút cho vai trò máy chủ tệp, nhưng không giúp ích cho tính toàn vẹn của hệ thống tệp hoặc OLTP DB.
symcbean

Về mặt thực tế, OLTP được cấu trúc để xử lý các sự cố mất điện của máy chủ một cách duyên dáng miễn là bản ghi nhật ký được viết một cách chính xác;) mất dữ liệu, trừ khi bạn có bộ đệm không biến động.
TomTom

Tôi lưu ý rằng RedHat là ý kiến ​​bạn nên vô hiệu hóa các rào cản với BBWC - trong khi điều đó sẽ cải thiện hiệu suất, nó không bảo vệ trong trường hợp mất điện đột ngột như mất điện - erk! access.redhat.com/site/documentation/en-US/ từ
symcbean

@symcbean Bạn không nên bị mất điện đột ngột trong môi trường của mình. Đó là một trong những tình huống dễ ngăn chặn nhất. Tại sao làm cho máy chủ của bạn chạy như tào lao 100% thời gian cho một sự cố tương đối không thường xuyên?
ewwhite

1
Trên thực tế, toàn bộ lý do BBWC tồn tại là để giảm thiểu vấn đề mất điện đột ngột. Do đó, không có rào cản.
TomTom

4

Tôi đã có 2 trường hợp bộ nhớ cache được hỗ trợ bằng pin trong bộ điều khiển RAID RAID bị lỗi hoàn toàn (ở 2 công ty riêng biệt).

BBC dựa vào ý tưởng không có gì ngạc nhiên khi pin hoạt động. Điều đáng chú ý là tại một số thời điểm, pin trong bộ điều khiển bị hỏng và điều tàn khốc là trong nhiều bộ điều khiển đột kích CTNH, nó bị hỏng một cách âm thầm . Chúng tôi nghĩ rằng chúng tôi có một bộ đệm được bảo vệ chống mất điện nhưng chúng tôi đã không làm thế.

Khi mất điện, mất dữ liệu mảng RAID rất lớn đến nỗi tất cả các nội dung trên đĩa đều không thể phục hồi được. Mọi thứ đã mất. Một trong những trường hợp liên quan đến một máy dành riêng cho thử nghiệm, nhưng vẫn còn.

Sau đó tôi nói "không bao giờ nữa", chuyển sang nhân bản đĩa dựa trên phần mềm (mdadm) trong các fs dựa trên tạp chí Linux + có khả năng phục hồi tốt chống mất điện (ext4) và không bao giờ nhìn lại. Cấp, tôi đã sử dụng nó trên các máy chủ không có mức sử dụng IO rất cao.


Cảm ơn JD: mặc dù không cụ thể những gì tôi đã hỏi về tôi có thể thấy rằng điều này có liên quan nhiều đến các giả định mà mọi người đưa ra về BBWC. Nó tạo ra tiếng vang với rất nhiều cuộc thảo luận về phần cứng và phần mềm RAID, tôi nghĩ rằng tôi nên tiết lộ cho hậu thế rằng RAID phần mềm không loại trừ việc sử dụng bộ điều khiển bộ đệm (dễ bay hơi hoặc khác).
symcbean

Thẻ đột kích IME, Dell và HP sẽ khiếu nại (giả sử bạn có hệ thống giám sát phù hợp) về pin bị lỗi trong BBWC.
mfinni

Các quy trình thích hợp cho BBWC phải bao gồm kiểm tra pin - ví dụ: bộ điều khiển 3 phần mềm sẽ cảnh báo bạn nếu pin chưa được kiểm tra trong một khoảng thời gian và thật dễ dàng để kiểm tra rằng pin vẫn còn khỏe (nhược điểm duy nhất là bộ đệm ghi bị vô hiệu hóa trong quá trình kiểm tra).
iustin

4

Điều này dường như cần một câu trả lời thứ hai cho câu hỏi ...

Tôi vừa có một máy chủ VMware ESXi độc lập bị mất một ổ đĩa trong mảng RAID 5. Mảng xuống cấp ảnh hưởng đến hiệu suất ở cấp độ VM và ứng dụng.

Smart Array P410i in Slot 0 (Embedded)    (sn: 5001438011138950)

   array A (SAS, Unused Space: 0  MB)

      logicaldrive 1 (1.6 TB, RAID 5, Recovering, 42% complete)

      physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SAS, 300 GB, OK)
      physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SAS, 300 GB, Rebuilding)
      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SAS, 300 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SAS, 300 GB, OK)
      physicaldrive 2I:1:5 (port 2I:box 1:bay 5, SAS, 300 GB, OK)
      physicaldrive 2I:1:6 (port 2I:box 1:bay 6, SAS, 300 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, SAS, 300 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, SAS, 300 GB, OK, spare)

Nhân viên IT tại công ty này đã không biết rằng một ổ đĩa bị lỗi và cứng thiết lập lại máy chủ ( để làm cho tất cả tốt hơn? ).

Hiệu quả thú vị của việc thực hiện điều này đối với một mảng bị xâm phạm với các máy ảo bận rộn chạy trên đỉnh là:

Chi tiết trạng thái bộ đệm: Bộ điều khiển mảng hiện tại có dữ liệu hợp lệ được lưu trữ trong bộ đệm ghi lại pin / tụ điện vào lần cuối cùng được đặt lại hoặc được cấp nguồn. Điều này chỉ ra rằng hệ thống có thể chưa được tắt một cách duyên dáng. Bộ điều khiển mảng đã tự động ghi hoặc đã cố ghi dữ liệu này vào các ổ đĩa. Thông báo này sẽ tiếp tục được hiển thị cho đến khi thiết lập lại hoặc chu kỳ nguồn tiếp theo của bộ điều khiển mảng.

Vì vậy, mặc dù hệ thống đã bị dừng đột ngột, dữ liệu trên chuyến bay đã được BBWC bảo vệ. Tất cả các máy ảo đã phục hồi đúng cách và hệ thống hiện đang hoạt động tốt.


3

Ngoài việc "lưu dữ liệu của bạn", chúng còn tốt cho những thứ khác. Họ cũng rất giỏi trong việc ghi đệm (trong bộ đệm) để cải thiện hiệu năng của hệ thống con IO bằng cách giữ cho hàng đợi ghi đĩa thấp. Điều này đặc biệt quan trọng đối với các máy chủ có hiệu suất tương tác là tối quan trọng - ví dụ: Citrix XenApp hoặc Windows Terminal Services.

Điều này ít quan trọng hơn đối với máy chủ web hoặc máy chủ tệp. Bạn có thể không nhận thấy, hoặc thậm chí đã quen với một chút độ trễ. Tuy nhiên, khi bạn bấm vào một biểu tượng trong ứng dụng Office, bạn sẽ mong đợi sự phản hồi. Và CEO của bạn cũng vậy.


"Tôi quen thuộc với những gì BBWC (Bộ nhớ cache ghi pin) dự định sẽ làm"
symcbean

2
Bạn cũng nói: "Tôi tò mò muốn hiểu liệu nó có thực sự mang lại lợi ích thực sự nào trong thực tế hay không." Tôi đã cho bạn (và độc giả tương lai) một cái cụ thể. Từ câu hỏi của bạn, không có gì rõ ràng rằng bạn biết về lợi ích này. Và câu trả lời của tôi không sai.
mfinni

Vậy làm thế nào để các điểm bạn thực hiện khác với bộ đệm ghi dễ bay hơi?
symcbean

Rõ ràng đó tính năng bạn nhận thức được. Nhưng một lần nữa, bạn đã không làm rõ điều đó. @mfinni chỉ là hữu ích.
deed02392

Một số hệ thống sẽ không cho phép bạn kích hoạt bộ đệm ghi dễ bay hơi, vì vậy có. Nhưng không, nếu bạn không quan tâm đến dữ liệu và bạn có thể sử dụng bộ đệm ghi dễ bay hơi, thì hãy tìm nó.
mfinni
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.