ZFS sunucusunu sanal konuk olarak barındırma


23

Hala ZFS için yeniyim. Nexenta kullanıyorum ama OpenIndiana ya da Solaris 11 Express'e geçmeyi düşünüyorum. Şu anda, ZFS sunucusunu ESXi, Hyper-V veya XenServer içinde misafir olarak sanallaştırmayı düşünüyorum (hangisine henüz karar vermedim - VMDirectPath ve FreeBSD desteği için ESXi'ye yaslanıyorum).

Asıl sebep, etrafta dolaşacak yeterli miktarda kaynağım olduğunu ve aynı anda çalışan 1-3 sanal makineyi kolayca alabileceğimin görülmesi. Çoğunlukla Windows Sunucusu. Belki bir Linux / BSD VM de olabilir. Sanallaştırılmış ZFS sunucusunun, diğer VM'ler için tüm verileri barındırmasını, böylece verilerinin ZFS disklerinden (iscsi veya nfs olarak bağlanır) fiziksel olarak ayrı bir diskte saklanmasını istiyorum.

Sunucu şu anda 6 toplam çekirdek (2 kilidi açık), 16 GB RAM (maks. Maksimuma sahip) bir AMD Phenom II'ye ve (7) 1 TB SATA II diskleri takılı (sıcak yedek ile RAIDZ2'de planlama yapılıyor) bir LSI SAS 1068E HBA'ya sahip. Ayrıca anakartta (4) 32GB SATA II SSD var. İki SSD'yi bir önyükleme aynasına (sanal ana bilgisayar için) yansıtmayı ve diğer iki SSD'yi ZIL ve L2ARC (ZFS VM konukları için) olarak bırakmayı umuyorum. VM konuklarını depolamak için iki disk daha eklemeye ve mevcut yedi diskin tümünü ZFS depolama alanı olarak ayırmaya hazırım. Not: anakart yok değil 880G bunu desteklemez olarak IOMMU desteği var ama bu çok büyük bir fark yaparsa IOMMU'yu var bir 890FX kurulu var.

Benim sorularım:

1) Bunu yapmak akıllıca mı? Açıkça olumsuz bir şey görmüyorum (bu da neden kimsenin neden bahsetmediğini merak ediyor). Muazzam bir gözetim yapıyor olabileceğimi hissediyorum ve buna bağlı kalmaktan nefret ediyorum, tüm verilerimin üzerinden geçip sadece kaçırdığım bir dakika detayından aşağı geliyorum.

2) ZFS sanal konuk performansı? Küçük bir performans elde etmeye istekliyim, ancak VM konukları en azından disk G / Ç performansının göz ardı edilebileceği disklere tam erişim hakkına sahipse (ZFS'nin sanallaştırılmamış çalışmasına kıyasla) olacağını düşünüyorum. . Bir ZFS sunucusunu bir VM konuğu olarak barındırmak tecrübesinden bu konuda konuşabilen var mı?


Diğer tüm VM'ler için veri barındırmak istediğinizi söylüyorsunuz. Kendinizi bir noktada tekilleştirme istediğinizi mi düşünüyorsunuz? Öyleyse, veri tekilleştirme çok bellek yoğun olduğundan, bu gerçekten kendi makinesinde olmalıdır. ZFS ihtiyaçlarınız için neden SmartOS gibi bir şeye bakmıyorsunuz? Bu sayede hiper yönetici de oluyorsun.
Devicenull

Tekillik hakkında düşündüm ama şu an için, hayır, kullanmayı tercih etmem. SmartOS’u araştıracağım. Hiç duymadım, o yüzden kontrol edeceğim.
osij2,

Yanıtlar:


38

Bu "hepsi bir arada" ZFS depolama kurulumlarından birkaçını oluşturdum. Başlangıçta, Ubiquitous Talk'taki mükemmel mesajlardan ilham alan çözümüm, donanım tasarımına biraz farklı bir yaklaşım getiriyor , ancak kapsüllenmiş sanallaştırılmış ZFS depolama sonucunu veriyor.

Sorularınıza cevap vermek için:

  • Bunun akıllıca bir yaklaşım olup olmadığının belirlenmesi, gerçekten hedeflerinize bağlıdır. Ne yapmaya çalışıyorsun? Bir teknolojiniz varsa (ZFS) ve bunun için bir uygulama arıyorsanız, o zaman bu kötü bir fikirdir. Uygun bir donanım RAID denetleyicisi kullanarak ve VM'lerinizi yerel bir VMFS bölümünde çalıştırırken daha iyi olursunuz. En az direnç gösteren yol bu. Bununla birlikte, ZFS'yi kullanmak istemek için belirli bir nedeniniz varsa (çoğaltma, sıkıştırma, veri güvenliği, taşınabilirlik vb.), Çaba göstermeye istekli iseniz bu kesinlikle mümkündür.

  • Performans, çıplak metal veya sanal olarak çalışıp çalışmadığınızdan bağımsız olarak tasarımınıza bağlıdır. Kullanılması PCI-passthrough Bir SAS depolama denetleyicisi ve diskler için ZFS VM doğrudan erişim sağlayan olacak gibi (sizin durumunuzda veya AMD IOMMU), esastır. VM'nize uygun miktarda RAM ve CPU kaynağı tahsis edildiği sürece, performans doğaldır. Elbette, havuz tasarımınız önemlidir. Lütfen RAID Z2'ye karşı aynaları düşünün. ZFS , disk sayısını değil vdev'leri ölçeklendirir .


Platformum VMWare ESXi 5 ve tercih edilen ZFS özellikli işletim sistemim NexentaStor Community Edition .

Bu benim ev sunucum . Dahili bir SD karttan ESXi fron çalıştıran bir HP ProLiant DL370 G6'dır . Ortadaki yansıtılmış iki adet 72 GB disk dahili Smart Array P410 RAID denetleyicisine bağlı ve bir VMFS birimi oluşturur. Bu birim bir NexentaStor VM'ye sahiptir. ZFS sanal makinesinin sabit depolama alanında bir yerde yaşaması gerektiğini unutmayın .

Sağda altı adet 1TB SATA disk bulunan sürücü kafesine bağlı bir LSI 9211-8i SAS denetleyicisi var . Nexenta'nın disklerini RAID 1 + 0 kurulumu olarak görmesini sağlayan NexentaStor sanal makinesine aktarılır. Diskler, el-cheapo Western Digital Green WD10EARS diskleri ile değiştirilmiş bir ikili sisteme uygun şekilde hizalanırzpool .

Bu kurulumda bir ZIL cihazı veya L2ARC önbellek kullanmıyorum.

görüntü tanımını buraya girin

VM'de 6 GB RAM ve 2 vCPU tahsis edildi. ESXi'de, PCI geçidi kullanıyorsanız, VM'nin atanmış RAM'ının tamamı için bir bellek rezervasyonu oluşturulacaktır.

NexentaStor VM'ye iki ağ arayüzü veriyorum. Bunlardan biri yönetim trafiği içindir. Diğeri ayrı bir vSwitch'in bir parçasıdır ve bir vmkernel arayüzüne (harici bir uplink olmadan) sahiptir. Bu, VM'nin özel bir ağ aracılığıyla ESXi tarafından monte edilebilen NFS depolaması sağlamasına olanak tanır. Dışarıdaki ana bilgisayarlara erişim sağlamak için kolayca bir yukarı bağlantı arayüzü ekleyebilirsiniz.

Yeni VM'lerinizi ZFS tarafından verilen veri deposuna yükleyin. ESXi'de "Sanal Makine Çalıştırma / Kapatma" parametrelerini ayarladığınızdan emin olun. Depolama VM'sinin konuk sistemlerden önce önyüklenmesini ve en son kapatılmasını istiyorsunuz.


görüntü tanımını buraya girin

İşte doğrudan NexentaStor VM'de yapılan bir çalışmanın bonnie ++ ve iozone sonuçları. Testin daha çekici numaralar göstermesi için ZFS sıkıştırması kapalı, ancak pratikte, ZFS varsayılan sıkıştırması (gzip değil) her zaman etkin olmalıdır.

# bonnie++ -u root -n 64:100000:16:64

Version  1.96       ------Sequential Output------ --Sequential Input- --Random-
Concurrency   1     -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
saint           12G   156  98 206597  26 135609  24   410  97 367498  21  1478  17
Latency               280ms    3177ms    1019ms     163ms     180ms     225ms
Version  1.96       ------Sequential Create------ --------Random Create--------
saint               -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files:max:min        /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
    64:100000:16/64  6585  60 58754 100 32272  79  9827  58 38709 100 27189  80
Latency              1032ms     469us    1080us     101ms     375us   16108us

# iozone -t1 -i0 -i1 -i2 -r1m -s12g

    Iozone: Performance Test of File I/O

    Run began: Wed Jun 13 22:36:14 2012

    Record Size 1024 KB
    File size set to 12582912 KB
    Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s12g
    Output is in Kbytes/sec
    Time Resolution = 0.000001 seconds.
    Throughput test with 1 process
    Each process writes a 12582912 Kbyte file in 1024 Kbyte records

    Children see throughput for  1 initial writers  =  234459.41 KB/sec
    Children see throughput for  1 rewriters        =  235029.34 KB/sec
    Children see throughput for  1 readers          =  359297.38 KB/sec
    Children see throughput for 1 re-readers        =  359821.19 KB/sec
    Children see throughput for 1 random readers    =   57756.71 KB/sec
    Children see throughput for 1 random writers    =  232716.19 KB/sec

Bu, test çalıştırması sırasında depolama VM's IOPS ve aktarım hızlarını gösteren bir NexentaStor DTrace grafiğidir. 4000 IOPS ve 400+ Megabayt / saniye gibi düşük seviye diskler için oldukça makul. (büyük blok boyutu olsa da) görüntü tanımını buraya girin

Diğer notlar.

  • Doğrudan VM'ye sunulabileceklerini veya DirectPath'in tüm anakart denetleyicisini seçip seçmediğini görmek için SSD'lerinizi test etmek isteyeceksiniz.
  • Fazla CPU gücünüz yok, bu yüzden depolama birimini 2 vCPU'larla sınırlandırın.
  • Disk alanına gerçekten ihtiyacınız olmadıkça RAIDZ1 / Z2 / Z3 kullanmayın.
  • Veri tekilleştirme kullanmayın. Sıkıştırma, VM'ler için ücretsiz ve çok kullanışlıdır. Tekilleştirme, etkili olabilmesi için çok daha fazla RAM + L2ARC gerektirecektir.
  • SSD'ler olmadan başlayın ve gerekirse ekleyin. Bazı iş yükleri ZIL veya L2ARC’ya çarpmıyor .
  • NexentaStor tam bir pakettir. Sağlam bir yönetim GUI'sine sahip olmanın bir faydası var, ancak Napp-It ile de başarıyı duydum .

+1. Tüm bilgiler için teşekkürler! Sorunuzu cevaplamak için bunu birkaç nedenden dolayı yapıyorum. Bunu büyük ölçüde, bir veya iki VM daha (ZFS yapmadan) yapmak için diğer CPU çekirdeklerinden yararlanmak ve Opteron sanal sunucuma bir iSCSI hedefi sağlamak için yapıyorum. ZFS için nedenlerim (belirli bir sıra ile değil) sıkıştırma ve veri güvenliği ve çoğaltmasıdır. Dedupe çok havalı görünüyor, ancak kaynaklar ve verilerim açısından, gerekip gerekmediğinden emin değilim. Şu anda Nexenta kullanıyorum, ancak 18 TB sınırını aşmak için diskleri istiflemeye devam edersem Solaris Express veya OpenIndiana'ya taşınmayı düşünüyordum.
osij2,

Bu nedenle, SSD'leri L2ARC veya ZIL için kullanıp kullanmama konusundaki yorumunuzu anlıyorum ve bunu yapmaya hazırım. Önce performansa bakın, ardından ZIL ve / veya ARC eklenip eklenmeyeceğini belirleyin. Yansıtma ve RAIDZ'e gelince, yorumlarınızı okuduktan ve bu blog yayınını okuduktan sonra ( constantin.glez.de/blog/2010/01/… ) yansıtmanın küçük bir kenarı olduğunu düşünüyorum. Disk alanına gerçekten ihtiyacım yok, ancak biraz fazlalık ve hızlı okuma / yazma yeteneklerim varsa, buna geçeceğimi düşünüyorum. Dışarı çıkarabildiğim her depolama alanı buna değmez.
osij2,

Ayrıca, sıkıştırmanın faydalı olduğunu unutmayın. Müşteri sistemleri için ticari Nexenta ve 18 TB'den büyük bir şey için ödeme yapıyorum. Ancak aynı ipuçları OpenIndiana için de geçerlidir.
ewwhite

NFS ağı için bir E1000 vnic veya bir VMXNet3 vnic kullanıyor musunuz? Çünkü Nexenta / Solaris ve VMware arasında sadece benzer bir kurulum kullanarak 1 gbps alıyorum ve nasıl daha fazla hız alacağımı bulamıyorum . NexentaStor'un hangi sürümü? Şu anda sahip oldukları sürümün bozulduğundan şüpheliyim ...
Josh
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.