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)
sumber
Jawaban:
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.
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.
sumber
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:
sumber
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.
sumber
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.)
sumber
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
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).
sumber
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.
sumber
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.
sumber