Hem iSCSI hem de AoE düşük performans


9

Resonable hızlı bir depolama alanı arıyoruz. Düşük bütçe nedeniyle yazılım iSCSI veya AoE hedeflerini kullanmaya karar verdik. Üretim altyapımızı değiştirmeden önce, en iyi teknolojiyi seçmek için bazı testler yapıyoruz.

Test için şunları kullanırız:

  • Hedef olarak Fujitsu Siemens RX200 S4
  • Başlatıcı olarak Fujitsu Siemens RX200 S4
  • NetGear yönetimli 1GBit anahtarı
  • yerleşik NIC'ler (TOE'li Broadcom), EdiMax NIC'ler, TOE'li Broadcom NIC'ler - tümü 1GBit
  • hedef sunucu, 6 2 TB WD Blue SATA sürücülü bir QLogic denetleyicisi kullanıyor.
  • hem hedef hem de başlatıcı işletim sistemleri tüm güncellemelere sahip Ubuntu 16.04 LTS'dir. Anahtar depolama amaçlıdır. Bağları ve çoklu yolu test ediyoruz.

Bizim sorunumuz düşük okuma hızı. Test ddiçin 40-100GB dosya kullanıyoruz.

  • hedef sunucuda yerel okuma ve yazma 300 MB / sn üzerinde.
  • iSCSI veya AoE tarafından sunucuya yazmak bizi tatmin eden 200MB / s'nin üzerindedir.
  • sunucudan okuma her zaman 95-99MB / s'dir.

Ietd, aoetools, LIO denedik. Biz 2 NIC'lerin bağlarını kullandık: balance-rr ve LACP, rr ile çoklu yol. Normal ve jumbo çerçeveler kullanılır. Sonunda hedef ve ana bilgisayar arasında doğrudan ethernet bağlantısı yaptık (anahtar yok).

Tüm testler daha az aynı sonuçları verir (elbette TOE'siz ortak NIC'leri kullanmak ve iSCSI% 20-30 daha kötü sonuç verdi).

İperf ile test ağı yaklaşık 200 MB / sn (2 GBit) aktarım gösterdi. NIC'lerin hedefte bmon ile kullanımını izlemek, her iki cihazın da eşit kullanımını gösterdi (her biri okuma için yaklaşık 50MB / s, yazma için yaklaşık 100MB / s).

Şansımız olmadığı için üçüncü bir NIC (elbette her iki taraf) kullanmaya karar verdik. Sonuçlar garipti:

  • 2 NIC - her biri 50MB / s
  • 3 NIC - her biri 33MB / s

Hedef yazılımda 1GBit / sn'den daha yüksek çıktıları devre dışı bırakan bir sınır var mı?

Neyi yanlış yapıyoruz?


5
10GbE bu günlerde yeterince ucuz. Daha fazla bant genişliğine ihtiyacınız varsa (ki olmayabilir de) önerilen yol budur.
ewwhite

1
10 GbE, ATAoE ile yardımcı olmaz, çok Ethernet çerçeveli etkisiz bir protokoldür. Özellikle Jumbo çerçeveler için!
BaronSamedi1958

1
İSCSI'den bahsediyordum. ATAoE öldü ve bunun için kullanılmamalıdır.
ewwhite

Yanıtlar:


11

İSCSI bağlantılı depolama alanından maksimum performansı almak için Jumbo Çerçeveleri ve MPIO (LACP değil) kullanmalısınız. Bunu yapabiliyorsanız RDMA / iSER önerilir.

AOE (Ethernet üzerinden ATA) eskidir ve boktur. Yıllar önce Coraid'den kurtulduk zaten. Halihazırda StarWind https://www.starwindsoftware.com/ iSCSI hedefi olarak kullanıyoruz ve StarWind, Coraid'den yapabileceğimiz her türlü depolama alanına geçmemizi istedi.

Şu anda, StarWind tarafından sağlanan iSCSI ile çok iyiyiz ve Windows, ESX ve SCST http://scst.sourceforge.net/ 'u Linux üzerinde başlatıcı olarak kullanıyoruz. RDMA / iSER ile şu ana kadar çok mutlu olan 10 Gbit'e kadar çalışıyor.


6

Ethernet bağlantısı toplamanın nasıl çalıştığına ilişkin beklentiniz yanlış.

Denge-rr dışındaki tüm toplama yöntemleri (yani: kimin modu tüm yöntemleri> 0) do not size üretilen iş daha büyük bir tek bağlantı vermek; bunun yerine, etkilenen ana bilgisayarlardan / bilgisayarlara birden çok bağlantı kurulduğunda toplam kullanılabilir bant genişliğini artırırlar . Başka bir deyişle, LAG / LACP size bu tek bağlantılı senaryo için herhangi bir fayda sağlamayacaktır.

Size normalde tek bir arabirimde sahip olabileceğinizden daha büyük bir tek oturum verimi verebilecek tek toplama yöntemi, paketleri yuvarlak bir şekilde dağıtan balance-rr'dir . Hem başlatıcı hem de hedef üzerinde denge ayarı yapmanız gerekiyordu . Bununla birlikte, büyük bir yakalama, bunun büyük ölçüde anahtara bağlı olmasıdır.

Her neyse, hem hedef hem de başlatıcıyı balance-rr olarak ayarlarsanız, iki makineyi doğrudan bağlamak size daha yüksek performans sağlayacaktır. Değilse, iperfbalance-rr ve her iki makine doğrudan bağlı olan (anahtar yok) bir a gönderebilir misiniz ? Ayrıca, lütfen ddkıyaslama için kullandığınız komutu da gönderin .


2

Not: Burada sadece iSCSI'den bahsediyorum. AoE ile ilgili okumadan başka bir deneyimim yok ve bunu herhangi bir yeni altyapıya uygulayamazdım (hemen hemen geçersiz).

Balance-rr'yi çok spesifik noktadan noktaya protokollerden başka bir şey için kullanmayın. Neredeyse her türlü gerçek dünya yükü altındayken korkunç bir performansa sahiptir ve bir dizi ağ sorununa neden olur (bir sürü titreşim gibi). Kesinlikle bir anahtarla kullanmayın.

Yük dengeleme ve hata toleransını gerçekleştirmek için başlatıcı tarafında herhangi bir bağ olmadan MPIO kullanın. Tüm trafiğinizi tek bir yoldan göndererek yollarınızın "karışmasını" önlemek için, ayrı alt ağlara ayrı ayrı yollar (hedef ve başlatıcı arasında gigabit NIC'ler) koyun.

Hedef tarafı yol başına LACP ile bağlamaktan çekinmeyin (örnek bir hedef bağlantı noktası yapılandırması olarak toplam dört NIC için iki yol için iki bağda olduğu gibi). Bu harika çalışıyor ve aynı yolları kullanan birden çok başlatıcı bağlantısını dengeleyebilir. Ayrıca mümkünse jumbo çerçeveler ve iSER kullanın. Hedefteki LACP kullanılması, çeşitli NIC'ler arasındaki her yola bağlantıyı dengeler.

Başlatıcıda LACP kullanımı, sadece eşzamanlı kullanımla birçok hedef portal bağlantısı kurarsa etkili olur (hemen hemen her iş yükü için yaygın değildir). Başlatıcıdaki yol başına LACP'yi etkili bir şekilde uygulasanız bile, hızlıca her kutuya dört ek kumaş kullanmak (örneğin) bir kabus kabusu haline gelir. Tek bir başlatıcı için ~ 2Gib / s'den daha fazla verime ihtiyacınız varsa, 10GiB / s ethernet'i düşünün.


1

AoE'ye verilen yanıtların çoğu tamamen yanlıştır, gerçek dışıdır ve AoE bilgi ve deneyim eksikliğini gösterir. İlk olarak, geçersiz değil. CORAID, AoE'nin arkasındaki satıcıdır ve CORAID ticari markasını korurken “SouthSuite” olarak yeniden başlatılmıştır. Onlar da aynı geliştiriciler. Yeni ürünler üretiyorlar ve eskilerinin çoğunu destekliyorlar. Açık teknik posta listelerinin açıkça gösterdiği gibi, AoE gelişimini de ileriye taşıyorlar. Web sitesini kontrol edin, hepsi güncel ve geçmiş sayfasındaki hikayenin tamamını anlatıyor.

Birisi AoE'nin jumbo çerçevelerden yararlanamayacağını ve aynı zamanda düz bir yanlış olduğunu söyledi. 'Vbladed' sürümü 13 yayımlandıktan sonra desteklendi. MTU'nuzu yeni çerçeve boyutunu destekleyecek şekilde ayarlamanız gerekir, ancak aksi takdirde harika çalışır.

iSCSI, OSI modelinin 5. katmanında çalışır. Her zamanki taşıma TCP'dir. Bu size bazı hata düzeltmeleri (TCP'deki sağlama toplamları nedeniyle) verir ve trafiği IP üzerinden katman-3'te yönlendirmenize olanak tanır. İSCSI'nin avantajlarının durduğu yer burası. FCP, AoE veya FCoE gibi bir şeyle gerçekten karşılaştırdığınızda gerçek dünya performansı düpedüz korkunç. Sizi korku gösterisi için google “iscsi performans karşılaştırmasına” davet ediyorum.

Okuma hızı sorununuz ağın yanlış yapılandırılması, akış kontrolünün kapatılması ve yeterince büyük bir soket arabelleği kullandığınızdan kaynaklanıyor olabilir. Ayrıca temel dosya sisteminizin okuma-önceden getirme için ayarlanıp ayarlanmadığını da söylemediniz. Senaryonuza dayanarak, bu size çok yardımcı olabilir, ancak önbelleğe almayı gerektiren belirli veritabanlarında kullanmamaya dikkat edin.

802.3ad toplaması, tek turlu senaryoda bile tek akışınızı çok fazla artırmaz. Ayrıca ağ yapılandırmanızı karmaşıklaştıracak ve PDU aralıklarını eşleştirerek veya Cisco VPC bağlantınızı aktif-aktif durumu desteklemek için yanlış yapılandırarak kendinizi ayağa vurmanız için birkaç yeni fırsat sunacaktır. AoE ile LACP kullanmayın, kendi çoklu yolunu ve çoğullamasını idare etmesine izin verin. AoE'nin sonraki sürümleri bu kadar güzel ve çoğu durumda FCP'den bile daha zarif bir şekilde idare ediyor çünkü hepsi otomatik. Ek Ethernet bağlantı noktaları size daha fazla bant genişliği ve daha fazla esneklik sağlar. Ana bilgisayar ve başlatıcı Ethernet bağlantı noktalarını birden fazla anahtarın üzerine dağıtırsanız, bu daha fazla yedeklilik sağlayabilir. Bir bağlama modunu yapılandırmaya gerek yoktur. Ayrıca, AoE için kullandığınız arayüzlerde IP çalıştırmayın.

Kısacası, AoE muhabirlerini dinlemeyin, çok fazla deneyime sahip olmadıklarını ve sadece modaya uygun beyin dalgaları sürdüklerini söylüyorlar. Sürüyü kapat. Elle ayarlanmış önceden getirme özelliğine sahip bir destek mağazası yapılandırın ve muhtemelen okuma hızınızın yükseldiğini göreceksiniz. Toplama protokollerinin kullanımını bırakın ve iSCSI'den çığlık atmayı çalıştırın. Son bir şey, 'dd' kullanmayı bırak, harika bir test değil ve kötü önbellekleme etkilerine maruz. 'Fio', 'iozone' veya 'dbench' gibi gerçek bir karşılaştırma aracı kullanın. Bunlar çok daha güvenilir sonuçlar verir.


1

LACP'nin birden fazla bağlantı için olduğunu biliyorum. Test etmek çaresizlikti :)

Tüm testler balance-rr ve iki NIC ile yapıldı.

İSCSI hedefine yazma:
dd if = / dev / sıfır = / mnt / zero.bin bs = 1M sayısı = 2000
2000 + 0 przeczytanych recordów
2000 + 0 zapisanych recordów
2097152000 bayt (2,1 GB, 2,0 GiB) kopyalandı , 10,1093 s, 207 MB / s

iSCSI hedefinden okuma:
dd if = / mnt / zero.bin / = / dev / null bs = 1M
2000 + 0 przeczytanych kayıt
2000 + 0 zapisanych recordów
2097152000 bayt (2,1 GB , 2,0 GiB) kopyalandı, 16,1684 s, 130 MB / s

Ağ hızı:
iperf -c 172.16.10.80
------------------------ ------------------------------------
172.16.10.80'e bağlanan istemci, TCP bağlantı noktası 5001
TCP pencere boyutu: 325 KBayt (varsayılan)
--------------------------------------------- ---------------
[3] 172.16.10.70 bağlantı noktası 37024, 172.16.10.80 bağlantı noktası 5001
[ID] Aralıklı Aktarım Bant Genişliği
[3] 0.0-10.0 sn 2.30 GBytes 1.98 Gbits / sn

iperf ve jumbo çerçevelerle test aynı sonuçları verdi.

Başlatıcı üzerinde
çalışarak okuma hızı kazandım: hdparm -a 2048 / dev / dm-1
Daha önce 256'ydı ve okuma hızı 96MB / s idi
Hedefim 200MB / s hakkında okuma hızına ulaşmak.

DÜZENLEME:
1. Biz LACP kullanmayın - bir kez test edildi.
2. Balance-rr ve MPIO ile testler aynı sonuçları verir. Çoklu yol, farklı alt ağlardaki NIC'lerle test edilmiştir.
3. Daha fazla NIC eklemek okuma hızını arttırmaz, sadece her bir NIC'nin kullanımını azaltır.
4. Sorunun daha hızlı okumaya izin vermeyen bir sınırlama (sürücü, modül?) Olduğunu düşünüyoruz. Ama hedef ya da başlatıcı tarafı ise emin değilim.


DÜZENLEME 2: Bazı ek testler yaptık: ağ donanım sorunlarından kurtulmak için aynı ana bilgisayarı hedef ve başlatıcı olarak yapılandırdı. Şok oldum: tam olarak aynı okuma hızı! 130 MB / s! Yazma 227 MB / s'dir.


İSCSI kullandığınızda LACP'den kazanmak için oturum başına birden çok bağlantınızın etkinleştirilmiş olması gerekir. Mc / s yok = performans kazancı yok. scst.sourceforge.net/mc_s.html ve starwindsoftware.com/blog/… yardımcı olabilir.
BaronSamedi1958

-2

nic'inizin yapılandırmasını nasıl sağladınız, tüm arabellekler düzgün bir şekilde ayarlandı, ağ arabelleklerine yeterli koç tahsis ettiniz. Ayrıca burada bağlamayı kullanmayın, 2 iscsi kanalını kullanabilir ve bunları başlatıcıda çoğaltabilirsiniz, ATAoE ile aynı şekilde, herhangi bir yoldaki raf ve lun ID aracılığıyla başlatıcı çok yollarını kullanabilirsiniz.


yapmanızı önerebileceğiniz kontroller ve / veya yapılandırma değişiklikleri var mı? Tam bir cevabınız olmasa bile,
askere
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.