16   Storage over IP (iSCSI)

Technologie iSCSI, popsaná v dokumentu [SSC02], zapouzdřuje SCSI komunikaci do protokolu IP, čímž umožňuje přistupovat po existující síti k SCSI zařízením a implementovat tak tzv. vzdálený datový sklad.

V současné době je tato technologie již standardizována a dodávána prvními komerčními výrobci. Mezi ně patří i firmy Nishan Systems (Nishan IPS3300) a Cisco Systems (Storage router SN 5428), jejichž zařízení byla testována.

Cílem projektu je

Zkušenosti získané v rámci projektu byly popsány ve třech technických zprávách.

16.1   Využití technologie iSCSI

Oproti stávajícím technologiím souborově orientovaného přístupu ke vzdáleným datům je tato technologie postavena na přístupu k blokovým zařízením. Připojované vzdálené zařízení se tak zobrazuje jako obvyklé fyzické zařízení s blokovým přístupem.

Zapouzdření SCSI protokolu do IP přináší nové možnosti pro řešení infrastruktury pro ukládání dat:

Díky tomu je možno iSCSI použít například pro

16.2   Testování zařízení pro iSCSI

V rámci níže uvedených konfigurací jsme testovali jednotlivé implementace iSCSI v Linuxu, Nishan a Cisco zařízeních. Měření se soustředila na ověření základní funkčnosti a výkonové charakteristiky. Současně jsme testovali některé další funkce (autentizaci, iSCSI netboot) a výsledky jsme shrnuli v technických zprávách CESNETu číslo 5/2002, 12/2002 a 15/2002. Z uvedených zpráv níže uvádíme vybrané výkonové charakteristiky a některé poznatky získané při testech.

Vzhledem k tomu, že se každé měření uskutečnilo v jiné době, byla k dispozici různá klientská zařízení a síťové prostředky. Měření tedy není možno přímo porovnávat mezi sebou. Lze však srovnávat naměřené charakteristiky se stavem, při kterém by byl pevný disk připojen přímo ke klientovi jako lokální zařízení.

[Obrázek]

Obrázek 16.1: Konfigurace pro testy

Stejně jako u klasického SCSI je odesílatel příkazů označován jako iniciátor (initiator), jejich vykonavatel jako cíl (target). Síťová entita označovaná jako klient sestává z jednoho nebo více iniciátorů a síťových rozhraní, server z jednoho nebo více cílů a síťových rozhraní. Každý uzel má světově unikátní označení. Obě strany spolu komunikují protokolem TCP, server naslouchá dle [SSC02] na portu 5003.

Pro měření výkonu iSCSI jsme použili nástroj utest dodaný spolu se zdrojovými texty Intel implementace a standardní benchmark iozone.

Na straně Linuxu jsme při testech využívali tři různé implementace:

16.2.1   Linux-Linux

V prvním testu byl cíl i iniciátor provozován na PC s operačním systémem Linux. V tomto i dalších testech jsme na straně Linuxu použili souborový systém ext2.

Měření výkonových charakteristik

Výkon jsme mohli změřit pouze s implementací Intel, která se ukázala jako jediná funkční. Měření jsme pro srovnání provedli na 100 Mb Ethernetu a gigabitové síti. Zatížení cíle dosahovalo během měření na gigabitové síti ve špičkách až 70 %.

[Obrázek]

Obrázek 16.2: Výsledky měření Linux-Linux

Se stejnou technikou jsme pro porovnání změřili datovou propustnost při přístupu k datům na přímo připojeném disku a přístupu přes NFS. Současně jsme zjišťovali zatížení procesoru pro jednotlivé případy přístupu k datům (řádky označeny jako SCSI/L, NFS/L).

record size [kB] 256 512 1024 2048 4096 8192 16384
iSCSI read 14473 25849 29185 30233 30254 31080 27051
local read 21193 28629 31751 34477 35170 35888 37550
NFS read 15291 23236 27448 29824 31973 34167 30208
iSCSI write 8665 10975 11833 12344 11952 13141 11799
local write 17269 17633 18981 20660 18642 23639 22230
NFS write 10124 12203 12425 12742 16412 12390 16152

Tabulka 16.1: Čtení a zápis jednotlivých variant [kB/s]

record size [kB] 256 512 1024 2048 4096 8192 16384
iSCSI/L 68 % 90 % 92 % 88 % 86 % 87 % 72 %
NFS/L 72 % 81 % 86 % 87 % 91 % 95 % 80 %
iSCSI/L 50 % 62 % 62 % 60 % 64 % 56 % 53 %
NFS/L 59 % 69 % 65 % 62 % 88 % 52 % 73 %

Tabulka 16.2: Porovnání síťového přístupu s lokálním

Praktické zkušenosti

Buď probíhá vývoj referenční implementace Intel s překladačem pro 64bitovou platformu nebo pouze s historickými SCSI zařízeními. Důsledkem je zásadní omezení velikosti pevného disku hodnotou typu int (kapacita disku je tak omezena přibližně na 2 GB). Pokusili jsme se upravit kód a nahradit typ int typem long. Úprava však nebyla triviální. Překročení uvedené hranice způsobovalo zhroucení systému souborů. Rozhodli jsme se pokračovat v testech s vědomím tohoto omezení a uvedenou hranici nepřekračovat.

Kód dostupný na stránce UNH InterOperability Lab byl v podstatě nefunkční. Po navázání spojení dochází k zamrznutí jádra operačního systému na cílovém serveru.

Implementaci Cisco nelze použít pro spolupráci s cílem Intel: iniciátor chybně pracuje s geometrií disku. I když se úpravou zdrojového textu Cisco iniciátoru podařilo výše zmíněný efekt odstranit, cíl Intel přesto při komunikaci indikoval chyby. Ty byly způsobeny i faktem, že Cisco iniciátor vysílal i nestandardní požadavky (např. textové řetězce o výrobci software).

Získané výsledky a praktické zkušenosti s implementací cíle a iniciátoru na Linuxu jsou shrnuty v technické zprávě CESNETu číslo 5/2002.

16.2.2   Nishan-Linux

V testu bylo cílem komerční zařízení Nishan Systems IPS3300. Iniciátor byl provozován na PC s operačním systémem Linux.

iSCSI směrovač byl s diskovým polem propojen prostřednictvím rozhraní Fibre Channel. Disk jsme pro potřeby testu rozdělili na čtyři oddíly o velikosti 1 GB. Klientská PC byla k iSCSI směrovači připojena přímo gigabitovým Ethernetem bez dalších mezičlánků, které by mohly mít vliv na výkon systému.

Na straně klientských PC v roli iniciátoru byla použita iSCSI implementace firmy Cisco Systems. Ostatní implementace obsahují jinou verzi protokolu iSCSI a proto se ukázaly jako nepoužitelné.

Měření výkonových charakteristik

Měření probíhala pomocí programu iozone s následujícími parametry:

iozone -Rb iscsi.wks -n 900m -g 900m -z -c -a

Změna velikosti TCP okna jak pro čtení, tak i zápis oproti standardním hodnotám linuxového jádra (verze 2.4.18 a 2.4.19) neměla na výkon čtení/zápisu podstatný vliv. Změna byla provedena u standardní velikosti vyrovnávací paměti TCP socketů pro zápis (z 16 kB na 64 kB) a čtení (z 85 kB na 1 MB).

[Obrázek]

Obrázek 16.3: Výsledky měření Nishan-Linux

record size [kB] 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384
write 18060 17906 17780 18156 17909 18072 18020 18161 18084 17874 17693 17612 17708
read 19916 17956 19602 19700 19865 19687 19774 19390 19011 19579 19480 19228 19260

Tabulka 16.3: Hodnoty čtení/zápisu Nishan IPS3300 [kB/s]

Praktické zkušenosti

Zařízení Nishan IPS3300 se jeví jako použitelné technické řešení pro realizaci vzdáleného datového skladu (spolu s patřičným diskovým polem) pomocí protokolu iSCSI.

Z testovaných verzí firmware byla pro iSCSI použitelná pouze poslední. U této verze nebyla však použitelná část týkající se SNS a tak nemohla být odzkoušena funkčnost tohoto protokolu.

Podrobný popis všech provedených měření a zkušeností se zařízením Nishan IPS3300 lze nalézt v technické zprávě CESNETu 12/2002.

16.2.3   Cisco-Linux

Ve třetím testu bylo cílem komerční zařízení Cisco SN 5428 s připojeným diskovým polem Fortra. Jako iniciátor sloužilo PC s operačním systémem Linux. Zařízení Cisco SN 5420 a 5428 podporují iSCSI podle osmé verze draftu IETF.

Měření výkonových charakteristik

Měření probíhala pomocí programu iozone s následujícími parametry:
(výstup do binárního souboru ve formátu MS Excel, s minimální a maximální velikostí souboru 3 GB, s použitím funkce close() a automatickým měřením, s velikostmi přenášených bloků od 4 kB do 16 MB)

iozone -Rb iscsi.wks -n 3g -g 3g -z -c -a -i 0 -i 1

[Obrázek]

Obrázek 16.4: Výsledky měření Cisco-Linux

Praktické zkušenosti:

Firmware SN 5428 bylo nutno nahradit verzí 2.3.1.3-K9, protože původně dodaný firmware verze 2.3.1 vykazoval neshodné výsledky při opakovaných testech rychlosti čtení.

Z grafu jasně vyplývá, že nejvyšší výkon byl docílen s upraveným jádrem firmy Redhat. Toto jádro se od standardního v některých částech významně liší (vznikne aplikací 215 záplat o celkové velikosti 35 MB). Bohužel se nám nepodařilo zjistit, která z úprav má podstatný vliv na nárůst přenosové rychlosti. Podstatnou částí úprav jádra Redhat je soubor záplat Alana Coxe. Proto jsme vyzkoušeli i standardní jádro, na něž jsme aplikovali úpravy Alana Coxe. Výsledky byly lepší než u standardního jádra, avšak ne tak dobré jako u jádra firmy Redhat.

Podrobný popis všech provedených měření a zkušeností se zařízením Cisco SN 5428 lze nalézt v technické zprávě CESNETu číslo 15/2002.

16.3   Bezpečnost iSCSI

iSCSI používá dva samostatné bezpečnostní mechanismy, přičemž oba mechanismy se vzájemně doplňují

Má-li implementace iSCSI odpovídat draftu [SSC02], musí cíl i iniciátor podporovat autentizace. Stávající úroveň bezpečnosti jednotlivých implementací iSCSI lze popsat několika přístupy

16.3.1   Žádná bezpečnost

V tomto režimu se neprovádí autentizace iniciátora, přenášená data a příkazy nejsou šifrovány. Tento přístup lze použít pouze tam, kde jsou potenciální bezpečnostní rizika minimální a chyby v konfiguraci jsou nepravděpodobné.

16.3.2   Autentizace iniciátor-cíl

V tomto režimu cíl autentizuje iniciátora (a případně i naopak). Tento přístup zamezuje neoprávněnému přístupu k datovým prostorům falšováním identity iniciátora (spoofing). Po ukončení procesu autentizace jsou všechny další příkazy a data posílány nešifrovaně. Tento přístup lze použít tehdy, jsou-li vyloučeny útoky typu man-in-the-middle, odposlouchávání a modifikace zasílaných dat.

Draft iSCSI (viz. [SSC02] a [ATW02]) předpokládá druhy autentizace podle tabulky 16.4.

KRB5 Kerberos V5
SPKM1 Simple public-key generic security service (GSS),
  application programming interface (API) mechanism
SPKM2 Simple public-key GSS API mechanism
SRP Secure Remote Password
CHAP Challenge Handshake Authentication Protocol
None No authentication

Tabulka 16.4: Druhy autentizace použitelné prokolem iSCSI

16.3.3   Autentizace a šifrování

V tomto řešení je zabezpečena autentizace některým z výše uvedených mechanismů a bezpečnost datových přenosů je na úrovni protokolu IP ošetřena šifrováním.

Z hlediska draftu je zařízení pokládáno za kompatibilní s iSCSI tehdy, má-li implementovánu podporu pro IPSec. Vzhledem k nárokům na přenosové rychlosti a s tím souvisejícím obtížím při šifrování draft připouští implementaci IPSec na předřazeném zařízení. Dvojice zařízení (iSCSI směrovač a zařízení pro IPSec) je pak považována za zařízení splňující požadavky draftu. Žádné z testovaných zařízení nemělo implementovánu technologii IPSec.

Linux: Autentizace proti lokálně definovanému seznamu iniciátorů, CHAP protokol.

Cisco: Authentizace proti lokálně definovanému seznamu iniciátorů, serveru RADIUS a TACACS+. Používá se CHAP protokol. Dále možno použít přístupové seznamy, virtuální sítě.

Konfigurace a běh výše uvedených autentizačních mechanismů jsme ověřili a shledali je funkčními. Zařízení Nishan jsme měli zapůjčeno jen po omezenou dobu, kterou navíc zkrátilo hledání funkční verze firmware. Proto jsme u něj autentizační mechanismy netestovali.

16.4   Závěr

16.4.1   Linux jako iniciátor/cíl

V době příprav této zprávy byla autorům práce známa tři čistě softwarová částečná či úplná řešení iSCSI na platformě PC GNU/Linux. Ani jedno z nich se prozatím neukázalo jako vhodné pro rutinní použití. Tato oblast je nicméně teprve ve vývoji.

Jak je patrné z výše uvedené tabulky, při práci s pevným diskem prostřednictvím iSCSI dochází u velmi malých přenášených bloků k výrazné degradaci přenosové rychlosti. NFS vykazuje lepší přenosové rychlosti u požadavků na velké objemy dat.

Z výše uvedených měření je vidět, že verze linuxového jádra a instalace záplat podstatným způsobem ovlivňuje maximální přenosové rychlosti.

16.4.2   Řešení komerčních výrobců

Oba testované produkty (IPS 3300, SN 5428) splňují základní požadavky na funkčnost.

Z několika testovaných verzí firmware zařízení Nishan byla pro iSCSI použitelná pouze poslední. U této verze nebyla však použitelná část týkající se SNS a tak nemohla být odzkoušena funkčnost tohoto protokolu a jeho implementace v zařízení.

16.5   Další postup práce

V následujícím období počítáme s testováním dalších vlastností iSCSI, které dosud nebyly testovány či uspokojivě implementovány na zapůjčených zařízeních. Jde zejména o implementace fail over u iSCSI a bootstrap (viz [SMS02]) klientských zařízení přes SCSI. U funkce fail over jde především o měření rychlosti doby ustavení náhradní trasy. Současně plánujeme testování výkonnosti iSCSI přenosů při použití IPSec.

Z nových technologií budeme testovat použitelnost a vlatnosti implementace protokolu HyperSCSI pro zapouzdřování SCSI protokolu do IP paketů a propojení datových skladů v rámci metropolitní sítě protokolem iFCP.

předchozí
obsah
následující
další weby:fond rozvojemetacentrumCzechLightpřenosyvideoservereduroameduID.cz