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
- ověření použitelnosti implementací iSCSI v rámci systému Linux a implementací iSCSI v prvních komerčních zařízeních (Nishan, Cisco)
- testování datové propustnosti jednotlivých řešení ve srovnání s přímo připojeným diskovým prostorem
- testování mechanismů pro autentizaci/autorizaci operací v rámci protokolu iSCSI
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:
- Vytvoření společné technologie pro přenos dat a pro úschovu dat - možnost použít iSCSI adaptér využívající gigabitový Ethernet nebo využit TCP/IP zásobník počítačů.
- Rozšiřitelnost na velké vzdálenosti - použitím WAN a směrovačů se může síť pro ukládání dat rozšířit a být využívána na jakoukoli vzdálenost.
- Různé možnosti topologií - pouze síť pro ukládání, privátní síť nebo využití Internetu.
- Podpora konsolidace úschovy dat do jednoho místa s jednou technologií - redukce ceny za správu a údržbu.
Díky tomu je možno iSCSI použít například pro
- konsolidaci datového prostoru (snadný přechod od lokálního, přímo připojeného diskového prostoru k diskovému prostoru připojenému v IP síti)
- datové sklady (lokální, distribuované)
- replikaci dat
- zálohování na úrovni fyzických zařízení
- network boot a jeho využití pro systémy s vysokou dostupností dat
- služby poskytování datového prostoru a vzdálený přístup k datům
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í.
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:
- Intel
- University of New Hampshire (UNH) InterOperability Lab
- Cisco
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 %.
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).
| 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
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í
- autentizaci cíl-iniciátor na spojové vrstvě iSCSI
- ochrana datových paketů na úrovni protokolu IP (IPSec)
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.
obsah |
následující
|