Persyaratan kecepatan tulis: Kemungkinan 1.1GB / s?

29

Kami akan memiliki mesin di tempat kerja, yang pada kinerja puncak, harus mampu mendorong 50 ("kepala tulis") x 75GB data per jam. Itu kinerja puncak dari kecepatan tulis ~ 1100MB / s. Untuk mendapatkannya dari mesin, dibutuhkan dua jalur 10GBi. Pertanyaan saya adalah server + teknologi apa yang dapat menangani / menyimpan aliran data seperti itu?

Saat ini untuk penyimpanan data kami bekerja dengan ZFS, meskipun kecepatan menulis tidak pernah menjadi pertanyaan. (kita bahkan tidak dekat dengan kecepatan ini) Apakah ZFS (zfs di linux) menjadi pilihan? Kita juga perlu menyimpan banyak data, "panduan TI" menyarankan sekitar 50-75 TB. Jadi mungkin tidak semua SSD kecuali kami ingin menawarkan anak pertama kami.

Beberapa tambahan berdasarkan pada balasan yang sangat baik:

  • maksimum adalah 50x75GB / jam selama puncak yang kurang dari 24 jam (kemungkinan besar <6 jam)
  • Kami tidak berharap ini terjadi segera, kemungkinan besar kami akan menjalankan 5-10x75GB / jam
  • ini adalah mesin pra-alfa, namun persyaratan harus dipenuhi (meskipun banyak tanda tanya sedang dimainkan)
  • kita akan menggunakan NFS sebagai koneksi dari mesin ke server
  • layout: menghasilkan mesin -> penyimpanan (yang ini) -> (safe raid 6) -> compute cluster
  • jadi kecepatan baca tidak penting , tapi alangkah baiknya untuk menggunakannya dari compute cluster (tapi ini sepenuhnya opsional)
  • kemungkinan besar itu akan menjadi file data besar (tidak banyak kecil)
SvennD
sumber
8
mb seperti di megaBIT atau megaByte? Silakan gunakan MBi MiBi MByte atau MB untuk mencela byte. Juga 2 10 gbit baris akan memberi Anda 2400 MByte / s
mzhaase
1
Sekarang lebih jelas, terima kasih. Beberapa pertanyaan lagi. Kinerja puncak adalah 1,1 GBps tetapi apa yang rata-rata? Berapa lama paku ini bertahan? Dan berapa throughput kontinu minimum yang bersedia Anda terima? Apakah menulis satu file besar atau beberapa file kecil? Protokol macam apa yang akan digunakan? Redundansi apa yang Anda inginkan? Kedengarannya seperti semacam peralatan medis atau ilmiah, dapatkah Anda menghubungkan datasheet? Karena Anda sudah menggunakan ZFS, Anda bisa menghubungi perusahaan penyimpanan khusus ZFS, di antaranya ada pasangan. Mereka dapat menentukan sistem untuk Anda.
mzhaase
2
Apakah ini benar-benar harus dilakukan dengan satu mesin? Load balancing ke beberapa mesin bisa membuat ini lebih mudah. Anda dapat menggunakan penyimpanan bersama atau mengkonsolidasikan data nanti. Pada AWS Anda mungkin menggunakan ELB, penskalaan otomatis, sejumlah instance EC2, dan EFS, tetapi sepertinya Anda menginginkan perangkat keras. Pertanyaan Anda tidak menjelaskan kasus penggunaan dengan sangat baik.
Tim
1
Hanya sebuah catatan, Anda tidak perlu kinerja "puncak" - Anda perlu kinerja "berkelanjutan" dari 1.1GBpS
jsbueno
1
@ jsbueno Anda benar, namun kita dapat memilih berapa banyak kepala tulis untuk diaktifkan, jadi 1GB / s adalah "kasus terburuk" tetapi mengingat bahwa mungkin butuh berjam-jam itu adalah kinerja yang berkelanjutan.
SvennD

Jawaban:

18

Tentu saja ... ZFS di Linux adalah suatu kemungkinan jika dirancang dengan benar. Ada banyak kasus desain ZFS yang buruk , tetapi jika dilakukan dengan baik, persyaratan Anda dapat dipenuhi.

Jadi penentu utama adalah bagaimana Anda terhubung ke sistem penyimpanan data ini. Apakah itu NFS? CIFS? Bagaimana klien terhubung ke penyimpanan? Atau apakah pemrosesan, dll. Dilakukan pada sistem penyimpanan?

Isi beberapa detail lebih lanjut dan kami dapat melihat apakah kami dapat membantu.

Sebagai contoh, jika ini adalah NFS dan dengan tunggakan sinkron, maka sangat mungkin untuk menskalakan ZFS di Linux untuk memenuhi kebutuhan kinerja penulisan dan masih mempertahankan persyaratan kapasitas penyimpanan jangka panjang. Apakah datanya kompresibel? Bagaimana setiap klien terhubung? Ethernet gigabit?


Edit:

Oke, saya akan gigit:

Berikut spesifikasi yang kira-kira $ 17k- $ 23k dan cocok untuk ruang rak 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

Pengaturan ini akan memberi Anda ruang 80TB yang dapat digunakan menggunakan perangkat keras RAID6 atau ZFS RAIDZ2.

Karena fokusnya adalah kinerja berbasis NFS (dengan asumsi penulisan sinkron), kita dapat menyerap semua itu dengan mudah dengan drive NVMe P3608 (striped SLOG). Mereka dapat mengakomodasi 3GB / s secara berurutan tulisan dan memiliki peringkat daya tahan yang cukup tinggi untuk terus menangani beban kerja yang telah Anda jelaskan. Drive dapat dengan mudah disediakan secara berlebihan untuk menambahkan beberapa perlindungan di bawah kasus penggunaan SLOG.

Dengan beban kerja NFS, menulis akan digabung dan dibilas ke disk berputar. Di Linux, kami akan menyetelnya menjadi rata setiap 15-30 detik. Disk pemintalan dapat menangani ini dan mungkin mendapat manfaat lebih banyak jika data ini dapat dikompres.

Server dapat diperluas dengan 4 slot PCIe yang lebih terbuka dan port tambahan untuk port dual-port 10GbE FLR. Jadi, Anda memiliki fleksibilitas jaringan.

putih
sumber
terima kasih ewwwite; kita akan menggunakan NFS, dan hanya ada satu klien (mesin) secara opsional kita akan menggunakannya sebagai perangkat baca dari cluster kami. (tapi apa pemrosesan atau bagaimana tidak diketahui) Kami memiliki "ruang" yang tersedia pada server penyimpanan raid 6.
SvennD
@VennD Jika NFS dan dengan tunggangan yang sinkron, maka sangat mungkin untuk mengukur ZFS di Linux untuk memenuhi kebutuhan kinerja penulisan dan tetap mempertahankan persyaratan kapasitas penyimpanan jangka panjang. Apakah datanya kompresibel? Itu faktor lain. Namun, ruang lingkup ini di luar saran yang bisa saya berikan di forum online gratis. Informasi kontak saya tersedia di profil ServerFault saya . Hubungi saya jika Anda perlu membahas lebih lanjut.
ewwhite
5
ZFS lebih dari mampu untuk apa yang Anda minta. Masalah pertama adalah memastikan perangkat keras Anda yang sebenarnya mampu melakukannya. Ini akan sangat mudah untuk secara tidak sengaja membuat bottleneck lebih ketat dari 1GB / detik di tingkat adaptor atau backplane, jika Anda tidak hati-hati. Pastikan Anda mendapatkan bagian ITU dengan benar, kemudian tanyakan tentang cara menghindari gotcha di sisi ZFS.
Jim Salter
@VennD Diedit dengan spesifikasi desain dasar dan biaya kasar.
ewwhite
Saya pikir saya akan merekomendasikan Oracle X6-2L melalui server HP. Server Oracle dilengkapi dengan empat port jaringan 10GB out-of-the-box. Dan dalam pengalaman saya, HP nickle-and-dimes Anda mati untuk ILOM, lisensi perangkat lunak ILOM, dll ke titik server HP lebih mahal daripada kotak Oracle setara. Pengalaman saya juga memberi tahu saya bahwa kotak Oracle akan mengungguli kotak HP - dan jauh lebih kecil kemungkinannya daripada kotak HP untuk memiliki salah satu hambatan perangkat keras yang disebutkan oleh @JimSalter. Ya, membeli dari Oracle bisa menyakitkan.
Andrew Henle
23

Untuk kecepatan tulis ekstrem seperti itu, saya sarankan melawan ZFS, BTRFS atau sistem file CoW. Saya akan menggunakan XFS, yang sangat efisien untuk transfer besar / streaming.

Ada banyak informasi yang hilang (bagaimana Anda berencana untuk mengakses data ini? Kecepatan baca penting? Apakah Anda akan menulis dalam potongan besar? Dll.) Untuk memberikan saran spesifik kepada Anda, namun beberapa saran umum adalah:

  • gunakan XFS di atas partisi mentah atau volume LVM yang gemuk (jangan gunakan volume tipis)
  • tune ukuran ioblock untuk secara efisien mengatasi penulisan data yang besar
  • menggunakan kartu RAID perangkat keras dengan cache tulis yang dilindungi oleh powerloss; jika menggunakan perangkat keras RAID tidak perlu dipertanyakan, gunakan skema RAID10 perangkat lunak (menghindari mode RAID berbasis paritas)
  • menggunakan dua antarmuka jaringan 10 Gb / s dengan LACP (agregasi tautan)
  • pastikan untuk mengaktifkan Jumbo Frames
  • karena Anda akan menggunakan NFS, pertimbangkan untuk menggunakan pNFS (v4.1) untuk peningkatan skalabilitas
  • pasti banyak hal lainnya ...
shodanshok
sumber
3
Juga, jika menggunakan XFS, letakkan jurnal pada pasangan RAID1 SSD.
TB
2
Jika menggunakan kartu RAID dengan cache writeback yang dilindungi powerloss, jurnal dapat dibiarkan pada array utama: cache tulis akan menyerap dan menyatukan jurnal menulis. Selain itu, dari apa yang dijelaskan OP, beban metadata harus cukup rendah dibandingkan dengan streaming data.
shodanshok
2
ZFS akan bekerja dengan baik, dan bisa berjalan jauh lebih cepat daripada XFS. Tentu, Anda harus mengaturnya dengan benar, dan memiliki RAM dan SSD untuk ZIL dan SLOG, tetapi itu mungkin tidak masalah dengan kecepatan yang diperlukan.
John Keates
3
Saya melihat XFS di Linux sebagai teknologi lama. OP dapat dengan mudah menjalankan ZFS di atas perangkat keras RAID. Alasan saya merekomendasikan ZFS adalah untuk memungkinkan penulisan sinkron NFS yang masuk diserap oleh SLOG pada latensi rendah tanpa memerlukan kumpulan semua-SSD.
ewwhite
6
Shelby Cobra adalah "Teknologi Lama" tetapi masih bisa menghisap sebagian besar mobil keluar dari gerbang. ZFS tidak pernah dirancang sebagai sistem file berkinerja tinggi, dan meskipun layak untuk menyetel sedemikian rupa sehingga sangat cepat dengan beban kerja tertentu, ZFS tidak dirancang untuk itu secara default. Dibutuhkan lebih banyak perangkat keras, lebih banyak memori, dan banyak penyetelan untuk mengalahkannya yang diberikan XFS secara gratis dengan beberapa opsi jumlah file dan format.
TB
4

25Gbps Ethernet sudah menjadi mainstream-arus utama sedangkan NVe-base NVMe akan menambah lalu lintas dengan mudah.

Sebagai referensi, saya baru-baru ini membangun solusi 'penangkapan log' kecil menggunakan empat server dual-xeon reguler (HPE DL380 Gen9s dalam kasus ini), masing-masing dengan 6 x NVMe drive, saya menggunakan IP lebih dari Infiniband tetapi NIC 25 / 40Gbps itu akan sama dan kami menangkap hingga 8GBps per server - berfungsi dengan baik.

Pada dasarnya ini tidak murah tetapi sangat bisa dilakukan akhir-akhir ini.

Chopper3
sumber
1
Ya, tapi bagaimana Anda menyimpan ~ 50TB di NVMe's? Pemintal itu murah, jadi bagaimana kita bergabung untuk menjaga kecepatan tetap ...
SvennD
Poin bagus, secara realistis Anda hanya perlu mendapatkan 4 x 4TB dalam satu server, saya menggunakan beberapa server, mungkin Anda tidak bisa? kalau tidak, itu hanya banyak 2,5 "10 krpm dalam R10
Chopper3
Tidak ingin lebih seperti itu, kita tidak akan memerlukan spesifikasi itu kecuali untuk masuk, dan saya tidak ingin mimpi buruk dari overhead beberapa server. hanya untuk satu mesin. Apakah R10 cukup cepat? (serangan harware?)
SvennD
Kami memiliki kotak Windows 2012R2 yang kami buat dari kit cadangan yang tidak digunakan, kami menggunakannya sebagai NAS, memiliki internal SAS SSD 6 x 400GB, masing-masing rak 8 x D2600 masing-masing dengan 25 x 900GB 10k SAS disk dan D6000 rak dengan 70 x 4TB disk dan yang dapat membanjiri NIC 10Gbps dengan mudah - tidak mencobanya dengan NIC 25Gb namun tbh.
Chopper3
1
@MSalters Ada sejumlah drive PMR 8/10 TB (non-SMR) dengan kecepatan transfer di kisaran 200 MB / s. Array drive 12 atau 16, baik dalam RAID10 dan RAID6, harus dengan mudah melebihi kecepatan transfer 1,1 GB / s yang diperlukan.
shodanshok
2

Tidak terdengar seperti masalah besar. Pemasok perangkat keras lokal kami memiliki ini sebagai produk standar - tampaknya dapat mendorong 1400MB / s berkelanjutan dalam mode perekaman CCTV, yang seharusnya lebih sulit daripada kebutuhan puncak Anda.

(Tautan ke konfigurasi 12GB default, tetapi mereka mencatat 20x4TB juga merupakan pilihan. Tidak ada pengalaman pribadi dengan server model khusus ini.)

MSalters
sumber
4
Nah, dengan "produk standar" Anda merujuk ke "kotak perangkat lunak hitam" dengan 20 x 600 GB sas 15k dan 3 x ssd perusahaan. Ini tawaran yang adil, kami mendapat vendor perangkat keras yang serupa, tetapi biaya lisensi bagi saya gila untuk sesuatu yang pada dasarnya gratis (ZFS) Terima kasih telah berbagi pembuatan! (tautan bagus)
SvennD
2

Menulis berurutan pada 1100MB / s bukan merupakan masalah dengan perangkat keras modern. Secara anekdot, pengaturan rumah saya dengan drive laptop 8x5900 RPM, drive 2x15000 RPM dan drive 2x7200 RPM menopang 300 MB / s dengan payload sekali pakai 16GB.

Jaringannya adalah 10GbE dengan kabel serat, 9000 MTU pada ethernet, dan lapisan aplikasi adalah Samba 3.0. Penyimpanan dikonfigurasikan dalam raid50 dengan tiga garis pada tiga volume raid5 4-drive. Pengontrolnya adalah LSI MegaRAID SAS 9271-8i dengan hingga 6Gb / s per port (Saya punya tambahan, port-multiplier yang lebih lambat).

Bicaralah dengan sysadmin berpengalaman dan mereka harus dapat memberi tahu Anda dengan tepat controller dan drive mana yang memenuhi persyaratan Anda.

Saya pikir Anda dapat mencoba dengan 12Gb / s controller dan mengkonfigurasi dua garis cermin delapan drive masing-masing 7200 RPM (hampir semua drive harus melakukan). Mulai 3-4 koneksi TCP untuk menjenuhkan tautan dan jika sepasang kartu 10GbE tidak dapat mengatasinya, gunakan empat kartu.

Ярослав Рахматуллин
sumber
2

Sesuatu yang menyinggung, tetapi pertimbangkan untuk menggunakan InfiniBand alih-alih tautan ganda 10GbE. Anda bisa mendapatkan kartu Infiniband 56Gbps yang cukup murah, atau kartu yang 100Gbps tidak terlalu banyak, dan di Linux mudah untuk menggunakan NFS dengan RDMA melalui IB, yang akan memberi Anda latensi yang sangat rendah dan dekat throughput kecepatan jalur teoritis (jika penyimpanan yang mendasarinya dapat tangani itu). Anda tidak perlu sakelar, hanya dua kartu InfiniBand dan kabel pasang langsung (atau kabel serat InfiniBand jika Anda membutuhkan jarak yang lebih jauh).

Kartu Mellanox 56Gbps port tunggal (8x PCIe 3.0) seperti MCB191A-FCAT kurang dari 700 dolar, dan kabel sambungan langsung tembaga 2 meter harganya 80 dolar.

Performa umumnya akan mengeluarkan 10GbE dari air dalam semua kasus penggunaan. Tidak ada kerugian, kecuali jika Anda perlu mengakses server dari banyak klien berbeda yang tidak bisa menggunakan InfiniBand (dan bahkan kemudian, switch Mellanox dapat menjembatani 10GbE dan 40GbE ke IB, tetapi itu lebih merupakan investasi, tentu saja).

Joakim Ziegler
sumber
1

Akan tetapi, melakukan hal ini dengan ZFS dimungkinkan, pertimbangkan untuk menggunakan FreeBSD karena FreeBSD memiliki tumpukan jaringan yang lebih cepat. Ini memungkinkan 100 GBit pada satu mesin.

1100 MBps terdengar sangat banyak, tetapi Anda dapat secara realistis mencapai ini hanya dengan menggunakan hard drive biasa. Anda mengatakan Anda membutuhkan ruang 75 TB, sehingga Anda bisa menggunakan hard disk 24 8 TB di cermin. Ini akan memberi Anda kecepatan tulis 12x dalam satu drive, dan kecepatan baca 24x. Karena drive ini memiliki kecepatan tulis lebih dari 100 MBps, ini seharusnya dapat dengan mudah menangani bandwidth. Pastikan ekstra untuk tidak mendapatkan drive SMR, karena ini memiliki kecepatan tulis yang sangat lambat.

ZFS memang membuat checksum untuk setiap blok. Ini diterapkan single-threaded. Dengan demikian, Anda harus memiliki CPU dengan laju jam yang cukup cepat untuk tidak memblokir.

Namun, detail implementasi yang tepat sangat tergantung pada detail.

mzhaase
sumber
12
"FreeBSD memiliki jaringan yang lebih cepat" [butuh kutipan]
Jim Salter
Persis. Linux cukup mumpuni.
ewwhite
1

Kami telah mematok data dumping 10G NIC ke cluster Gluster di atas klien sekering mereka. Butuh sedikit penyetelan, Anda tidak akan percaya kinerja yang dapat dicapai sejak 3.0.

pozcircuitboy
sumber