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.
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.
İş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)
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 .