Praktik terbaik ZFS dengan RAID perangkat keras

30

Jika seseorang memiliki beberapa perangkat keras tingkat server yang siap, apakah pernah dianjurkan untuk menjalankan ZFS di atas RAID1 berbasis perangkat keras atau semacamnya? Haruskah seseorang mematikan RAID berbasis perangkat keras, dan menjalankan ZFS pada mirroratau sebagai raidz zpoolgantinya?

Dengan fungsionalitas RAID perangkat keras dimatikan, apakah pengontrol SATA2 dan SATA berbasis perangkat keras atau lebih cenderung menyembunyikan kesalahan baca dan tulis dibandingkan dengan pengontrol non-perangkat keras-RAID?

Dalam hal server yang tidak dapat dikustomisasi, jika seseorang memiliki situasi di mana pengontrol RAID perangkat keras secara efektif netral biaya (atau bahkan menurunkan biaya penawaran server yang dibuat sebelumnya, karena kehadirannya meningkatkan kemungkinan perusahaan hosting menyediakan IPMI komplementer akses), haruskah itu dihindari sama sekali? Tetapi haruskah itu dicari?

cnst
sumber
2
@ShaneMadden, pertanyaannya serupa, namun, pertanyaan saya sudah berasal dari perspektif serangan perangkat keras yang buruk dalam hal zfs, dan saya bertanya seberapa buruknya; juga, pertimbangkan bahwa jawaban yang diterima untuk pertanyaan terkait Anda sama sekali tidak menjawab pertanyaan saya; pertanyaan saya lebih seperti pertanyaan lanjutan dari pertanyaan yang Anda tautkan.
cnst
"ZFS di atas Hardware Mirroring, atau hanya mirror di ZFS?" dan pertanyaan ini adalah dua topik berbeda. Topik lain itu lebih sempit cakupannya daripada topik ini.
Stefan Lasiewski
@White, bukankah sudah menanyakan ini?
cnst
@cnst Nah, tidak ada jawaban yang ditandai, dan orang-orang terus downvoting jawaban saya. Jadi alangkah baiknya jika ada penutupan untuk pertanyaan yang diajukan. ( Ini adalah hal yang bertanggung jawab untuk dilakukan )
ewwhite

Jawaban:

17

Gagasan dengan ZFS adalah memberi tahu sebanyak mungkin bagaimana disk berperilaku. Lalu, dari yang terburuk ke yang lebih baik:

  • Hardware raid (ZFS sama sekali tidak memiliki petunjuk tentang hardware sebenarnya),
  • Mode JBOD (Masalahnya adalah tentang ekspander potensial: bandwidth lebih sedikit)
  • Mode HBA menjadi yang ideal (ZFS tahu segalanya tentang disk)

Karena ZFS cukup paranoid tentang perangkat keras, semakin sedikit persembunyiannya, semakin dapat mengatasi masalah perangkat keras. Dan seperti yang ditunjukkan oleh Sammitch , konfigurasi RAID Controller dan ZFS mungkin sangat sulit untuk dipulihkan atau dikonfigurasi ulang ketika gagal (mis. Kegagalan perangkat keras).

Tentang masalah hardware standar dengan beberapa hardware-RAID controller di dalamnya, berhati-hatilah bahwa controller hardware memiliki mode pass-through atau JBOD yang sebenarnya.

Ouki
sumber
10
Perlu juga dicatat bahwa jika Anda menggunakan HW RAID dan pengontrol Anda mati [terjadi lebih dari yang Anda kira] jika Anda tidak bisa mendapatkan pengganti yang identik atau sepenuhnya kompatibel, Anda bohong. Di sisi lain, jika Anda memberikan disk mentah ke ZFS, Anda dapat menyambungkan disk tersebut kembali ke pengontrol apa pun di mesin apa pun dan ZFS dapat merekonstruksi array dan melanjutkan seperti tidak terjadi apa-apa.
Sammitch
1
Server kelas atas biasanya memiliki pengontrol RAID onboard. Misalnya saya tidak pernah harus mengganti pengontrol pada sistem HP atau Dell.
ewwhite
2
Jawaban ini tidak menjawab apa pun. Itu hanya mengungkapkan pendapat yang bias, bahwa pemasok perangkat keras server dan programmer ZFS telah melakukan pekerjaan yang lebih baik daripada pemasok pengontrol RAID dan pemrogram firmware RAID. Komunitas FreeNAS penuh dengan orang-orang yang membunuh Zpools mereka dengan memori server yang tidak berfungsi atau catu daya yang tidak sesuai. Kemungkinan sesuatu yang besar gagal lebih tinggi daripada sesuatu yang kecil.
ceving
14

Q. Jika seseorang memiliki beberapa perangkat keras tingkat server di pembuangan, apakah pernah dianjurkan untuk menjalankan ZFS di atas RAID1 berbasis perangkat keras atau semacamnya?

A. Sangat disarankan untuk menjalankan ZFS langsung ke disk, dan tidak menggunakan bentuk RAID apa pun di antaranya. Apakah suatu sistem yang secara efektif mengharuskan Anda menggunakan kartu RAID menghalangi penggunaan ZFS lebih banyak berkaitan dengan manfaat ZFS LAIN daripada ketahanan data. Rata, jika ada kartu RAID mendasar yang bertanggung jawab untuk menyediakan LUN tunggal untuk ZFS, ZFS tidak akan meningkatkan ketahanan data. Jika satu-satunya alasan Anda menggunakan ZFS di tempat pertama adalah peningkatan ketahanan data, maka Anda kehilangan semua alasan untuk menggunakannya. Namun, ZFS juga menyediakan ARC / L2ARC, kompresi, snapshot, klon, dan berbagai perbaikan lain yang mungkin Anda juga inginkan, dan dalam hal ini, mungkin itu masih merupakan filesystem pilihan Anda.

Q. Haruskah seseorang mematikan RAID berbasis perangkat keras, dan menjalankan ZFS pada mirror atau raidz zpool?

A. Ya, jika memungkinkan. Beberapa kartu RAID memungkinkan mode pass-through. Jika sudah, ini yang harus dilakukan.

P. Dengan fungsionalitas RAID perangkat keras dimatikan, apakah pengendali SATA2 dan SAS berbasis hardware-RAID lebih atau kurang cenderung menyembunyikan kesalahan baca dan tulis dibandingkan dengan pengontrol non-hardware-RAID?

A. Ini sepenuhnya tergantung pada kartu RAID yang dimaksud. Anda harus mempelajari manual ini atau menghubungi produsen / vendor kartu RAID untuk mengetahuinya. Beberapa sangat baik, ya, terutama jika 'mematikan' fungsi RAID sebenarnya tidak sepenuhnya mematikannya.

P. Dalam hal server yang tidak dapat dikustomisasi, jika seseorang memiliki situasi di mana pengontrol RAID perangkat keras secara efektif netral biaya (atau bahkan menurunkan biaya penawaran server pra-bangun, karena kehadirannya meningkatkan kemungkinan perusahaan penyedia hosting menyediakan akses IPMI komplementer), apakah harus dihindari? Tetapi haruskah itu dicari?

A. Pertanyaan ini hampir sama dengan pertanyaan pertama Anda. Sekali lagi - jika satu-satunya keinginan Anda untuk menggunakan ZFS adalah peningkatan dalam ketahanan data, dan platform perangkat keras yang Anda pilih membutuhkan kartu RAID yang menyediakan satu LUN untuk ZFS (atau beberapa LUN, tetapi Anda memiliki garis ZFS di atasnya), maka Anda melakukan apa-apa untuk meningkatkan ketahanan data dan dengan demikian pilihan ZFS Anda mungkin tidak sesuai. Namun, jika Anda menemukan salah satu fitur ZFS lain yang bermanfaat, mungkin masih ada.

Saya ingin menambahkan kekhawatiran tambahan - jawaban di atas bergantung pada gagasan bahwa penggunaan kartu RAID perangkat keras di bawah ZFS tidak merusak ZFS selain menghilangkan kemampuannya untuk meningkatkan ketahanan data. Yang benar adalah itu lebih merupakan area abu-abu. Ada berbagai tuneable dan asumsi di dalam ZFS yang tidak harus beroperasi juga saat menyerahkan LUN multi-disk sebagai ganti disk mentah. Sebagian besar ini dapat dinegasi dengan penyetelan yang tepat, tetapi di luar kotak, Anda tidak akan seefisien ZFS di atas RAID LUN besar seperti yang Anda lakukan di atas masing-masing spindel.

Lebih lanjut, ada beberapa bukti yang menunjukkan bahwa cara yang sangat berbeda di mana ZFS berbicara dengan LUN sebagai lawan dari sistem file yang lebih tradisional sering memanggil jalur kode pada pengontrol RAID dan beban kerja yang tidak biasa, yang dapat menyebabkan keanehan. Terutama, Anda mungkin akan membantu diri sendiri dengan menonaktifkan fungsi ZIL sepenuhnya pada setiap kolam yang Anda tempatkan di atas LUN tunggal jika Anda tidak juga menyediakan perangkat log terpisah, meskipun tentu saja saya sangat merekomendasikan Anda DO menyediakan kumpulan perangkat log mentah yang terpisah (yang bukan LUN dari kartu RAID, jika memungkinkan).

Nex7
sumber
9

Saya menjalankan ZFS di atas konfigurasi HP ProLiant Smart Array RAID dengan cukup sering.

Mengapa?

  • Karena saya suka ZFS untuk partisi data, bukan partisi boot.
  • Karena Linux dan ZFS boot mungkin tidak cukup untuk saya saat ini.
  • Karena pengontrol RAID HP tidak mengizinkan perangkat RAW melakukan passthrough . Mengkonfigurasi beberapa volume RAID 0 tidak sama dengan disk RAW.
  • Karena server backplane biasanya tidak cukup fleksibel untuk mendedikasikan ruang drive ke controller tertentu atau tugas split antara dua controller. Saat ini Anda paling sering melihat pengaturan 8 dan 16-bay. Tidak selalu cukup untuk melakukan segmentasi sebagaimana mestinya.
  • Tapi saya masih suka kemampuan manajemen volume ZFS. Zpool memungkinkan saya untuk mengukir berbagai hal secara dinamis dan memanfaatkan ruang disk yang tersedia.
  • Kompresi, ARC dan L2ARC adalah fitur pembunuh!
  • Pengaturan ZFS yang direkayasa dengan baik di atas perangkat keras RAID masih memberikan peringatan yang baik dan peringatan kegagalan, tetapi mengungguli solusi perangkat keras saja.

Sebuah contoh:

Konfigurasi pengontrol RAID.

[root@Hapco ~]# hpacucli ctrl all show config

Smart Array P410i in Slot 0 (Embedded)    (sn: 50014380233859A0)

   array B (Solid State SATA, Unused Space: 250016  MB)
      logicaldrive 3 (325.0 GB, RAID 1+0, OK)

      physicaldrive 1I:1:3 (port 1I:box 1:bay 3, Solid State SATA, 240.0 GB, OK)
      physicaldrive 1I:1:4 (port 1I:box 1:bay 4, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:7 (port 2I:box 1:bay 7, Solid State SATA, 240.0 GB, OK)
      physicaldrive 2I:1:8 (port 2I:box 1:bay 8, Solid State SATA, 240.0 GB, OK)

blokir daftar perangkat

[root@Hapco ~]# fdisk  -l /dev/sdc

Disk /dev/sdc: 349.0 GB, 348967140864 bytes
256 heads, 63 sectors/track, 42260 cylinders
Units = cylinders of 16128 * 512 = 8257536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1       42261   340788223   ee  GPT

konfigurasi zpool

[root@Hapco ~]# zpool  list
NAME   SIZE  ALLOC   FREE    CAP  DEDUP  HEALTH  ALTROOT
vol1   324G  84.8G   239G    26%  1.00x  ONLINE  -

detail zpool

  pool: vol1
 state: ONLINE
  scan: scrub repaired 0 in 0h4m with 0 errors on Sun May 19 08:47:46 2013
config:

        NAME                                      STATE     READ WRITE CKSUM
        vol1                                      ONLINE       0     0     0
          wwn-0x600508b1001cc25fb5d48e3e7c918950  ONLINE       0     0     0

daftar sistem file zfs

[root@Hapco ~]# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
vol1            84.8G   234G    30K  /vol1
vol1/pprovol    84.5G   234G  84.5G  -
putih
sumber
Jadi, sehubungan dengan pertanyaan tertutup yang telah Anda tautkan, apakah ini untuk mengatakan bahwa jika saya ingin menggunakan ZFS, saya sebaiknya menghindari, misalnya, Dell PERC H200 dan HP P410? Apakah mereka masih tidak memiliki cara untuk menonaktifkan mode serangan perangkat keras, apakah itu RAID0 atau RAID1?
cnst
Jadi, sepertinya dell.com/learn/us/en/04/campaigns/dell-raid-controllers mengklaim bahwa H200 "Mendukung non-RAID", meskipun h18004.www1.hp.com/products/servers/proliantstorage/ ... tidak sepenuhnya jelas apakah fungsi serangan P410 dapat atau tidak dapat dimatikan.
cnst
@ cnst Anda tidak dapat menonaktifkan fungsionalitas RAID dari HP Smart Array P410.
ewwhite
Apakah ini masih benar? Apakah Anda mengatakan tidak ada ZFS berbahaya yang berjalan pada serangan perangkat keras?
Jarang
Benar. Itu tidak berbahaya.
ewwhite
5

Biasanya Anda tidak boleh menjalankan ZFS di atas disk yang dikonfigurasi dalam array RAID. Perhatikan bahwa ZFS tidak harus berjalan dalam mode RAID. Anda bisa menggunakan disk individu. Namun, hampir 99% orang menjalankan ZFS untuk bagian RAID-nya. Anda bisa menjalankan disk Anda dalam mode bergaris, tetapi itu adalah penggunaan ZFS yang buruk. Seperti poster lain katakan, ZFS ingin tahu banyak tentang perangkat keras. ZFS hanya boleh dihubungkan ke kartu RAID yang dapat diatur ke mode JBOD, atau lebih baik terhubung ke HBA. Langsung ke saluran IRC Freenode #openindiana; salah satu pakar ZFS di saluran akan memberi tahu Anda hal yang sama. Minta penyedia hosting Anda untuk menyediakan mode JBOD jika mereka tidak akan memberikan HBA.

chris
sumber
1
Ya saya setuju. Tetapi itu juga masalah apa yang tersedia dalam stok dengan konfigurasi yang sesuai dengan tagihan dan spek. Jika server memiliki CPU yang hebat, banyak RAM ECC, bandwidth yang besar, dan banyak, tetapi harus disertai dengan RAID berbasis perangkat keras, mungkin tidak efektif untuk mencari alternatif, yang mungkin beberapa kali lebih mahal, karena berada dalam kategori yang berbeda atau lebih, atau kehilangan beberapa fitur perusahaan seperti ECC RAM dll.
cnst
2

Singkatnya: menggunakan RAID di bawah ZFS cukup membunuh gagasan menggunakan ZFS. Mengapa? - Karena dirancang untuk bekerja pada disk murni, bukan RAID.

poige
sumber
1
Belum tentu. Bagaimana jika saya lebih peduli pada fleksibilitas manajemen volume daripada optimasi di sekitar memiliki akses mentah ke perangkat fisik. ZFS bekerja dengan baik untuk use case saya.
ewwhite
3
@white, well, seseorang bisa mengendarai sepeda berjalan di dekatnya, mengatakan bahwa dia suka berjalan dan menyukai sepeda secara umum, tetapi kenyataannya sepeda dibuat untuk dikendarai. )
poige
2

Untuk Anda semua ... ZFS atas Serangan apa pun adalah NYERI total dan dilakukan hanya oleh orang-orang MAD! ... seperti menggunakan ZFS dengan memori non ECC.

Dengan sampel, Anda akan memahami dengan lebih baik:

  • ZFS lebih Raid1, satu disk memiliki sedikit berubah ketika tidak dimatikan ... pry semua yang Anda tahu, ZFS akan melihat beberapa kerusakan atau tidak tergantung pada disk apa yang dibaca (Raid controller tidak melihat bahwa bit berubah dan berpikir kedua disk OK ) ... jika kegagalan ada di bagian VDEV ... seluruh ZPOOL kehilangan semua datanya selamanya.
  • ZFS lebih Raid0, satu disk sedikit berubah ketika tidak dimatikan ... pry semua yang Anda tahu, (Raid controller tidak melihat bahwa bit berubah dan berpikir kedua disk OK) ... ZFS akan melihat kerusakan itu tetapi jika kegagalan ada di bagian VDEV ... seluruh ZPOOL kehilangan semua datanya selamanya.

Di mana ZFS baik dalam mendeteksi Bit yang berubah ketika disk mana tanpa daya (pengontrol RAID tidak bisa melakukan itu), juga ketika sesuatu berubah tanpa diminta, dll.

Ini adalah masalah yang sama seperti ketika sedikit dalam modul RAM berubah secara spontan tanpa diminta untuk ... jika memori ECC, memori mengoreksi sendiri; jika tidak, data itu telah berubah, sehingga data akan dikirim ke disk yang dimodifikasi; mungkinkah perubahan itu bukan pada bagian UDEV, jika kegagalan ada di bagian VDEV ... seluruh ZPOOL kehilangan semua datanya selamanya.

Itu adalah kelemahan pada ZFS ... VDEV gagal menyiratkan semua data hilang selamanya.

Hardware Raid dan Software Raid tidak dapat mendeteksi perubahan bit spontan, mereka tidak memiliki checksum, terburuk pada level Raid1 (mirros), mereka membaca tidak semua bagian dan membandingkannya, mereka mengira semua bagian akan selalu memiliki data yang sama, ALLWAYS (saya katakan itu keras) Raid mengandaikan data tidak berubah oleh hal lain / cara ... tetapi disk (sebagai memori) rentan terhadap perubahan bit spontan.

Jangan pernah menggunakan ZFS pada RAM non-ECC dan jangan pernah menggunakan ZFS pada disk yang digerebek, biarkan ZFS melihat semua disk, jangan tambahkan lapisan yang dapat merusak VDEV dan POOL Anda.

Cara mensimulasikan kegagalan seperti itu ... matikan PC, mengeluarkan satu disk Raid1 itu dan ubah hanya satu bit ... periksa kembali dan lihat bagaimana pengontrol Raid tidak dapat mengetahui bahwa telah berubah ... ZFS bisa karena semua bacaan diuji terhadap checksum dan jika tidak cocok, baca dari bagian lain ... Raid tidak pernah membaca lagi karena gagal (kecuali perangkat keras yang mustahil dibaca gagal) ... jika Raid dapat membacanya berpikir data itu OK (tetapi tidak pada kasus seperti itu) ) ... Raid hanya mencoba membaca dari disk lain jika di mana tertulis "hei, saya tidak bisa membaca dari sana, perangkat keras gagal" ... ZFS membaca dari disk lain jika checksum tidak cocok juga seolah-olah di mana ia membaca mengatakan "hei, saya tidak bisa membaca dari sana, perangkat keras gagal".

Semoga saya membiarkannya sangat jelas ... ZFS atas semua tingkat Raid adalah rasa sakit yang nyata dan risiko total untuk data Anda! serta ZFS pada memori non-ECC.

Tapi tidak ada yang mengatakan (kecuali saya) adalah:

  • Jangan menggunakan disk dengan cache internal (tidak hanya itu yang SHDD, juga beberapa yang memiliki cache 8Mib ke 32MiB, dll) ... beberapa dari mereka menggunakan memori non-ECC untuk cache tersebut
  • Jangan gunakan SATA NCQ (cara untuk menulis) karena dapat merusak ZFS jika daya kendur

Jadi disk apa yang digunakan?

  • Setiap disk dengan baterai internal yang memastikan semua antrian akan dimasukkan ke disk pada kasus kegagalan daya dan menggunakan memori ECC di dalamnya (maaf, ada sangat sedikit dengan semua itu dan mahal).

Tapi, hei, kebanyakan orang tidak tahu semua ini dan tidak pernah punya masalah ... saya katakan kepada mereka: wow, betapa beruntungnya Anda, beli beberapa tiket lotre, sebelum keberuntungan hilang.

Risikonya ada ... kemungkinan kegagalan seperti itu terjadi ... jadi jawaban yang lebih baik adalah:

  • Cobalah untuk tidak meletakkan lapisan antara ZFS dan di mana data benar-benar disimpan (RAM, Raid, NCQ, cache disk internal, dll) ... sebanyak yang Anda mampu.

Apa yang saya lakukan secara pribadi?

  • Letakkan beberapa lapisan lagi ... saya menggunakan masing-masing 2,5 "disk SATA III 7200 rpm pada selungkup USB 3.1 Gen2 tipe C, saya menghubungkan beberapa selungkup ke Hub USB 3.1 Gen 2 Tipe A yang saya hubungkan ke PC; lainnya ke hub lain bahwa saya terhubung ke port root lain di PC, dll.
  • Untuk sistem saya menggunakan konektor sata internal pada ZFS (level Raid0) karena saya menggunakan sistem Linux inmutable (Like a LiveCD), masing-masing mem-boot konten yang identik pada disk internal ... dan saya memiliki gambar Klon dari sistem yang dapat saya kembalikan (kurang dari sistem 1GiB) ... juga saya menggunakan trik untuk memiliki sistem yang terdapat pada file dan menggunakan RAM yang dipetakan drive di mana saya mengkloningnya saat boot, jadi setelah boot semua sistem berjalan di RAM ... meletakkan file seperti itu di sebuah DVD saya juga bisa boot dengan cara yang sama, jadi jika terjadi kegagalan disk internal, saya hanya boot dengan DVD dan sistem online lagi ... trik yang mirip dengan SystemRescueCD tetapi sedikit lebih rumit karena file ISO dapat di ZFS internal atau hanya menjadi DVD nyata dan saya tidak ingin dua versi berbeda.

Semoga saya bisa memberi sedikit cahaya pada ZFS terhadap Raid, itu benar-benar menyakitkan ketika ada yang salah!

Claudio
sumber
Jadi Anda mengatakan bahwa ZFS sangat tidak dapat diandalkan sehingga jika sedikit perubahan Anda dapat kehilangan seluruh sistem file? Bagaimana SATA NCQ menyebabkan kehilangan data ketika drive masih memberitahukan host hanya ketika sektor telah ditulis dengan sukses (meskipun mungkin dalam urutan yang berbeda)?
Malvineous