Donanım RAID ile ZFS en iyi uygulamaları


30

Birinin elinizde sunucu sınıfı bir donanıma sahip olması durumunda, donanım tabanlı bir RAID1'in ya da bazılarının üzerinde ZFS'nin çalıştırılması hiç önerilir mi? Tek bir donanım tabanlı RAID ve çalıştırmak ZFS'yi kapatmak mıdır mirrorya da raidz zpoolyerine?

Donanım RAID işlevselliği kapalıyken, donanım RAID tabanlı SATA2 ve SAS denetleyicilerinin, donanım dışı RAID denetleyicilerinden daha fazla okuma ve yazma hatası gizleme olasılığı daha mı düşüktür?

Özelleştirilemeyen sunucular açısından, bir donanım RAID denetleyicisinin etkin bir şekilde maliyet açısından nötr olduğu bir durum varsa (veya önceden oluşturulmuş sunucunun maliyetini düşürür, çünkü varlığı, tamamlayıcı IPMI sağlayan barındırma şirketinin olasılığını artırır) erişim), hiç kaçınılmalı mı? Ama sonra aranmalı mı?



2
@ShaneMadden, sorular benzer, ancak benim sorum zaten zfs açısından kötü olan donanım baskını perspektifinden geliyor ve ne kadar kötü olduğunu soruyorum; ayrıca, bağlantılı sorunuza kabul edilen cevabın sorumu hiç ele almadığını düşünün; benim sorum daha çok bağladığınız soruya bir takip sorusu gibi.
saat

"Donanım Yansıtma üstüne ZFS mi, yoksa sadece ZFS'ye mi yansıyın?" ve bu soru iki farklı konu. Bu konu, bu konudan daha geniş kapsamlıdır.
Stefan Lasiewski

@beyaz, bunu daha önce sormadın mı?
saat

@cnst Pekala, belirgin bir cevap yok ve insanlar cevabımı aşağı çekiyor . Bu yüzden sorulan soruya bir miktar yakınlık olması iyi olurdu. ( yapmak için sorumlu olan şey )
ewwhite

Yanıtlar:


17

ZFS ile fikir, disklerin nasıl çalıştığını olabildiğince bilmesini sağlamak. Sonra, en kötüsünden daha iyisine:

  • Donanım baskını (ZFS'nin gerçek donanım hakkında hiçbir fikri yoktur),
  • JBOD modu (Sorun, olası genişleticiler hakkında daha fazla olmak: daha az bant genişliği),
  • HBA modu ideal olma (ZFS, diskler hakkında her şeyi bilir)

ZFS donanım konusunda oldukça paranoyak olduğundan, orada ne kadar az saklanırsa, herhangi bir donanım sorunuyla o kadar fazla başa çıkabilir. Ve Sammitch'in belirttiği gibi , RAID Denetleyici yapılandırmaları ve ZFS, başarısız olduğunda geri yüklemek veya yeniden yapılandırmak çok zor olabilir (örn. Donanım arızası).

Bazı donanım RAID denetleyicileriyle standart donanım konusu hakkında, donanım denetleyicisinin gerçek bir geçiş ya da JBOD moduna sahip olmasına dikkat edin.


10
Aynı zamanda HW RAID kullanıyorsanız ve denetleyicinizin öldüğünden [düşündüğünüzden daha fazla şey olursa], aynı veya tamamen uyumlu bir yedek alamazsanız, kasnaklı olduğunuza dikkat etmek önemlidir. Öte yandan, ham diskleri ZFS'ye verirseniz, bu diskleri herhangi bir makinedeki herhangi bir denetleyiciye geri takabilirsiniz ve ZFS diziyi yeniden yapılandırabilir ve hiçbir şey olmamış gibi devam edebilir.
Sammitch

1
Yüksek kaliteli sunucularda genellikle yerleşik RAID denetleyicileri bulunur. Örneğin, bir HP veya Dell sistemindeki denetleyiciyi değiştirmek zorunda kalmamıştım.
ewwhite

2
Bu cevap hiçbir şeye cevap vermiyor. Sunucunun donanım tedarikçisinin ve ZFS programcısının, RAID denetleyicisinin tedarikçisinden ve RAID ürün yazılımının programcısından daha iyi bir iş çıkardığı sadece önyargılı görüşünü ifade eder. FreeNAS topluluğu, Zpools'u, hatalı çalışan sunucu belleği veya uygun olmayan güç kaynakları ile öldüren insanlarla doludur. Büyük bir şeyin başarısız olması ihtimali küçük bir şeyden daha yüksektir.
15'te

14

Q. Birinin elinizde sunucu sınıfı bir donanıma sahip olması durumunda, donanım tabanlı bir RAID1'in üstüne veya ZFS'nin çalıştırılması hiç önerilir mi?

C. ZFS'yi doğrudan diske çalıştırmak ve aralarındaki herhangi bir RAID formunu kullanmamak şiddetle tercih edilir. Etkin bir şekilde RAID kartını kullanmanızı gerektiren bir sistemin ZFS kullanımının önüne geçip geçmediği, ZFS'nin DİĞER yararları ile veri esnekliğinden çok daha fazla ilgisi vardır. Tamam, ZFS'ye tek bir LUN sağlamaktan sorumlu bir RAID kartı varsa, ZFS veri esnekliğini geliştirmeyecektir. İlk önce ZFS ile gitmenizin tek nedeni veri esnekliği iyileştirmesiyse, kullanmak için tüm nedenleri kaybettiniz. Bununla birlikte, ZFS ayrıca ARC / L2ARC, sıkıştırma, anlık görüntüler, klonlar ve isteyebileceğiniz diğer çeşitli iyileştirmeler de sağlar ve bu durumda, belki de hala sizin tercih ettiğiniz dosya sisteminizdir.

S. Donanım tabanlı RAID'i kapatıp ZFS'yi bir ayna ya da raidz zpool'da mı çalıştırmalısınız?

C. Evet, mümkünse. Bazı RAID kartlar geçiş moduna izin verir. Eğer varsa, bu yapılması tercih edilen şeydir.

S. Donanım RAID işlevselliği kapalıyken, donanım RAID tabanlı SATA2 ve SAS denetleyicilerinin, okuma ve yazma hatalarını donanım dışı RAID denetleyicilerinden daha fazla mı yoksa az mı saklıyor?

C. Bu tamamen söz konusu RAID kartına bağlıdır. Bulmak için kılavuza göz atmanız veya RAID kartının üreticisine / satıcısına başvurmanız gerekir. Bazıları çok, evet, özellikle de RAID işlevselliğini 'kapatmak' aslında tamamen kapatmıyorsa.

S. Özelleştirilemeyen sunucular açısından, bir donanım RAID denetleyicisinin etkin bir şekilde maliyet açısından nötr olduğu bir durum varsa (veya önceden oluşturulmuş sunucunun maliyetini düşürür, çünkü varlığı barındırma şirketinin sağladığı olasılığı artırır) tamamlayıcı IPMI erişimi), bundan kaçınılmalı mıdır? Ama sonra aranmalı mı?

Cevap: Bu, birincinizle aynı soru. Yine - ZFS kullanma tek isteğiniz veri esnekliğindeki bir gelişme ise ve seçtiğiniz donanım platformunuz bir RAID kartı gerektiriyorsa, ZFS'ye tek bir LUN (veya birden çok LUN'su sağlar, ancak bunların arasında ZFS dizilimi vardır), o zaman veri esnekliğini artıracak hiçbir şey bulunmadığından ZFS seçiminiz uygun olmayabilir. Ancak, diğer ZFS özelliklerinden herhangi birini yararlı bulursanız, yine de olabilir.

Ek bir endişe eklemek istiyorum - yukarıdaki cevaplar, ZFS'nin altındaki bir donanım RAID kartının kullanılmasının, veri esnekliğini geliştirme yeteneğini ortadan kaldırmanın ötesinde ZFS'ye zarar vermeyeceği fikrine dayanıyor. Gerçek şu ki bu daha çok gri bir alan. ZFS içinde, ham diskler yerine çok diskli LUN'lar kullanıldığında mutlaka çalışması gerekmeyen çeşitli ayar ve varsayımlar vardır. Bu ayarların çoğu, doğru şekilde ayarlamayla ihmal edilebilir, ancak kutunun dışında, büyük RAID LUN'ların üzerindeki ZFS'de, tek tek iğlerin üzerinde olacağınız kadar verimli olmayacaksınız.

Ayrıca, ZFS'nin LUN'larla daha geleneksel dosya sistemlerine karşı konuşmada çok farklı bir şekilde kullanılmasının, RAID denetleyicisindeki kod yollarını ve alışkın olmadıkları, garipliklere yol açabilecek iş yüklerini sık sık kullandığını öne süren bazı kanıtlar vardır. En önemlisi, ayrı bir günlük cihazı sağlamadığınız takdirde ZUN işlevselliğini tek bir LUN'un üzerine yerleştirdiğiniz herhangi bir havuzda tamamen devre dışı bırakarak muhtemelen bir iyilik yapacaksınız. Havuza ayrı bir ham günlük cihazı sağlayın (eğer mümkünse RAID kartından LUN değil).


9

ZFS'yi HP ProLiant Akıllı Dizi RAID yapılandırmalarının üstünde oldukça sık kullanıyorum.

Niye ya?

  • Çünkü veri bölümleri için ZFS'yi seviyorum, önyükleme bölümlerini değil.
  • Çünkü Linux ve ZFS açılışları şu anda benim için yeterince kusursuz değil.
  • Çünkü HP RAID denetleyicileri RAW aygıtının geçişine izin vermiyor . Birden çok RAID 0 birimini yapılandırmak, RAW diskleriyle aynı değildir.
  • Çünkü sunucu arka planları, sürücü bölmelerini belirli bir denetleyiciye tahsis edecek veya genellikle iki denetleyici arasındaki görevleri ayıracak kadar esnek değildir. Bu günlerde en sık 8 ve 16 bay kurulumları görüyorsunuz. Her zaman olması gerektiği gibi bölümlere ayırmak için yeterli değil.
  • Ancak ZFS'nin birim yönetimi özelliklerini hala seviyorum. Zpool, işleri dinamik bir şekilde toplama ve kullanılabilir disk alanından en iyi şekilde yararlanmama izin veriyor.
  • Sıkıştırma, ARC ve L2ARC katil özelliklerdir!
  • Donanımın üzerine doğru tasarlanmış bir ZFS kurulumu RAID hala iyi bir uyarı ve hata uyarısı veriyor, ancak yalnızca donanım çözümünden daha iyi performans gösteriyor.

Bir örnek:

RAID denetleyici yapılandırması.

[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)

cihaz listesini engelle

[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

zpool yapılandırması

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

zpool detay

  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

zfs dosya sistemi listesi

[root@Hapco ~]# zfs list
NAME             USED  AVAIL  REFER  MOUNTPOINT
vol1            84.8G   234G    30K  /vol1
vol1/pprovol    84.5G   234G  84.5G  -

Öyleyse, bağlantı kurduğunuz kapalı soru ile ilgili olarak, ZFS kullanmak istersem, örneğin Dell PERC H200 ve HP P410'dan kaçınmamın daha iyi olacağını mı söylemek gerekir? Donanım baskını modunu devre dışı bırakmak için hala bir yolu yok mu, RAID0 veya RAID1 mi?
saat

Öyle görünüyor ki, dell.com/learn/us/en/04/campaigns/dell-raid-controllers , H200'ün "RAID olmayanları desteklediğini" iddia etmesine rağmen, h18004.www1.hp.com/products/servers/proliantstorage/ … P410'un baskın işlevselliğinin kapatılıp kapatılamayacağı konusunda tam olarak net değil.
saat

@cnst Bir HP Smart Array P410'un RAID işlevselliğini devre dışı bırakamazsınız.
beyaz

Hala doğru mu? Donanım baskında tehlikeli bir ZFS olmadığını mı söylüyorsunuz?
seyrek

Doğru. Tehlikeli değil.
Kasım’da

5

Genelde ZFS'yi hiçbir zaman RAID dizisinde yapılandırılmış disklerin üzerinde çalıştırmamalısınız. ZFS'nin RAID modunda çalışması gerekmediğini unutmayın. Sadece bireysel diskleri kullanabilirsiniz. Ancak, insanların neredeyse% 99'u RAID bölümü için ZFS kullanıyor. Disklerinizi yalnızca çizgili modda çalıştırabilirsiniz, ancak bu ZFS'nin kötü kullanımıdır. Diğer afişlerin dediği gibi, ZFS donanım hakkında çok şey bilmek istiyor. ZFS, yalnızca JBOD moduna ayarlanabilen veya tercihen bir HBA'ya bağlanabilen bir RAID kartına bağlanmalıdır. IRC Freenode kanalı #openindiana; Kanaldaki ZFS uzmanlarından herhangi biri size aynı şeyi söyleyecektir. HBA almayacaklarsa, barındırma sağlayıcınızdan JBOD modu sağlamasını isteyin.


1
Evet katılıyorum. Ancak, faturaya ve spesifikasyona uyan konfigürasyonda stokta bulunanların da bir önemi var. Bir sunucunun büyük bir CPU'su, çok sayıda ECC RAM'i, büyük bant genişliği ve bolluğu varsa, ancak donanım tabanlı bir RAID ile gelmesi gerekiyorsa, birkaç kez daha pahalı olabilen alternatifler aramak maliyet açısından uygun olmayabilir. sebebiyle farklı bir kategoride olmak ya da öylesine, ya işletmenin bazı eksik vb ECC RAM gibi özellikler
cnst

2

Kısacası: ZID'nin altında RAID kullanılması, ZFS kullanımı fikrini öldürür. Niye ya? - Çünkü RAID'lerde değil, saf disklerde çalışmak üzere tasarlanmıştır.


1
Şart değil. Birim yönetimi esnekliğini, etrafındaki optimizasyondan daha çok fiziksel cihazlara erişime daha fazla önem veriyorsam ne olur. ZFS kullanım durumum için oldukça iyi çalışıyor.
yine beyaz

3
@beyaz, birileri, bisiklet sürmeyi, genel olarak yürümeyi ve bisiklete binmeyi sevdiğini söyleyerek bisiklete binebilir, ancak gerçek şu ki bisiklet sürmek için yapılmış. )
poige

2

Hepiniz için ... Herhangi bir Raid üzerinden ZFS toplam bir PAIN'dir ve yalnızca MAD insanlar tarafından yapılır! ... ECFS belleği olmayan ZFS kullanmak gibi.

Örneklerle daha iyi anlayacaksınız:

  • Raid1 üzerinden ZFS, bir disk kapatılmadığında bir bit değişti ... bildiğiniz her şeyi göz önünde bulundurun, ZFS, hangi diskin okunduğuna bağlı olarak bir miktar hasar görecek veya görmeyecek (Raid denetleyicisi bu bitin değiştiğini görmedi ve her iki diskin de iyi olduğunu düşünüyor ) ... eğer başarısızlık VDEV bölümünde ise ... bütün ZPOOL tüm verilerini sonsuza dek kaybediyor.
  • Raid0 üzerinden ZFS, bir disk kapatılmadığında bir bit değişti ... bildiğiniz her şeyi göz önünde bulundurun, (Raid denetleyicisi bu bitin değişmediğini gördü ve her iki diskin de iyi olduğunu düşündü) ... ZFS bu hasarı görecek ancak fail, VDEV bölümünde ... bütün ZPOOL tüm verilerini sonsuza dek kaybediyor.

ZFS'nin iyi olduğu durumlarda, güç olmadığı durumlarda disk (RAID denetleyicileri bunu yapamaz), ayrıca istenmeden bir şey istendiğinde değiştirilirse değişen Bitleri saptamaktır.

RAM modülünde bir bit istenmeden kendiliğinden değiştiğinde olduğu gibi aynıdır ... eğer bellek ECC ise, bellek kendini düzeltir; değilse, bu veriler değişmiştir, böylece veriler değiştirilmiş disklere gönderilecektir; Başarısızlığın VDEV bölümünde olması durumunda, değişimin UDEV bölümünde olmadığını göz önünde bulundurun ... tüm ZPOOL tüm verilerini sonsuza dek kaybeder.

Bu, ZFS'deki bir zayıflık ... VDEV'ler başarısız oluyor, tüm verilerin sonsuza dek kaybedildiğini gösteriyor.

Donanım Baskını ve Yazılım Baskısı kendiliğinden bit değişikliklerini tespit edemez, sağlama toplamları yoktur, Raid1 seviyelerinde en kötü (mirros), tüm parçaları okumaz ve karşılaştırmazlar, tüm parçaların hep aynı veriye sahip olacağını sanırlar, ALLWAYS (derim ki) yüksek sesle) Baskın, verilerin başka hiçbir şey / yolla değişmediğini varsayar ... ama diskler (bellek olarak) kendiliğinden bit değişikliklerine eğilimlidir.

Asla hiçbir zaman ECC olmayan bir RAM'de ZFS kullanmayın ve hiçbir zaman ZFS'yi asla basılmış disklerde kullanmayın, ZFS'nin tüm diskleri görmesine izin verin, VDEV ve POOL'unuzu mahvedebilecek bir katman eklemeyin.

Böyle bir hatayı nasıl simüle edersiniz ... bilgisayarı kapatır, Raid1'in bir diskini çıkarır ve sadece bir biti değiştirir ... Raid kontrol ünitesinin nasıl değiştiğini bilmediğini görün ve bakın ... ZFS tüm okumaların test edildiğinden sağlama toplamına karşı ve eşleşmezse, başka bir bölümü oku ... Baskın, bir hata (donanım imkansız okunması hariç) başarısız olursa ... bir daha okunmaz, eğer Baskın okuyabilirse, verilerin iyi olduğunu düşünür (ama bu gibi durumlarda değil) ) ... Baskın sadece başka bir diskten okumayı denediğinde "hey, oradan okuyamıyorum, donanım arızalı" diyorsa ... sağlama toplamı okuyormuş gibi uyuşmuyorsa ZFS başka bir diskten okuyor "hey, oradan okuyamıyorum, donanım hatası" diyor.

Umarım çok açık bir şekilde izin vermişimdir ... Raid'in herhangi bir seviyesinden ZFS, toal ağrıları ve verileriniz için toplam risktir! ECC dışı hatıralardaki ZFS gibi.

Ama kimsenin söylemediği şey (ben hariç):

  • Dahili önbelleğe sahip diskler kullanmayın (yalnızca SHDD diskleri değil, 8Mib - 32MiB önbelleğe sahip olanlar vb.) ... bazıları bu tür önbellek için ECC olmayan bellek kullanır
  • SATA NCQ kullanmayın (yazma sırasına göre) çünkü güç kesilirse ZFS'yi mahvedebilir

Peki hangi diskleri kullanmak için?

  • Tüm kuyruğu sağlayan dahili bataryaya sahip herhangi bir disk, elektrik kesintisi durumlarında diske yazılır ve içinde ECC hafıza kullanır (üzgünüm, hepsinde çok az olanlar var ve pahalıdır).

Ama, hey, çoğu insan bunların hepsini bilmiyor ve hiç bir zaman bir problemi olmadı ... onlara şunu söylüyorum: vay, ne kadar şanslısın, şanslı gitmeden önce bazı piyango bileti satın al.

Riskler var ... bu tür başarısızlıklar tesadüfler meydana gelebilir ... bu yüzden daha iyi cevap:

  • ZFS ile verinin gerçekte depolandığı (RAM, Raid, NCQ, dahili disk önbellek vb.) Arasına herhangi bir katman koymamaya çalışın.

Şahsen ben ne yapıyorum?

  • Bazı katmanları daha fazla koyun ... USB 3.1 Gen2 C tipi bir kasadaki her 2,5 "SATA III 7200 rpm diski kullanıyorum, bazı muhafazaları PC'ye bağladığım bir USB 3.1 Gen 2 Tip A Hub'a bağladım; başka bir hub'a PC’deki başka bir kök bağlantı noktasına vb.
  • Sistem için ZFS'de dahili sata bağlayıcıları kullanıyorum (Raid0 seviyesi) çünkü değişken (LiveCD gibi) bir Linux sistemi kullanıyorum, her biri dahili disklerde aynı içeriği başlatıyor ... ve sistemin geri yükleyebildiğim bir Clone görüntüsü var (1GiB sisteminden daha az) ... aynı zamanda, bir dosyayı sistemde bulundurmak için hileyi kullanıyorum ve açılışta klonladığım RAM eşlemeli sürücüyü kullanıyorum, önyüklemeden sonra tüm sistemler RAM'de çalışıyor ... bir DVD de aynı şekilde önyükleyebilirim, bu yüzden dahili disklerin arızalanması durumunda, sadece DVD ile önyüklerim ve sistem tekrar çevrimiçi olur ... SystemRescueCD için benzer bir numara ancak biraz daha karmaşık bir ISO dosyası üzerinde olabilir. dahili ZFS ya da sadece gerçek DVD olmak ve iki farklı sürüm istemiyorum.

Umarım ZFS'ye Raid'e karşı biraz ışık verebilirim, işler ters gittiğinde gerçekten acı verici!


Yani, ZFS'nin o kadar güvenilmez olduğunu söylüyorsunuz ki, tek bir bit değişirse tüm dosya sistemini kaybedebilirsiniz? SATA NCQ, sürücü yalnızca ana bilgisayarı yalnızca sektörler başarıyla yazıldığında (belki de farklı bir sırayla da olsa) bildirdiğinde hala veri kaybına neden olur?
Malvineous
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.