Saya memiliki 40 tahun dalam komputasi, tetapi saya tidak pernah harus membangun server seperti ini, jadi ini mungkin pertanyaan n00b.
Saya memiliki klien yang akan menawarkan file musik def ultra-tinggi untuk diunduh. Dalam hal ini berarti FLAC terkompresi 24 / 192Khz = ~ 10GB / album. (Tidak, saya tidak ingin membahas keinginan produk, hanya konfigurasi server.) Katalog akan sekitar 3.000 album, dengan versi def sangat tinggi dan rendah (untuk iPod mereka, saya kira), memberikan sekitar 35-40TB atau lebih dari data primer.
Karena ini adalah produk yang sangat khusus, ukuran pasar relatif kecil (pikirkan: orang yang menghabiskan $ 20.000 pada sistem audio mereka), yang berarti sebagian besar waktu server akan menjadi 100% menganggur (atau dekat dengan itu). Saya memiliki apa yang tampak seperti tawaran colocation yang baik dari ColocationAmerica dengan koneksi 1Gbps dan bandwidth sekitar $ 20 / TB, jadi sekarang saya hanya perlu membuat kotak untuk mengirimkan barang.
Kasus penggunaan akses-data adalah write-once / read-many, jadi saya berpikir untuk hanya menggunakan perangkat lunak RAID 1 untuk pasangan drive. Ini akan memungkinkan saya (saya pikir ) untuk mengkonfigurasi ulang drive cadangan untuk yang gagal on-the-fly, sehingga dapat memulai pembangunan kembali drive kedua sebelum beberapa sysadmin memperhatikan lampu merah pada sistem (mereka bebas swap keluar). Akan lebih bagus jika saya bisa membuat sebagian besar drive untuk tidur / spin-down jika mereka tidak diperlukan, yang akan menjadi sebagian besar waktu untuk sebagian besar drive.
Saya tidak perlu banyak dalam hal menghitung daya — benda ini hanya mendorong benda-benda gemuk ke dalam pipa — dan agar CPU / motherboard bisa cukup sederhana selama dapat mendukung jumlah drive ini.
Saya sedang mempertimbangkan konfigurasi berikut:
Chasis: Supermicro CSE-847E26-RJBOD1
Drives: 30 4TB SAS drives (Seagate ST4000NM0023 ?)
MB: SUPERMICRO MBD-X10SAE-O w/ 8GB
CPU: Xeon E3-1220V3 3.1GHz LGA 1150 80W Quad-Core Server
Jadi, apakah saya pergi ke arah yang benar, atau apakah ini cara yang sepenuhnya n00b / dinosaurus untuk mendekati masalah?
Pembaruan untuk memperjelas beberapa poin:
- Saya tidak punya pengalaman dengan ZFS, karena produk Sun terakhir yang saya miliki adalah kembali di akhir 80-an. Saya akan melakukan sedikit RTFMing untuk melihat apakah itu terasa benar.
- Saya tidak benar-benar membutuhkan sistem file untuk melakukan sesuatu yang spektakuler karena nama file akan menjadi UUID sederhana, dan objek akan seimbang di seluruh drive (semacam seperti sistem caching besar). Jadi saya benar-benar memikirkan ini sebagai 40 filesystem terpisah, dan itu membuat RAID 1 terdengar benar (tapi saya akui ketidaktahuan di sini).
- Karena harapan kami saat ini adalah bahwa kami tidak akan mungkin mengunduh lebih dari beberapa lusin file pada satu waktu, dan dalam kebanyakan kasus hanya ada satu orang yang mengunduh file yang diberikan, saya tidak tahu apakah kami membutuhkan banyak memori. untuk buffer. Mungkin 8GB agak ringan, tetapi saya tidak berpikir 128GB akan melakukan apa pun selain mengkonsumsi energi.
- Ada 2 mesin terpisah yang tidak disebutkan di sini: toko web mereka saat ini, dan Master Download yang hampir sepenuhnya dipisahkan yang menangani semua otentikasi, manajemen konsumsi produk baru, penegakan kebijakan (setelah semua, ini adalah taman bermain RIAA), pembuatan URL sesaat (dan mungkin menyerahkan unduhan ke lebih dari satu binatang buas ini jika lalu lintas melebihi harapan kami), pelacakan penggunaan, dan pembuatan laporan. Itu berarti mesin ini hampir bisa dibuat menggunakan gerbil pada Quaaludes.
ZFS? Di mana manfaatnya?
OK, saya slogging jalan saya melalui beberapa panduan ZFS, FAQ, dll. Maafkan saya karena terdengar bodoh, tapi saya benar-benar mencoba untuk memahami manfaat menggunakan ZFS atas gagasan kuno saya tentang pasangan N RAID1. Pada halaman Praktik Terbaik ini (dari 2006), mereka bahkan menyarankan untuk tidak melakukan 48 perangkat ZFS, tetapi 24 2-perangkat-mirror - kedengarannya seperti apa yang saya bicarakan. Halaman lain menyebutkan jumlah perangkat yang harus diakses untuk mengirimkan 1 (satu) blok ZFS. Juga, harap diingat, pada 10GB per objek, dan pada pemanfaatan disk 80%, saya menyimpan total 320 file per drive 4TB . Waktu rekondisi saya dengan N RAID 1, untuk setiap kegagalan drive yang diberikan, adalah penulisan 4TB dari satu perangkat ke perangkat lainnya.Bagaimana ZFS membuat ini lebih baik?
Saya akui sebagai dinosaurus, tetapi disk murah, RAID 1 Saya mengerti, kebutuhan manajemen file saya sepele, dan ZFS di Linux (OS pilihan saya) masih agak muda. Mungkin saya terlalu konservatif, tetapi ketika saya melihat sistem produksi, itulah yang saya lakukan.
Saya berterima kasih kepada Anda semua atas komentar Anda yang membuat saya berpikir tentang ini. Saya masih belum sepenuhnya memutuskan dan saya mungkin harus kembali dan menanyakan beberapa pertanyaan n00b lagi.
sumber
Jawaban:
Berdasarkan uraian masalah Anda, masalah Anda tidak sebanyak server sebagai penyimpanan.
Anda menginginkan sistem file yang andal dan kuat seperti ZFS yang dirancang untuk menangani kapasitas penyimpanan yang besar dengan baik, dan memiliki kemampuan manajemen bawaan untuk membuat ujung sistem lebih mudah dikelola.
Seperti yang disebutkan dalam komentar, saya akan menggunakan ZFS untuk kumpulan penyimpanan (mungkin di FreeBSD karena saya paling akrab dengan sistem operasi itu dan karena punya catatan panjang yang terbukti dari kinerja yang solid dengan ZFS - pilihan kedua saya OS akan menjadi Illumos , sekali lagi karena dukungan ZFS yang teruji dengan baik).
Sejauh melayani file saya setuju - Anda tidak perlu banyak dalam hal perangkat keras untuk hanya mendorong data keluar dari port jaringan. Driver utama Anda untuk CPU / RAM akan menjadi kebutuhan sistem file (ZFS).
Aturan umum praktis adalah ZFS membutuhkan 1GB RAM, ditambah 1GB untuk setiap 10TB ruang disk yang dikelola (jadi untuk 40TB Anda membutuhkan 5GB RAM untuk ZFS) - hubungannya tidak terlalu linier (ada banyak buku / tutorial / dokumen yang bagus tentang ZFS yang dapat membantu Anda menghasilkan perkiraan untuk lingkungan Anda).
Perhatikan bahwa menambahkan lonceng dan peluit ZFS seperti deduplikasi akan membutuhkan lebih banyak RAM.
Jelas bulatkan persyaratan RAM ke atas daripada ke bawah dan jangan pelit: Jika matematika Anda mengatakan Anda membutuhkan 5GB RAM jangan memuat server dengan 8GB - tingkatkan hingga 16GB.
Anda kemudian dapat menjalankan server Anda langsung di kotak penyimpanan (yang berarti Anda akan membutuhkan lebih banyak RAM di kotak itu untuk mendukung proses server), atau Anda dapat memasang pemasangan dari jauh ke server "front-end" untuk sebenarnya melayani permintaan klien.
(Yang pertama lebih murah pada awalnya, yang terakhir skala jangka panjang yang lebih baik.)
Di luar saran ini, saran terbaik yang dapat saya berikan kepada Anda sudah tercakup dengan baik dalam serangkaian pertanyaan Perencanaan Kapasitas kami - pada dasarnya "Uji Beban , Uji Beban , Uji Beban ".
sumber
fsck
jika Anda menggunakan ZFS dan mesin crash. Saya memilikifsck
sistem file terabyte. Cukup mengerikan.Saya menggunakan ZFS untuk server multi-TB dan sudah solid. Saya menggunakan OpenIndiana untuk memulai dan sekarang telah pindah ke FreeNAS karena ia melakukan apa yang saya perlukan.
Saya akan merekomendasikan menggunakan kartu LSI HBA (9211-8i adalah kartu dasar yang baik) dengan ekspander SAS (Kasing SuperMicro dapat dipesan dengan ekspander SAS integral yang didasarkan pada chipset LSI). Firmware LSI didukung dalam FreeNAS dan FreeBSD. Periksa versi yang sesuai (V16 bagus di FreeBSD V9.x).
Mengingat tulisan itu pernah membaca banyak sifat sistem Anda, saya akan menggunakan topologi ZFS Z2 (hindari RAID-5 dan Z1 dengan drive ukuran ini). Mengingat bahwa Anda menggunakan disk 4TB, waktu pembangunan kembali (resilver) untuk array vDev tunggal yang besar akan menjadi waktu yang lama jika kumpulan penuh. Untuk menghindari waktu pembangunan kembali yang lama, atur vDev dalam kelompok 6 atau 10 untuk membuat kumpulan (rekomendasi dari dokumentasi FreeNAS). Kumpulan yang terdiri dari tiga 6 drive vDevs (diasumsikan 4TB drive) akan memiliki kapasitas ~ 48TB yang dapat digunakan dan menawarkan tingkat toleransi kesalahan yang baik (ingat Anda masih perlu mencadangkan kembali karena RAID tidak menggantikan cadangan :)).
Untuk mempercepat file-file yang biasa diakses, Anda bisa melempar beberapa SSD untuk L2ARC (kemungkinan tidak diperlukan untuk aplikasi Anda, tetapi harganya cukup murah untuk 120GB SSD).
Dan seperti yang dinyatakan, gunakan banyak RAM. 64GB tidak terlalu mahal mengingat perangkat keras lain dalam sistem. Sayangnya, XEON yang lebih kecil tidak dapat menggunakan lebih dari 32GB. Anda bisa mencobanya tetapi lebih banyak RAM akan lebih baik menurut literatur ZFS (saya menggunakan XEON yang Anda sebutkan dengan ram 32GB dan kapasitas 24TB Z2 array dan berfungsi dengan baik).
Keuntungan lain dari ZFS adalah Anda dapat mengatur snapshot berkala. Dengan cara ini, Anda dapat memulihkan versi sebelumnya dengan mudah dan snapshot-nya sangat hemat ruang. Selain itu, Anda dapat mereplikasi snapshot apa pun ke dataset lain (lokal atau jauh) dan ini dapat dilakukan melalui SSH untuk keamanan.
Saya sangat suka keandalan sistem ZFS. Saya juga menyukai kenyataan bahwa itu adalah perangkat keras INDEPENDEN !! Sistem apa pun yang dapat melihat drive dapat mengimpor kumpulan. Tidak ada ketergantungan firmware, dll. Yang dapat terjadi dengan serangan perangkat keras (bukan masalah dengan kartu yang lebih baik tetapi lebih mahal daripada kartu HBA dan membutuhkan driver dll. - pernah digigit oleh itu di masa lalu).
Mengingat posting ini lebih lama, Anda mungkin punya solusi. Jika demikian, beritahukan kami apa yang Anda buat?
Tepuk tangan,
sumber