Sem vložte zadání Vaší práce.



Podobné dokumenty
Disková pole (RAID) 1

Universal Serial Bus (USB)

Disková pole (RAID) 1

IPZ laboratoře. Analýza komunikace na sběrnici USB L305. Cvičící: Straka Martin, Šimek Václav, Kaštil Jan. Cvičení 2

Distribuované systémy a počítačové sítě

Disková pole (RAID) 1

Universal Serial Bus. Téma 12: USB. Komunikační principy Enumerace Standardní třídy zařízení

Pokročilé architektury počítačů

Uživatelská příručka

Metody připojování periferií

Server je v informatice obecné označení pro počítač, který poskytuje nějaké služby nebo počítačový program, který tyto služby realizuje.

Systém souborů (file system, FS)

KAPITOLA 1 - ZÁKLADNÍ POJMY INFORMAČNÍCH A KOMUNIKAČNÍCH TECHNOLOGIÍ

Metody připojování periferií

Přednáška. Úložiště dat: HDD, SDD, RAID, DAS, NAS, SAN. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

5. Čtení/zápis sektorů z/do USB paměťového média I

Fakulta informačních technologií VUT v Brně Ústav počítačových systémů Periferní zařízení, cvičení IPZ Analýza komunikace na sběrnici USB

Výukový materiál Hardware je zaměřený především na výuku principů práce hardwaru a dále uvádí konkrétní příklady použití.

pole Princip 1. Zvýšení rychlosti. 2. Zvýšení bezpečnosti uložených dat (proti ztrátě).

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE

Rozhraní SCSI. Rozhraní SCSI. Architektura SCSI

Kapitola 10: Diskové a souborové struktury. Klasifikace fyzických médií. Fyzická média

OZD. 2. ledna Logický (Objekty, atributy,...) objekty stejného typu.

Princip funkce počítače

Systém řízení sběrnice

Paměti. Paměť je zařízení, které slouží k ukládání programů a dat, s nimiž počítač pracuje

Registrový model HDD

Paměti Flash. Paměti Flash. Základní charakteristiky

Paměťový podsystém počítače

Uživatelská příručka

Systém adresace paměti

SEMESTRÁLNÍ PROJEKT Y38PRO

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

1. DATOVÉ SCHRÁNKY OBECNÝ PŘÍSTUP K DATOVÉ SCHRÁNCE DATOVÉ ZPRÁVY... 3

Komunikační protokol

Mezipaměti počítače. L2 cache. L3 cache

Deska sběru chyb a událostí

Popis programu EnicomD

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

MBus Explorer MULTI. Uživatelský manuál V. 1.1

Architektura vnějších pamětí

12. Virtuální sítě (VLAN) VLAN. Počítačové sítě I. 1 (7) KST/IPS1. Studijní cíl. Základní seznámení se sítěmi VLAN. Doba nutná k nastudování

Komunikační protokol

Souborové systémy Mgr. Josef Horálek

CA21 PŘÍRUČKA UŽIVATELE

Profilová část maturitní zkoušky 2013/2014

PROTOKOL RDS. Dotaz na stav stanice " STAV CNC Informace o stavu CNC a radiové stanice FORMÁT JEDNOTLIVÝCH ZPRÁV

Datová úložiště. Zdroj: IBM

Uživatelský manuál. KNXgw232

Systémy pro sběr a přenos dat

Profilová část maturitní zkoušky 2014/2015

Reprodukce tohoto návodu k obsluze, nebo jeho části, v jakékoli formě bez předchozího písemného svolení společnosti DEGA CZ s.r.o. je zakázána.

Řízení IO přenosů DMA řadičem

VirtualBox desktopová virtualizace. Zdeněk Merta

Systémy pro sběr a přenos dat

Katalog egon služeb verze: 0.01

architektura mostů severní / jižní most (angl. north / south bridge) 1. Čipové sady s architekturou severního / jižního mostu

Albatros MultiV ALBATROS MultiV ALBATROS MultiV-R Datový převodník LG PI485 / MODBUS TCP LG PI485 / MODBUS RTU s možností rozpočítávání spotřeby elekt

VYSOKÁ ŠKOLA BÁŇSKÁ TECHNICKÁ UNIVERZITA OSTRAVA FAKULTA STROJNÍ DATABÁZOVÉ SYSTÉMY ARCHITEKTURA DATABÁZOVÝCH SYSTÉMŮ. Ing. Lukáš OTTE, Ph.D.

Internetový obchod ES Pohoda Web Revolution

T-Mobile Internet. Manager. pro Windows NÁVOD PRO UŽIVATELE

NAPOJENÍ ZAŘÍZENÍ S KOMUNIKACÍ BELIMO MP-BUS NA SÍŤ AUTOMATŮ MICROPEL

Knihovna DataBoxLib TXV první vydání prosinec 2010 změny vyhrazeny

Dvojnásobný převodník s frekvenčními vstupy a analogovými výstupy na DIN lištu RV-2F

Solid State Drive SSD polovodičový disk. J. Vrzal, verze 0.8

Seriové ATA, principy, vlastnosti

Uživatelský manuál. KNX232e / KNX232e1k

Způsoby realizace této funkce:

NÁVOD K OBSLUZE. Obj. č.: Zkrácený návod k obsluze

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

Uživatelský manuál. KNXgal. řízení zabezpečovacích ústředen. Galaxy ze sběrnice KNX. napájeno ze sběrnice KNX. indikace komunikace na KNX

EXTRAKT z české technické normy

Profilová část maturitní zkoušky 2017/2018

Metody připojování periferií

Pohled do nitra mikroprocesoru Josef Horálek

Architektura počítačů

TECHNICKÁ SPECIFIKACE VEŘEJNÉ ZAKÁZKY

Linux RAID, LVM. 27. listopadu Uvedené dílo podléhá licenci Creative Commons Uved te autora 3.0 Česko.

PŘÍLOHY. PRESTO USB programátor

Zálohování v MS Windows 10

NAS 251 Seznámení s RAID

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Příloha č.2 - Technická specifikace předmětu veřejné zakázky

Konektory a Kabely. Aneb zařízení integrovaná do základní desky a konektory a kabeláž pro připojení externích zařízení

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Informační a komunikační technologie

Vrstvy periferních rozhraní

2.9 Vnitřní paměti. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Uživatelský manuál. Aplikace GraphViewer. Vytvořil: Viktor Dlouhý

Měření teploty, tlaku a vlhkosti vzduchu s přenosem dat přes internet a zobrazování na WEB stránce

Modulární monitorovací systém Gradient Digitální systém pro záznam, archivaci a vyhodnocení telefonie.

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX

Technologické postupy práce s aktovkou IS MPP

Téma 10: Správa hardwarových zařízení a ovladačů II

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Firmware USBasp pro modul AVRUSB. Milan Horkel. Parametr Hodnota Poznámka. Rozhraní USB Low Speed. Procesor ATmega8 ATmega88 Varianty překladu

Architektury počítačů a procesorů

Počítač jako elektronické, Číslicové zařízení

Souborové systémy. Architektura disku

Semestrální práce 2 znakový strom

Transkript:

Sem vložte zadání Vaší práce.

České vysoké učení technické v Praze Fakulta informačních technologií Katedra počítačových systémů Bakalářská práce Návrh diskového pole pomocí flashdisků Jakub Pavčo Vedoucí práce: Ing. Ivan Šimeček, Ph.D. 14. května 2014

Poděkování Tímto bych chtěl poděkovat Ing. Ivanu Šimečkovi, Ph.D. za cenné rady, velikou ochotu pomoci, zapůjčení USB flash disku a celkové vedení práce. Dále bych chtěl poděkovat přátelům a přítelkyni, kteří mi svěřili své USB flash disky k testování a měření. Nakonec bych chtěl poděkovat rodině za podporu v průběhu studia.

Prohlášení Prohlašuji, že jsem předloženou práci vypracoval(a) samostatně a že jsem uvedl(a) veškeré použité informační zdroje v souladu s Metodickým pokynem o etické přípravě vysokoškolských závěrečných prací. Beru na vědomí, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorského zákona, ve znění pozdějších předpisů. V souladu s ust. 46 odst. 6 tohoto zákona tímto uděluji nevýhradní oprávnění (licenci) k užití této mojí práce, a to včetně všech počítačových programů, jež jsou její součástí či přílohou a veškeré jejich dokumentace (dále souhrnně jen Dílo ), a to všem osobám, které si přejí Dílo užít. Tyto osoby jsou oprávněny Dílo užít jakýmkoli způsobem, který nesnižuje hodnotu Díla a za jakýmkoli účelem (včetně užití k výdělečným účelům). Toto oprávnění je časově, teritoriálně i množstevně neomezené. Každá osoba, která využije výše uvedenou licenci, se však zavazuje udělit ke každému dílu, které vznikne (byť jen zčásti) na základě Díla, úpravou Díla, spojením Díla s jiným dílem, zařazením Díla do díla souborného či spracováním Díla (včetně překladu), licenci alespoň ve výše uvedeném rozsahu a zároveň zpřístupnit zdrojový kód takového díla alespoň srovnatelným způsobem a ve srovnatelném rozsahu, jako je zpřístupněn zdrojový kód Díla. V Praze dne 14. května 2014.....................

České vysoké učení technické v Praze Fakulta informačních technologií c 2014 Jakub Pavčo. Všechna práva vyhrazena. Tato práce vznikla jako školní dílo na Českém vysokém učení technickém v Praze, Fakultě informačních technologií. Práce je chráněna právními předpisy a mezinárodními úmluvami o právu autorském a právech souvisejících s právem autorským. K jejímu užití, s výjimkou bezúplatných zákonných licencí, je nezbytný souhlas autora. Odkaz na tuto práci Pavčo, Jakub. Návrh diskového pole pomocí flashdisků. Bakalářská práce. Praha: České vysoké učení technické v Praze, Fakulta informačních technologií, 2014.

Abstract This Bachelor thesis goal is connecting USB flash drives into one disks array. USB flash drives are plugged in by USB bus. To secure data in disks array is implemented as RAID 5. Part of the thesis is implementation of disks array interface. This interface allows making disks array and subsequently use it for storing data. Results of tests of disk arrays and graphs of speed of reading and writing data are in the text of the thesis. Keywords Disks array, USB flash drive, USB, RAID 5, wear leveling Abstrakt Tato bakalářská práce se zabývá spojením USB flash disků v jedno diskové pole. USB flash disky jsou připojeny přes sběrnici USB. Pro zabezpečení dat je diskové pole implementováno jako RAID 5. Součástí práce je implementace rozhraní diskového pole. Toto rozhraní umožňuje vytvořit diskové pole a následně ho využívat k uchovávání dat. V textu práce jsou zaznamenány výsledky testů diskového pole, a také grafy rychlosti čtení a zápisu dat. Klíčová slova Diskové pole, USB flash disk, USB, RAID 5, wear leveling ix

Obsah Úvod 1 1 Rozbor postupu práce 3 1.1 Studium technologií........................ 3 1.2 Analýza a návrh.......................... 4 1.3 Návrh rozhraní, jak by mělo fungovat.............. 4 1.4 Implementace rozhraní....................... 4 1.5 Testování a měření rozhraní.................... 4 2 Popis technologií a definice pojmů 5 2.1 Sběrnice USB............................ 5 2.2 Diskové pole............................. 12 2.3 USB flash disky........................... 15 3 Analýza a návrh 19 3.1 Implementace wear leveling v zařízeních............. 19 3.2 Podporovaná zařízení........................ 20 3.3 Diskové pole............................. 21 4 Struktura vytvářeného rozhraní 23 4.1 Komunikace s USB flash disky.................. 23 4.2 RAID 5............................... 24 5 Realizace rozhraní 27 5.1 Implementace USB komunikace.................. 27 5.2 Implementace RAID 5....................... 30 6 Testování a měření výkonnosti rozhraní 33 6.1 Použitá zařízení........................... 33 6.2 Testování komunikace s USB flash disky............. 34 xi

6.3 Testování diskového pole...................... 34 6.4 Měření výkonnosti......................... 37 Závěr 45 Možnosti rozšíření............................ 46 Literatura 47 A Uživatelská příručka 49 A.1 Příprava USB flash disků..................... 49 A.2 Obnovení činnosti USB flash disku v systému Windows.... 50 A.3 Ovládání rozhraní......................... 50 A.4 Omezení diskového pole...................... 51 B Seznam použitých zkratek 53 C Obsah přiloženého CD 55 xii

Seznam obrázků 2.1 USB 3.1: Architektura dvojité sběrnice [3].............. 7 2.2 Struktura Command Block Wrapperu [4].............. 11 2.3 Struktura Command Status Wrapperu [4].............. 11 2.4 Mapování LBA na PBA [11]...................... 17 2.5 Jak funguje wear leveling při zápisu bloků [11]........... 18 6.1 Graf rychlosti čtení dat jednoho USB flash disku.......... 37 6.2 Graf rychlosti čtení dat 3 USB flash disků.............. 38 6.3 Graf rychlosti čtení dat 4 USB flash disků.............. 39 6.4 Graf rychlosti čtení dat 5 USB flash disků.............. 39 6.5 Graf rychlosti čtení dat 6 USB flash disků.............. 40 6.6 Graf rychlosti zápisu dat jednoho USB flash disku......... 41 6.7 Graf rychlosti zápisu dat 3 USB flash disků............. 41 6.8 Graf rychlosti zápisu dat 4 USB flash disků............. 42 6.9 Graf rychlosti zápisu dat 5 USB flash disků............. 43 6.10 Graf rychlosti zápisu dat 6 USB flash disků............. 43 xiii

Seznam tabulek 2.1 Tabulka šířky pásma dle verzí USB.................. 7 2.2 Tabulka porovnání NOR a NAND technologií [7].......... 15 2.3 Porovnání druhů wear leveling [11].................. 18 6.1 Testování vytvoření a zrušení RAIDu................ 34 6.2 Testování náhodného zápisu do RAIDu............... 35 6.3 Testování zápisu do poškozeného RAIDu............... 35 6.4 Testování odpojení USB flash disku v průběhu zápisu do RAIDu. 36 6.5 Testování selhání zápisu 2 USB flash disků do RAIDu....... 36 6.6 Testování opravy poškozeného RAIDu................ 36 xv

Úvod Myslím si, že mnoho lidí má doma několik starých USB flash disků. Člověku přijde škoda je zahodit. Sice tyto starší USB flash disky mají menší kapacitu, ale pořád fungují. Dají se pořád používat na přenos a uchování menších souborů, ale s vetším obsahem dat vzniká problém. Pokud by tento problém vyvstal ojediněle, stačí data zkomprimovat a rozdělit do několika archivů, které se již na jednotlivé USB flash disky vejdou. Další možným řešením je použít software pro vytváření diskových polí z paměťových zařízení. Tomuto softwaru nastavíte, se kterými zařízeními má pracovat a vytvoří vám z nich diskové pole. Bohužel tyto programy nepředpokládají, že budou pracovat s USB flash disky, tudíž nepracují s USB flash disky optimálně. Zde vzniká prostor pro mou bakalářskou práci. Navrhnout a naprogramovat software pro vytváření diskového pole, který bude optimálně pracovat s USB flash disky. 1

Kapitola 1 Rozbor postupu práce Cílem práce je navrhnout a naimplementovat diskové pole, které se bude skládat z USB flash disků. Fyzickou vlastností těchto pamětí je určitá životnost jednotlivých sektorů, která je dána počtem jejich přepsání. Po určitém množství přepsaní se může sektor poškodit, proto se při návrhu diskového pole budu snažit minimalizovat přepis jednotlivých sektorů. Práci budu realizovat v několika krocích, které ve výsledku povedou k dosažení cíle. Jednotlivé kroky: Studium technologií Analýza a návrh Návrh rozhraní, jak by měla fungovat Implementace rozhraní Testování a měření rozhraní 1.1 Studium technologií USB flash disky se připojují ke sběrnici USB. Pro realizaci komunikace s USB flash disky budu potřebovat poznat USB. Potřebné informace k následné realizaci jsou v podkapitole 2.1 Sběrnici USB. Dnes je známo několik diskových polí. Každé je postaveno na trochu jiném principu. Abych se mohl správně rozhodnout, které diskové pole implementovat, je třeba je nejdříve nastudovat. Popisu diskových polí se věnuje podkapitola 2.2. Pro zvolení vhodného ukládání dat na USB flash disky nastuduji jejich strukturu paměti. Informace o USB flash discích jsou v podkapitole 2.3. 3

1. Rozbor postupu práce 1.2 Analýza a návrh Po získání informací o potřebných technologiích bude třeba analyzovat možnosti a navrhnout řešení. Diskové pole má pracovat s USB flash disky, bude třeba je tedy třeba analyzovat. Také bude třeba rozhodnout, jak připojit více USB flash disků k jednomu počítači, kde není tolik portů k připojení USB zařízení. Oběma těmito záležitostmi se zabývá podkapitola 3.2. Ze zjištěných informací o diskových polích bude třeba rozhodnout, které diskové pole bude vhodné pro realizaci. Analýza a návrh diskového pole budou v podkapitole 3.3. 1.3 Návrh rozhraní, jak by mělo fungovat Rozhraní bude třeba rozdělit do několika logických celků, které budou propojeny do výsledné rozhraní. Před samotnou realizací je vhodné navrhnout tyto struktury a promyslet kritická místa návrhu. Tomuto se věnuje kapitola Struktura vytvářeného rozhraní (4), která se dále dělí na jednotlivé celky. Jeden z celků by měl obstarávat komunikaci s USB flash disky. Další celek by měl implementovat RAID. 1.4 Implementace rozhraní Celky navržené v kapitole Struktura vytvářeného rozhraní bude třeba realizovat ve vybraném programovacím jazyce. Popis mé implementace rozhraní je v kapitole 5. 1.5 Testování a měření rozhraní Pro ověření funkčnosti diskového pole navrhnu a provedu testy. Také změřím výkonnost diskového pole, jak rychlé bude vůči jednotlivým zařízením. Tomuto se věnuje kapitola 6. 4

Kapitola 2 Popis technologií a definice pojmů 2.1 Sběrnice USB V této kapitole o USB jsem čerpal ze zdrojů: [1], [2], [3]. Sběrnice USB umožňuje datové přenosy mezi hostitelským počítačem a více periferními zařízeními. Jedná se o jednotný centralizovaný hardwarový a softwarový systém, který obsahuje více zařízení a více procesů aplikačního softwaru. Řadič hostitele s podporou víceúrovňového softwaru spojuje softwarové procesy se všemi rozhraními. 2.1.1 Architektura sběrnice Architektura sběrnice USB umožňuje čtyři základní typy toku dat mezi hostitelem a periferními zařízeními: Izochronní přenosy přenosy dat v reálném čase, které probíhají přes část šířky pásma sběrnice a je garantováno jejich doručení během daného časového intervalu. Není zaručeno dodání dat v nezměněné podobě. Poškozená data se znovu nepřenáší a neplatné pakety jsou ignorovány. Rozhraní USB umožňuje navázat synchronní spojení mezi zařízeními a aplikačními programy s použitím izochronních přenosů. Přerušení přenosy spontánních zpráv, které je nutné provést s minimálním zpožděním, jaké zařízení dovoluje. Hromadné přenosy dat probíhají bez jakýchkoli požadavků na termín doručení a rychlost. Hromadné přenosy mohou zabírat celou šířku pásma, která zbývá po ostatních typech přenosů. Mají nejnižší prioritu a 5

2. Popis technologií a definice pojmů při vysokém zatížení sběrnice je lze pozastavit. Doručení je garantováno. V případě chyby se data přenášejí znovu. Řídící přenosy slouží ke konfiguraci zařízení při jejich prvním připojení ke sběrnici a k jejich následnému řízení. Protokol poskytuje garantované doručení dat a potvrzení, že řídící příkaz úspěšně provedlo. Hardwarová část USB obsahuje: Periferní zařízení USB, označované jako funkce USB, které plní užitečné funkce. Hostitelský řadič, který spojuje sběrnici s centrem počítače připojeným do kořenového rozbočovače. Ten poskytuje připojovací body zařízením USB. Rozbočovače USB, které nabízejí další připojovací body. Kabely USB, které připojují zařízení k rozbočovačům. Softwarová část USB obsahuje: Klientský software: ovladače zařízení USB, které poskytuje aplikační programům přístup k zařízení Ovladač USB, který odpovídá za všechna zařízení USB, jejich soupis, konfiguraci, zpřístupnění služeb, distribuci šířky pásma sběrnice, rozvod napájecího napětí atd. Ovladač hostitelského řadiče, který převádí vstupně-výstupní požadavky na datové struktury používané hostitelským řadičem za účelem provádění fyzických transakcí, přístupu k registrům hostitelského řadiče a ke komunikační oblasti systémové paměti. Fyzické zařízení USB musí být vybaveno rozhraním USB, které poskytuje plnou podporu protokolu USB, provádění standardních operací (konfigurace a reset) a informace s popisem zařízení. Sběrnice USB se vyznačuje fyzickou topologií v podobě vícevrstvé hvězdy. Tato topologie má jeden vrchol z kterého vedou spojení do dalších zařízení. Pokud je zařízením rozbočovač, tak v tomto bodu vzniká další hvězda, pro kterou se rozbočovač chová jako vrchol. Na vrcholu sběrnice USB se nachází hostitelský řadič připojený ke kořenovému rozbočovači. Rozbočovač je zařízení, které poskytuje další připojovací body a může také napájet zařízení, jež jsou k němu připojena. K libovolnému portu rozbočovače lze přímo připojit periferní zřízení nebo mezilehlý rozbočovač. Sběrnice umožňuje až pět úrovní řetězení rozbočovačů (kořenový rozbočovač se nepočítá). K jedné sběrnici lze 6

2.1. Sběrnice USB připojit až 127 zařízení. USB rozbočovač, anglicky označený jako USB hub, je zařízení, které nabízí další přípojné body. 2.1.2 Šířka pásma sběrnice Šířka pásma je dána verzí USB. Vyšší verze podporují i rychlosti nižších verzí. Verze 1.0 1.1 2.0 3.0 3.1 Název rychlosti Nízká Plná Vysoká Super Super+ Šířka pásma 1.5 Mb/s 12 Mb/s 480 Mb/s 5 Gb/s 10 Gb/s Tabulka 2.1: Tabulka šířky pásma dle verzí USB Specifikace USB umožňuje připojit k jedné sběrnici zařízení s odlišnými přenosovými rychlostmi. V případě verzí 1.0, 1.1 a 2.0 je třeba, aby pro každý režim rychlosti byly přijaty odpovídající omezení na maximální délku datového pole. Verze 3.0 a 3.1 mají dvojitou sběrnici. Vedení signálu je hardwarově odděleno pro verze 1.0, 1.1 a 2.0 od verzí 3.0 a 3.1. Tím se nesnižuje výkon celé sběrnice, když se připojí zařízení s nižší rychlostí. Enhanced SuperSpeed Host High- Speed USB 2.0 Host Full- Speed Low- Speed USB Host USB Connector(s) Enhanced SuperSpeed Bus Enhanced SuperSpeed Hub USB 2.0 Hub USB 2.0 Bus Composite cable USB Hub Device Enhanced SuperSpeed Function USB 2.0 Function USB Peripheral Device Obrázek 2.1: USB 3.1: Architektura dvojité sběrnice [3] 7

2. Popis technologií a definice pojmů 2.1.3 Zdroj napájení Sběrnice poskytuje zařízením napájení, které má nominální hodnotu 5 V. Zařízení mohou samozřejmě disponovat vlastními zdroji napájení. Napájení sběrnice se přiřazuje v jednotkách 100 ma. Zařízení může odebírat maximálně pět jednotek. Port, který dodává pět jednotek výkonu, se označuje jako port s vysokým výkonem. Port s nízkým výkonem poskytuje pouze jednu jednotku výkonu. Z hlediska napájení lze zařízení napájená ze sběrnice třídit následujícím způsobem: Kořenové rozbočovače odebírají výkon ze stejného zdroje jako hostitelský řadič. Pokud se používá externí zdroj, musejí být rozbočovače vybaveny portem s vysokým výkonem. Rozbočovače napájené ze sběrnice mohou obsahovat pouze porty s nízkým výkonem (navíc nejvýše čtyři tyto porty, protože jednu jednotku výkonu odebírá řadič rozbočovače). Rozbočovače s vlastním napájením mohou odebírat pouze jednu jednotku výkonu. Tento typ rozbočovače poskytuje portům po proudu výkon z jiného zdroje. Funkce s nízkým výkonem napájené ze sběrnice mohou čerpat nejvýše jednu jednotku výkonu. Funkce s vysokým výkonem napájené ze sběrnice mohou čerpat až pět jednotek výkonu. Funkce s vlastním napájením smějí odebírat nejvýše jednu jednotku výkonu, i když ztratí vlastní zdroj napájení. Režim napájení zařízení nebo sběrnice a maximální proud ze sběrnice jsou popsány v popisovači konfigurace zařízení. 2.1.4 Popisovače zařízení Sběrnice USB přijala hierarchii popisovačů, které informují o všech vlastnostech zařízení. Jsou to: 8 Popisovač zařízení (Device descriptor) popisuje zařízení jako celek. Jsou zde uloženy informace o verzi USB, třídě, podtřídě, protokolu, výrobci, modelu a počtu možných konfigurací. Také informace o velikosti popisovače a maximální velikosti paketu. Popisovač konfigurace (Configuration descriptor) popisuje počet rozhraní, atributy (typ zdroje napájení a schopnost generovat vzdálené probuzení) a výkon čerpaný ze sběrnice v každé konfiguraci pro aktuální rychlost.

2.1. Sběrnice USB Popisovač rozhraní (Interface descriptor) popisuje počet aplikačních koncových bodů, třídu a protokol rozhraní pro každé rozhraní, které je ve specifikované konfiguraci dostupné. Popisovače koncových bodů (Endpoint descriptor) definují počet a směr koncových bodů, atributy (typy přenosů) a maximální délku datového pole. Koncové body s adresou menší než 128 jsou výstupní (na tyto koncové body posíláme data). Koncové body s adresou větší nebo rovné 128 jsou vstupní (z těchto koncových bodů čteme data). 2.1.5 Identifikace a klasifikace zařízení Když systém USB detekuje připojení zařízení, načte jeho popisovače, aby určil, které softwarové komponenty se mají načíst a jaké prvky je nutné o dostupnosti zařízení informovat. Popisovač zařízení má dvoubajtová pole, která zařízení identifikují: idvendor: toto pole přiřazuje USB-IF idproduct a bcddevice: určuje výrobce Kromě toho může mít zařízení alfanumerické řetězce popisovačů, které obsahují názvy výrobce a zařízení a jeho sériové číslo. Na řetězcové popisovače směřují ukazatele v polích imanufacturer, iproduct a iserialnumber. Hodnota iserialnumber by měla být originální pro každé zařízení, daného výrobce a produktu. Aby bylo možné určit účel, funkce a protokoly podporované zařízením a jeho jednotlivá rozhraní, obsahuje popisovač zařízení kódy třídy, podtřídy a protokolu. Tyto identifikátory přímo souvisí s rozhraními. Pokud zařízení prezentuje běžný kód, musí splňovat standardní požadavky kladené na rozhraní s uvedeným protokolem pro danou třídu a podtřídu. Kód třídy, podtřídy a protokolu nejsou obsaženy pouze v popisovačích rozhraní, ale také v popisovačích zařízení. Nulový kód třídy zařízení znamená, že se zařízení skládá z několika nezávislých rozhraní, z nichž každému lze přiřadit vlastní kód třídy, podtřídy a protokolu. 2.1.6 Zařízení hromadného ukládání dat Třída 8 jsou zařízení hromadného ukládání dat. Pro tuto třídu je specifický požadavek pro získání maximálního počtu logických jednotek zařízení (číslují se od nuly). Když je maximální počet logických jednotek např. pět, tak to znamená, že zařízení obsahuje šest logických jednotek od nuly do pětky. 9

2. Popis technologií a definice pojmů V této třídě je možné pro komunikaci využít několik protokolů. Protokol stanovuje metodu přenosu příkazů, informací o stavu a dat. Přenosový protokol Bulk-only se používá v zařízeních s libovolnou rychlostí a je doporučen pro všechny nově vyvíjené přístroje. Tento protokol poskytuje vzájemnou synchronizaci hostitele a zařízení pomocí nesynchronizovaných proudů nezávislých kanálů Bulk-IN a Bulk-OUT přes dvojci odpovídajících koncových bodů. Podtřída určuje obsah bloků příkazů. USB flash disk spadají do podtřídy 6, tj. transparentní přenos příkazů sběrnice SCSI. SCSI je zkratka vycházející z anglického pojmu Small Computer System Interface. Tato sběrnice slouží k připojení různých malých zařízení k počítači [1]. Pro odesílání příkazů se používají obálky. Hodnoty jsou ukládány ve formě little endian. Little endian je metoda ukládání dat, kde nejnižší významný bajt více bajtové hodnoty je uložen na nejnižší adrese paměti. Hostitel odešle paket CBW (Command Block Wrapper) s pevnou délkou (31 bajtů). Jeho struktura je na obrázku 2.2. dcbwsignature identifikuje datový paket jako CBW. Má vždy hodnotu 43425355h (hexadecimálně). dcbwtag je příznak, který označuje identifikuje každý příkaz. Používá se ke spojení s CSW (viz. dále) odpovědí. dcbwdatatransferlength je číslo, které říká, kolik bajtů bude přeneseno v rámci provedení příkazu. bmcbwflags jehož nejvyšší bit určuje, jakým směrem budou přenášena data v rámci provádění příkazu. Nula znamená, že data budou přenášena z hostitele do zařízení. Jednička znamená, že data budou přenášena ze zařízení do hostitele. bcbwlun je číslo logického zařízení, kterému je příkaz určen. bcbwcblength je velikost pole CBWCB v bajtech. Velikost může být od 0 do 16 bajtů. CBWCB Obsahuje příkaz, který má zařízení vykonat. Hodnoty, které jsou od indexu bcbwcblength, jsou ignorovány. Zařízení zpracuje příkaz a podle směru přenosu a velikosti dat(pokud je velikost dat nula, nic se nepřenáší) se provede přenos požadovaného bloku dat. Zařízení odpovídá na každý blok příkazů stavovým blokem CSW (Command Status Wrapper) v analogické obálce, což je 13bajtový paket se strukturou na obrázku 2.3. 10 dcswsignature identifikuje datový paket jako CSW. Má vždy hodnotu 53425355h (hexadecimálně).

2.1. Sběrnice USB dcswtag je příznak, který tuto odpověď sváže s konkrétním blokem příkazů CBW. dcswdataresidue udává rozdíl mezi požadovaným (a přeneseným) objemem dat a množstvím, jež zařízení skutečně zpracovalo. bcswstatus je stavový bajt provedení příkazu. Nula znamená úspěšné provedení příkazu, jedna neúspěch a hodnota dva znamená chybu fáze (zrušení sekvence příkazů a dat). Na každý odeslaný paket příkazu musí hostitel přijmout odpověď: stavový blok se stejným příznakem. Obrázek 2.2: Struktura Command Block Wrapperu [4] Obrázek 2.3: Struktura Command Status Wrapperu [4] 11

2. Popis technologií a definice pojmů 2.2 Diskové pole V této kapitole o diskových polích jsem čerpal ze zdrojů [5] a [6]. RAID je zkratkou pro Redundant Array Of Inexpensive Disks některé zdroje uvádí Redundant Array Of Independent Disks. Je to množina disků, které jsou seskupeny do jednoho logického celku, pro zvýšení spolehlivosti, rychlosti čtení a zápisu, či kapacity. 2.2.1 Pojmy použité v této podkapitole XOR je v matematice exkluzivní disjunkce. Funkce na základě dvou bitů vrací hodnotu nula, pokud jsou bity stejné, nebo hodnotu jedna, pokud jsou vstupní bity různé. Pokud se porovnávají dva bajty, tak se postupně porovnávají jednotlivé bity a výsledek se ve stejném pořadí ukládá do výsledného bajtu. Paritní bajt je spojen se skupinou bajtů, ze kterých je spočítán. Pokud bude jeden z bajtů z této skupiny chybět, tak ho lze dopočítat z ostatních bajtů skupiny a paritního bajtu. K výpočtu se používá operace XOR. Paritní blok má stejnou funkci jako paritní bajt, ale zde se nepracuje s jedním bajtem, ale s celým blokem bajtů. 2.2.2 Hardwarová a softwarová realizace diskového pole RAID lze implementovat hardwarově nebo softwarově. Každá z těchto implementací má své výhody. Hardwarové diskové pole vypadá jako krabice, do které se vkládají disky. Pro operační systém se jeví jako jeden disk. Administrace a monitorování se dějí na poli. Jelikož je potřeba vyrobit specifický hardware, znamená to, že tato implementace stojí peníze. Softwarové diskové pole má výhodu v tom, že nepotřebuje specifický hardware, stačí mít dostatečné množství přípojných bodů a software, který bude disky spojovat. Každá realizace má své výhody a nevýhody, proto má každá své využití. Zajímavé porovnání jsem nalezl na webu http://www.cyberciti.biz/tips/ raid-hardware-vs-raid-software.html. 12

2.2. Diskové pole 2.2.3 RAID 0 RAID 0 zvyšuje výslednou kapacitu pole a to na součet kapacit všech disků. Jelikož je veškerá kapacita využita k ukládání dat, nezbývá žádný prostor k ukládání redundancí. V případě poškození některého disku, jsou data ztracena. Dle způsobu realizace je možné některá data zachránit. RAID 0 je možné realizovat dvěma možnostmi. 2.2.3.1 Zřetězení Tato realizace ukládá data na první disk, dokud je na něm volné místo. Až je první disk zaplněn, data jsou ukládána na druhý disk. Takto lze zaplnit kapacitu všech disků. Výhody: Získáme velký logický celek Využívá se kapacita všech disků Nevýhody: V případě poškození disku ztráta všech dat na tomto disku (je možná záchrana dat z ostatních disků, jelikož jsou data uložena pospolu) 2.2.3.2 Prokládání Data jsou rozdělena po sektorech na všech discích. První sektor je uložen na prvním disku, druhý sektor na následujícím disku, další sektor na dalším disku. Až se zapíše sektor na poslední disk, pokračuje se od začátku. Výhody: Získáme logický celek s kapacitou všech disků Zvýšení propustnosti vyvážením zátěže malými přístupy Paralelizace velkých přístupů s cílem zkrácení doby odpovědi Nevýhody: V případě poškození jednoho disku jsou poškozena všechna data 2.2.4 RAID 1 RAID 1 se označuje jako zrcadlení. Stejná data jsou ukládána na dva, či více disků. Pokud jeden disk selže, data jsou neporušená na jiném disku. Obvykle se používají 2 disky, v případě 3 disků by byla využita pouze třetina celkové kapacity, natož více disků. V případě zapojení disků s různou kapacitou, lze 13

2. Popis technologií a definice pojmů na každém disku využít jen maximální kapacitu toho disku, který z nich má nejmenší kapacitu. Výhody: Při ztrátě disku, lze data okamžitě získat z kopie Zápis je stejně rychlý jako u jednoho disku (podle strategie zápisu: paralelní/sériová) Počet operací čtení ze sekundu je větší než u jednoho disku Nevýhody: Využijeme pouze 50% diskové kapacity (v případě 2 disků) 2.2.5 RAID 2, 3, 4 V praxi tyto RAIDy nejsou moc využívány. RAID 2 využívá prokládání po bitech a pro zabezpečení dat se využívá Hammingův kód. Pro 4 disky na ukládání dat jsou potřeba 3 další disky k redundantním informacím. To už se blíží RAIDu 1. RAID 3 využívá prokládání po bajtech a pro zabezpečení dat využívá jeden disk, na kterém je uložen paritní bajt. RAID 4 využívá prokládání po blocích a pro zabezpečení dat využívá jeden disk, na kterém se uložen paritní blok. NevýhodouRAIDu 3 a RAIDu 4 je, že při jakémkoli zápisu se také zapisuje parita na paritní disk. 2.2.6 RAID 5 Tento RAID potřebuje nejméně 3 disky.raid 5, jako RAID 4, prokládá po blocích, ale paritní blok neukládá na jeden disk. Tento paritní blok je distribuován postupně na všech discích. Počítání paritního bloku zpomaluje zápis. V případě poškození jednoho disku RAID pořád funguje, jen musí data dopočítávat z parity, což čtení dat zpomaluje. Z každého zařízení se může použít taková kapacita, která je z jednotlivých kapacit zařízení nejmenší. Nad touto kapacitou by již jeden disk nemohl ukládat data. 14 Výhody: Paritní informace odpovídají kapacitě jednoho disku, ostatní kapacitu lze využít pro data Paralelizace čtení velkých přístupů s cílem zkrácení doby odpovědi Zvýšení propustnosti vyvážením zátěže malými přístupy

2.3. USB flash disky Nevýhody: U SW RAIDu problém se zápisy Vhodný pokud počet operací zápisu nepřekročí cca 15% 2.2.7 RAID 6 Rozšíření RAID 5 o další paritní blok, tudíž tento RAID může fungovat i po selhání 2 disků. 2.2.8 RAID 1 + 0 Kombinace RAID 1 a RAID 0. Nejdříve se vytvoří dvě RAID 1 pole, a poté se nad nimi vytvoří prokládaný RAID 0. Využije se zrychlení zápisu, jelikož jsou data rozkládána na 2 disky (RAID 1 ). Může selhat až 1 disk v každém poli RAID 1. 2.3 USB flash disky V této kapitole o diskových polích jsem čerpal ze zdrojů: [7], [8], [9], [10], [11]. USB flash disky nabízejí zvyšující se kombinaci vysokého množství dat k uchování, rychlých datových přenosů a velké flexibility. To vše se vejde na dlaň ruky. Dřívější přenosná zařízení jako floppy nebo CD / DVD disky nenabízí takovéto možnosti. USB flash disky nabízí jednoduchou metodu pro rychlé stažení a přenesení digitálních souborů z a do počítače nebo zařízení. Využívají se na počítačích a zařízeních, které obsahují Universal Serial Bus (USB). 2.3.1 Typ paměti USB flash disky obsahují flash paměť, která je nevolatilní. Nevolatilní paměti obsahují data, i když nejsou napájeny. Jsou dvě hlavní technologie flash pamětí: NOR a NAND. Každá z těchto technologií má výhody v různých druzích aplikací. Porovnání je v následující tabulce 2.2: NOR flash NAND flash Vysoká rychlost přístupu Ano Ano Čtení dat po stránkách Ne Ano Čtení dat po bajtech Ano Ne Typické využití Síťové paměťové zařízení Průmyslová paměť Tabulka 2.2: Tabulka porovnání NOR a NAND technologií [7] 15

2. Popis technologií a definice pojmů NAND technologie byla objevena až po NOR technologii a jmenuje se podle specifické technologie ukládání dat (Not AND). NAND flash úložná zařízení obsahují pole tranzistorů s plovoucími hradly. Náboje mohou být zachyceny v plovoucích hradlech ke změně proudu, při kterém se tranzistor zapne. Toto způsobuje, že tranzistory jsou použity jako bity nevolatilní paměti. Flash paměť je rozdělena do nezávislých bloků, kde každý blok je nejmenší smazatelná oblast. Vymazání bloku je časově náročná operace, která může trvat přibližně 1,5-3 ms. Každý blok se skládá z množiny adresovatelných stránek. Každý blok obsahuje stejný počet stránek, většinou je to 64 stránek v bloku. Stránka je obvykle velká 2 KB. Všechny stránky jsou rozšířeny o přidané oddělené bajty (většinou je to 64 bajtů). Tyto přidané bajty jsou důležité pro ukládání metadat. Například pro wear-leveling (viz. 2.3.2). Před zápisem je třeba danou oblast vymazat. Takže pokud se ukládá jedna stránka, je třeba načíst data z daného bloku, tento blok vymazat, a poté zapsat načtená data i s nově ukládanou stránkou. Každý blok je řádově sto tisíc krát vymazatelný. 2.3.2 Wear leveling Wear leveling zajišťuje menší a rovnoměrné opotřebení buněk tak, že se snaží rozkládat počet zápisů mezi jednotlivé buňky. Pokud by se data zapisovala neustále do jedné stránky, došlo by po několika desítkách tisících přepisů k opotřebení bloku a jeho poškození. Wear leveling distribuuje data rovnoměrně do všech paměťových bloků USB flash disku. 2.3.2.1 Princip fungování Pro porozumění, jak wear leveling pracuje, je nejdříve potřeba se podívat, jak jsou na USB flash disku data ukládána a adresována. Toto se týká LBA (logická adresa bloku) a PBA (fyzická adresa bloku). LBA je zkratka pro logickou adresu bloku z anglického pojmu Logical Block Address. Tuto adresu používá operační systém pro přístup k jednotlivým stránkám flashdisku. Tato adresa je přeložena řadičem flashdisku na PBA, kde jsou uložena data. Převod je zachycen na obrázku 2.4. PBA je zkratka pro fyzickou adresu bloku z pojmu anglického Physical Block Address. Tato adresa je fixní fyzická adresa stránek flashdisku, kde jsou uložena data. Tento pojem souvisí s logickou adresou bloku, které mezi sebou propojuje řadič zařízení. Převod je zachycen na obrázku 2.4. 16