Open-iscsi neden 10G Ethernet ile Samba'dan iki kat daha yavaş yazıyor?


9

Yerel dosya sunucumda 7x HDD sürücülerde raid-6 var.

dd if=/dev/zero of=tempfile bs=1M count=2048 conv=fdatasync

Yerel hız testi bana 349 MB / s yazma hızı veriyor.

Samba'ya SSD'den uzaktan yazıyor (> 2Gb / s okuma hızı) bana 259 MB / s yazma veriyor. Ancak iSCSI sürücüsüne uzaktan yazma (Win10 iSCSI başlatıcıda) bana sadece 151 Mb / s yazma sağlıyor.

raid6 config - 128K yığın boyutu, stripe_cache_size = 8191. Yazma amacı bitmap'i SSD'de (Samsung 860 PRO, 4096K bitmap yığını).

Seçeneklerle monte edilen dizi: rw,noatime,nobarrier,commit=999,stripe=128,data=writeback

open-iscsi kurulumu: hedef 4 TB'lık bir dosyaya dayanır.

İSCSI'nin neden yazarken Samba'dan daha yavaş olduğuna dair ipuçları var mı? İSCSI hızının nasıl geliştirileceğine dair ipuçları var mı?

Her işlemden sonra yazmaları diske akıtmak için open-iscsi arzusu ile ilgili bir şey olduğunu varsayıyorum, bu da aşırı parite yeniden yazmaları nedeniyle raid6'da yazma amplifikasyonunu arttırıyor. Ama nasıl düzelteceğimi bilmiyorum. Elektrik kesintisi durumunda halihazırda yazılan verilerin güvenliğinden daha önemli olmasını sağlayın.

Bir yan not olarak eski ietd iSCSI hedefi geri yazma modunu (kullanma IOMode=wb) etkinleştirme yeteneğine sahipti ve sürekli yazma hızı çok daha hızlıydı. Ne yazık ki şu anda bakımsız görünüyor.


2
Ağ neye benziyor? 10GigE? Sunucu işletim sistemi sürümü, çekirdek sürümü nedir? İscsi hedefi ve sürümü nedir? ietd, scst veya lio? Open-iscsi hedef değil, yalnızca bir başlatıcı sağlar ... Yazma hızını ölçmek için ne kullanıyorsunuz? Hedefte kullanılan dosya sistemi nedir?
wazoox

Windows 10'da QoS NIC'den kaldırıldı mı?
yagmoth555

2
Bu durumda iSCSI hedefinizin yapılandırmasını ve ayarlanan tüm ağ ayarlayıcılarını yayınlamak da ihtiyatlı olacaktır. Aynı hedefi kullanan başlatıcılar arasında açık bir karşılaştırma sağlamak için modern bir çekirdeğe sahip bir linux istemcide bir açık-iscsi başlatıcısıyla test etmeyi de düşünebilirsiniz, çünkü mevcut test Windows başlatıcısı tarafından çok fazla daraltılabilir. Daha fazla veri == daha iyi.
Biriktirici

1
Ancak asıl soru söz konusu olduğunda: iSCSI ve Samba çok farklıdır ve çıplak bir blok cihazında bulunmayan Samba'yı kullanırken bir VFS önbellek katmanı kullanıyorsunuz. Performans farklarından şaşkın olduğunuzu anlıyorum, ancak bu karşılaştırmayı veya iSCSI'yi ağınızı doyurmaya teşvik ediyor musunuz? İSCSI en büyük endişeniz ve Samba performansı bağlam için küçük bir ayrıntıysa, soruyu daha net hale getirmek (ve muhtemelen daha iyi yanıtlar almak) için düzenleyebilirsiniz.
Biriktirici

Test için bir Windows 10 kullandınız, ancak hiçbir yerde kullanılan makinenin herhangi bir ayrıntısını görmüyorum. (ve neden böyle bir test için bir Windows istemci işletim sistemi kullanılıyor?)
yagmoth555

Yanıtlar:


6

Her şeyden önce, RAID-6 çift parite hesaplaması nedeniyle sorundur. İkincisi, iSCSI hedefini MS iSCSI Başlatıcı'da iki kez bağlayabilir, RR veya En Az Kuyruk Derinliğini etkinleştirebilirsiniz (maalesef Win10 çoklu yollamayı desteklemez, bunun yerine Windows Server ile test edebilirsiniz).

Aslında, blok seviyesi erişimi dosya seviyesi erişiminden daha hızlı olmalıdır. Windows sitesinden ne tür bir kıyaslama aracı kullanıyorsunuz? Diskspd veya FIO kullanmanızı tavsiye ederim. Ayrıca, Starwind gibi bir şeyi çok daha hızlı iSCSI hedefi olarak kullanabilirsiniz.

https://www.starwindsoftware.com/starwind-virtual-san#Hyper-V


2
Raid 6 yazılımda değil donanımda. Artık yaklaşık 20 yıldan beri bir performans sorunu değil.
Nils

Sorun RAID-6 mı? Parite hesaplamaları protokolden bağımsız olarak gerçekleşir.
Daniel

2
RAID6, eşlik hesaplamaları nedeniyle değil, "yazma deliği" adı verilen bir okuma-değiştirme-yazma eşlik RAID doğasının bir sonucu olması nedeniyle daha yavaştır.
BaronSamedi1958

3
"Raid 6 donanımda - yazılımda değil. Artık 20 yıldan beri bir performans sorunu değil. - Nils Mar 21 at 10:05" -> Bu doğru değil :( Bunu okuyun -> theithollow.com/
2012/03/21

1

iSCSI blok düzeyinde kullanılmalıdır, kurulum açıklamanız bir dosya sistemi kullanıyor, bir dosya yerleştiriyor ve bu dosyayı iSCSI blok katmanı olarak çalıştırıyormuşsunuz gibi geliyor.

Bu ideal olmaktan uzaktır ve definiteley hızları karşılaştırmak için bir kurulum değildir. Alanı bölümlere ayırmak ve iSCSI için blok katmanında kalmak için raid6'nın üstünde lvm kullanmayı deneyin veya raid6'yı doğrudan iSCSI cihazı olarak kullanın.

Geçerli kurulumunuzda, veriler ağ üzerinden aktarılır, dosya sistemindeki bir dosyaya çarpılır, bu büyük olasılıkla bu tür iş yükü için optimize edilmez ve diğer işlemlerle paylaşılır. Bu kurulumu iSCSI ile yapmak mümkündür, ancak optimize edilmemiş yedek çözüm olarak düşünülmelidir.


1

Lütfen ddçok basit bir kriter olduğunu ve bozulmalara ÇOK eğilimli olduğunu unutmayın. Örneğin, ddsıfırlar yazıyorsunuz - eğer bir şeyin sıfırlarla dolu veriler için özel bir durumu varsa (örneğin sıkıştırma yapabildiği için) harika bir performans görürsünüz ancak sıfır olmayan "gerçek veriler" yazmaya geçersiniz ve aniden bu performans kaybolabilir. ..

Sorunuzu cevaplamak için (tüm kıyaslamalarda olduğu gibi), sorunu tanıtan biti tanımlamak için parçaları ayırmanız gerekir. Örneğin, Windows dosya sistemine doğrudan (ve iSCSI üzerinden değil) yazmak da son derece hızlı mı? Aynı donanım yapılandırmasını alıp Windows yerine Linux çalıştırıyorsanız, bu aynı hızlı mı yoksa yavaşlıyor mu? Fio gibi bir karşılaştırma aracı kullanmaya geçerseniz ne olur ?

Ne yazık ki böyle bir soruyu cevaplayabilmek için çok fazla olasılık var ...

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.