Điểm:2

Ghi mạng tốc độ cao với dung lượng lưu trữ lớn

lá cờ pf

Tôi có một NAS chạy Samba với nhóm ZFS 20T với một vdev đột kích1 với hai ổ đĩa gỉ quay. Tôi có 16G RAM trong máy ngay bây giờ. Bộ lưu trữ được sử dụng để lưu trữ dự phòng vĩnh viễn, liên tục phát triển các cảnh quay video. Nó viết một lần, đọc một lần để xử lý và sau đó có thể sao lưu khôi phục.

Tôi thường xuyên chuyển các tệp 40GiB sang NAS này. Tôi sẽ nâng cấp mạng gigabit của mình lên 10GbE để quá trình này bớt khó khăn hơn. Tuy nhiên, tôi nghi ngờ rằng mình sẽ bị giới hạn bởi tốc độ ghi của các ổ đĩa bên dưới.

Tôi hiểu rằng ZIL và SLOG chỉ tăng tốc ghi đồng bộ nên việc thêm SSD nvme dưới dạng SLOG sẽ không ảnh hưởng đến trường hợp sử dụng của tôi vì tôi tin rằng Samba đang sử dụng ghi không đồng bộ theo mặc định.

Tôi không chắc liệu việc định cấu hình samba để ghi đồng bộ và thêm SLOG trên ổ SSD nvme có làm được những gì tôi cần hay không. Tôi hiểu điều này đi kèm với nguy cơ mất dữ liệu nếu ổ đĩa bị hỏng hoặc mất điện.Điều này có thể chấp nhận được vì tôi giữ lại các tệp trên máy nguồn đủ lâu để truyền lại trong trường hợp mất dữ liệu trong thời gian ngắn. Hao mòn trên SSD là một vấn đề đáng lo ngại nhưng các ổ đĩa thông thường có 300 TBW hoặc khoảng đó đủ để lấp đầy NAS không bao giờ bị xóa của tôi gấp 15 lần hoặc trong 75 năm với tốc độ tạo dữ liệu hiện tại, tôi ổn với điều đó và để mua ổ SSD mới nếu/khi ổ SSD bị hỏng. Đây là những cảnh báo chấp nhận được. Thông thường, tôi sẽ chỉ thử và so sánh nhưng trong tình trạng thiếu mọi thứ hiện tại, tôi muốn biết trước những gì tôi cần mua cho việc này.

Tôi biết rằng tôi có thể thêm nhiều vdev đột kích 1 vào nhóm để có được nhóm đột kích 10 nhưng điều này quá đắt, khung gầm giữa tháp không thể hỗ trợ nhiều ổ đĩa như vậy, nó cung cấp quá nhiều cho nhóm cùng với các ổ đĩa hiện có và sẽ sử dụng nhiều năng lượng hơn thời gian để giữ cho tất cả những rỉ sét đó quay.

Các tùy chọn của tôi để đạt được tốc độ ghi vượt quá 10Gbps vào nhóm zfs này để có dữ liệu trị giá ít nhất 40GiB, ngoài việc thêm nhiều vòng quay gỉ vào nhóm theo kiểu đột kích 10 là gì?

Điểm:3
lá cờ us

Chế độ ghi đồng bộ đảm bảo rằng việc ghi kết thúc ở một vị trí liên tục ngay lập tức. Với ghi không đồng bộ, dữ liệu được lưu vào bộ nhớ cache trong RAM và lệnh ghi kết thúc ngay lập tức. Hệ thống tệp sẽ lên lịch ghi thực tế vào vị trí cuối cùng (đĩa cứng).

Trong trường hợp ZFS, mục đích của ZIL / SLOG là hoạt động như một bộ lưu trữ liên tục tạm thời nhanh, cho phép chế độ đồng bộ, tức là đảm bảo máy khách ghi rằng quá trình ghi là cuối cùng. Nếu không, hệ thống tệp sẽ cần ghi trực tiếp các khối vào đĩa cứng, điều này làm cho chế độ đồng bộ bị chậm.

Trong trường hợp của bạn, nếu bạn muốn đảm bảo tốc độ ghi tối đa 40 GB dữ liệu, thì bạn nên tăng kích thước RAM của mình để bao phủ kích thước của tệp.

Tuy nhiên, vì FS bắt đầu ghi vào đĩa cứng ngay lập tức nên bạn không cần bộ nhớ 40GB để đạt tốc độ tối đa cho quá trình ghi của mình. Ví dụ: khi máy khách đã ghi 20 GB dữ liệu, 10 GB có thể nằm trong bộ đệm RAM và 10 GB còn lại đã có trong ổ cứng.

Vì vậy, bạn cần thực hiện một số phép đo điểm chuẩn để xem bạn cần bao nhiêu RAM để ghi ở tốc độ tối đa.

lá cờ pf
Tôi nghĩ rằng bộ đệm ghi dựa trên RAM bị giới hạn ở một số kích thước. Bạn đang nói rằng ZFS sẽ vui vẻ ngấu nghiến tất cả bộ nhớ hệ thống dưới dạng bộ đệm ghi? Điều đó nghe có vẻ ngạc nhiên đối với tôi vì điều đó có thể gây ra tất cả các loại sự cố hiệu suất kỳ lạ nếu bạn không để lại đủ RAM để khởi chạy các quy trình mới...
Điểm:2
lá cờ ca

Tôi hiểu điều này đi kèm với nguy cơ mất dữ liệu nếu ổ đĩa bị lỗi hoặc mất điện. Điều này có thể chấp nhận được vì tôi giữ lại các tệp trên máy nguồn đủ lâu để truyền lại trong trường hợp dữ liệu ngắn hạn thua

Nếu bạn có thể chịu được việc mất tối đa 5 giây ghi, bạn chỉ cần định cấu hình ZFS thành phớt lờ đồng bộ hóa yêu cầu với lệnh zfs đặt đồng bộ hóa = xe tăng bị vô hiệu hóa

Buộc tất cả các thao tác ghi phải đi qua một SLOG, thậm chí là rất nhanh, là chẳng bao giờ nhanh hơn bỏ qua các yêu cầu đồng bộ hóa. SLOG không phải là bộ đệm ghi ngược cổ điển, bộ đệm này sẽ hấp thụ ghi để chuyển chúng xuống tầng chậm hơn. Thay vào đó, nó là một phương tiện để cung cấp tính bền bỉ với độ trễ thấp bằng cách lưu trữ tạm thời quá trình ghi đồng bộ hóa (và chỉ có chúng) trong một kho lưu trữ nhanh trung gian. Sau vài giây, cùng một thao tác ghi sẽ được chuyển từ bộ nhớ chính sang nhóm chính. Một SLOG không bao giờ được đọc cho đến khi xảy ra sự cố (và khôi phục).

Điều đó nói rằng, với một vdev nhân bản dựa trên ổ cứng duy nhất, bạn sẽ không bao giờ có thể bão hòa liên kết 10 Gbs. Để ghi liên tục ở tốc độ ~1 GB/giây, bạn cần ít nhất 10 HDD trong raidz2 hoặc 12+ HDD trong mirror+striping. Hoặc, thậm chí tốt hơn, bạn cần một nhóm toàn SSD. Điều này thậm chí trước khi coi mọi thứ là hồ sơ kích thước, nén, vân vân.

CHỈNH SỬA, để làm rõ các công việc SLOG:

Để giảm thiểu độ trễ khi ghi đồng bộ, ZFS đã sử dụng cái gọi là Nhật ký mục đích ZFS (ZIL). Nói tóm lại: mỗi lần ghi đồng bộ hóa đến, ZFS ngay lập tức ghi chúng vào một khu vực nhóm tạm thời có tên là ZIL. Điều này cho phép ghi để quay lại ngay lập tức, cho phép ứng dụng gọi điện tiếp tục. Sau vài giây, khi giao dịch được xác nhận, bất kỳ bản ghi nào được ghi vào ZIL đều được trả lời cho nhóm chính. Điều này không không phải có nghĩa là ZIL được đọc ở mỗi lần xác nhận; thay vào đó, dữ liệu được ghi đến từ bộ đệm DRAM ARC chính. Nói cách khác, ZIL là một loại "nhật ký đăng nhập trước" đảm bảo tính bền bỉ của dữ liệu nhanh đối với dữ liệu đồng bộ được ghi.

Điều này thực sự có nghĩa là việc ghi đồng bộ bị trùng lặp: chúng được viết cả hai đến ZIL và nhóm chính. nhập SLOG (thiết bị nhật ký riêng biệt): một thiết bị dành riêng cho chỉ ghi đồng bộ hóa - tức là: nó giải phóng nhóm chính khỏi lưu lượng ZIL. SLOG SSD nhanh rất quan trọng do ổ cứng ghi rất chậm khi đồng bộ hóa. SLOG không phải là bộ đệm ghi lại cổ điển của bạn vì:

  • nó chỉ hấp thụ các ghi đồng bộ hóa, bỏ qua hoàn toàn các ghi bình thường;
  • nó chỉ sao chép dữ liệu đã được lưu trữ trong ARC.

Hai điểm kết hợp có nghĩa là một SLOG lớn về cơ bản là lãng phí, bởi vì nó chỉ cần gấp 3 lần kích thước tối đa của một giao dịch ZFS. Nói cách khác, SLOG 2-4 GB là đủ cho hầu hết các trường hợp, với SLOG lớn hơn chỉ hữu ích trong các thiết lập cụ thể.

Một SLOG như vậy là chìa khóa để cung cấp độ trễ thấp hơn cho các lần ghi đồng bộ hóa ngẫu nhiên, nhưng mặc dù nó có thể hấp thụ các xung đột rất nhỏ của các lần ghi đồng bộ hóa tuần tự, nhưng đây không phải là chức năng chính của nó. Nói cách khác, bạn có thể xem ZIL/SLOG như một lát ARC liên tục. Hệ quả là bạn không thể mong đợi ghi hàng chục GB và ẩn tốc độ nhóm chính chậm thông qua SLOG, vì điều này có nghĩa là bạn đã có hàng chục GB dữ liệu bẩn bên trong ARC dựa trên RAM của bạn.

Cài đặt đồng bộ hóa = bị vô hiệu hóa hướng dẫn ZFS đe dọa tất cả các lần ghi, thậm chí cả những lần đồng bộ hóa, như cách ghi không đồng bộ bình thường. Điều này sẽ bỏ qua mọi dữ liệu ZIL/SLOG và nếu bạn có thể chấp nhận cửa sổ mất dữ liệu 5s, thì đó là cài đặt nhanh hơn mà bạn có thể đạt được - ngay cả khi so sánh với SLOG rất nhanh như Optane hoặc RAMdrive. Điều tốt đẹp về đồng bộ hóa = bị vô hiệu hóa là nó không tắt tính năng ghi đồng bộ cho siêu dữ liệu riêng của ZFS và vì vậy nó không gây rủi ro cho hệ thống tệp của bạn. Điều này không có nghĩa là bạn có thể tùy tiện sử dụng nó: như đã nói nhiều lần, bạn nên chắc chắn hiểu ý nghĩa của nó (bạn có thể mất những giây cuối cùng của dữ liệu chưa được đồng bộ hóa trong trường hợp gặp sự cố/mất điện).

Mặt khác, bộ đệm ghi lại dựa trên SSD cổ điển như lvmcachebcache có thể (ít nhiều) sử dụng hiệu quả hàng trăm GB bộ đệm SSD để che giấu độ trễ/thông lượng nhóm chính - cụ thể là vì chúng bộ đệm ghi lại chính thức không cần phải có dữ liệu của chúng bên trong bộ nhớ chính (ngược lại, bộ nhớ chính tuôn ra chính nó thông qua các bộ đệm SSD này).

Lý do đằng sau ZFS là bộ nhớ hệ thống chính (lớn) là bộ đệm đọc/ghi thực sự của bạn, với SLOG là phương tiện để có độ trễ thấp hơn cho việc ghi đồng bộ hóa ngẫu nhiên.

djdomi avatar
lá cờ za
hoặc chỉ cần thêm một SATA-SSD làm bộ nhớ đệm cho khoảng 500mb/giây hoặc NVME cho 1gb/giây+++++++++
shodanshok avatar
lá cờ ca
@djdomi không, như đã giải thích ở trên, ổ đĩa SLOG ** không ** là ổ đĩa bộ đệm ghi lại. Đối với những gì bạn đang đề xuất, người ta nên sử dụng `lvmcache` hoặc `bcache`, không có sự tham gia của ZFS.
djdomi avatar
lá cờ za
không nhưng zil có thể làm được
shodanshok avatar
lá cờ ca
@djdomi một lần nữa, không: ZIL là nhật ký mục đích ZFS và SLOG đơn giản là một thiết bị dành riêng cho các nhiệm vụ ZIL (thay vì sử dụng nhóm chính).
djdomi avatar
lá cờ za
tuy nhiên nó được gọi là gì, nó Tồn tại một bộ đệm ghi tự nhiên trên Zfs và đó vẫn là một sự thật và một ssd có thể được sử dụng cho nó
shodanshok avatar
lá cờ ca
@djdomi tốt, tôi khuyên bạn nên đọc một số tài liệu. Ví dụ: https://www.servethehome.com/what-is-the-zfs-zil-slog-and-what-makes-a-good-one/
lá cờ pf
Chuỗi nhận xét này giải thích chính xác lý do tại sao tôi đặt câu hỏi khi tôi liên tục tìm thấy thông tin mâu thuẫn và hướng dẫn sử dụng tôi đọc muốn hiểu chính xác về những lợi ích mong đợi trong trường hợp của tôi. Tôi rất thích nếu sự nhầm lẫn có thể được làm sáng tỏ.
shodanshok avatar
lá cờ ca
@Emily L. Tôi đã cập nhật câu trả lời của mình, hãy xem.
lá cờ pf
Tôi chưa bao giờ nói rằng tôi có một nhóm đột kích, nhóm của tôi là một nhóm đột kích1 vdev. Tôi không cần viết 10Gbps nhất quán, tôi cần 10Gbps cho 40GiB. Nhóm của tôi là 20T với hai ổ đĩa, để có được loại dung lượng đó với SSD là ngoài ngân sách.
shodanshok avatar
lá cờ ca
Bạn có (hơn) 40 GB RAM không? Nếu vậy, bạn có thể (hủy) điều chỉnh ZFS buộc nó phải giữ nhiều GB dữ liệu được lưu trong bộ nhớ cache trong ARC trong một thời gian dài, nhưng điều này sẽ rất tệ cho cả sự an toàn của dữ liệu và hiệu suất (bạn sẽ phải chịu sự cố * kéo dài vài phút* khi ZFS cuối cùng quyết định xóa các trang bẩn sang bộ lưu trữ ổn định). Đối với khối lượng công việc như vậy, ZFS không phải là lựa chọn phù hợp và đột kích vs gương không thay đổi bất cứ điều gì. Tôi muốn thử `lvmcache` ở chế độ ghi lại, nhưng trong trường hợp này, hãy lưu ý rằng thiết bị bộ đệm bị lỗi sẽ gây mất dữ liệu (nói cách khác: bạn cần sao chép thiết bị bộ đệm của mình).

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.