RAID0 thay vì RAID1 hay 5, điều này có điên không?


14

Tôi đang xem xét sử dụng thiết lập RAID0 cho một trong các cụm SQL Server của chúng tôi. Tôi sẽ phác thảo tình hình và đang tìm kiếm lý do tại sao điều này có thể là một ý tưởng tồi. Ngoài ra nếu ai đó bạn có các trường hợp sử dụng, sách trắng hoặc tài liệu khác mà bạn có thể chỉ cho tôi về chủ đề này, điều đó sẽ rất tuyệt.

Chúng tôi có 3 máy chủ trong 2 trung tâm dữ liệu là một phần của cụm SQL. Tất cả họ đều đang chạy SQL Server trong Nhóm sẵn có. Chính có một bản sao ngồi ngay bên cạnh và một bản khác trong trung tâm dữ liệu khác. Họ đang chạy sao chép đồng bộ với chuyển đổi dự phòng tự động. Tất cả các ổ đĩa là SSD cấp doanh nghiệp. Họ sẽ chạy SQL Server 2017 hoặc 2019.

Tôi nghĩ rằng sẽ có nhiều lợi ích khi chạy chúng trên mảng RAID0 so với các phương thức khác với một số nhược điểm thực sự nếu có. Điểm trừ duy nhất tôi hiện đang thấy là thiếu sự dư thừa trên máy chủ chính, do đó, nó không tăng. Như ưu điểm:

  1. Nếu một ổ đĩa bị lỗi, thay vì chạy trong trạng thái chậm, xuống cấp cho đến khi ai đó nhận được thông báo hành động thủ công trên đó, máy chủ sẽ ngay lập tức không thể duy trì khả năng hoạt động đầy đủ thứ cấp. Điều này sẽ có thêm lợi ích thông báo cho chúng tôi về việc chuyển đổi dự phòng, vì vậy chúng tôi có thể điều tra nguyên nhân sớm hơn.

  2. Nó làm giảm khả năng thất bại tổng thể trên mỗi khả năng TB. Vì chúng tôi không cần ổ đĩa chẵn lẻ hoặc gương, chúng tôi giảm số lượng ổ đĩa trên mỗi mảng. Với ít ổ đĩa hơn, có ít khả năng xảy ra lỗi ổ đĩa hơn.

  3. Nó rẻ hơn. Cần ít ổ đĩa hơn cho dung lượng yêu cầu của chúng tôi rõ ràng chi phí ít hơn.

Tôi biết đây không phải là suy nghĩ kinh doanh thông thường, nhưng có điều gì tôi không xem xét? Tôi thích bất kỳ đầu vào hoặc pro hoặc con.

Tôi không cố gắng làm điều này để tăng hiệu suất truy vấn, mặc dù nếu có những người có ý nghĩa hãy thoải mái chỉ ra chúng. Mối quan tâm chính của tôi là không xem xét hoặc giải quyết vấn đề đáng tin cậy hoặc dư thừa mà tôi chưa từng nghĩ đến.

HĐH nằm trên một ổ đĩa nhân đôi riêng biệt, vì vậy bản thân máy chủ nên ở lại. Một trong những ổ đĩa đó có thể được thay thế và nhân đôi. Nó nhỏ và không có bất kỳ tệp cơ sở dữ liệu nào ngoài DB hệ thống trên đó. Tôi không thể tưởng tượng nó mất nhiều phút hơn. Nếu một trong các mảng dữ liệu bị lỗi, chúng tôi sẽ thay thế ổ đĩa, xây dựng lại mảng, khôi phục và đồng bộ lại với AG. Theo kinh nghiệm cá nhân của tôi, việc khôi phục đã NHIỀU hơn so với việc xây dựng lại ổ RAID5. Tôi chưa bao giờ bị lỗi RAID1, vì vậy tôi không biết việc xây dựng lại sẽ nhanh hơn hay không. Các phần khôi phục sẽ đến từ bản sao lưu và được chuyển tiếp để khớp với bản chính, do đó, việc tăng tải trên máy chủ chính sẽ rất nhỏ chỉ đồng bộ hóa vài phút cuối cùng của bản ghi với bản sao được phục hồi.


1
Thảo luận về câu hỏi này đã được chuyển sang trò chuyện .
Paul White phục hồi Monica

Câu trả lời:


19

Có một khía cạnh rất quan trọng tôi nghĩ bạn đang thiếu trong đánh giá của bạn:

Làm thế nào để bạn có kế hoạch để phục hồi?

Khi raid5 mất một ổ đĩa, nó sẽ chạy trong trạng thái xuống cấp cho đến khi nó tự động phục hồi. (Ít nhất là nếu bạn có một phụ tùng nóng trong tay.)

Khi một raid0 mất một ổ đĩa, nó không bao giờ có thể phục hồi được. Điều này có nghĩa là bạn đã mất dự phòng và để khôi phục nó, bạn cần xây dựng lại raid0 của mình và sao chép tất cả dữ liệu (không chỉ dữ liệu trên ổ đĩa bị hỏng) trở lại từ thứ cấp hiện đang tải. Đó là, thay vì mảng raid5 đã xuống cấp, giờ đây toàn bộ thiết lập sản xuất của bạn đã đạt được hiệu suất.

Nếu raid5 (hoặc raid6) hình phạt hiệu suất nhà nước xuống cấp không phải là thứ bạn có thể đối phó, thì có lẽ bạn nên thực hiện đột kích 1 + 0 thay vào đó . Vâng, chi phí cao hơn, nhưng giá đĩa là những gì họ đang có, đó sẽ là tiền chi tiêu tốt.

Có lẽ "chủ động theo dõi trạng thái raid5 và chuyển tải khỏi chính khi ổ đĩa bị lỗi" là giải pháp mang lại cho bạn hầu hết các lợi ích mà không có bất kỳ nhược điểm nào? (Ngoài mất yếu tố mát của chạy mà không có bất kỳ dư thừa địa phương, tất nhiên). Nếu phục hồi ổ đĩa RAID5 của bạn mất nhiều thời gian hơn rất nhiều so một hoàn chỉnh đồng bộ hóa dữ liệu cơ sở dữ liệu, hoặc phần mềm đột kích của bạn là hành động kỳ lạ, hoặc bạn có nghiêm túc đĩa quá khổ, Tôi nghĩ rằng.


16

Lỗi ổ đĩa nên được xem xét ở đây.

Hãy tưởng tượng trong một giây rằng các ổ đĩa của chúng tôi vào bất kỳ ngày cụ thể nào có tỷ lệ thất bại 1/1000. Hãy tưởng tượng rằng chúng ta có 20 ổ đĩa trong mỗi 3 mảng.

Do đó, khả năng một ổ đĩa bị lỗi trong một mảng là 20/1000 = 1/50. Khả năng hai ổ đĩa bị lỗi trong cùng một mảng là khoảng 20/1000 * 20/1000 / 2 = 200/1000000 = 1/5000. Vì vậy, bằng cách chuyển từ RAID 0 sang RAID 5, chúng tôi đã ít có khả năng giết chết một trong các mảng của mình.

Vì vậy, chúng ta có thể thực hiện điều này hơn nữa - nếu cơ hội của một mảng thất bại trong một ngày là 1/50, thì khả năng hai mảng bị lỗi trong một ngày là 1 / (50 * 50) = 1/2500. Khả năng hai mảng RAID 0 giống nhau bị lỗi là gấp đôi so với một mảng RAID 5 bị lỗi, giả sử cùng một bộ đĩa. Sự gia tăng theo cấp số nhân này về khả năng thất bại sẽ khiến bạn lo lắng, vì nó ồ ạt làm tăng khả năng nhiều hơn một mảng thất bại cùng một lúc.

Vì các đĩa này có thể có tuổi thọ cao, bạn có thể chạy các số như trên và trực tiếp xem điều này sẽ có ảnh hưởng gì đến độ tin cậy - nếu bạn có thể đăng thông số kỹ thuật ổ đĩa, tôi có thể thêm tính toán đó vào bài đăng này. Liệu rủi ro có được chấp nhận hay không là do tổ chức của bạn quyết định.

Một mục khác cần lưu ý là khả năng lỗi ổ đĩa có thể tăng lên bằng cách sử dụng SSD được sản xuất trong cùng một lô (cùng nhà máy, cùng thời gian). Nếu bạn không cẩn thận, bạn có thể kết thúc với cả 3 nút bị hỏng vì vấn đề này.

Tuyên bố miễn trừ trách nhiệm: Các tính toán trên đã được đơn giản hóa - chúng vẫn tương đối chính xác.


Cuộc trò chuyện về câu trả lời này đã được chuyển sang trò chuyện .
Paul White phục hồi Monica

13

Tôi nghĩ rằng sẽ có nhiều lợi ích khi chạy chúng trên mảng RAID0 so với các phương thức khác với một số nhược điểm thực sự nếu có.

Đây là một cấu hình khá phổ biến khi chạy AG với các ổ lưu trữ gắn trong / trực tiếp. Đặc biệt với NVMe hoặc các thiết bị lưu trữ flash dựa trên PCI khác.

Nó chỉ đơn giản là số tiền để xử lý một lỗi ổ đĩa như lỗi máy chủ. Với số lượng ổ đĩa trạng thái rắn nhỏ, bạn thực sự không có MTBF cho các ổ đĩa thấp hơn đáng kể so với các thành phần trạng thái rắn khác của máy chủ, và vì vậy bạn chỉ coi mỗi ổ đĩa là một điểm không thành công cho máy chủ và thay thế / xây dựng lại máy chủ trong trường hợp ổ đĩa bị lỗi.


2

Tôi đang tò mò về những gì bạn đang cố gắng để đạt được? Bạn đề cập đến bản thân rằng bạn không cố gắng đạt được hiệu suất từ ​​thiết lập này, vậy bạn đang cố gắng đạt được điều gì?

Lưu ý về vấn đề hiệu năng: nếu bạn đang chạy SSD Lớp doanh nghiệp, tính toán RAID của bạn có thực sự là một điểm nghẽn mà bạn cần cải thiện không?

Lấy 3 ưu điểm của bạn, tôi không nghĩ bạn đã nghĩ đủ:

  1. SQL sẽ chuyển đổi ngay lập tức? Điều gì sẽ khiến failover tự động kích hoạt? Máy chủ sẽ lấy ổ đĩa ngoại tuyến ngay khi có ai đó chạm vào nó? Điều gì nếu nó chỉ là một khu vực xấu trên một đĩa? Nếu SQL không đánh vào khu vực xấu, nó có chuyển đổi dự phòng không? Tôi không chắc chắn 100% về điều đó.

  2. Liệu nó có làm giảm cơ hội thất bại tổng thể trên mỗi khả năng TB. Suy nghĩ của bạn dường như là ít đĩa hơn có nghĩa là ít điểm thất bại hơn, nhưng tôi không nghĩ điều đó đúng. Tỷ lệ thất bại của 1 đĩa vẫn giữ nguyên nếu bạn có 1 đĩa hoặc 10 đĩa (hoặc 100 đĩa), nhưng với RAID 0, điều đó cũng có nghĩa đó là một thất bại thảm hại.

  3. Là một ổ SSD phụ sẽ tốn quá nhiều chi phí để bạn có được RAID5? Tôi hiểu làm thế nào RAID1 HOẶC 1 + 0 có thể thổi ngân sách, nhưng thêm 1 đĩa?

Không có dự phòng, nếu một đĩa bị lỗi và RAID không hoạt động, nút đó sẽ ngoại tuyến cho đến khi bạn xây dựng lại RAID và khôi phục tất cả các cơ sở dữ liệu của bạn từ đầu. Quá trình bạn sẽ làm gì để thực hiện điều đó? Bạn không thể xóa cơ sở dữ liệu khỏi Nhóm khả dụng vì điều đó sẽ dừng sao chép sang DR, nhưng nếu bạn không thực hiện một số hành động thì hai máy chủ khác sẽ không thể cắt các tệp nhật ký của chúng. Ổn chứ? Điều gì xảy ra nếu nó thất bại vào tối thứ Sáu của một ngày cuối tuần dài? Vẫn ổn chứ Người thứ hai của bạn có thể đối phó với lượng dữ liệu đó tích tụ không?

Những câu hỏi cuối cùng của tôi sẽ là khoảng thời gian xây dựng lại mà bạn đề cập sẽ nhanh hơn. Bạn có chắc chắn 100% sẽ nhanh hơn không? Nhanh hơn bao nhiêu?

Thiết lập máy chủ Brent Ozar vẫn là hướng dẫn tiếp theo của tôi để thiết lập các phiên bản SQL mới. Điểm đầu tiên trong hướng dẫn là xác thực rằng bạn không sử dụng RAID0 cho bất kỳ ổ đĩa nào.

==== CẬP NHẬT ====

Thêm một suy nghĩ, điều gì xảy ra khi các máy chủ thứ cấp của bạn không đồng bộ với máy chủ chính của bạn? Ngay cả với Sao chép đồng bộ, các ứng dụng phụ của bạn vẫn có thể tự động trở lại không đồng bộ và một khi chúng làm bạn mất khả năng tự động chuyển đổi dự phòng vì mọi chuyển đổi dự phòng sẽ dẫn đến mất dữ liệu. Một vài ví dụ khi điều này có thể xảy ra:

  1. Xây dựng lại một chỉ số rất lớn - sao chép có thể bị tụt lại phía sau trên một hoặc cả hai thứ hai
  2. Lỗi đĩa trên RAID0 trong khi vá thứ cấp. Máy chủ bạn đang vá có thể không thể quay lại trực tuyến do chính đang ngoại tuyến.

Chúng là những trường hợp cạnh, nhưng có thể là thảm họa tùy thuộc vào những gì đã mất trong thời gian đó.


Thêm vào quan điểm của bạn trên # 3, nếu chi phí của một đĩa phụ (hoặc ba) là thứ tạo ra hoặc phá vỡ ngân sách, thì tiền sẽ đến đâu để thay thế khi một đĩa bị lỗi?
một CVn

@Greg Thực tế là tôi có thể không nghĩ mọi thứ thông qua là tại sao tôi lại hỏi câu hỏi này. Tôi đoán tôi sẽ nói rằng tôi đang nhìn thấy nơi tôi có thể cải thiện hiệu quả nói chung. Để trả lời câu hỏi của bạn: 1. Có. Sự thất bại của mảng sẽ ngay lập tức khiến AG thất bại trước một nút khác. Một khu vực xấu phụ thuộc vào việc đó có phải là lỗi bit có thể phục hồi hay không, nhưng điều này sẽ gây ra lỗi cho dù đĩa có ở bất kỳ loại RAID nào hay không. 2. Ít đĩa hơn sẽ làm giảm khả năng thất bại trong mảng. RAID0 sẽ tăng khả năng thất bại của mảng. 3. Không, tiết kiệm tiền là perk.
zsqlman

@Greg Câu hỏi tiếp theo tốt và một số câu hỏi mà tôi chưa hoàn thành. Có rất nhiều lớp dự phòng với các máy chủ là ba. Khôi phục tất cả các cơ sở dữ liệu có thể dễ dàng được viết kịch bản. Nếu một nút thất bại, chúng tôi sẽ loại bỏ bản sao đó từ AG loại bỏ vấn đề tồn đọng Tlog và ngay cả khi chúng tôi không xóa nút đó, chúng tôi vẫn còn nhiều khoảng trống để chứa sự tăng trưởng nhật ký trong vài ngày. Về thời gian phục hồi, tôi chỉ có một điểm dữ liệu và không có thêm phần cứng dự phòng để kiểm tra. Chúng tôi chỉ có 1 lỗi RAID và phải mất hơn 2 ngày để khôi phục và chúng tôi có thể khôi phục trong 8 giờ.
zsqlman

@zsqlman - Tôi đã thêm một thời gian khi bạn có thể mất dữ liệu vì bạn không có RAID. Ngoài ra, logic bạn áp dụng để giảm thất bại tôi nghĩ vẫn còn thiếu sót. Tỷ lệ một đĩa bị lỗi với ít đĩa hơn trong RAID cũng giống như 1 đĩa bị lỗi với sự dư thừa trong RAID. Việc giảm số lượng đĩa không làm giảm nguy cơ xảy ra bất kỳ một ổ đĩa nào - mỗi đĩa cũng có khả năng bị lỗi như bất kỳ ổ đĩa nào khác.
Greg

Bạn đúng rằng mỗi đĩa có cùng tỷ lệ thất bại. Ít đĩa hơn có nghĩa là ít cơ hội thất bại.
zsqlman
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.