Yêu cầu tốc độ ghi: 1.1GB / s khả năng?


29

Chúng tôi sẽ có một máy hoạt động, với hiệu suất cao nhất, có thể đẩy 50 ("đầu ghi") x 75GB dữ liệu mỗi giờ. Đó là hiệu suất cao nhất của tốc độ ghi ~ 1100MB / s. Để có được điều đó từ máy, nó cần hai dòng 10GBi. Câu hỏi của tôi là loại máy chủ + công nghệ nào có thể xử lý / lưu trữ luồng dữ liệu đó?

Hiện tại để lưu trữ dữ liệu, chúng tôi làm việc với ZFS, mặc dù tốc độ ghi không bao giờ là một câu hỏi. (chúng tôi thậm chí không gần với các tốc độ này) ZFS (zfs trên linux) có phải là một tùy chọn không? Chúng tôi cũng cần lưu trữ nhiều dữ liệu, "hướng dẫn CNTT" gợi ý ở đâu đó trong khoảng từ 50-75 TB. Vì vậy, nó có thể không phải là tất cả các ổ SSD trừ khi chúng tôi muốn cung cấp đứa con đầu lòng của chúng tôi.

Một số bổ sung dựa trên các câu trả lời xuất sắc:

  • tối đa là 50x75GB / giờ trong thời gian cao điểm ít hơn 24h (rất có thể <6h)
  • Chúng tôi không hy vọng điều này sẽ xảy ra sớm, nhiều khả năng chúng tôi sẽ chạy 5-10x75GB / giờ
  • đó là một máy pre-alpha, tuy nhiên cần phải đáp ứng các yêu cầu (mặc dù có rất nhiều dấu hỏi đang diễn ra)
  • chúng tôi sẽ sử dụng NFS làm kết nối từ máy đến máy chủ
  • layout: tạo máy -> lưu trữ (cái này) -> (raid an toàn 6) -> tính toán cụm
  • vì vậy tốc độ đọc là không cần thiết , nhưng sẽ rất tuyệt nếu sử dụng nó từ cụm tính toán (nhưng điều này là hoàn toàn tùy chọn)
  • rất có thể đó sẽ là các tệp dữ liệu lớn (không nhiều nhỏ)

8
mb như trong megaBIT hay megaByte? Vui lòng sử dụng MBi MiBi MByte hoặc MB để tố cáo byte. Ngoài ra, 2 dòng 10 gbit sẽ cung cấp cho bạn 2400 MByte / s
mzhaase

1
Bây giờ thì rõ ràng hơn, cảm ơn. Một số câu hỏi khác. Hiệu suất cao nhất là 1,1 GB / giây nhưng trung bình là gì? Những gai này kéo dài bao lâu? Và thông lượng lục địa tối thiểu bạn sẵn sàng chấp nhận là gì? Là viết một tập tin lớn hoặc nhiều tập tin nhỏ? Những loại giao thức sẽ được sử dụng? Bạn muốn loại dư thừa nào? Nghe có vẻ như một số loại thiết bị y tế hoặc khoa học, bạn có thể liên kết bảng dữ liệu? Vì bạn đã sử dụng ZFS, bạn có thể liên hệ với một công ty lưu trữ chuyên dụng ZFS, trong đó có một cặp. Họ có thể chỉ ra một hệ thống cho bạn.
mzhaase

2
Điều này thực sự phải được thực hiện với một máy duy nhất? Cân bằng tải cho nhiều máy có thể giúp việc này dễ dàng hơn. Bạn có thể sử dụng lưu trữ được chia sẻ hoặc hợp nhất dữ liệu sau này. Trên AWS, bạn có thể sử dụng ELB, tự động mở rộng, một số phiên bản EC2 và EFS, nhưng có vẻ như bạn muốn phần cứng. Câu hỏi của bạn không mô tả trường hợp sử dụng rất tốt.
Tim

1
Chỉ cần một lưu ý, bạn không cần hiệu suất "cao điểm" - bạn cần hiệu suất "duy trì" là 1.1GBpS
jsbueno

1
@jsbueno Bạn đã đúng, tuy nhiên chúng tôi có thể chọn số lượng đầu ghi để kích hoạt, vì vậy 1GB / s là "trường hợp xấu nhất" nhưng xem xét rằng có thể mất hàng giờ để duy trì hiệu suất.
SvennD

Câu trả lời:


18

Hoàn toàn ... ZFS trên Linux là một khả năng nếu được kiến ​​trúc chính xác. Có nhiều trường hợp thiết kế ZFS kém , nhưng được thực hiện tốt, các yêu cầu của bạn có thể được đáp ứng.

Vì vậy, yếu tố quyết định chính sẽ là cách bạn kết nối với hệ thống lưu trữ dữ liệu này. Có phải là NFS không? CIFS? Làm thế nào là khách hàng kết nối với lưu trữ? Hoặc là xử lý, vv được thực hiện trên hệ thống lưu trữ?

Điền thêm một số chi tiết và chúng tôi có thể xem nếu chúng tôi có thể giúp đỡ.

Chẳng hạn, nếu đây là NFS và với các mount đồng bộ, thì chắc chắn có thể mở rộng ZFS trên Linux để đáp ứng nhu cầu về hiệu năng ghi và vẫn duy trì yêu cầu dung lượng lưu trữ dài hạn. Là dữ liệu có thể nén? Làm thế nào là mỗi khách hàng được kết nối? Mạng Ethernet tốc độ cao?


Chỉnh sửa:

Được rồi, tôi sẽ cắn:

Đây là một thông số khoảng $ 17k- $ 23k và phù hợp với không gian rack 2U.

HP ProLiant DL380 Gen9 2U Rackmount
2 x Intel E5-2620v3 or v4 CPUs (or better)
128GB RAM
2 x 900GB Enterprise SAS OS drives 
12 x 8TB Nearline SAS drives
1 or 2 x Intel P3608 1.6TB NVMe drives

Thiết lập này sẽ cung cấp cho bạn không gian có thể sử dụng 80TB bằng cách sử dụng RAID6 hoặc ZFS RAIDZ2 phần cứng.

Vì trọng tâm là hiệu suất dựa trên NFS (giả sử ghi đồng bộ), chúng tôi có thể hấp thụ tất cả những thứ đó một cách dễ dàng với các ổ NVMe P3608 (SLOG sọc). Chúng có thể chứa 3GB / giây khi ghi tuần tự và có xếp hạng độ bền đủ cao để liên tục xử lý khối lượng công việc bạn đã mô tả. Các ổ đĩa có thể dễ dàng được cung cấp quá mức để thêm một số biện pháp bảo vệ trong trường hợp sử dụng SLOG.

Với khối lượng công việc NFS, ghi sẽ được kết hợp và chuyển sang đĩa quay. Trong Linux, chúng tôi sẽ điều chỉnh điều này để xả sau mỗi 15-30 giây. Các đĩa quay có thể xử lý việc này và có thể có lợi hơn nữa nếu dữ liệu này có thể nén được.

Máy chủ có thể được mở rộng với 4 khe cắm PCIe mở hơn và một cổng bổ sung cho các bộ điều hợp FLR 10GbE cổng kép. Vì vậy, bạn có mạng lưới linh hoạt.


cảm ơn ewwwite; chúng tôi sẽ sử dụng NFS và chỉ có một khách hàng (máy) tùy ý chúng tôi sẽ sử dụng nó làm thiết bị đọc từ cụm của chúng tôi. (nhưng không biết xử lý hay làm thế nào) Chúng tôi có "dung lượng" khả dụng trên 6 máy chủ lưu trữ đột kích.
SvennD

@SvennD Nếu là NFS và với các giá trị gắn kết đồng bộ, thì chắc chắn có thể mở rộng ZFS trên Linux để đáp ứng nhu cầu về hiệu suất ghi và vẫn duy trì yêu cầu dung lượng lưu trữ dài hạn. Là dữ liệu có thể nén? Đó là một yếu tố khác. Tuy nhiên, phạm vi của điều này vượt quá lời khuyên tôi có thể cung cấp miễn phí trên một diễn đàn trực tuyến. Thông tin liên lạc của tôi có sẵn trong hồ sơ ServerFault của tôi . Liên lạc với tôi nếu bạn cần thảo luận thêm.
ewwhite

5
ZFS không chỉ có khả năng cho những gì bạn yêu cầu. Vấn đề đầu tiên là đảm bảo phần cứng thực tế của bạn có khả năng. Sẽ rất dễ dàng để vô tình tạo ra một nút cổ chai chặt hơn 1GB / giây ở cấp bộ điều hợp hoặc bảng nối đa năng, nếu bạn không cẩn thận. Hãy chắc chắn rằng bạn có phần THAT đúng, sau đó hỏi về cách tránh gotchas bên phía ZFS.
Jim Salter

@SvennD Được chỉnh sửa với thông số thiết kế cơ bản và chi phí thô.
ewwhite

Tôi nghĩ rằng tôi muốn giới thiệu Oracle X6-2L trên máy chủ HP. Máy chủ Oracle đi kèm với bốn cổng mạng 10GB bên ngoài. Và theo kinh nghiệm của tôi, HP nickle-dimes bạn sẽ chết vì ILOM, cấp phép phần mềm ILOM, v.v. đến mức một máy chủ HP đắt hơn một hộp Oracle tương đương. Kinh nghiệm của tôi cũng cho tôi biết rằng hộp Oracle sẽ vượt trội hơn hộp HP - và ít có khả năng hơn hộp HP có một trong những tắc nghẽn phần cứng mà @JimSalter đề cập. Có, mua từ Oracle có thể đau đớn.
Andrew Henle

23

Đối với tốc độ ghi cực cao như vậy, tôi đề nghị chống lại ZFS, BTRFS hoặc bất kỳ hệ thống tập tin CoW nào. Tôi sẽ sử dụng XFS, cực kỳ hiệu quả trong truyền tải lớn / truyền phát.

Có rất nhiều thông tin bị thiếu (làm thế nào để bạn có kế hoạch truy cập những dữ liệu này? Tốc độ đọc có quan trọng không? Bạn sẽ viết thành nhiều phần lớn, v.v.) để cung cấp cho bạn những lời khuyên cụ thể, tuy nhiên một số lời khuyên chung là:

  • sử dụng XFS trên đầu phân vùng thô hoặc khối lượng LVM béo (không sử dụng khối lượng mỏng)
  • điều chỉnh kích thước ioblock để đối phó hiệu quả với việc ghi dữ liệu lớn
  • sử dụng thẻ RAID phần cứng với bộ đệm ghi được bảo vệ bằng powerloss; nếu không sử dụng RAID phần cứng, hãy sử dụng sơ đồ RAID10 phần mềm (tránh mọi chế độ RAID dựa trên tính chẵn lẻ)
  • sử dụng hai giao diện mạng 10Gb / s với LACP (tập hợp liên kết)
  • hãy chắc chắn kích hoạt khung Jumbo
  • vì bạn sẽ sử dụng NFS, hãy cân nhắc sử dụng pNFS (v4.1) để tăng khả năng mở rộng
  • chắc chắn nhiều thứ khác ...

3
Ngoài ra, nếu sử dụng XFS, hãy đặt nhật ký vào cặp SSD RAID1.
TB

2
Nếu sử dụng thẻ RAID với bộ đệm ghi lại được bảo vệ bằng powerloss, nhật ký có thể được để lại trên mảng chính: bộ đệm ghi sẽ hấp thụ và kết hợp lại ghi nhật ký. Ngoài ra, từ những gì OP mô tả, tải siêu dữ liệu nên khá thấp so với truyền dữ liệu.
shodanshok

2
ZFS sẽ hoạt động tốt và có thể đi nhanh hơn XFS. Chắc chắn, bạn sẽ cần thiết lập đúng, và có RAM và SSD cho ZIL và SLOG, nhưng điều đó có lẽ không quan trọng với tốc độ cần thiết.
John Keates

3
Tôi xem XFS trên Linux là công nghệ cũ. OP có thể dễ dàng chạy ZFS trên đỉnh RAID phần cứng. Lý do tôi khuyên dùng ZFS là để cho phép ghi đồng bộ NFS đến được SLOG hấp thụ ở độ trễ thấp mà không cần nhóm toàn bộ SSD.
ewwhite

6
Shelby Cobra là "Công nghệ cũ" nhưng nó vẫn có thể hút hầu hết xe hơi ra khỏi cổng. ZFS không bao giờ được thiết kế như một hệ thống tập tin hiệu năng cao để bắt đầu, và mặc dù có thể điều chỉnh nó sao cho nó nhanh chóng với một khối lượng công việc cụ thể, nhưng nó không được thiết kế cho nó theo mặc định. Nó sẽ tốn nhiều phần cứng hơn, nhiều bộ nhớ hơn và rất nhiều điều chỉnh để giúp nó đánh bại những gì XFS cung cấp cho bạn miễn phí với một vài tùy chọn định dạng và định dạng.
TB

4

Ethernet 25Gbps đã là đường biên chính thống trong khi NVMe cơ sở PCIe sẽ kiểm soát lưu lượng đó một cách dễ dàng.

Để tham khảo, gần đây tôi đã xây dựng một giải pháp 'ghi nhật ký' nhỏ bằng bốn máy chủ xe hai bánh thông thường (HPE DL380 Gen9 trong trường hợp này), mỗi ổ có 6 x NVMe, tôi đã sử dụng IP qua Infiniband nhưng các NIC 25 / 40Gbps đó sẽ giống nhau và chúng tôi đang chiếm tới 8GBps trên mỗi máy chủ - hoạt động một điều trị.

Về cơ bản nó không rẻ nhưng ngày nay rất dễ làm.


1
Vâng, nhưng làm thế nào để bạn lưu trữ ~ 50TB trên NVMe? Spinners có giá rẻ, vậy làm thế nào để chúng tôi hợp nhất để giữ tốc độ lên ngang bằng ...
SvennD

Điểm hay, thực tế là bạn chỉ phải nhận 4 x 4TB trong một máy chủ, tôi sử dụng nhiều máy chủ, có lẽ bạn không thể? nếu không, nó chỉ tải 2,5 "10krpm trong R10
Chopper3

Không muốn giống như vậy, chúng tôi sẽ không cần những thông số kỹ thuật đó ngoại trừ để vào cửa và tôi không muốn cơn ác mộng về sự hoạt động của nhiều máy chủ. chỉ cho một máy. R10 sẽ đủ nhanh? (đột kích harware?)
SvennD

Chúng tôi có một hộp Windows 2012R2 được xây dựng từ bộ phụ tùng không được sử dụng, chúng tôi sử dụng nó như một NAS, bên trong nó có 6 ổ SSD SSD 400 x 400 GB, mỗi kệ 8 x D2600 với mỗi đĩa 25 x 900GB 10k và D6000 kệ với các ổ đĩa 70 x 4TB và có thể dễ dàng tràn ngập một tốc độ 10Gb / giây - chưa thử nó với một NIC 25Gb chưa tbh.
Chopper3

1
@MSalters Có một số ổ 8/10 TB PMR (không phải SMR) với tốc độ truyền trong khoảng 200 MB / s. Mảng ổ đĩa 12 hoặc 16, cả trong RAID10 và RAID6, nên dễ dàng vượt quá tốc độ truyền 1,1 GB / giây cần thiết.
shodanshok

2

Nghe có vẻ không phải là một vấn đề lớn. Nhà cung cấp phần cứng địa phương của chúng tôi có sản phẩm này như một sản phẩm tiêu chuẩn - rõ ràng nó có thể đẩy 1400 MB / giây được duy trì ở chế độ ghi hình camera quan sát, khó hơn so với yêu cầu cao nhất của bạn.

(Liên kết là cấu hình 12GB mặc định, nhưng họ lưu ý 20x4TB cũng là một tùy chọn. Không có kinh nghiệm cá nhân với máy chủ mô hình cụ thể này.)


4
Chà, bằng "sản phẩm tiêu chuẩn", bạn đề cập đến một "hộp phần mềm đen" với 20 x 600gb sas 15k và 3 x ssd doanh nghiệp. Đó là một đề nghị công bằng, chúng tôi đã có một nhà cung cấp phần cứng tương tự, nhưng chi phí cấp phép đối với tôi là điên rồ vì thứ gì đó về cơ bản là miễn phí (ZFS) Cảm ơn bạn đã chia sẻ bản dựng! (liên kết đẹp)
SvennD

2

Ghi tuần tự ở tốc độ 1100MB / s không phải là vấn đề với phần cứng hiện đại. Thông thường, thiết lập tại nhà của tôi với các ổ đĩa máy tính xách tay 8x5900 RPM, ổ đĩa 2x15000 RPM và ổ đĩa 2x7200 RPM duy trì 300 MB / s với tải trọng một lần 16 GB.

Mạng là 10GbE với cáp quang, 9000 MTU trên ethernet và lớp ứng dụng là Samba 3.0. Bộ lưu trữ được cấu hình trong raid50 với ba sọc trên ba ổ raid5 4 ổ. Bộ điều khiển là LSI MegaRAID SAS 9271-8i với tốc độ lên tới 6Gb / s trên mỗi cổng (Tôi có một hệ số nhân cổng bổ sung, chậm hơn).

Nói chuyện với bất kỳ sysadmin dày dạn nào và họ sẽ có thể cho bạn biết chính xác (các) bộ điều khiển và ổ đĩa nào sẽ đáp ứng yêu cầu của bạn.

Tôi nghĩ bạn có thể thử với bất kỳ bộ điều khiển 12Gb / s nào và định cấu hình hai sọc được nhân đôi của tám ổ 7200 RPM mỗi ổ (hầu như bất kỳ ổ nào cũng nên làm). Bắt đầu 3-4 kết nối TCP để bão hòa liên kết và nếu một cặp thẻ 10GbE không thể xử lý được, hãy sử dụng bốn thẻ.


2

Một cái gì đó tiếp tuyến, nhưng hãy xem xét sử dụng InfiniBand thay vì các liên kết 10GbE kép. Bạn có thể nhận được thẻ Infiniband 56Gbps khá rẻ, hoặc thẻ 100Gbps không quá nhiều và trên Linux, việc sử dụng NFS với RDMA qua IB rất dễ dàng, điều này sẽ cho bạn độ trễ cực thấp và tốc độ đường truyền lý thuyết (nếu lưu trữ bên dưới của bạn có thể xử lý nó). Bạn không cần một công tắc, chỉ cần hai thẻ InfiniBand và cáp gắn trực tiếp (hoặc cáp quang InfiniBand nếu bạn cần khoảng cách xa hơn).

Thẻ Mellanox 56Gbps một cổng (8x PCIe 3.0) như MCB191A-FCAT có giá dưới 700 đô la và cáp gắn trực tiếp bằng đồng dài 2 mét có giá 80 đô la.

Hiệu suất thường sẽ thổi 10GbE ra khỏi nước trong mọi trường hợp sử dụng. Không có nhược điểm nào, trừ khi bạn cần truy cập vào máy chủ từ nhiều khách hàng khác nhau, tất cả đều không thể sử dụng InfiniBand (và thậm chí sau đó, các công tắc của Mellanox có thể chuyển 10GbE và 40GbE sang IB, nhưng đó là một khoản đầu tư nhiều hơn, tất nhiên).


1

Tuy nhiên, làm điều này với ZFS là có thể, hãy xem xét sử dụng FreeBSD vì FreeBSD có ngăn xếp mạng nhanh hơn. Điều này sẽ cho phép có thể 100 GBit trên một máy.

1100 MBps nghe có vẻ rất nhiều, nhưng thực tế bạn có thể đạt được điều này bằng cách chỉ sử dụng các ổ cứng thông thường. Bạn nói rằng bạn cần 75 TB không gian, vì vậy bạn có thể sử dụng 24 ổ cứng 8 TB trong gương. Điều này sẽ cung cấp cho bạn tốc độ ghi 12x của một ổ đĩa và tốc độ đọc ổ đĩa 24x. Vì các ổ đĩa này có tốc độ ghi lớn hơn 100 MBps, điều này sẽ dễ dàng có thể xử lý băng thông. Đảm bảo thêm để không nhận ổ SMR, vì các ổ này có tốc độ ghi cực kỳ chậm.

ZFS không tạo tổng kiểm tra cho mọi khối. Điều này được thực hiện đơn luồng. Như vậy, bạn nên có một CPU có tốc độ xung nhịp khá nhanh để không bị chặn.

Tuy nhiên, chi tiết thực hiện chính xác phụ thuộc rất nhiều vào chi tiết.


12
"FreeBSD có ngăn xếp mạng nhanh hơn" [cần trích dẫn]
Jim Salter

Chính xác. Linux hoàn toàn có khả năng.
ewwhite

1

Chúng tôi đã gắn một dữ liệu đổ 10G NIC vào cụm Gluster trên máy khách cầu chì của họ. Phải mất một chút điều chỉnh, bạn sẽ không tin hiệu suất mà nó có thể đạt được kể từ 3.0.

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.