ZFS thực hành tốt nhất với RAID phần cứng


30

Nếu ai đó tình cờ có một số phần cứng cấp máy chủ, thì có nên chạy ZFS trên RAID1 dựa trên phần cứng hoặc một số như vậy không? Nên tắt RAID dựa trên phần cứng và chạy ZFS trên một mirrorhoặc raidz zpoolthay vào đó?

Khi chức năng RAID phần cứng bị tắt, các bộ điều khiển SATA2 và SAS dựa trên phần cứng có ít nhiều khả năng che giấu các lỗi đọc và ghi so với các bộ điều khiển RAID không phải phần cứng không?

Đối với các máy chủ không thể tùy chỉnh, nếu có tình huống bộ điều khiển RAID phần cứng có hiệu quả trung lập về chi phí (hoặc thậm chí giảm chi phí cung cấp máy chủ dựng sẵn, vì sự hiện diện của nó giúp cải thiện khả năng công ty lưu trữ cung cấp IPMI bổ sung truy cập), có nên tránh tất cả? Nhưng nó có nên được tìm kiếm?



2
@ShaneMadden, các câu hỏi tương tự nhau, tuy nhiên, câu hỏi của tôi xuất phát từ quan điểm của cuộc đột kích phần cứng là xấu về mặt zfs, và tôi đang hỏi nó tệ đến mức nào; đồng thời, xem xét rằng câu trả lời được chấp nhận cho câu hỏi được liên kết của bạn hoàn toàn không giải quyết câu hỏi của tôi; câu hỏi của tôi giống như một câu hỏi tiếp theo cho câu hỏi bạn đã liên kết.
cnst

"ZFS trên đầu trang của Mirror Mirroring, hay chỉ là gương trong ZFS?" và câu hỏi này là hai chủ đề khác nhau. Đó là chủ đề khác hẹp hơn trong phạm vi sau đó chủ đề này.
Stefan Lasiewski

@ewwhite, bạn đã hỏi điều này chưa?
cnst

@cnst Vâng, không có câu trả lời được đánh dấu, và người giữ downvoting câu trả lời của tôi. Vì vậy, sẽ rất tốt nếu có một số kết thúc cho câu hỏi được đặt ra. ( đó là việc phải làm có trách nhiệm )
ewwhite

Câu trả lời:


17

Ý tưởng với ZFS là để cho nó biết càng nhiều càng tốt cách các đĩa hoạt động. Sau đó, từ tồi tệ nhất đến tốt hơn:

  • Cuộc đột kích phần cứng (ZFS hoàn toàn không có manh mối về phần cứng thực sự),
  • Chế độ JBOD (Vấn đề liên quan đến bất kỳ thiết bị mở rộng tiềm năng nào: băng thông ít hơn),
  • Chế độ HBA là lý tưởng (ZFS biết mọi thứ về các đĩa)

Vì ZFS khá hoang tưởng về phần cứng, càng ít ẩn, nó càng có thể đối phó với bất kỳ vấn đề phần cứng nào. Và như Sammitch đã chỉ ra , các cấu hình Bộ điều khiển RAID và ZFS có thể rất khó khôi phục hoặc cấu hình lại khi nó bị lỗi (tức là lỗi phần cứng).

Về vấn đề phần cứng được tiêu chuẩn hóa với một số bộ điều khiển RAID phần cứng, hãy cẩn thận rằng bộ điều khiển phần cứng có chế độ truyền qua hoặc JBOD thực sự.


10
Cũng đáng lưu ý rằng nếu bạn đang sử dụng RAID RAID và bộ điều khiển của bạn chết [xảy ra nhiều hơn bạn nghĩ] nếu bạn không thể nhận được một sự thay thế giống hệt hoặc hoàn toàn tương thích, bạn sẽ bị mắc kẹt. Mặt khác, nếu bạn đưa các đĩa thô cho ZFS, bạn có thể cắm các đĩa đó trở lại vào bất kỳ bộ điều khiển nào trên bất kỳ máy nào và ZFS có thể tái tạo lại mảng và tiếp tục như không có gì xảy ra.
Sammitch

1
Các máy chủ cao cấp thường có bộ điều khiển RAID trên bo mạch. Ví dụ, tôi chưa bao giờ phải thay thế bộ điều khiển trên hệ thống HP hoặc Dell.
ewwhite

2
Câu trả lời này không trả lời bất cứ điều gì. Nó chỉ thể hiện ý kiến ​​thiên vị, rằng nhà cung cấp phần cứng máy chủ và lập trình viên ZFS đã làm tốt hơn so với nhà cung cấp bộ điều khiển RAID và lập trình viên phần mềm RAID. Cộng đồng FreeNAS có rất nhiều kẻ đã giết Zpool của họ với bộ nhớ máy chủ bị trục trặc hoặc nguồn cung cấp năng lượng không phù hợp. Cơ hội mà một cái gì đó lớn thất bại cao hơn một cái gì đó nhỏ.
ceving

14

H: Nếu một người tình cờ có một số phần cứng cấp máy chủ, thì có nên chạy ZFS trên RAID1 dựa trên phần cứng hoặc một số như vậy không?

A. Tốt nhất là chạy ZFS thẳng vào đĩa và không sử dụng bất kỳ hình thức RAID nào ở giữa. Việc một hệ thống có yêu cầu bạn sử dụng thẻ RAID một cách hiệu quả hay không, việc sử dụng ZFS có liên quan nhiều đến lợi ích KHÁC của ZFS hơn là khả năng phục hồi dữ liệu. Nói thẳng ra, nếu có một thẻ RAID cơ bản chịu trách nhiệm cung cấp một LUN duy nhất cho ZFS, ZFS sẽ không cải thiện khả năng phục hồi dữ liệu. Nếu lý do duy nhất của bạn để sử dụng ZFS ở nơi đầu tiên là cải thiện khả năng phục hồi dữ liệu, thì bạn đã mất tất cả lý do để sử dụng nó. Tuy nhiên, ZFS cũng cung cấp ARC / L2ARC, nén, chụp nhanh, nhân bản và nhiều cải tiến khác mà bạn cũng có thể muốn, và trong trường hợp đó, có lẽ đó vẫn là hệ thống tệp bạn chọn.

Q. Có nên tắt RAID dựa trên phần cứng và chạy ZFS trên gương hoặc raidz zpool không?

A. Vâng, nếu có thể. Một số thẻ RAID cho phép chế độ chuyển qua. Nếu nó có nó, đây là điều tốt nhất để làm.

H: Khi chức năng RAID phần cứng bị tắt, các bộ điều khiển SATA2 và SAS dựa trên phần cứng có ít nhiều khả năng che giấu các lỗi đọc và ghi so với các bộ điều khiển RAID không phải phần cứng không?

A. Điều này hoàn toàn phụ thuộc vào thẻ RAID được đề cập. Bạn sẽ phải xem qua hướng dẫn hoặc liên hệ với nhà sản xuất / nhà cung cấp thẻ RAID để tìm hiểu. Một số rất nhiều, vâng, đặc biệt là nếu 'tắt' chức năng RAID không thực sự tắt hoàn toàn.

Q. Về mặt máy chủ không thể tùy chỉnh, nếu một người gặp phải tình huống bộ điều khiển RAID phần cứng có hiệu quả trung lập về chi phí (hoặc thậm chí giảm chi phí cung cấp máy chủ dựng sẵn, vì sự hiện diện của nó giúp cải thiện khả năng của công ty lưu trữ cung cấp truy cập IPMI bổ sung), có nên tránh tất cả? Nhưng nó có nên được tìm kiếm?

A. Đây là câu hỏi tương tự như câu hỏi đầu tiên của bạn. Một lần nữa - nếu mong muốn duy nhất của bạn là sử dụng ZFS là cải thiện khả năng phục hồi dữ liệu và nền tảng phần cứng được chọn của bạn yêu cầu thẻ RAID cung cấp một LUN cho ZFS (hoặc nhiều LUN, nhưng bạn có sọc ZFS trên chúng), thì bạn đang làm không có gì để cải thiện khả năng phục hồi dữ liệu và do đó lựa chọn ZFS của bạn có thể không phù hợp. Tuy nhiên, nếu bạn thấy bất kỳ tính năng ZFS nào khác hữu ích, thì nó vẫn có thể.

Tôi muốn thêm một mối quan tâm - các câu trả lời trên dựa trên ý tưởng rằng việc sử dụng thẻ RAID phần cứng bên dưới ZFS không có gì gây hại cho ZFS ngoài việc loại bỏ khả năng cải thiện khả năng phục hồi dữ liệu. Sự thật là đó là một khu vực màu xám. Có nhiều điều chỉnh và giả định khác nhau trong ZFS không nhất thiết phải hoạt động tốt khi trao các LUN đa đĩa thay vì các đĩa thô. Hầu hết những điều này có thể được phủ nhận với điều chỉnh thích hợp, nhưng ngoài khả năng, bạn sẽ không hiệu quả trên ZFS trên đỉnh RAID LUN lớn như bạn đã từng ở trên các trục chính riêng lẻ.

Hơn nữa, có một số bằng chứng cho thấy cách thức rất khác nhau trong đó ZFS nói chuyện với LUN trái ngược với các hệ thống tệp truyền thống hơn thường gọi các đường dẫn mã trong bộ điều khiển RAID và khối lượng công việc mà chúng không được sử dụng, có thể dẫn đến sự kỳ quặc. Đáng chú ý nhất, có lẽ bạn sẽ tự làm cho mình một lợi ích bằng cách vô hiệu hóa hoàn toàn chức năng ZIL trên bất kỳ nhóm nào bạn đặt trên một LUN duy nhất nếu bạn cũng không cung cấp một thiết bị nhật ký riêng, mặc dù tất nhiên tôi rất khuyến nghị bạn NÊN cung cấp cho nhóm một thiết bị ghi nhật ký riêng (không phải là LUN từ thẻ RAID, nếu có thể).


9

Tôi chạy ZFS trên cấu hình HP ProLiant Smart Array RAID khá thường xuyên.

Tại sao?

  • Bởi vì tôi thích ZFS cho phân vùng dữ liệu, không phải phân vùng khởi động.
  • Bởi vì Linux và ZFS khởi động có lẽ không đủ khả năng cho tôi ngay bây giờ.
  • Bởi vì bộ điều khiển RAID HP không cho phép truyền qua thiết bị RAW . Cấu hình nhiều ổ RAID 0 không giống như đĩa RAW.
  • Bởi vì backplanes của máy chủ thường không đủ linh hoạt để dành các khoang ổ đĩa cho một bộ điều khiển cụ thể hoặc phân chia nhiệm vụ giữa hai bộ điều khiển. Những ngày này, bạn thấy các thiết lập 8 và 16 vịnh thường xuyên nhất. Không phải lúc nào cũng đủ để phân khúc theo cách mọi thứ nên được.
  • Nhưng tôi vẫn thích khả năng quản lý khối lượng của ZFS. Các zpool cho phép tôi khắc mọi thứ một cách linh hoạt và tận dụng tối đa không gian đĩa có sẵn.
  • Nén, ARC và L2ARC là các tính năng sát thủ!
  • Một thiết lập ZFS được thiết kế đúng trên đỉnh RAID phần cứng vẫn đưa ra cảnh báo tốt và cảnh báo lỗi, nhưng vượt trội so với giải pháp chỉ dành cho phần cứng.

Một ví dụ:

Cấu hình bộ điều khiển RAID.

[root@Hapco ~]# hpacucli ctrl all show config

Smart Array P410i in Slot 0 (Embedded)    (sn: 50014380233859A0)

   array B (Solid State SATA, Unused Space: 250016  MB)
      logicaldrive 3 (325.0 GB, RAID 1+0, OK)

      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, Solid State SATA, 240.0 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, Solid State SATA, 240.0 GB, OK)

danh sách thiết bị chặn

[root@Hapco ~]# fdisk  -l /dev/sdc

Disk /dev/sdc: 349.0 GB, 348967140864 bytes
256 heads, 63 sectors/track, 42260 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       42261   340788223   ee  GPT

cấu hình zpool

[root@Hapco ~]# zpool  list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
vol1   324G  84.8G   239G    26%  1.00x  ONLINE  -

chi tiết zpool

  pool: vol1
 state: ONLINE
  scan: scrub repaired 0 in 0h4m with 0 errors on Sun May 19 08:47:46 2013
config:

        NAME                                      STATE     READ WRITE CKSUM
        vol1                                      ONLINE       0     0     0
          wwn-0x600508b1001cc25fb5d48e3e7c918950  ONLINE       0     0     0

danh sách hệ thống tập tin zfs

[root@Hapco ~]# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
vol1            84.8G   234G    30K  /vol1
vol1/pprovol    84.5G   234G  84.5G  -

Vì vậy, liên quan đến câu hỏi đóng mà bạn đã liên kết, có phải nói rằng nếu tôi muốn sử dụng ZFS, tôi nên tránh, ví dụ, Dell PERC H200 và HP P410? Họ vẫn chưa có cách nào để vô hiệu hóa chế độ đột kích phần cứng, đó là RAID0 hay RAID1?
cnst

Vì vậy, có vẻ như dell.com/learn/us/en/04/campaigns/dell-ston-controllers tuyên bố rằng H200 "Hỗ trợ không phải RAID", mặc dù h18004.www1.hp.com/products/servers/proliantst Storage / ... là không hoàn toàn rõ ràng về việc liệu các chức năng đột kích của P410 có thể hoặc không thể được tắt.
cnst

@cnst Bạn không thể tắt chức năng RAID của HP Smart Array P410.
ewwhite

Nó vẫn đúng à? Bạn có nói rằng không có ZFS chạy nguy hiểm trên cuộc đột kích phần cứng?
thưa thớt

Chính xác. Nó không nguy hiểm.
ewwhite

5

Thông thường, bạn không bao giờ nên chạy ZFS trên các đĩa được cấu hình trong một mảng RAID. Lưu ý rằng ZFS không phải chạy trong chế độ RAID. Bạn chỉ có thể sử dụng đĩa riêng lẻ. Tuy nhiên, hầu như 99% mọi người chạy ZFS cho phần RAID của nó. Bạn chỉ có thể chạy các đĩa của mình ở chế độ sọc, nhưng đó là cách sử dụng ZFS kém. Giống như các áp phích khác đã nói, ZFS muốn biết nhiều về phần cứng. ZFS chỉ nên được kết nối với thẻ RAID có thể được đặt ở chế độ JBOD hoặc tốt nhất là được kết nối với HBA. Nhảy lên kênh IRC Freenode #openindiana; bất kỳ chuyên gia ZFS nào trong kênh cũng sẽ nói với bạn điều tương tự. Yêu cầu nhà cung cấp dịch vụ lưu trữ của bạn cung cấp chế độ JBOD nếu họ không cung cấp HBA.


1
Vâng tôi đồng ý. Nhưng đó cũng là vấn đề có sẵn trong kho với cấu hình phù hợp với hóa đơn và thông số kỹ thuật. Nếu một máy chủ có CPU lớn, nhiều RAM ECC, băng thông lớn và rất nhiều, nhưng phải đi kèm với RAID dựa trên phần cứng, thì có thể không hiệu quả về mặt chi phí để tìm giải pháp thay thế, có thể tốn kém hơn nhiều lần, do thuộc một danh mục khác hoặc do đó, hoặc thiếu một số tính năng doanh nghiệp như RAM ECC, v.v.
cnst

2

Tóm lại: sử dụng RAID bên dưới ZFS chỉ đơn giản là giết chết ý tưởng sử dụng ZFS. Tại sao? - Bởi vì nó được thiết kế để hoạt động trên các đĩa thuần, không phải RAID.


1
Không cần thiết. Điều gì sẽ xảy ra nếu tôi quan tâm nhiều hơn đến tính linh hoạt quản lý âm lượng hơn là tối ưu hóa xung quanh có quyền truy cập thô vào các thiết bị vật lý. ZFS hoạt động khá tốt cho trường hợp sử dụng của tôi.
ewwhite

3
@ewwhite, tốt, ai đó có thể lái xe đạp đi bộ gần nó, nói rằng anh ấy thích đi bộ và yêu xe đạp nói chung, nhưng sự thật là xe đạp được tạo ra để được lái. )
poige

2

Đối với tất cả các bạn ... ZFS trên bất kỳ Raid nào là tổng số PAIN và chỉ được thực hiện bởi những người MAD! ... như sử dụng ZFS với bộ nhớ không ECC.

Với các mẫu bạn sẽ hiểu rõ hơn:

  • ZFS trên Raid1, một đĩa có một chút thay đổi khi không tắt nguồn ... tất cả những gì bạn biết, ZFS sẽ thấy một số thiệt hại hoặc không phụ thuộc vào đĩa nào được đọc (Bộ điều khiển Raid không thấy bit đó thay đổi và nghĩ rằng cả hai đĩa đều ổn ) ... nếu lỗi nằm ở phần VDEV ... toàn bộ ZPOOL sẽ mất tất cả dữ liệu của nó mãi mãi.
  • ZFS trên Raid0, một đĩa có một chút thay đổi khi không được tắt ... tất cả những gì bạn biết, (Bộ điều khiển Raid không thấy bit đó thay đổi và nghĩ rằng cả hai đĩa đều ổn) ... ZFS sẽ thấy thiệt hại đó nhưng nếu thất bại nằm ở phần VDEV ... toàn bộ ZPOOL mất tất cả dữ liệu của nó mãi mãi.

Trường hợp ZFS tốt là trong việc phát hiện Bits đã thay đổi khi đĩa không có nguồn (bộ điều khiển RAID không thể làm điều đó), cũng như khi có gì đó thay đổi mà không được yêu cầu, v.v.

Đây là vấn đề tương tự như khi một bit trong mô-đun RAM tự thay đổi mà không được yêu cầu ... nếu bộ nhớ là ECC, bộ nhớ sẽ tự sửa; nếu không, dữ liệu đó đã thay đổi, do đó dữ liệu sẽ được gửi đến các đĩa được sửa đổi; Thay đổi không nằm ở phần UDEV, nếu lỗi nằm ở phần VDEV ... toàn bộ ZPOOL sẽ mất tất cả dữ liệu của nó mãi mãi.

Đó là một điểm yếu trên ZFS ... VDEV thất bại ngụ ý tất cả dữ liệu bị mất mãi mãi.

Phần cứng Raid và Phần mềm Raid không thể phát hiện các thay đổi bit tự phát, chúng không có tổng kiểm tra, tệ nhất là ở cấp Raid1 (mirros), chúng không đọc tất cả các phần và so sánh chúng, chúng cho rằng tất cả các phần sẽ luôn có cùng một dữ liệu, ALLWAYS (tôi nói nó lớn tiếng) Raid cho rằng dữ liệu không bị thay đổi bởi bất kỳ thứ / cách nào khác ... nhưng các đĩa (dưới dạng bộ nhớ) có xu hướng thay đổi bit tự phát.

Không bao giờ sử dụng ZFS trên RAM không phải ECC và không bao giờ sử dụng ZFS trên các đĩa đột kích, hãy để ZFS xem tất cả các đĩa, không thêm một lớp có thể làm hỏng VDEV và POOL của bạn.

Cách mô phỏng thất bại như vậy ... tắt nguồn PC, lấy ra một đĩa của Raid1 đó và chỉ thay đổi một bit ... điều chỉnh lại và xem bộ điều khiển Raid không thể biết điều đó đã thay đổi ... ZFS có thể vì tất cả các lần đọc đều được kiểm tra chống lại tổng kiểm tra và nếu không khớp, hãy đọc một phần khác ... Raid không bao giờ đọc lại vì lỗi (ngoại trừ phần cứng không thể đọc được) ... nếu Raid có thể đọc thì nó nghĩ dữ liệu vẫn ổn (nhưng không phải trong trường hợp như vậy ) ... Raid chỉ cố đọc từ đĩa khác nếu nó đọc "hey, tôi không thể đọc từ đó, phần cứng bị lỗi" ... ZFS đọc từ đĩa khác nếu tổng kiểm tra không khớp như khi nó đọc nói "này, tôi không thể đọc từ đó, phần cứng bị lỗi".

Hy vọng tôi cho nó rất rõ ràng ... ZFS trên bất kỳ cấp độ Raid nào là một nỗi đau và rủi ro cho dữ liệu của bạn! cũng như ZFS trên các bộ nhớ không phải ECC.

Nhưng điều không ai nói (trừ tôi) là:

  • Không sử dụng các đĩa có bộ đệm trong (không chỉ các đĩa SHDD, một số đĩa có bộ đệm 8Mib đến 32MiB, v.v.) ... một số trong số chúng sử dụng bộ nhớ không ECC cho bộ đệm đó
  • Không sử dụng SATA NCQ (một cách để xếp hàng ghi) vì nó có thể phá hỏng ZFS nếu mất điện

Vậy sử dụng đĩa nào?

  • Bất kỳ ổ đĩa nào có pin bên trong đảm bảo tất cả các hàng đợi sẽ được ghi vào đĩa trong trường hợp mất điện và sử dụng bộ nhớ ECC bên trong nó (xin lỗi, có rất ít cái có tất cả những thứ đó và đắt tiền).

Nhưng, này, hầu hết mọi người không biết tất cả những điều này và chưa bao giờ gặp sự cố ... tôi nói với họ: wow, bạn thật may mắn, mua một số vé số, trước khi may mắn biến mất.

Rủi ro là có ... những thất bại như vậy có thể xảy ra ... vì vậy câu trả lời tốt hơn là:

  • Cố gắng không đặt bất kỳ lớp nào giữa ZFS và nơi dữ liệu thực sự được lưu trữ (RAM, Raid, NCQ, bộ đệm trong ổ đĩa, v.v.) ... nhiều nhất bạn có thể chi trả.

Cá nhân tôi làm gì?

  • Đặt thêm một số lớp nữa ... tôi sử dụng mỗi đĩa 2,5 "SATA III 7200 vòng / phút trên bao vây USB 3.1 Gen2 loại C, tôi kết nối một số vỏ với Hub Hub 3.1 loại 2 mà tôi kết nối với PC, khác với một trung tâm khác rằng tôi kết nối với một cổng gốc khác trên PC, v.v.
  • Đối với hệ thống, tôi sử dụng các trình kết nối sata nội bộ trên ZFS (cấp Raid0) vì tôi sử dụng hệ thống Linux không thể thay đổi (Giống như LiveCD), mỗi nội dung khởi động giống hệt nhau trên các đĩa bên trong ... và tôi có thể sao chép hình ảnh của hệ thống. (ít hơn hệ thống 1GiB) ... tôi cũng sử dụng thủ thuật để có hệ thống chứa trong một tệp và sử dụng ổ đĩa được ánh xạ RAM nơi tôi sao chép nó khi khởi động, vì vậy sau khi khởi động, tất cả hệ thống chạy trong RAM ... đưa tệp đó vào DVD tôi cũng có thể khởi động theo cách tương tự, vì vậy trong trường hợp không có đĩa bên trong, tôi chỉ khởi động với DVD và hệ thống đang trực tuyến trở lại ... thủ thuật tương tự với SystemResTHERCD nhưng tệp ISO beacuse phức tạp hơn một chút có thể ZFS nội bộ hoặc chỉ là DVD thực sự và tôi không muốn hai phiên bản khác nhau.

Hy vọng tôi có thể đưa ra một chút ánh sáng trên ZFS chống lại Raid, nó thực sự là một nỗi đau khi mọi thứ đi sai!


Vì vậy, bạn đang nói rằng ZFS không đáng tin cậy đến mức nếu một bit thay đổi, bạn có thể mất toàn bộ hệ thống tập tin? Làm thế nào để SATA NCQ gây mất dữ liệu khi ổ đĩa vẫn chỉ thông báo cho máy chủ khi các thành phần đã được ghi thành công (mặc dù có thể theo một thứ tự khác)?
Malvineous
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.