ISCSI Uygunluk Testi ve Test Aracı Gereksinimi - ISCSI Conformance Testing and Testing Tool Requirement

iSCSI uygunluk testi bir iSCSI Başlatıcı / Hedefin iSCSI standardını karşılayıp karşılamadığını belirlemek için testtir.

SCSI ve iSCSI Protokolü

Küçük Bilgisayar Sistemi Arayüzü (SCSI ) G / Ç aygıtları, özellikle depolama aygıtları ile iletişim kurmak için bir protokol ailesidir. SCSI, istemci-sunucu modeline dayanır. "Başlatıcılar" olarak adlandırılan SCSI istemcileri, "hedef" olarak bilinen bir sunucunun bileşenlerinden, mantıksal birimlerinden hizmet talep etmek için SCSI komutları yayınlar. Bir "SCSI aktarımı", istemci-sunucu SCSI protokolünü belirli bir ara bağlantıya eşler. Başlatıcı, SCSI aktarımının bir uç noktasıdır ve bir hedef, diğer uç noktadır.

İnternet Küçük Bilgisayar Sistem Arayüzü (iSCSI ) protokol, SCSI aktarımı olarak TCP / IP'yi kullanır. SCSI paketlerini TCP / IP üzerinden taşıyarak, iSCSI mevcut İnternet altyapısından, İnternet yönetim olanaklarından ve adres mesafesi sınırlamalarından yararlanabilen birlikte çalışabilir bir çözüm sağlar. Özel amaçlı kablolama gerektiren geleneksel Fiber Kanalın aksine, iSCSI mevcut ağ altyapısı üzerinde çalışabilir. Ölçeklenebilirliği ve ekonomik faydaları nedeniyle popüler bir depolama alanı ağı (SAN) protokolü haline gelmiştir. Protokol, RFC 3720 ve güncellendi RFC 5048.

iSCSI Uygunluk Testi

SCSI aktarım katmanının geleneksel güvenilir veri yolu yapısından çok daha güvenilmez TCP / IP ağına taşınmasıyla, iSCSI'ye oldukça makul miktarda karmaşıklık getirilmiştir:

  • Giriş / Çıkış işlemleri gereklidir.
  • Oturum açma sırasında Güvenlik / Operasyonel parametrelerin görüşülmesi gerekir.
  • Oturum açma sırasında CHAP veya diğer kimlik doğrulama yöntemleri kullanılabilir.
  • Birden çok oturum / bağlantı gerekli olabilir.
  • Birden fazla hata giderme seviyesi uygulanabilir.
  • ...

Tek kelimeyle, iSCSI'nin ekonomik maliyeti diğerlerinden daha düşük olsa da, protokolün kendisi o kadar basit değildir.

Protokolün onaylanmasından bu yana iSCSI, son kullanıcılar ve depolama satıcıları arasında istikrarlı bir şekilde kabul görmektedir. Günümüzde, piyasada ticari veya ücretsiz / açık kaynaklı çok sayıda iSCSI başlatıcı / hedef uygulaması bulunmaktadır. Bu uygulamalar, işlevler ve protokol uygunluğu açısından farklılık gösterir.

Uygunluk testi bir sistemin belirli bir standardı karşılayıp karşılamadığını belirlemek için test etmektir. Daha fazla uyumluluk garantisi vermek için genellikle harici kuruluşlar, bazen de standartlar kuruluşunun kendisi tarafından gerçekleştirilir. Bu şekilde test edilen ürünler daha sonra bu harici kuruluş tarafından standarda uygunluğu onaylanmış olarak ilan edilir. İSCSI protokolü (veya diğer veri ağı ve depolama protokolleri) için, New Hampshire Üniversitesi InterOperability Laboratuvarı (UNH-IOL), iSCSI uygunluk testi için test paketleri sunan önde gelen tarafsız, üçüncü taraf laboratuarlardan biridir.

Bu test paketlerindeki giriş bölümünde söylendiği gibi:

Bu testler, bir iSCSI ürününün her iki IETF'de tanımlanan özelliklere uygun olup olmadığını belirlemek için tasarlanmıştır. RFC 3720 iSCSI (bundan sonra "iSCSI Standardı" olarak anılacaktır) ve IETF'te bulunan güncellemeler RFC 5048 iSCSI Düzeltmeleri ve Açıklamaları RFC (bundan sonra "iSCSI Düzeltmeleri ve Açıklamaları" olarak anılacaktır). Bu pakette yer alan tüm testlerin başarıyla tamamlanması, test edilen cihazın diğer iSCSI ürünleriyle başarılı bir şekilde çalışacağını garanti etmez. Ancak, GİL’in birlikte çalışabilirlik test yatağında tatmin edici bir çalışma ile birleştirildiğinde, bu testler, Test Edilen Cihazın (DUT) birçok iSCSI ortamında düzgün çalışacağına dair makul bir güven düzeyi sağlar.

iSCSI uygunluk testi temel olarak aşağıdaki hususları içerir:

  • Oturum Açma Aşaması Uyumluluğu
Görüşme anahtar / değer çiftlerini test edin; çeşitli bayrakları test edin: CSG, NSG, C bit, T bit ...
  • Tam Özellikli Faz Uyumluluğu
Test sıra numaraları (CmdSN, DataSN, R2TSN); SCSI Komutu / Yanıtı testi, Görev Yönetimi Fonksiyonu İsteği / Yanıtı, Metin İsteği / Yanıtı, NOP-Giriş / NOP-Çıkışı, SNACK Talebi ...
  • CHAP Uyumluluğu
CHAP alanlarını test edin: CHAP_A, CHAP_C, CHAP_I, CHAP_N, CHAP_R ...
  • Çoklu Bağlantı Uygunluğu
Bağlantı oluşturma, sonlandırma, parametre anlaşması, sıra numarası ve görev yönetiminde çoklu bağlantı desteğini test edin ...
  • Hata Kurtarma Uygunluğu
Test Başlatıcı / Hedefin hata kurtarma desteği

iSCSI Uyumluluk Testi Yaygın Senaryolar

Temel olarak, DUT'un iSCSI protokolünü karşılayıp karşılamadığını test etmek için iki tür eylem gerçekleştirilebilir:

  • Her şeyi düzeltiyoruz ve DUT'un doğru davranıp davranmadığını görüyoruz.
    Bu durumda ana görev, DUT'a doğru bir iSCSI PDU dizisi göndermek ve DUT'un doğru PDU'lar / PDU alanları ile yanıt verebildiğini doğrulamaktır.
  • Yanlış şeyler yapıyoruz ve DUT'un buna göre tespit edip davranamayacağını görüyoruz.
    Bu durumda, DUT'a gönderilen PDU sırasını bir ölçüde değiştirmeliyiz (örneğin, bir komutun CmdSN'sini değiştirmeli, geçersiz bir veri özeti ayarlamalı ...) ve DUT'un protokole göre tepki verebileceğini doğrulamalıyız (örn. a PDU'yu reddedin, bağlantıyı kapatın ...).

İSCSI uygunluk testinde bazı yaygın senaryolar bulunabilir:

  • iSCSI işlevsel testi
Bir iSCSI görevinin doğru şekilde yürütülüp yürütülemeyeceğini test etmek için (Görev Yönetimi İşlevi, NOP-In / NOP-Out Ping, çoklu bağlantı yönetimi ...)
  • PDU format hatası
Örneğin, bir SCSI Komut PDU'sunda W ve F bitlerinin her ikisi de 0 olarak ayarlanmışsa bu bir hatadır.
  • PDU oturumu / aşama hatası
Örneğin, oturum açma aşamasında veya keşif oturumunda bir SCSI Komut PDU'su belirirse bu bir hatadır.
  • Üstbilgi / Veri özeti hatası
Özet hatası, Hedef / Başlatıcı'nın Red / SNACK PDU göndermesine neden olabilir.
  • Sıra hatası
CmdSN / StatSN / DataSN / R2T'nin her birinin farklı kapsamı ve farklı kuralları vardır.
  • Pazarlık hatası
Metin parametreleri anahtar = değer biçiminde ve ardından bir NULL ("0x00") sınırlayıcı gelmelidir. Her metin parametresinin ayrıca kendi aşama ve görüşme kuralları vardır. Örneğin, FirstBurstLength, MaxBurstLength değerini aşmamalıdır, SendTargets yalnızca Tam Özellik Aşamasında vb. Görünmelidir.
  • Veri uzunluğu hatası
Hedefe çok fazla veya çok az veri gönderilir.
  • Kayıp PDU
Gelen bir PDU'yu bırakın, ardından bunun için SNACK yapın, giden bir PDU'yu bırakın ve yeniden deneyin.

Yukarıdaki senaryoların çoğu, çıktı PDU'sunun içeriği değiştirilerek benzetilebilir. Örneğin, bir veri özeti hatasını taklit etmek için, PDU'daki DataDigest alanını değiştirmemiz yeterlidir.

iSCSI Uyumluluk Test Aracı Gereksinimi

Bir iSCSI uygunluk testi aracı, bir iSCSI Başlatıcı emülatörü (iSCSI Hedefini test etmek için) veya bir iSCSI Hedef emülatörü (iSCSI Başlatıcısını test etmek için) olarak görülebilir. İyi bir iSCSI uygunluk testi aracı aşağıdaki gereksinimleri karşılamalıdır:

  • Yürütülebilir test komut dosyaları
Her test senaryosu için çalıştırılabilir bir komut dosyası gereklidir. PDU sırasını ve doğrulama noktalarını tanımlayan test senaryosu açıklamasına göre yazılmalıdır.
  • İSCSI Engine çekirdeği
İSCSI Engine çekirdeği, iSCSI PDU'ların DUT'a (Test Edilen Cihaz) gönderilmesi / alınmasından sorumludur. Bir tarafta, test komut dizisinden girdi kabul eder, PDU'lar gönderir veya kontrol noktalarını onaylar; Öte yandan, gerekli otomasyonun elde edilebilmesi için iSCSI protokolünü belirli bir seviyeye kadar anlamalıdır; örneğin, iSCSI PDU'ların otomatik olarak oluşturulması (görüşme sırasında Oturum Açma / Metin İsteği, Nop-Out ping yanıtı) ve bazı PDU alanları (ITT) , TTT, CmdSN, veriler, özet ...).
  • PDU format doğrulaması
Alınan PDU'lar için, iSCSI Engine çekirdeği, hatalı biçimlendirilmiş PDU'yu tespit etmek için doğrulama denetimi yapmalıdır.
  • PDU'nun içeriğini değiştirme yeteneği
Hatalı biçimlendirilmiş PDU'lar genellikle PDU biçim hatasını veya özet hatasını simüle etmek için DUT'a gönderilir.
  • PDU düşürme yeteneği
İletim sırasında kayıp PDU'yu simüle etmek için PDU düşürülebilir.
  • Birden çok oturumu / bağlantıyı sürdürme yeteneği
Hata Kurtarma gibi, birden çok oturum / bağlantı desteği, iSCSI protokolünde gelişmiş bir alandır.
  • Sonuç ve günlük
Başarılı veya Başarısız bir test senaryosunun açıkça belirtilmesi gerekir. Analiz için ayrıntılı günlük gereklidir. PDU döküm dosyalarını analiz etmek için bir grafik arayüze sahip olmak daha iyi olacaktır.
  • Bir Toplu sistem
Çok sayıda test komut dosyasının kullanıcı müdahalesi olmadan otomatik olarak çalışabilmesi için test takımlarını ve test senaryolarını yönetmek için bir toplu sisteme ihtiyaç vardır.

Mevcut iSCSI Uyumluluk Test Araçları

  • UNH-IOL test hizmeti
    İSCSI konsorsiyumu, iSCSI ürünlerini ve yazılımlarını hem birlikte çalışabilirlik hem de uygunluk perspektiflerinden test etmek için bir hizmet sağlar. Son teknoloji test ekipmanları ve GİL test araçları için üyelik gereklidir.
  • iSCSISim
    Açık kaynaklı yazılım. iSCSISim ayrıca, iSCSI hedeflerini test etmek için bir iSCSI başlatıcı emülatörüdür. Python'da yazılan yetenekleri arasında SCSI komut enjeksiyonu, hata ekleme ve kurtarma testi bulunur.
  • libiscsi
    Açık kaynaklı yazılım. libiscsi, bir iSCSI başlatıcı uygulayan bir kullanıcı alanı kitaplığıdır. C ile yazılmış, bir hedefin uygunluğunu test edebilen iscsi-test-cu adlı bir iSCSI / SCSI test paketiyle birlikte gelir.
  • Calsoft’un iSCSI Protokol Uyumluluk Test Paketi
    Ticari yazılım. Test paketi, herhangi bir iSCSI hedef uygulaması için iSCSI protokol uyumluluğuna yardımcı olur.

Ayrıca bakınız