Linux'ta ZFS RAID ve LUKS şifrelemesi


24

Linux'ta LUKS şifreli Z-RAID havuzu olarak bir 3x 2 TB 7200rpm sürücü seti kurmayı planlıyorum (bir NAS çözümü için).

Eldeki problemi anlamam, bunu başarmanın tek yolunun luksFormather fiziksel cihaza ve ardından kilidi açılmış LUKS konteynerlerinden bir zpool oluşturmak olduğu yönünde.

Bununla ilgili aşağıdaki endişelerim var:

  • Yazma performansını önemli ölçüde engellemez mi? Bu kurulumda gereksiz veriler birkaç kez şifrelenir, çünkü LUKS Z-RAID'in "farkında" değildir. LUKS-on-mdadm çözümünde veriler bir kez şifrelenir ve yalnızca birkaç kez disklere yazılır. CPU'm Intel AES-NI'yi destekliyor.

  • ZFS, aygıt eşleyici LUKS kapsayıcılarında çalışırken fiziksel aygıtların aksine disk arızalarının farkında mı olacak? Veri tekilleştirme ve diğer ZFS özellikleri nasıl?


4
Yapmazdım Başarısızlığa eğilimli geliyor.
whwhite

3
@MadHatter Çünkü ZFS. Bunu yapamazsın.
Michael Hampton

1
Güzel (bunun için sözünü alacağım). Tek büyük bir dosya içeren tek bir büyük ZFS'yi olun, geri döngü monte ve şifrelemek olduğunu .
MadHatter, Monica

1
@ eewhite Sadece ZFS çekirdek modülü şifrelemeyi uygulayana kadar Linux'ta ZFS ile şifreleme kullanma seçeneklerini bulmaya çalışıyorum. Fakat aynı fikirdeyim - LUKS ve ZFS iyi anlaşıyor gibi görünmüyor.
MasterM

4
Asla, asla, büyük bir dosya oluşturmak ve ZFS ile geri döngü. CoW'un operasyonları için alan bittiğinde, havuzunuzu kullanılamaz bir hıza batırdınız.
Vinícius Ferrão

Yanıtlar:


27

Yönettiğim sunuculardan biri tanımladığınız yapılandırma türünü çalıştırıyor. Üzerinde LUKS şifreli RAIDZ havuzu bulunan altı adet 1TB sabit diski vardır. Ayrıca, her hafta saha dışına çıkarılmak üzere değiştirilmiş LUKS şifreli ZFS aynasında iki 3 TB sabit sürücüm var. Sunucu bu yapılandırmayı yaklaşık üç yıldır kullanıyor ve bu konuda hiçbir sorun yaşamadım.

Linux'ta şifrelemeli ZFS'ye ihtiyacınız varsa, bu kurulumu öneriyorum. ZFS-Fuse kullanıyorum, Linux'ta ZFS değil. Bununla birlikte, Linux'taki ZFS'den başka bir sonuçla ilgisi olmayacağına inanıyorum ki kullandığım kurulumdan daha iyi performans gösterecektir.

Bu kurulumda gereksiz veriler birkaç kez şifrelenir, çünkü LUKS Z-RAID'in "farkında" değildir. LUKS-on-mdadm çözümünde veriler bir kez şifrelenir ve yalnızca birkaç kez disklere yazılır.

LUKS’un RAID’den haberdar olmadığını unutmayın. Sadece bir blok cihazın üstünde oturduğunu bilir. Bir RAID cihazı oluşturmak için mdadm kullanıyorsanız ve ardından luksformat, şifreli verileri LUKS'a değil, temel depolama cihazlarına kopyalayan mdadm'dir.

LUKS SSS soruları, 2.8 şifrelemenin RAID'in üstünde mi yoksa başka bir yerde mi olması gerektiğini ele almaktadır . Aşağıdaki şema sağlar.

Filesystem     <- top
|
Encryption
|
RAID
|
Raw partitions
|
Raw disks      <- bottom

ZFS, RAID ve dosya sistemi işlevselliğini birleştirdiğinden, çözümünüzün aşağıdaki gibi görünmesi gerekir.

RAID-Z and ZFS Filesystem  <-top
|
Encryption
|
Raw partitions (optional)
|
Raw disks                  <- bottom

Ham bölümleri, ZFS'nin bir bölüm yerine ham blok depolama kullanmasını beklediği gibi isteğe bağlı olarak listeledik. Bölümleri kullanarak zpool'unuzu oluşturabildiğiniz halde, gereksiz bir yönetim seviyesi ekleyeceği için tavsiye edilmez ve ofsetinizin bölüm bloğu hizalaması için ne olacağını hesaplarken dikkate alınması gerekir.

Yazma performansını önemli ölçüde engellemez mi? [...] CPU’m Intel AES-NI’yi destekliyor.

AES-NI sürücünüz tarafından desteklenen bir şifreleme yöntemi seçtiğiniz sürece performans sorunu olmamalıdır. Eğer cryptsetup 1.6.0 veya daha yenisine sahipseniz, cryptsetup benchmarkhangi algoritmanın en iyi performansı sağlayacağını görebilirsiniz.

LUKS için önerilen seçeneklerle ilgili bu soru da değerli olabilir.

Donanım şifreleme desteğiniz olduğu göz önüne alındığında, bölüm hatalı hizalanmasından dolayı performans sorunlarıyla karşılaşmanız daha olasıdır.

Linux'taki ZFS, sabit sürücünüzün sektör boyutunu belirlemenizi sağlamak için ashiftözelliği zfskomuta ekledi . Bağlantılı SSS’ye göre, ashift=124K blok büyüklüğünde sürücüler kullandığınızı söyleyebilirim.

LUKS SSS, bir LUKS bölümünün 1 MB'lik bir hizalamaya sahip olduğunu belirtir. 6.12 ve 6.13 soruları bunu detaylı olarak tartışır ve ayrıca LUKS bölüm başlığının nasıl büyütüleceği konusunda tavsiyeler sunar. Ancak, ZFS dosya sisteminizin 4K sınırında oluşturulduğundan emin olmak için yeterince büyük olabileceğinden emin değilim. Çözmeniz gereken bir sorun varsa, bunun sizin için nasıl çalıştığını duymak isterim. 2TB sürücüleri kullandığınız için, bu sorunla karşılaşmayabilirsiniz.

ZFS, aygıt eşleyici LUKS kapsayıcılarında çalışırken fiziksel aygıtların aksine disk arızalarının farkında mı olacak?

ZFS, disk arızalarının, problemsizce okuyup yazabildiği ölçüde farkında olacaktır. ZFS, blok depolama gerektirir ve bu depolamanın özelliklerini ve nereden geldiğini önemsemez veya bilmez. Yalnızca karşılaştığı tüm okuma, yazma veya sağlama toplamı hatalarını izler. Temel depolama aygıtlarının sağlığını izlemek size kalmış.

ZFS belgelerinin, sorun gidermeye ilişkin okumaya değer bir bölümü vardır . Hasar görmüş bir cihazın değiştirilmesi veya onarılması bölümü, bir arıza senaryosu sırasında ne ile karşılaşabileceğinizi ve nasıl çözeceğinizi açıklar. ZFS olmayan cihazlar için de aynı şeyi yapardınız. SCSI sürücünüzden, HBA veya HD denetleyicinizden ve / veya SMART izleme yazılımınızdan gelen iletiler için syslog dosyasını kontrol edin ve ardından davranın.

Veri tekilleştirme ve diğer ZFS özellikleri nasıl?

ZFS özelliklerinin tümü, temel blok depolamanın şifreli olup olmamasına bakılmaksızın aynı şekilde çalışacaktır.

özet

  1. LUKS şifreli cihazlarda ZFS iyi çalışıyor.
  2. Donanım şifrelemeniz varsa, donanımınız tarafından desteklenen bir şifreleme yöntemini kullandığınız sürece performans artışı görmezsiniz. cryptsetup benchmarkDonanımınızda neyin işe yarayacağını görmek için kullanın .
  3. ZFS'yi RAID olarak düşünün ve dosya sistemi tek bir varlıkla birleştirildi. Depolama yığınına uyduğu yer için yukarıdaki ASCII diyagramına bakın.
  4. ZFS dosya sisteminin kullandığı her LUKS şifreli blok cihazının kilidini açmanız gerekir.
  5. Depolama donanımının sağlığını şimdi yaptığınız gibi izleyin.
  6. 4K bloklu sürücüler kullanıyorsanız, dosya sisteminin blok hizalamasına dikkat edin. Kabul edilebilir hız için ihtiyacınız olan hizalamayı elde etmek için luksformat seçenekleriyle veya diğer ayarlarla denemeniz gerekebilir.

3
1 bir yol bulmak için bu işi yapmak için birlikte örnekler.
ewwhite

1
1 MiB, 4KiB tarafından zaten eşit bir şekilde bölünebilir durumdadır, bu nedenle, ham diskler kullanmanız koşuluyla, tam olarak 20 ° 'ye (kariyerim için gerekli olacağını sanmıyorum) kadar doğru şekilde hizalamanız gerekir.
Michael Hampton

1
Bir şey daha var: Cevabınızı oyluyorum çünkü OP'nin beklediği ve iyi yazılmış olduğu için bu yüzden benim cevabım daha iyi sonuç veriyor.
Vinícius Ferrão

3
@ ViníciusFerrão: Ayrıca FreeBSD ve FreeNAS'in ZFS şifrelemesi için aynı bir yaklaşım kullandığına dikkat edin. gelişifreli bir cihaz oluşturmak için kullanılır ve düz metin verileri, ZFS'nin kullandığı ikinci bir cihaz aracılığıyla kullanıma sunulur. Doc.freenas.org/index.php/Volumes#Encryption adresindeki ikinci madde işaretine bakın .
Denizyıldızı

2
@ CMCDragonkai Hem L2ARC hem de SLOG cihazları havuzunuzdan parça ve veri parçaları içerdiğinden, depolamayı gizlilik sağlamak amacıyla şifreliyorsanız (ki bu genellikle şifreli depolamayı ilk başta kullanmaktır) benzer şekilde şifrelenmiş tüm L2ARC ve SLOG cihazlarını çalıştırın.
bir CVn

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.