Bankovní institut vysoká škola Praha zahraničná vysoká škola Banská Bystrica

Katedra kvantitatívnych metód a informatiky

Využitie platformy Raspberry Pi v podniku Use of Raspberry Pi platform in the company

Diplomová práca

Autor: Bc. Daniel Bartkovič Študijný odbor Informačné technológie a management

Vedúci práce: Ing. Miroslav Gecovič, CSc.

Banská Bystrica máj 2015

Vyhlásenie:

Vyhlasujem, že som diplomovú prácu vypracoval samostatne a s použitím uvedenej literatúry.

Svojím podpisom potvrdzujem, že odovzdaná elektronická verzia práce je identická s jej tlačenou verziou a som oboznámený so skutočnosťou, že sa práca bude archivovať v knižnici BIVŠ a ďalej bude sprístupnená tretím osobám prostredníctvom internej databázy elektronických vysokoškolských prác.

Vo Zvolene dňa ...... Bc. Daniel Bartkovič

Poďakovanie

Rád by som v prvom rade poďakoval vedúcemu mojej diplomovej práce Ing. Miroslavovi Gecovičovi, CSc., za jeho čas, cenné rady, pripomienky a názory pri tvorbe mojej diplomovej práce. Ďalej by som sa chcel poďakovať firme Skiller s.r.o. a jej konateľovi Petrovi Kandlovi za umožnenie prístupu do podniku, ústretovosť a pomoc pri tvorbe práce a ZNALEX, spol. s r.o. a jej konateľovi Ing. Danielovi Bartkovičovi za ochotu a pomoc pri testovaní a prevádzke služieb, ktoré sú súčasťou diplomovej práce.

Osobitné poďakovanie patrí mojim najbližším za ich podporu a pochopenie.

Anotácia práce

Bc. BARTKOVIČ, Daniel: Využitie platformy Raspberry Pi v podniku. [Diplomová práca]. Bankovní institut vysoká škola Praha, zahraničná vysoká škola Banská Bystrica. Katedra kvantitatívnych metód a informatiky. Vedúci práce: Ing. Miroslav Gecovič, CSc. Rok obhajoby: 2015. Počet strán: 88.

Diplomová práca sa zaoberá problematikou využitia platformy Raspberry Pi v podniku. Prvá kapitola je zameraná na vysvetlenie základných pojmov v predmetnej oblasti. Druhá kapitola sa zaoberá štúdiou existujúcich komerčných riešení entry-level serverových riešení, návrhom vlastného riešenia a ich vzájomným porovnaním. Tretia kapitola prináša návrh a realizáciu serverového riešenia postaveného na platforme Raspberry Pi. Ako aj vytvorenie vlastnej linuxovej distribúcie pripravenej na priame nasadenie na platformu Raspberry Pi a priame nasadenie riešenia v konkrétnom podniku.

Prínosom práce je vytvorenie konkrétneho softvérového ako aj hardvérového riešenia pripraveného na nasadenie v podniku.

Kľúčové slová: platforma Raspberry Pi, server, NAS

Annotation

Bc. BARTKOVIČ, Daniel: Use of Raspberry Pi platform in the company. [Thesis]. Bankovní institut vysoká škola Praha, zahraničná vysoká škola Banská Bystrica. Department of Quantitative methods and computer science. Supervisor: Ing. Miroslav Gecovič, CSc. Year of defense: 2015. Number of pages: 88.

The thesis focuses on the use of Raspberry Pi platform in business. The first chapter is devoted to the explanation of basic concepts in this area. The second chapter deals with the study of existing commercial solutions for entry-level server, design of own solution and their mutual comparison. The third chapter presents the design and implementation of server solution built on the Raspberry Pi platform, creation of own distribution ready to deploy on platform raspberry Pi and direct application of solution in a particular company.

The thesis offers new approach through a specific software and hardware solution available for deployment in the company.

Key words: Raspberry Pi platform, cloud, NAS

Obsah

Obsah ...... 6

Úvod ...... 9

1 Vymedzenie pojmov v predmetnej oblasti ...... 10

1.1 Informačný systém ...... 10

1.2 Operačný systém ...... 11

1.3 Linux ...... 11

1.3.1 Open-source ...... 14

1.3.2 Linuxové distribúcie ...... 15

1.3.3 Linux repozitáre ...... 16

1.4 Počítačová platforma ...... 17

1.5 Raspberry Pi ...... 18

1.5.1 Využitie platformy Raspberry Pi ...... 20

1.5.2 Hardvérové vybavenie ...... 21

1.5.3 GPIO ...... 23

1.5.4 Banana Pi ...... 25

1.5.5 Raspberry Pi 2 ...... 26

1.5.6 ARM verzus ...... 27

1.5.7 Windows verzus Linux ...... 28

1.5.8 Raspbian ...... 29

1.6 Server ...... 30

1.6.1 Domáci server ...... 33

1.6.2 Súborový server ...... 33

1.6.3 Webový server ...... 34

1.6.4 Mail server ...... 35

1.6.5 Print server ...... 35

6 1.6.6 ...... 36

1.6.7 P2P ...... 37

1.7 Cloud ...... 38

2 Štúdia existujúcich komerčných entry-level serverových riešení, návrh vlastného riešenia a ich vzájomné porovnanie ...... 41

2.1 Existujúce riešenia ...... 41

2.1.1 NAS ...... 41

2.1.2 Serverové riešenia...... 45

2.2 Návrhová časť ...... 48

2.2.1 Výber distribúcie Linuxu ...... 48

2.2.2 Výber diskového riešenia ...... 50

2.2.3 File server ...... 52

2.2.4 Multimediálne zdieľanie ...... 54

2.2.5 Web server ...... 55

2.2.6 Doména ...... 55

2.2.7 Cloud ...... 56

2.2.8 Monitorovanie prevádzky ...... 58

2.3 Možnosti iného využitia ...... 59

2.4 Porovnanie existujúcich a vlastného riešenia ...... 59

3 Návrh a realizácia serverového riešenia postaveného na platforme Raspberry Pi ...... 62

3.1 Prevádzkové vlastnosti Raspberry Pi ...... 62

3.1.1 Teploty ...... 62

3.1.2 Spotreba ...... 64

3.2 Úprava distribúcie Linuxu ...... 65

3.3 Konfigurácia Samba servera ...... 69

3.4 Konfigurácia RPi Monitor ...... 72

3.5 Konfigurácia web servera ...... 75

7 3.6 Konfigurácia cloudu ...... 76

3.7 Konfigurácia Transmission ...... 79

3.8 Konfigurácia DLNA ...... 80

3.9 Vytvorenie distribúcie Linuxu ...... 81

3.10 Nastavenie sieťových zariadení ...... 82

Záver ...... 84

Zoznam použitej literatúry ...... 85

Zoznam obrázkov ...... 87

Zoznam tabuliek ...... 88

Zoznam príloh ...... 88

8 Úvod

Primárnym cieľom diplomovej práce je návrh a realizácia serverového riešenia a sieťového úložiska postaveného na platforme Raspberry Pi a jeho nasadenie v konkrétnom podniku. Sekundárnym cieľom je priblíženie problematiky serverových riešení a sieťových úložísk čitateľovi tejto diplomovej práce.

Pre účely tejto diplomovej práce bolo použité zariadenie Raspberry Pi 2, preto kedykoľvek budeme hovoriť o konkrétnom zariadení máme na mysli práve tento model.

Prvá kapitola sa venuje vysvetleniu základných pojmov súvisiacich s informačnými a operačnými systémami, Linuxom, počítačovou platformou, Raspberry Pi platformou, severmi a cloudom.

Druhá kapitola je analytickou časťou práce a je venovaná skúmaniu požadovaných funkcionalít, prehľadu možností ich implementácií a výberu konkrétnych softvérových riešení. V úvode kapitola predstavuje alternatívne riešenia slúžiace na komparáciu a v závere predstavuje iné možnosti využitia, ktorým v diplomovej práci nie je venovaná osobitná pozornosť. V závere kapitoly sa nachádza porovnanie riešenia vytvoreného v diplomovej práci a riešení prezentovaných v úvode analytickej časti práce.

Tretia kapitola je praktickou časťou práce a prezentuje prevádzkové vlastnosti platformy Raspberry Pi, menovite teplotu, obstarávacie a prevádzkové náklady. Ďalej sa venuje konfigurácii jednotlivých softvérových balíčkov zvolených v analytickej časti.

9 1 Vymedzenie pojmov v predmetnej oblasti

Táto časť diplomovej práce je časťou teoretickou a bude sa venovať vymedzeniu pojmov, s ktorými sa stretneme pri skúmaní problematiky predmetnej oblasti. Pojmy sú rozdelené do siedmich podkapitol, v ktorých bude podrobne venovaná pozornosť každej z vybraných oblastí. Kapitoly, do ktorých sú pojmy rozdelené, sú: informačný systém, operačný systém, Linux, počítačová platforma, Raspberry Pi, server a cloud.

1.1 Informačný systém

„Informačný systém predstavuje konzistentnú usporiadanú množinu komponentov spolupracujúcich na tvorbe, zhromažďovaní, spracovaní, prenose a rozširovaní informácií. Prvky informačného systému tvoria ľudia, resp. používatelia informácií a informatické zdroje.“ (Pour, a iní, 2009 s. 25)

„Významnou úlohou informačného systému je nielen informácie ukladať a spracúvať, ale taktiež ponúkať vo chvíli, keď môžu byť informácie užitočné. Moderné informačné systémy preto nečakajú pasívne, kým si niektorí z používateľov informáciu vyžiadajú, ale analyzujú vznikajúce udalosti a reagujú na ne automaticky zasielaním informácií alebo priamo ovplyvňujú prebiehajúce podnikové procesy.“ (Voříšek, 2006 s. 20)

Informačný systém je systém zložený z ľudí a počítačov, ktorý zbiera, udržiava, spracováva a interpretuje informácie. Termín je tiež niekedy používaný v užšom zmysle slova, kedy sa týka len softvéru používaného na správu počítačových databáz, alebo počítačových systémov.

Informačný systém je kombinácia hardvéru, softvéru, infraštruktúry a vyškoleného organizovaného personálu s cieľom uľahčiť plánovanie, riadenie, koordináciu a rozhodovanie v organizácii.

Pod pojmom informačný systém si tiež môžeme predstaviť napríklad kartotéku, knihu došlej pošty, telefónny zoznam, alebo účtovníctvo. Systém v tomto prípade nie je automatizovaný a existuje len v papierovej forme. Takýto informačný systém by vyhovoval aj Pourovej definícii avšak pre naše účely budeme vnímať informačný systém ako systém, ktorého súčasťou je výpočtová technika.

10

1.2 Operačný systém

Operačný systém je softvér, ktorý riadi počítačové hardvérové a softvérové zdroje a poskytuje bežné služby pre počítačové programy. Operačný systém je základným komponentom softvérového vybavenia počítača. Aplikačný softvér zvyčajne vyžaduje operačný softvér pre svoje fungovanie.

„Operačný systém je sada základných programových inštrukcií obsluhujúca počítačový hardvér. Vytvára vrstvu programového kódu, na ktorom je postavená väčšina ostatných funkcií počitača.“ (Palmer, a iní, 2011 s. 2)

„Pre hardvérové funkcie, ako sú vstup, výstup a prideľovanie pamäte, operačný systém slúži ako sprostredkovateľ medzi programami a počítačovým hardvérom.“ (Stallings, 2014 s. 6)

1.3 Linux

„Linux sa skladá z centrálnej sady programov, ktoré bežia na nízkej úrovni počítača, známe sú, ako kernel (jadro) a stoviek (ak nie tisícov) doplnkových programov poskytovaných ostatnými ľuďmi a rôznymi spoločnosťami.“ (Thomas, a iní, 2009 s. 5)

Obrázok č. 1 Tučniak , maskot Linuxu

Zdroj: http://www.home.unix-ag.org/simon/penguin/

11

Linux je UNIX-u podobný, viacúlohový a viacpoužívateľský operačný systém, vychádzajúci z filozofie operačného systému UNIX. Model, pod ktorým je vytváraný, je voľným (z monetárneho pohľadu) a open-source softvérovým modelom. Najpodstatnejšou súčasťou Linuxu je Linux Kernel. Jadro operačného systému, ktoré bolo prvýkrát oficiálne vydané Linusom Torvaldsom, 5. októbra 1991 vo verzii 0.02. Vývoj UNIX-ových operačných systémov môžeme vidieť na obrázku číslo 2. Linux má aj vlastného maskota, ktorého môžeme vidieť na obrázku číslo 1.

Obrázok č. 2 Vývoj UNIX-ových operačných systémov

1980 1990 2000 2010 1970 2015 FreeBSD 10.1 NetBSD 6.1.5 OpenBSD 5.6

BSD (Berkley Software Distribution) 4.4 Bill Joy SunOS 4.1.4 NextStep 3.3 Mac OS X 10.10.1 Xenix OS GNU/Hurd 0.5 Microsoft/SCO GNU Richard Stallman GNU/Linux 3.18.3 Minix 3.3.0 Research UNIX 10.5 Andrew S. Tanenbaum Bell Labs: Ken Thompson, Commercial Unix UnixWare 7.1.4 Dennis Ritchie, a kolektív AT&T Univel/SCO Solaris 11.2 Oracle HP-UX 11i v3

AIX 7.1 TL3 IBM IRIX 6.5.30 SGI Zdroj: vlastné spracovanie

Linuxové jadro, tak isto ako jadrá iných operačných systémov, slúži na vzájomnú komunikáciu hardvérovej vrstvy (napr.: monitor, myš, klávesnica, procesor, operačná pamäť alebo sieťová karta) a vrstvy aplikačného softvéru (napr.: grafické rozhranie operačného systému, kancelársky balík, CAD (Computer-aided design) programy ale aj routovacích daemonov, webové a mailové servery a mnohé iné). Mapu linuxového jadra môžeme vidieť na obrázku číslo 3.

12

Obrázok č. 3 Mapa linuxového jadra

Zdroj: http://www.makelinux.net/kernel_map/

Linux je publikovaný pod licenciou GPL, General Public Licence (licencia pre širokú verejnosť) vytvorenou Richardom Stallmanom, ktorej je venovaná pozornosť v kapitole 1.3.2. open-source.

Operačný systém Linux bol pôvodne vyvíjaný pre 32-bitovú x86 architektúru, procesorov 386 a vyššie verzie. V dnešnej dobe však už funguje na architektúrach Compaq Alpha AXP, Sun SPARC, UltraSPARC, Motorola 68000, PowerPC, PowerPC64, ARM, Hitachi SuperH, Cell, IBM S/390, MIPS, HP PA-RISC, IA-64, DEC VAX, AMD x86-64, AXIS CRIS, Xtensa, Tilera TILE, AVR32, Renesas M32R a možno aj na niektorých iných. „Linux je jednoducho portovateľný na väčšinu 32- a 64-bitových architektúr, pokiaľ disponujú PMMU (Paged Memory Management Unit) a GCC (GNU compiler).“ (Torvalds, 2015)

Linux používa len o niečo viac ako 1% osobných počítačov, v 2014 to bolo 1,25% až 1,74%, (Aplicattions.com, 2015). Hlavné využitie si našiel na serveroch,

13 mainframeových počítačoch a superpočítačoch, v prípade serverov je jeho podiel odhadovaný na 62% a pri mainframeových počítačoch a superpočítačoch sa blíži k 99% podielu. Linux taktiež využívajú zapuzdrené systémy, kde linuxové jadro zvyčajne býva zabudované priamo do firmvéru týchto zariadení a je do vysokej miery na tento účel upravované. Medzi takéto zariadenia patria mobilné telefóny, tablety, sieťové routery, ovládacie zariadenia používané na automatizáciu, televízie a herné konzoly. Medzi jedno z najznámejších využití Linuxu patrí operačný systém Android, ktorý je postavený na jeho jadre a je najviac používaným operačným systémom v mobilných a tabletových zariadeniach.

1.3.1 Open-source

„Pod pojmom open-source vo všeobecnosti rozumieme akúkoľvek informáciu, ktorá je voľne dostupná širokej verejnosti pod jedinou podmienkou a to, že možnosť jej ďalšieho voľného šírenia bude naďalej zachovaná. Pod informáciou si môžeme predstaviť napríklad zdrojový kód softvéru, projektovú dokumentáciu a iné. „ (Steele, a iní, 2012 s. 20)

Je dôležité uviesť, že pokiaľ hovoríme o voľnom softvéri v ponímaní open- source, máme na mysli softvér dodržiavajúci zásady GNU GPL, ktoré sú vysvetlené nižšie. Nemáme na mysli voľný ,v monetárnom ponímaní, teda zadarmo, aj keď väčšina voľného softvéru je distribuovaná práve zadarmo.

Projekt GNU je projektom hromadnej spolupráce pre podporu voľného softvéru. Hlavným cieľom projektu je sprostredkovať používateľom voľnosť a kontrolu pri používaní počítačov a iných výpočtových prostriedkov, zariadení. Tento cieľ sa snaží dosiahnuť spoluprácou pri vytváraní softvéru, ktorý dodržiava práva používateľa na voľné používanie, rozmnožovanie, skúmanie a úpravu softvéru.

GNU General Public Licence, tiež označovaná ako GNU GPL alebo len GPL, je najpoužívanejšou licenciou používanou na licencovanie voľného softvéru koncovým používateľom (jednotlivcom, organizáciám, spoločnostiam), ktorá im zabezpečuje voľnosť používať, skúmať, kopírovať a upravovať tento softvér. Licencia GPL postupne prechádzala zmenami v rokoch 1989 bola prvýkrát vydaná vo verzii GPLv1, 1991 vo verzii GPLv2 až sa dostala do momentálne najaktuálnejšej verzie GPLv3 v roku 2007. Prechod medzi verziami však neznamená nemožnosť používania predošlej verzie,

14 napríklad Linus Torvalds sa pomerne nahlas ohradil voči verzii GPLv3, ktorú odmietol a linuxové jadro naďalej licencuje pod verziou GPLv2.

1.3.2 Linuxové distribúcie

Linux je zvyčajne zdieľaný vo forme zabalenej distribúcie (), toto platí pre využitie v prostredí stolných počítačov, ale aj serverov. Distribúcia Linuxu je operačný systém vytvorený ako kolekcia softvérových balíčkov založená na linuxovom jadre a zvyčajne je jej súčasťou aj systém na správu balíčkov (package management system). Používatelia spravidla získajú operačný systém stiahnutím jednej z množstva linuxových distribúcií, ktoré sú dostupné pre široké množstvo systémov, od zapuzdrených zariadení (napríklad OpenWRT, DD-WRT, Tomato pre routery), cez osobné počítače, až po superpočítače (napríklad Rocks Cluster Distribution).

Distribúcie Linuxu sú primárne založené na voľnom softvéri s otvoreným zdrojovým kódom (aspoň sčasti), súčasťou ktorého je linuxové jadro a veľké množstvo softvéru slúžiaceho na rôzne účely. Zvyčajne obsahujú grafické používateľské rozhranie, ktoré je zabezpečené úpravou a pribalením voľnej a open-source implementácie jedného alebo viacerých systémov okien (windowing system), najpoužívanejším je . Nie je nezvyčajné, že niektoré distribúcie obsahujú časti proprietárneho kódu, ktorý je vopred skompilovaný ako binárny kód, tzv. binary blobs, pričom používateľ má vo väčšine prípadov možnosť takýto softvér nenainštalovať. Najčastejším prípadom takéhoto kódu sú ovládače pre hardvér a kodeky pre prehrávanie multimediálneho obsahu. Široká dostupnosť softvéru viedla ku vzniku veľkého množstva distribúcií slúžiacich na rôzne účely.

Medzi najvyhľadávanejšie distribúcie určené pre stolné počítače, laptopy a netbooky radíme podľa stránky www..com nasledujúce:

1.

2.

3.

4. openSUSE

5. Fedora

15 6.

7. CentOS

8.

9. elementary OS

10. Android-x86

Ako vidíme vyššie, prvé tri miesta obsadzuje najrozšírenejšia verzia Linuxu - Debian a jej deriváty. Na obrázku číslo 4 môžeme vidieť pracovné prostredie Cinnamon najvyhľadávanejšej distribúcie Linux Mint.

Obrázok č. 4 Pracovné prostredie distribúcie Linux Mint

Zdroj: vlastné spracovanie

1.3.3 Linux repozitáre

Softvérové repozitáre sú miestom, odkiaľ môžeme získať softvérové balíčky a následne ich inštalovať do linuxovej distribúcie.

Mnohí tvorcovia softvéru a iné organizácie udržiavajú internetové servery práve za týmto účelom, buď zadarmo, alebo za pravidelné poplatky. Repozitáre môžu slúžiť výlučne jednému programu, ako napríklad CPAN pre programovací jazyk Perl, alebo obhospodarujú všetky balíčky konkrétneho operačného systému, resp. linuxovej distribúcie. Prevádzkovatelia týchto repozitárov zvyčajne poskytujú systémy na správu balíčkov, teda nástroje na vyhľadávanie, inštaláciu a inú manipuláciu so softvérovými

16 balíčkami z repozitára. Napríklad mnohé linuxové distribúcie využívajú Advanced Packaging Tool (APT, pokročilý balíkovací nástroj), ktorý nájdeme v Debiane a v distribúciách od neho odvodených, alebo používaný v Red Hat a odvodených distribúciách. Existujú však aj viaceré nezávislé systémy na správu balíkov, ako napríklad pacman využívaný v Arch Linuxe alebo equo v Sabayon Linux.

1.4 Počítačová platforma

Počítač je vo všeobecnosti programovateľné zariadenie, ktoré musí spĺňať dve nasledujúce podmienky: reaguje na špecifikovanú sadu inštrukcií vopred známym a presne definovaným spôsobom a je schopný vykonávať vopred nahratú sadu inštrukcií (program).

Obvykle sa počítač skladá z aspoň jedného výpočtového prvku, zvyčajne ním je centrálna výpočtová jednotka (central processing unit – CPU, procesor), a určitého druhu pamäte. Výpočtový prvok spracuje aritmetické a logické operácie nad dátami, ktoré sú načítané z pamäte a následne do nej zapísané.

Obrázok č. 5 Von Neumannova architektúra počítača

Počítač

Centrálna výpočtová jednotka

Kontrolná jednotka Vstupné Výstupné zariadenie zariadenie

Aritmeticko-logická jednotka

Pamäťová jednotka

Zdroj: vlastné spracovanie

17

Von Neumannova architektúra, alebo von Neumannov model a Princetonská architektúra je počítačová architektúra popísaná v roku 1945 matematikom a fyzikom Johnom von Neumannom. Ide o popis architektúry elektronického digitálneho počítača pozostávajúceho z aritmeticko-logickej jednotky, procesorových registrov, kontrolnej jednotky (obsahujúcej registre s inštrukciami a programové počítadlo), pamäť na ukladanie dát a inštrukcií, externého úložiska a vstupných a výstupných zariadení.

Všetky počítače používajú príkazy na veľmi nízkej úrovni, ktoré vykonávajú najzákladnejšie funkcie, akými sú čítanie dát, zapisovanie dát, preskakovanie na adresy v pamäti a výpočet základných aritmetických operácií. Kompletný zoznam príkazov, ktoré môžu byť vykonávané procesorom sa nazýva inštrukčná sada procesora. Inštrukčné sady sú relatívne malé, väčšina programovacích jazykov vyššieho rádu, ako C++, Ada, Fortran, alebo Visual Basic, musia byť prekompilované do týchto nízko úrovňových príkazov na to, aby program mohol fungovať.

Complete instruction set computing (CISC) je dizajn procesora, pri ktorom jedna inštrukcia môže spúšťať niekoľko nízkoúrovňových operácií v jedinej inštrukcii. Ako príklad takýchto architektúr môžeme uviesť platformy x86, x86-64bit, IA-64a Unisys.

Reduced instruction set computing (RISC) je spôsobom návrhu procesora, ktorý pracuje s faktom, že zjednodušená inštrukčná sada poskytuje vyšší výkon v kombinácii s mikroprocesorovou architektúrou schopnou vykonávať tieto príkazy s použitím menšieho počtu výpočtových cyklov na inštrukciu. Medzí takéto platformy radíme i860, SPARC, PA-RISC, POWER-PC, MIPS alebo ARM.

Dôvodom, prečo sme sa tejto problematike venovali je, aby sme pochopili rozdiel medzi procesorom použitým v bežnom stolovom počítači, ktorý používa x86- 64bit architektúru, a v Raspberry Pi, ktorý používa ARM architektúru.

1.5 Raspberry Pi

„Raspberry Pi je počítač veľkosti kreditnej karty postavený na jednom plošnom spoji, ktorý je možné pripojiť k monitoru alebo televíznemu prijímaču, pričom využíva štandardnú klávesnicu a myš. Je to prístroj, ktorý umožňuje ľuďom všetkých vekových kategórií, aby preskúmali výpočtové technológie a naučili sa programovať v jazykoch

18 ako Python a Scratch. Je schopný robiť všetko, čo by ste očakávali od stolového počítača, od prehliadania internetu, prehrávania videa vo vysokom rozlíšení, vytvárania tabuliek, spracovania textu až po hranie hier. “ (Foundation) Bol vyvinutý v Anglicku spoločnosťou Raspberry Pi Foundation, so zámerom podporiť výučbu základov informatiky v školách.

Raspberry Pi je vyrábaný v štyroch rôznych fabrikách prostredníctvom licencovaných výrobných dohôd s Newark, element14, RS Components a Egoman. Tieto spoločnosti taktiež predávajú Raspberry Pi cez svoje online obchody. Egoman produkuje verziu pre distribúciu len v Číne a na Taiwane, ktorú možno odlíšiť vďaka červenému plošnému spoju a chýbajúcemu označeniu FCC/CE. Ostatné časti hardvéru sú však zhodné pri všetkých výrobcoch.

Obrázok č. 6 Fotografia miniatúrneho počítača Raspberry Pi

Zdroj: vlastné spracovanie

V roku 2006 začali vznikať prvé koncepty platformy, ktoré boli v tom čase založené na mikrokontroleri ATmega644 od spoločnosti Atmel. Schémy a rozloženie PCB sú dodnes verejne prístupné. Od začiatku bolo cieľom vytvoriť nízkonákladový počítač, ktorý by mohol byť predávaný koncovým používateľom za cenu 25 € a 35 €, ktorým by inšpiroval deti k štúdiu informatiky a programovania. Za týmto účelom bol Evenom Uptonom zostavený tím pozostávajúci z učiteľov, akademikov a počítačových nadšencov. Po mnohých iteráciách sa 29. februára 2012 začali prijímať prvé objednávky, ktoré boli expedované v priebehu marca. 14. júla 2014 bol predstavený Model B+ , za tú istú cenu dostal používateľ o 2 USB porty viac a vďaka novým napájacím obvodom sa podarilo aj znížiť spotrebu energie. 10. novembra 2014 sa

19 dočkal vylepšenia aj model A. Pod označením A+, dostal kratší plošný spoj a tiež vylepšenú napájaciu kaskádu, čo tak isto ako pri modeli B+ viedlo k zníženiu spotreby elektrickej energie. Podrobnejšie sa rozdielom medzi jednotlivými verziami budeme venovať v podkapitole 1.5.2 hardvérové vybavenie.

Nadácia Raspberry Pi Foundation vydala 7. apríla 2014 Raspberry Pi výpočtový modul. Ide o ten istý hardvér, ako využíva pôvodný Raspberry Pi, ale vo formáte zhodnom s 200 pinovými SO-DIMM DRR2 pamäťovými modulmi. Netreba sa však mylne domnievať, že tento modul je kompatibilný s týmto štandardom, len využíva jeho päticu a má zhodné rozmery. Modul je cielený na návrhárov konzumnej elektroniky s cieľom jeho použitia ako jadra týchto produktov.

1.5.1 Využitie platformy Raspberry Pi

Raspberry Pi si rýchlo našiel obľubu u mnohých „domácich kutilov“, ktorí ho začali používať vo svojich domácich projektoch, a to najmä vďaka svojej priaznivej cene. Už pri jeho uvedení na trh sa predobjednávky hrnuli rýchlosťami, ktoré dodávatelia nedokázali zvládnuť. Až o trištvrte roka po uvedení bolo možné si ho kúpiť bežne v obchodne bez nutnosti predobjednávky a čakania na dodávku.

„Raspberry Pi má schopnosť komunikovať s vonkajším svetom a bol použitý v širokej škále projektov, ako sú hudobné prehrávače, rodičovské monitory, meteorologické stanice a spievajúce vtáčie búdky s infračervenými kamerami. Chceme vidieť ako deti po celom svete používajú Raspberry Pi na učenie sa programovania a pochopenie toho, ako fungujú počítače“ (Foundation)

Okrem vyššie citovaných patria medzi najčastejšie projekty, ktoré je možné nájsť na internete, projekty domácich kín, takzvané HTPC (Home Theater Personal Computer) využívajúce špeciálne upravené distribúcie Linuxu, ako XBMC a openELEC. Za pomoci prídavného USB WiFi modulu je možné vytvoriť prístupový bod (Access Point), alebo osobný počítač pripevnený zo zadnej strany monitora. Najmä vďaka otvorenosti, ako hardvérovej tak aj softvérovej (máme na mysli Linux), platformy sú možnosti využitia prakticky nekonečné. Ku tomu môžeme ešte pripočítať možnosti GPIO, ktorému je venovaná samostatná podkapitola s číslom 1.5.3.

20

V skratke predstavím jazyky Scratch a Python, ktoré slúžia na vyššie spomínané vzdelávanie detí.

„Jazyk Scratch vznikol v roku 2006 v skupine Lifelong Kindergarten laboratória Media Lab Massachusettského technické inštitútu (MIT). Tento jazyk, odvodený od jazykov Squeak a Smalltalk, je založený na kľúčových programátorských princípoch, ktoré sprístupňuje všetkým záujemcom. Namiesto písania dlhých reťazcov, ktoré je pre mladšie deti únavné a nudné, sa využíva jednoduché prostredie, v ktorom sa dajú skladať stavebné kamene potiahnutím myši. Napriek tomu však rozvíja programátorské myslenie a predkladá základné koncepcie, ktoré sa používajú vo všetkých programovacích jazykoch. “ (Upton, a iní, 2013 s. 133)

„Python je vysokoúrovňový jazyk. To znamená, že kód jazyka Python sa skladá zo zrozumiteľných anglických slov a umožňuje počítač Raspberry Pi programovať spôsobom, ktorý sa dá rýchlo naučiť a ktorému je možné ľahko porozumieť. To predstavuje zásadný rozdiel oproti nízkoúrovňovým jazykom, typu assembler (jazyk symbolických adries), ktorý je síce bližšie štýlu “uvažovania“ počítača, ale pre človeka bez dostatočných skúseností je takmer nezrozumiteľný. Vďaka svojej vysokoúrovňovej povahe a jasnej syntaxi je jazyk Python cenným nástrojom pre každého, kto sa chce naučiť programovať. Tento jazyk zároveň odporúča nadácia Raspberry Pi Foundation tým, ktorí chcú od jednoduchého jazyka Scratch postúpiť k praktickejšiemu programovaniu. “ (Upton, a iní, 2013 s. 149)

1.5.2 Hardvérové vybavenie

Platforma Raspberry Pi je založená na takzvanom SoC (System on Chip) BCM2835 od spoločnosti Broadcom, ktorý integruje ARM1176JZF-S 700 MHz procesor a grafické jadro VideoCore IV GPU (Graphics Processing Unit). Pôvodne bola platforma dodávaná s 256 megabajtami operačnej pamäte, neskôr však s príchodom modelu B a B+ bola zvýšená na 512 megabajtov. Je dôležité poznamenať, že operačná pamäť je zdieľaná medzi procesorom a grafickým jadrom, nakoľko toto nemá vlastnú, dedikovanú pamäť. Platforma používa ako zavádzacie a ukladacie médium SD (pri modeloch A a B) a MicroSD (pri modeloch A+ a B+) kartu vkladanú zo spodnej strany plošného spoja.

21

Okrem vyššie uvedených nájdeme na plošnom spoji aj DSI displej konektor, slúžiaci pre pripojenie displejov s malými rozmermi a CSI konektor slúžiaci na pripojenie kamery. Modul Raspberry Pi kamery je schopný snímať Full HD 1080p fotografie, video a môže byť kontrolovaný cez programovateľné rozhranie.

Na plošnom spoji sa tiež nachádzajú piny GPIO (General Purpose Input/Output), ktoré umožňujú ovládať pripojené elektrotechnické zariadenia a interagovať s okolitým prostredím za pomoci Pythonu, Scratchu, alebo iného programového prostredia. Tieto kolíky sú fyzickým rozhraním medzi Pi a okolitým svetom. Zjednodušene povedané ich môžeme chápať ako sériu vypínačov, pomocou ktorých môžeme napájať ostatnú elektroniku, čítať pomocou nich vstupy, odosielať nimi príkazy do zariadení alebo merať hodnoty zo senzorov. Sedemnásť týchto kolíkov sú GPIO, zvyšné slúžia ako zdroj elektriny alebo uzemnenie. Problematike rozhrania kolíkov GPIO je venovaná samostatná kapitola 1.5.3 GPIO.

Nakoľko bola platforma Raspberry Pi uvedená vo viacerých verziách, alebo modeloch, v tabuľke nižšie nájdeme zhrnutie rozdielov medzi nimi.

Tabuľka č. 1 Popis rozdielov medzi verziami Raspberry Pi

Compute Model A Model A+ Model B Model B+ Module SoC Broadcom BCM2835 CPU ARM1176JZF-S taktovaný na 700 MHz GPU Broadcom VideoCore IV taktované na 250 MHz Operačná 256 MB 512 MB pamäť USB 2.0 1 2 4 1 porty Video vstup 15-pinový MIPI kamera interface HDMI, RCA HDMI, RCA Video HDMI, RCA cez 3.5 audio HDMI, RCA cez 3.5 audio výstup jack jack Audio 3,5 mm audio jack výstup Sieťové 10/100 Mbit Ethernet pripojene General Purpose 8x 17x 8x 17x 46x Input Output Spotreba 300 mA 200 mA 700 mA 600 mA 300 mA elektrickej (1,5 W) (1 W) (3,5 W) (3 W) (1,5W) energie

22 85,60 mm 65,00 mm 85,60 mm 67,60 mm Rozmery X X X X 56,50 mm 56,5 mm 56,50 mm 30,00 mm 30 € pri Odporúčan 25 € 20 € 35 € objednávke á cena 100 kusov Zdroj: vlastné spracovanie

Okrem iného nájdeme na plošnom spoji v prípade modelov A a B dve a v prípade modelov A+ a B+ štyri predvŕtané otvory, ktoré slúžia na bezpečné uchytenie plošného spoja buď to v ochrannom kryte, puzdre, a pod.

Obrázok č. 7 Hardvérové rozhranie platformy Raspberry Pi a možnosti jeho využitia

Zdroj: http://tkalci.cz/srazy/14/malina/img/raspberry-pi-accessories.png

1.5.3 GPIO

„Rozhranie GPIO kolíkov počítača Raspberry Pi je umiestnené v ľavom hornom rohu plošného spoja, kde ho nájdeme označené, ako P1. Toto rozhranie má v prípade modelov A a B 26 kolíkov, ktoré sú od výroby umiestnené v dvoch radoch po 13 kolíkov. V prípade modelov A+, B+ je kolíkov 40 v dvoch radoch po 20,

23 so vzdialenosťou stredou 2,54 mm.“ (Bell, 2013 s. 102) Vzdialenosť stredov je mimoriadne dôležitá, pretože rozstupy 2,54 mm (alebo 0,1 palca v anglosaských jednotkách) sa v elektronike objavujú veľmi často. Ide o štandardnú vzdialenosť v prototypovacích platformách, ktoré zahrňujú dosky stripboard a skúšobné modely obvodov.

Každý kolík rozhrania GPIO má vlastný účel a niekoľko kolíkov pritom spoločne vytvára určité obvody. Rozloženie rozhrania GPIO je znázornené na obrázku číslo 8.

Obrázok č. 8 Rozhranie GPIO Raspberry Pi

Zdroj: vlastné spracovanie

Označenia použité v obrázku vyššie sú nasledujúce, 3,5 V a 5 V označujú napätie vo voltoch a jeho číselnú hodnotu, GND (Ground) označujú uzemnenie a GPIO s číslom označujú kolíky používané pre komunikáciu buď Raspberry Pi s perifériami, alebo periférií s Raspberry Pi. Kolíky označené ako DNC (Do Not Connect) sa prvýkrát objavili až pri verzii B+, ktorá získala rozšírenie z pôvodných 26 na 40 kolíkov. Tieto sa v zásade pri projektoch nepoužívajú, používajú sa na interné funkcie jednotky SoC BCM2835, pripojením k nim môže dôjsť k nezvratnému poškodeniu Raspberry Pi.

24 1.5.4 Banana Pi

Banana Pi je podobne ako Raspberry Pi počítač o veľkosti kreditnej karty zaberajúci jediný plošný spoj. Tejto platforme sa venujeme z dôvodu, že ide o najväčšiu konkurenciu nami využívanej platformy. Pokiaľ by nebolo témou diplomovej práce využitie platformy Raspberry Pi, tak by sme pravdepodobne použili túto platformu.

Počítač je založený na SoC Allwinner A20, obsahujúcom dvojjadrový procesor s jadrami ARM Cortex-A7 (pracujúcimi na frekvencii 1 GHz) a grafickú časť Mali400MP2. Ďalším hlavným rozdielom oproti Rasperry Pi je, že využíva 1 GB operačnej pamäte DDR3 oproti 512 MB, resp. 256 MB používajúcim technológiu LPDDR2. Fotografiu Banana Pi môžeme vidieť na obrázku číslo 9.

Obrázok č. 9 Fotografia platformy Banana Pi

Zdroj: http://www.bananapi.org/p/product.html

Fyzické rozloženie Banana Pi je veľmi podobné Raspberry Pi model B, pričom hlavným rozdielom je, že Banana Pi obsahuje SATA 2 konektor, ktorý na Raspberry Pi nie je vôbec prítomný. Obsahuje štyri predvŕtané diery na upevnenie plošného spoju a namiesto 100 Mbps RJ45 Ethernet konektoru používa 1 Gbps konektor. Ďalšie rozdielu sú len vo fyzickom rozložení prvkov na plošnom spoji.

Čo sa týka softvéru, Banana Pi rovnako ako Raspberry Pi používa softvér s otvoreným zdrojovým kódom a je na ňom možné spúšťať zhodné distribúcie Linuxu ako na Raspberry Pi. Taktiež softvérové balíčky sú kompatibilné. Jediným rozdielom čo sa týka softvéru je, že Banana Pi využíva procesor s inštrukčnou sadou ARMv7, oproti

25 ARMv6, čo mu zabezpečuje ešte širšiu softvérovú kompatibilitu s linuxovými distribúciami a softvérovými balíčkami.

1.5.5 Raspberry Pi 2

Počas písania diplomovej práce bola spoločnosťou Raspberry Pi Foundation uvedená nová verzia platformy Raspberry Pi s označením Raspberry Pi 2, to je dôvodom, prečo mu je venovaná samostatná podkapitola. Pôvodne bolo aj naše riešenie postavené na platforme Raspberry Pi model B avšak po uvedení Raspberry Pi 2 bolo premigrované na túto platformu.

Pri zachovaní ceny (35 € za model B+) poskytuje Raspberry Pi 2 štvorjadrový procesor BCM2836, obsahujúci štyri jadrá ARM Cortex-A7, ktoré pracujú na frekvencii 900 MHz a rovnakú grafickú časť Broadcom VideoCore IV, 1 GB LPDDR2 operačnej pamäte (dvojnásobok oproti Raspberry Pi model B a B+) a plnú kompatibilitu s Raspberry Pi 1. Tieto zmeny viedli ku šesťnásobnému zvýšeniu výkonu pri výpočtoch s plávajúcou desatinou čiarkou.

Ďalším rozdielom je využitie architektúry ARMv7 v procesore, čo zabezpečuje, ako bolo aj v predošlej kapitole uvedené, lepšiu kompatibilitu so softvérom využívajúcim moderné technológie. Menovite pribudla podpora pre Snappy Ubuntu Core a 10.

V dôsledku vyššie uvedeným zmien som prehodnotil použitie Raspberry Pi model B a rozhodol som sa pre použitie Raspberry Pi 2, pričom hlavným dôvodom je práve zvýšenie výpočtového výkonu pri zachovaní ceny. Problematike výpočtového výkonu sa budem bližšie venovať v praktickej časti diplomovej práce.

Fyzické rozloženie, ako môžeme vidieť na obrázku číslo 10, je s výnimkou umiestnenia operačnej pamäte na spodnú stranu plošného spoja zhodné s modelom B+.

26 Obrázok č. 10 Fotografia Raspberry Pi 2

Zdroj: http://www.raspberrypi.org/raspberry-pi-2-on-sale/

1.5.6 ARM verzus x86

Architektúra ARM, ktorú vyvinula spoločnosť Acorn Computers už v 80. rokoch, sa v počítačoch triedy PC objavuje pomerne zriedkavo. Vyniká však v mobilných zariadeniach, akými sú napríklad telefóny, ktoré používame na dennej báze. Vzhľadom ku kombinácii jednoduchej architektúry s redukovanou inštrukčnou sadou RISC a nízkej spotrebe elektrickej energie, predstavuje v mobilných zariadeniach omnoho výhodnejšiu voľbu oproti procesorom používaným v stolných počítačoch. Tieto sa oproti tomu vyznačujú vysokými nárokmi na napájanie a architektúrou s komplexnou inštrukčnou sadu CISC.

Použitie procesora BCM2835 s architektúrou ARM vysvetľuje, ako je možné, že počítač Raspberry Pi dokáže fungovať so zdrojom napájania s napätím 5 V a prúdom 1 A, ktorý poskytuje integrovaný port mikro USB (často za pomoci nabíjačky pre mobilné telefóny). Z rovnakého dôvodu tiež na zariadení nenájdeme žiadne rozptyľovače tepla, alebo aktívne chladiče. Vďaka nízkej spotrebe elektrickej energie procesor produkuje len veľmi málo odpadového tepla a to dokonca aj počas komplikovaných výpočtových operácií.

27 Zároveň to však znamená, že počítač Raspberry Pi nie je kompatibilný s tradičným softvérom pre osobné počítače. Väčšina programov pre stolné počítače a notebooky používa architektúru s inštrukčnou sadou x86, na ktorej sú založené procesory značiek AMD, Intel a VIA. Z tohto dôvodu tieto programy na počítači Raspberry Pi s procesorom typu ARM nemôžu fungovať.

Procesor BCM 2835 vychádza z variantu návrhu procesora ARM, ktorá sa označuje ako ARM11. Tento variant je zase navrhnutý podľa verzie architektúry inštrukčnej sady ARMv6. Je dobré si uvedomiť, že architektúra ARMv6 je jednoduchá a výkonná, ale konkuruje jej pokročilejšia architektúra ARMv7, ktorá je používaná v procesoroch triedy ARM Cortex. Podobne ako softvér vyvinutý pre procesory x86 nie je kompatibilný s procesormi architektúry ARM, ani softvér určený pre architektúru ARMv7 bohužiaľ nie je kompatibilný s procesorom BCM2835 architektúry ARMv6 použitom v počítači Raspberry Pi. Vývojári však obvykle môžu svoje programy konvertovať tak, aby sa tiež dali spustiť na tomto procesore. Avšak, tak ako je uvedené v kapitole 1.5.5 Raspberry Pi 2 už využíva procesor s architektúrou ARMv7.

1.5.7 Windows verzus Linux

Ďalší dôležitý rozdiel medzi počítačom Raspberry Pi a stolným počítačom, alebo laptopom, spočíva okrem veľkosti a ceny tiež v operačnom systéme. Práve toto je dôvodom, prečo práca obsahuje samostatnú podkapitolu venujúcu sa Linuxu a základom jeho fungovania.

Väčšina stolných a prenosných počítačov, ktoré sa v súčasnosti predávajú pracuje s jedným z dvoch operačných systémov: Microsoft Windows alebo Apple OS X. Obe platformy patria do kategórie softvéru s uzavretým zdrojovým kódom a vznikajú v neprístupnom prostredí s použitím proprietárnych metód.

Tieto operačné systémy sa označujú ako closed-source, na základe povahy svojho zdrojového kódu. V prípade softvéru typu closed-source zostáva jeho zdrojový kód dobre chráneným tajomstvom. Používatelia môžu získať hotový softvér, ale nemajú možnosť preskúmať, ako bol vytvorený.

28 Návrh počítača Raspberry Pi, naopak, počíta s tým, že na ňom bude fungovať operačný systém Linux. Na rozdiel od operačných systémov Windows či OS X je systém Linux systémom typu open-source. Vďaka štýlu vývoja open-source bolo možné štandardný systém Linux rýchlo prispôsobiť na spúšťanie na počítači Raspberry Pi v rámci procesu, ktorý je označený ako portovanie. V dobe písania tejto diplomovej práce bolo na platformu Raspberry Pi portovaných niekoľko distribúcií systému Linux. Patria ku nim Debian, Fedora Remix a Arch Linux. Pre Raspberry Pi bolo tiež vytvorených alebo upravených niekoľko distribúcií Linuxu, ako napr. Raspbian, Raspbian Server Edition, IPFire, OpenELEC a Raspbmc.

Jednotlivé distribúcie sa zameriavajú na odlišné používateľské požiadavky, ale všetky majú spoločné to, že ide o projekty s otvoreným zdrojovým kódom. To tiež zabezpečuje aj ich vzájomnú kompatibilitu a teda, že softvér napísaný pre systém Debian bude dokonale fungovať aj pod systémom Arch Linux a naopak.

Rovnako ako v prípade rozdielu medzi architektúrami ARM a x86 je potrebné spomenúť dôležitý fakt týkajúci sa praktickej odlišnosti operačných systémov Windows, OS X a Linux. Softvér určený pre systém Windows či OS X nebude pod systémom Linux fungovať. Pre absolútnu väčšinu bežných softvérových produktov však našťastie existuje mnoho alternatív. Väčšinu z nich je navyše možné používať zadarmo a patria do kategórie open-source rovnako ako operačným systém.

1.5.8 Raspbian

Raspbian je linuxovým operačným systémom, ktorý vznikol ako snaha preportovať linuxový operačný systém Debian na hardvérovú platformu Raspberry Pi. Debian je pôvodne vyvíjaný primárne pre x86 platformu a obsahuje vyše 35 000 knižníc. Primárnym cieľom bolo preportovať , upraviť a optimalizovať všetky tieto knižnice pre hardvér používajúci Raspberry Pi. Tento cieľ bol dosiahnutý v júny 2012.

Vývoj Raspbianu sa však nezastavil, naďalej je aktívne vyvíjaný s dôrazom na vylepšovanie stability a výkonnosti takého množstva knižníc z pôvodného Debianu, koľko je len možné.

29 Debian je voľným operačným systémom pre počítače a obsahuje základnú sadu programov a nástrojov, vďaka ktorým môže počítač fungovať spoločne s ďalšími tisíckami iných balíčkov. Debian má v rámci linuxovej komunity reputáciu veľmi kvalitného, stabilného a škálovateľného operačného systému. Má tiež rozsiahlu a priateľskú používateľskú komunitu, ktorá môže pomôcť novým používateľom s podporou pri prakticky akomkoľvek probléme. Práve tieto kvality robia Debian ideálnym operačným systémom pre Raspberry Pi, ktorý bude používaný deťmi a mnohými iným používateľmi, ktorí sa s Linuxom stretli po prvý raz.

Raspbian môže byť na SD kartu, z ktorej zavádza Raspberry Pi operačný systém, nainštalovaný dvomi rôznymi spôsobmi. Môžeme použiť inštalátor NOOBS, ktorý iba jednoducho rozbalíme z predpripraveného komprimovaného súboru a nakopírujeme na SD kartu, ďalšími krokmi náš už sprevádza grafické rozhranie. Druhým variantom je stiahnutie už hotového image súboru, ktorý zavedieme na SD kartu a Raspbian už len jednoducho spustíme.

Dôvodom, prečo sa venujeme Raspbianu je fakt, že vďaka vyššie uvedeným kvalitám bol aj nami zvolený ako základ pre projekt diplomovej práce.

1.6 Server

Server je bežiaca inštancia aplikácie (softvéru), ktorý je schopný prijímať požiadavky od klienta a odosielať adekvátne odpovede. Servery môžu bežať na akomkoľvek počítači, vrátane špeciálnych počítačov, ktoré sú tiež označované ako server. V mnohých prípadoch je počítač schopný sprostredkovať niekoľko rôznych služieb a je na ňom spúšťaných niekoľko serverov súčasne. Výhodou spúšťania serverov na dedikovaných počítačoch je bezpečnosť. Z tohto dôvodu väčšina serverov sú daemonmi a sú navrhnuté tak, aby bežali na konkrétnom počítači.

Daemon je proces bežiaci na pozadí operačného systému, ktorý nevypisuje do terminálu žiadne hlásenia, ale ich zaznamenáva do systémových záznamov.

„Servery pracujú na architektúre klient-server. Servery sú počítačové programy spúšťané za účelom, obsluhovania požiadaviek iných programov, klientov. To znamená, že server vykonáva niektoré úlohy namiesto klientov. To umožňuje klientom, aby zdieľali dáta, informácie, alebo hardvérové a softvérové prostriedky. Klienti sa zvyčajne

30 pripájajú k serveru pomocou siete, ale môžu tiež byť spúšťané na tom istom počítači. V rámci internetového protokolu (IP), sietí, server je program, ktorý funguje ako socket listener, čiže počúva na vrstve sieťovej infraštruktúry.“ (Course, 2011 s. 2-3)

Obrázok č. 11 Pohľad do vnútra U2 rackového dátového servera spoločnosti SUN

Zdroj: http://www.ilm-informatique.fr/review/fishworks_sun_com/

Hardvérové požiadavky sa líšia v závislosti od nasadenia servera. Absolútna rýchlosť procesora nie je pre server až taká rozhodujúca, ako pri stolovom počítači. Úlohou servera je poskytovať služby mnohým používateľom cez sieť, takže je dôležité zabezpečiť rýchlu sieťovú infraštruktúru a taktiež celkovú priepustnosť siete. Vzhľadom na to, že sa zvyčajne k serverom pristupuje prostredníctvom siete je možné ich prevádzkovať v takzvanom bezhlavom režime. To znamená bez výstupného monitoru a vstupných zariadení, ako napríklad klávesnice. Procesy, ktoré nie sú nevyhnutné pre funkčnosť servera sa nepoužívajú. Mnohé servery nemajú GUI (Graphical – grafické používateľské rozhranie), pretože to nie je nevyhnutné, čo má za dôsledok spotrebu prostriedkov, ktoré by mohli byť alokované inde. Podobne aj audio a USB rozhrania môžu byť vynechané.

Medzi typy serverov, s ktorými sa bežne stretávame radíme:

- aplikačný server – server určený pre prevádzkovanie určitých aplikácií

- katalógový server – centrálny bod vyhľadávania informácií v rámci distribuovanej siete

- komunikačný server – platforma pre komunikačné siete, ako VOIP (Voice Over Internet Protocol) alebo IM (Instant Messaging)

31 - výpočtový server – server určený na náročné výpočtové operácie

- databázový server – poskytuje databázové služby pre iné programy a počítače

- faxový server

- súborový server – viac v samostatnej podkapitole

- herný server – server využívaný hernými klientmi na pripojenie a hranie online hier

- domáci server – viac v samostatnej podkapitole

- mail server - viac v samostatnej podkapitole

- media server - viac v samostatnej podkapitole

- Domain Name Server (DNS) – server zabezpečujúci prevod IP adries na ľuďmi jednoduchšie zapamätateľné názvy

- tlačový server – zabezpečuje správu tlačovej fronty a vzdialenú tlač z klientov

- webový server – server, na ktorý sa pripájajú http klienti za účelom zobrazenia internetových stránok

Servery často fungujú dlhú dobu bez prerušenia a dostupnosť musí byť veľmi vysoká, takže hardvérová spoľahlivosť a životnosť sú nesmierne dôležité. Domáce servery môžu byť postavené z bežne dostupných počítačových súčiastok, podnikové servery s kritickým nasadením sú ideálne veľmi odolné voči chybám. Používajú špecializovaný hardvér s nízkou poruchovosťou za účelom maximalizovať dobu prevádzkyschopnosti. Aj krátkodobé výpadky môžu spôsobiť škody vo vyššej hodnote, ako je hodnota obstarania nového hardvéru spolu s inštaláciou. Napríklad, niekoľko minútový výpadok na burze s cennými papiermi môže spôsobiť škodu vo výške kúpy, zavedenia novšieho a spoľahlivejšieho riešenia.

Servery môžu obsahovať rýchlejšie, vysokokapacitné pevné disky, výkonnejšie počítačové ventilátory, alebo vodné chladenie (ktoré pomáha odvádzať teplo), neprerušiteľný zdroj elektrickej energie, (ktoré zabezpečia funkčnosť serverov aj v prípade výpadku napájania). Tieto komponenty ponúkajú vyšší výkon a spoľahlivosť za adekvátne vysokú cenu. Hardvérovú redundanciu zabezpečuje inštalácia viac ako jedného daného modulu, ako napríklad zdroja napájania alebo usporiadanie diskov, ktoré zabezpečí, že v prípade zlyhania jedného z diskov zostane prístup k informáciám

32 neprerušený. Pamäťové moduly s ECC (Error-correcting Code) ,zabezpečujúce detekciu a opravu chýb, sú tiež často používané, pretože non-ECC moduly zvyšujú pravdepodobnosť poškodenia dát.

1.6.1 Domáci server

Domáci server je server umiestnený v domácnosti, poskytujúci služby iným zariadeniam v rámci, alebo mimo nej, prostredníctvom domácej siete, alebo internetu. Tieto služby môžu zahŕňať zdieľanie súborov, alebo tlačiarní, služby multimediálneho centra, webové služby, ako cachovanie internetu, autentifikácia účtov alebo služby zálohy.

Vzhľadom na relatívne nízky počet počítačov na typickej domácej sieti, domáci server zvyčajne nevyžaduje veľký výpočtový výkon a môže pozostávať z vyradených častí už nepoužívaných počítačov. Tiež je možné použiť neprerušiteľný zdroj napájania pre prípad krátkodobých výpadkov elektrickej energie, ktoré by mohli spôsobiť poškodenie dát.

Domáce servery často používajú rôzne deriváty Linuxu (Ubuntu Server, Fedora Server, Clackware, CentOS) alebo BSD (FreeBSD, OpenBSD, FreeNAS) ako svoj operačný systém. V domácom prostredí je možné použiť ako operačný systém aj systém, ktorý nie je na tieto účely primárne určený. Napríklad Windows 8.1 alebo Linux Mint, tieto však spúšťajú služby, ktoré pre toto použitie nie sú potrebné alebo nevyhnutné, preto je potrebná ich ďalšia podrobnejšia konfigurácia.

1.6.2 Súborový server

V informatike rozumieme pod pojmom súborový server službu, ktorá je spúšťaná na pracovnej stanici, alebo samostatnom servere. Jej hlavnou úlohou je poskytovanie vzdialeného prístupu súborom a databázam. K týmto je možné sa pripojiť z pracovných staníc, pripojených k tej istej sieti.

Súborové servery môžu byť dedikované alebo nededikované. Dedikovaný server je navrhnutý špeciálne pre použitie výlučne ako súborový server s príslušnou pracovnou

33 stanicou slúžiacou na čítanie a zapisovanie súborov a databáz. Nededikovaným server je pracovná stanica, alebo server na ktorom sú spúšťané aj iné servery.

Súborové servery môžu byť tiež delené podľa metód, akými sa k nim pripája. K internetovým súborovým serverom sa často pripájame pomocou FTP/SFTP (File Transfer Protocol – protokol pre prenos súborov) alebo http. Ku serverom na lokálnej sieti zvyčajne pristupujeme pomocou SMB/CIFS protokolov (používaný Windowsom a unixovými operačnými systémami) alebo NFS (Network File System používaný unixovými operačnými systémami). SMB je skratkou označujúcou Samba shares, ktoré budeme používať aj my, pre účely tejto diplomovej práce.

1.6.3 Webový server

Webový server je softvér, sieťové zariadenie, alebo počítač, ktorý funguje na báze modelu klient-server a pomocou protokolu HTTP (Hyper Text Transfer Protocol), alebo HTTPS a distribuovaného hypertextového internetového informačného systému WWW (World Wide Web). Slúži na distribúciu súborov, z ktorých sa skladajú internetové stránky.

Webový server je služba, ktorá poskytuje webové stránky. Každý webový server využíva verejnú IP adresu , ktorá je pravdepodobne naviazaná na vlastnú doménu.

Medzi najpoužívanejšie webové servery radíme v nasledujúcej tabuľke uvedené:

Tabuľka č. 2 Podiel webových serverov

Názov webového Počet serverov Vývojár Percentuálny podiel servera v januári 2015

Apache Apache 348 460 753 39,74 %

IIS Microsoft 241 276 347 27,52 %

nginx NGINX, Inc. 128 083 920 14,61 %

GWS Google 20 209 649 2,30 % Zdroj: vlastné spracovanie, zdroj údajov: http://news.netcraft.com

/

34 Pre účely diplomovej práce budeme používať webový server nginx, ktorý je oproti vyššie uvedenej konkurencii najmenej náročný ako na výpočtový výkon, tak aj na operačnú pamäť.

1.6.4 Mail server

Mail server je softvér, sieťové zariadenie, alebo počítač v sieti, ktorá poskytuje poštové služby. Ukladá prichádzajúce maily pre používateľov a preposiela odchádzajúce maily cez príslušné kanály MTA (Mail Transfer Agent).

Poznáme tri druhy mailových protokolov:

- POP3 (Post Office Protokol, poštový protokol) slúži na zadržanie prichádzajúcich mailových správ až do doby, kedy si neskontrolujeme maily, kedy nám budú protokolom preposlané. POP3 je najpoužívanejším protokolom používaným pre osobné maily. Správy sú zvyčajne vymazané zo servera hneď po prebratí klientom, pokiaľ nie je nastavený inak.

- IMAP (Internet Message Access Protocol, protokol pre prístup k internetovým správam) je používaný na prácu s mailami bez nutnosti ich predošlého stiahnutia do počítača. Maily si môžeme prezerať, vymazať alebo ich organizovať a to priamo na servere, pričom ich kópie zostávajú na servere až do doby, kedy sa ich rozhodneme zmazať. IMAP sa bežne používa pre obchodné mailové účty, požíva ho napríklad aj najväčší poskytovateľ mailových služieb gmail.

- SMTP (Simple Mail Transfer Protocol – protokol pre jednoduchý prenos mailov) spracováva odosielanie mailov a je používaný v spojení s POP3 alebo IMAP pre prichádzajúce maily.

1.6.5 Print server

Tlačový server je softvérová aplikácia, sieťové zariadenie, alebo počítač, ktorý riadi požiadavky na tlač a poskytuje informácie o stave tlačovej fronty pre koncových používateľov a správcu siete. Tlačové servery sa používajú najmä vo veľkých podnikoch, zriedkavejšie v malých a domácich kanceláriách (SOHO – small office home office).

35 Vo veľkých organizáciách sa jedná o jeden vyhradený počítač, slúžiaci ako tlačový server, ktorý môže spravovať stovky tlačiarní. V malej kancelárii je tlačový server často špecializovaný modul zásuvnej karty, alebo malé sieťové zariadenie o veľkosti rozbočovača. Tento plní rovnakú funkciu, ako vyhradený tlačový server, ale nezaberá také veľké fyzické miesto.

1.6.6 Media server

Media server je zariadenie, ktorého jediným účelom je ukladanie a zdieľanie médií. Definícia mediálneho servera je pomerne nepresná a vzťahuje sa na širokú škálu zariadení, ktoré môžeme týmto názvom pomenovať. Môže to byť jednoduché NAS (Network Attached Storage, úložisko pripojené na sieť), HTPC (Home Theater Personal Computer – počítač slúžiaci ako domáce kino) s operačným systémom Windows XP Media Center Edition, MediaPortal alebo MythTV, alebo komerčný webový server, ktorý je hostiteľom pre médiá a veľké webové stránky.

V domácom prostredí mediálny server funguje, ako miesto na zhromaždenie informácií ako sú videá, audio súbory, fotografie, knihy alebo dokumenty. Čo sa týka hardvérových požiadaviek, nepotrebuje mediálny server nič špeciálne, môže ním byť aj osobný počítač. Kľúčovým je však dostatok dátového priestoru.

Medzi najznámejšie mediálne servery patria:

GB-PVR

LinuxMCE

MediaPortal

MythTV

Orb

Plex

Kodi Entertainment Center (pred tým známy ako XBMC)

DLNA

36 Posledný menovaný mediálny server použijeme pre účely diplomovej práce vďaka jeho nenáročnosti na výpočtový výkon a veľkosť operačnej pamäte.

1.6.7 P2P

P2P (Peer to Peer) znamená v preklade do slovenčiny rovný s rovným. Ide o model decentralizovanej komunikácie, v ktorom každá strana má rovnaké možnosti a každá môže začať komunikačnú reláciu. Na rozdiel od klasického modelu klient–server, v ktorom klient odosiela požiadavku na službu a server plní túto požiadavku, model siete P2P umožňuje každému uzlu, aby fungoval ako klient aj ako server.

Pod pojmom peer, si nemusíme vždy predstavovať len osobný počítač, alebo laptop, môže ísť aj o server, mainframeový počítač, pracovnú stanicu alebo napríklad aj zariadenie internetu vecí.

BitTorrent je protokol, založený na modeli peer-to-peer, slúžiaci na zdieľanie súborov. BitTorrent je jedným z najpoužívanejších protokolov pre prenos veľkých súborov, pričom 43 % až 70 % celkovej internetovej prevádzky tvorí práve komunikácia pomocou peer-to-peer.

Obrázok č. 12 Diagram architektúry klient-server

Klient Klient

Klient Server Klient

Klient Klient Zdroj: vlastné spracovanie

37 Obrázok č 13 Diagram architektúry P2P rovný s rovným

Zdroj: vlastné spracovanie

Hoci je technológia P2P často spájaná s nelegálnou distribúciou filmov, hudby, hier a iného multimediálneho obsahu, nie je to ani zďaleka jej jediné využitie. Medzi jej ďalšie známe použitia patria kryptomeny ako Bitcoin alebo Peercoin, ktoré ju používajú na distribúciu výpočtov nutných na ťaženie týchto mien a tiež na overovanie ich výsledkov ako aj informácií o stave peňaženiek používateľov. P2P používa napríklad aj sieť Tor, ktorá slúži na anonymné prehliadanie internetu. Všetky HTTP požiadavky sú distribuované pomocou tejto siete cez stovky až tisícky ďalších používateľov, takže nie je možné vystopovať aktivitu individuálnych používateľov na webe.

1.7 Cloud

„Cloud computing je formou výpočtovej techniky, pri ktorej veľké skupiny vzdialených serverov sú zosieťované, tak, aby umožnili centralizované ukladanie dát a online prístup ku výpočtovým službám a prostriedkom. Cloud môže byť rozdelený na nasledujúce typy: verejný, súkromný a hybridný.“ (Mell, et al., 2011) Grafické znázornenie typov cloudu môžeme vidieť na obrázku číslo 14.

38 Obrázok č. 14 Typy cloudu

Zdroj: vlastné spracovanie

Verejným cloudom nazývame typ cloudu, ktorý je poskytovaný pomocou siete a je verejne prístupný. Ako príklady môžeme uviesť jedny z komerčne najrozšírenejších služieb: Dropbox, OneDrive a Google Drive. Služby verejného cloudu môžu byť poskytované bez poplatku, alebo spoplatnené rôznymi monetarizačnými modelmi. Medzi tieto modely patria napríklad platenie za množstvo (z pravidla gigabajty) uložených dát, objem sieťovej komunikácie, strojový čas a iné.

Súkromný cloud je formou cloudu, v ktorej slúži celá vybudovaná infraštruktúra iba pre účely jednej organizácie. Môže byť vybudovaná a spravovaná vnútropodnikovo, alebo outsorceovaná pomocou externej firmu a poskytovaná pomocou jej infraštruktúry.

Hybridný cloud je kombináciou dvoch a viacerých (súkromných alebo verejných) cloudov, ktoré kooperujú avšak zostávajú oddelenými entitami.

Cloud computing v základe poskytuje konzumentovi IT prostriedkov nasledujúce služby:

Hardvérovú infraštruktúru Operačný systém so základnou infraštruktúrou (HTTP Server, databázy a pod) Software (e-mail, groupware, kancelárske funkcie a pod) Business procesy, sociálne siete a služby a radu ďalších

39 Vyššie uvedené služby môžu byť členené na tzv. servisné modely:

Softvér ako služba (SaaS) - Používateľ využíva aplikačnú funkcionalitu ako službu bez orientácie na jej technické prevedenie Platforma ako služba (PaaS) - Zahŕňa predpripravený operačný systém so základným softvérom, ktorý je s operačným systémom pripravený na použitie, napr. Net Framework, J2EE aplikačné servery, HTTP Server, Databázový Server a pod. Infraštruktúra ako služba (IaaS) - Zahŕňa prevažne HW prostriedky pripravené na použitie vrátane základného softvéru, napr.: operačný systém s nastavenou IP adresou a sieťovou konfiguráciou, diskovým priestorom a pod. (IBM Slovensko)

Medzi hlavné výhody cloudu patria:

Cena, pretože nie je potrebné obstarávať vlastné servery a infraštruktúru (s výnimkou súkromného cloudu s vlastnými servermi a infraštruktúrou), ale tieto si v podstate len prenajímame na určité obdobie, zvyčajne na rok. Preto nemusíme ani riešiť otázku, čo so serverom a infraštruktúrou po roku prevádzky. V podnikovom prostredí trvá schválenie požiadavky dlho a ani jej schválenie nemusí znamenať jej naplnenie. V prostredí cloud computingu sa bežné požiadavky spracovávajú ihneď, z čoho vyplýva jeho flexibilita. Nakoľko kupujeme službu, znamená to, že nepotrebujeme žiaden obslužný personál ani vynakladať na tento účel žiadne iné podnikové prostriedky.

Jedným z príkladov využívania cloudu v prostredí Slovenskej republiky je projekt zavedenia Informačného systému Finančnej správy, časť Správa daní (ISFS- SD). Projekt realizuje spoločnosť SAP, ktorá je známa rovnomenným riešením, ktoré je postavený práve na báze cloud computingu. Všetky operácie prebiehajú centralizovane na serveroch Finančnej správy, pričom úradníci k nim pristupujú pomocou internetového prehliadača.

40

2 Štúdia existujúcich komerčných entry-level serverových riešení, návrh vlastného riešenia a ich vzájomné porovnanie

V úvode analytickej časti práce sa budeme venovať preskúmaniu existujúcich entry-level serverových riešení, konkrétne NAS (Network Attached Storage – úložisko pripojené do siete) a serverom za účelom ich následného porovnania s nami vytvoreným riešením.

V ďalšej časti analytickej časti práce sa budeme venovať výberu linuxovej distribúcie, na ktorej budeme nasledovne v praktickej časti stavať naše riešenie. Ďalej sa budeme venovať analýze a výberu softvérových riešení pre funkcionality bežne dostupných sieťových diskoch a serveroch.

2.1 Existujúce riešenia

V nasledujúcich podkapitolách 2.1.1 a 2.1.2 predstavíme konkrétne, bežne komerčne dostupné riešenia využívané v mikro, malých a stredných podnikoch za účelom ich porovnania s riešením postaveným na platforme Raspberry Pi.

2.1.1 NAS

V súčasnej dobe sú bežne dostupné a v mnohých domácnostiach používané NAS riešenia, ktoré je možné využiť aj v podnikoch, kde nie sú stabilita a záruky kritické. Ide o dátové úložisko, ktoré je pripojené do domácej, alebo firemnej siete pomocou ethernetu, alebo WiFi. NAS bežne pozostáva z vonkajšieho obalu, ktorý obsahuje jeden alebo viac slotov pre pevné disky a plošného spoja, ktorý obsahuje kontrolér a mikročip s logikou riadiacou prístupy zo siete. Ako operačný systém sa pri jednoduchších zariadeniach používajú proprietárne riešenia, pri tých pokročilejších upravené distribúcie Linuxu.

41

Pre správu vzdialeného prístupu k súborom sa spravidla využíva protokol Samba, označovaný skrátene SMB. Ide o sa o riešenie spolupracujúce s Windows shares, čiže disk je možné v sieti objaviť a pracovať s ním ako so zdieľanou zložkou na PC s Windows. Samba samozrejme nie je limitovaná len na platformu Windows, je možné sa k nej pripojiť aj z UNIX-ových systémov, čiže aj z Linuxu a OS X.

Vďaka konateľovi spoločnosti Skiller s.r.o., Petrovi Kandlovi, sa nám pre účely diplomovej práce podarilo získať vzdialený prístup k riešeniu DS1513+ od spoločnosti Synology. Z tohto dôvodu sa ďalej budeme v diplomovej práci zaoberať práve týmto riešením.

Synology DS1523+ je riešením obsahujúcim päť zásuviek, ktoré je možné obsadiť maximálne štvôrterabajtovými diskmi, čím je možné dosiahnuť maximálnu kapacitu 20 terabajtov úložného priestoru. Riešenie podporuje hot swap. Hot swap je technológia, pomocou ktorej je možné v prípade zlyhania niektorého z diskov ho vymeniť bez potreby vypnutia zariadenia. Súčasťou konfigurácie je aj dvojjadrový procesor Intel Atom pracujúci na frekvencii 2,13 GHz, 2 GB operačnej pamäte DDR3, rozšíriteľnej pomocou štandardného notebookového SODIMM modulu na 4 GB. Čo sa týka vstupno-výstupných rozhraní, nájdeme tu (ako vidíme na obrázkoch číslo 15 a 16), dva USB 3.0 porty, štyri USB 2.0 porty, dva eSATA porty a štyri gigabitové ethernet porty Štyri ethernet porty slúžia buď na agregáciu, rozšírenie prístupovej linky na štvorgigabitovú, alebo rozdelenie prístupov k rôznym častiam systému.

Obrázok č. 15 Pohľad spredu na Synology DS1513+

Zdroj: www.synology.com

42

Obrázok č. 16 Pohľad zozadu na Synology DS1513+

Zdroj: www.synology.com

Operačným systémom fungujúcim na Synology DS1513+ je Synology DiskStation Manager, skrátene DSM, ktorý je postavený na Linuxe a je používaný v takmer všetkých riešeniach od tejto spoločnosti. DSM integruje základné funkcie, ktorými sú zdieľanie súborov, centralizované zálohovanie, úložisko RAID, streamovanie multimediálneho obsahu, virtualizovanie úložného priestoru a nahrávanie video záznamu z bezpečnostných kamier. Prístup do tohto systému cez webové rozhranie môžeme vidieť na obrázku číslo 17.

Obrázok č. 17 Webové rozhranie Synology DSM

Zdroj: vlastné spracovanie

43

V závislosti od konfigurácie diskového poľa je v prípade použitia RAID 5 a RAID 6 na základne paritných informácií možné dopočítať chýbajúce údaje a tým je možné plne obnoviť diskové pole do pôvodného stavu. Ďalej je možné zapojiť disky v konfigurácii RAID 0, kedy sa rýchlosť diskov síce teoreticky zdvojnásobí, ale pri zlyhaní jedného z nich sú dáta v tomto poli nenahraditeľne stratené. V prípade konfigurácie RAID 1 sa jedná o takzvaný mirroring, kedy sa tie isté dáta zapisujú na oba disky simultánne. V prípade zlyhania jedného z nich sa nemusíme obávať straty dát, nakoľko disky sú presnou vzájomnou bitovou kópiou. Ďalšou dostupnou konfiguráciou je RAID 10, ktorý je v podstate kombináciou technológií RAID 1 a RAID 0, kedy rozkladáme zapisované dáta medzi dve diskové polia, ako pri RAID 0. Každé z týchto diskových polí pozostáva z dvoch vzájomne mirrorovaných diskov, ako pri RAID 1. Poslednými možnými konfiguráciami sú JBOD (Just Bunch of Disks – proste kopa diskov), ktorá neobsahuje paritu, ale je v nej možné kombinovať rôzne kapacity diskov, a proprietárnu technológiu SHR – Synology Hybrid RAID, ktorá je proprietárnou technológiou spoločnosti Synology. Relatívne jednoduché vysvetlenie technológie SHR nám poskytuje nižšie uvedený obrázok číslo 18.

Obrázok č. 18 Infografika vysvetľujúca základný princíp fungovania technológie SHR

Zdroj: https://www.synology.com/cs-cz/knowledgebase/tutorials/492

Cena riešenia Synology DS1513+ bola v marci 2015 na úrovni 700 až 800 € bez diskov. Na trhu sa od jeho vydania objavil aktualizovaný model s označením DS1515+, ktorý je dostupný za rovnakú cenu 700 až 900 €.

Dostupné sú aj jednoduchšie riešenia s miestom pre jeden až dva disky, poprípade zapuzdrené jedno alebo dvoj diskové riešenia. Tieto ale nie sú navrhnuté,

44 a preto ani vhodné, pre podnikové nasadenie. Preto sa im v diplomovej práci bližšie nevenujeme, len ich okrajovo spomíname.

2.1.2 Serverové riešenia

Spomedzi zástupcov serverových riešení sme si zvolili HP ProLiant microserver Gen8. Medzi hlavné dôvody voľby tohto riešenia patria jeho rozmery, ktoré môžeme vidieť na obrázkoch číslo 21 a 22. Nejde o klasický rackový server ale ide o ultra micro tower riešenie. Ďalšou výhodou je jeho pomerne agresívne nastavená cena, ktorá sa pohybuje od 360 € vyššie.

Server nám je plne prístupný pre účely diplomovej práce, pretože toto riešenie vlastním a využívam ako domáci server.

Obrázok č. 19 Predný pohľad na HP ProLiant microserver Gen8

Zdroj: http://images17.newegg.com/is/image/newegg/59-108-028-Z02?$S1280$

Pri pohľade na server z prednej strany vidíme, že sa tu nachádzajú dva USB 2.0 porty, mechanika DVD-ROM a indikátory aktivity diskov a siete. Pod prednými dvierkami sa nachádzajú miesta pre dva disky s rozhraním SATA 3.0 alebo tiež označovaným SATA 6 Gbps a dva disky s rozhraním SATA 2.0 resp. SATA 3 Gbps. V našej konfigurácii sú obsadené dve diskové pozície a obsahujú disky s označením LFF SATA; 1TB non-hot plug drives. Po bližšom preskúmaní však zistíme, že ide o klasické Seagate Barracuda 7200.12 1TB, 7200rpm, SATA-6G, 64MB, ST1000DM003 s prepáleným vlastným firmvérom od spoločnosti HP. Ako posledný

45 pod dvierkami nájdeme univerzálny 6 hranný T10 a T15 kľúč, slúžiaci na všetky skrutky, ktoré v serveri nájdeme. Tento detail je potrebné vyzdvihnúť, pretože server je určený práve pre domácnosti a malé podniky, v ktorých nemusia vždy byť dostupné kľúče špecifických rozmerov.

Obrázok č. 20 Zadný pohľad na HP ProLiant microserver Gen8

Zdroj: vlastné spracovanie

Ako je možne vidieť na obrázku číslo 20, na zadnej strane servera nájdeme ventilátor s priemerom 120 mm (v konfigurácii vyfukujúcej teplý vzduch von zo servera), slúžiaci na chladenie celého servera. Ďalej tu nájdeme 150 W vysoko účinný zdroj od spoločnosti Delta. Zo zástupcov vstupno-výstupných portov nájdeme na zadnej strane dva USB 2.0 porty, dva USB 3.0 porty, VGA port slúžiaci na pripojenie monitora a tri gigabitové ethernet porty, pričom každý ma vlastnú špecifickú funkciu. Ethernet označený číslom jedna, slúži čisto ako ethernet port. Port označený iLO (integrated Lights-Out) slúžiaci iba na vzdialenú správu servera, po pripojení sa naň pomocou webového prehliadača zo vzdialeného počítača sa nám zobrazí webová stránka. Na ktorej môžeme skontrolovať stav jednotlivých komponentov servera, ich správnu funkčnosť ako aj ich teplotu, zmeniť nastavenia BIOS, aktualizovať ho a pod. Tretí ethernetový port má dve využitia a síce ako redundantná linka, alebo agregovaná linka, vďaka tomu je možné dosiahnuť teoretickú prístupovú kapacitu 2 Gbps.

Server je ďalej vybavený procesorom Intel Pentium G2020T s dvomi jadrami pracujúcimi na frekvencii 2,5 GHz, 3 MB L3 cache pamäte a TDP (Thermal Design

46 Power) na úrovni 35 W odpadového tepla. Procesoru v základnej výbave sekundujú 4 GB operačnej pamäte 2R x8 PC3-12800E-11 DDR3 UDIMM RAM využívajúcich technológiu ECC (Error-correcting code), ktorá slúži na detekciu a opravu chýb vznikajúcich na úrovni spracovania údajov uložených v pamäti RAM. Pamäť je rozšíriteľná na 16 GB. Server tiež obsahuje HP Dynamic Smart Array B120i Controller, ide o hardvérový RAID radič podporujúci RAID úrovne 0, 1 a 10. To je vítaná pridaná hodnota avšak ide o hardvérový radič bez vlastného záložného zdroja, batérie, jeho použitie by som neodporúčal. V prípade náhleho výpadku prúdu pri zapisovaní sa šance na úspešnú obnovu RAID poľa blížia k nule, pokiaľ sa nerozhodneme celý server podporiť vlastným záložným zdrojom, ktorý je schopný v prípade výpadku prúdu odoslať signál na vypnutie serveru. Ďalšou súčasťou je rozširovací nízkoprofilový slot PCIe 2.0 s 16 linkami, ktorý slúži ako rozhranie pre prídavné karty, ako napríklad kvalitnejší hardvérový RAID. Ako posledné vo vnútri nájdeme rozhranie microSD a USB, ktoré slúžia ako zavádzacie médiá pre operačný systém. Túto funkcionalitu podporujú mnohé serverové linuxové alebo BSD distribúcie, ktoré sa z USB, alebo microSD, načítajú do operačnej pamäte a ďalej sa ku nim už nepristupuje, iba v prípade aktualizácií operačného systému. Toto slúži aj ako bezpečnostný prvok.

Server plne podporuje serverové riešenia od spoločnosti Microsoft vo verziách od Microsoft Server 2008 R2 a vyššie. Tieto ale nepoužívam pretože ide o platené licencie. Ďalej server plne podporuje UNIX riešenia ako Linux alebo BSD, z ktorých som sa rozhodol pre FreeNAS najmä kvôli tomu, že je postavený kvalitnom a do maximálnej miery stabilnom FreeBSD. Ďalej je postavený na súborovom systéme ZFS, ktorý bol pôvodne vyvíjaný spoločnosťou Sun Microsystems, dnes je však licencovaný pod open-source licenciou ako OpenZFS. Medzi jeho hlavné výhody patria: zabudovaná ochrana proti poškodeniu dát, podpora pre veľké úložné kapacity (256 zetabajtov pre súborový systém a 16 exobajtov pre súbory), efektívna kompresia dát, kontrola integrity dát a ich oprava, použitie softvérového RAIDZ, čiže nie je potrebné drahé hardvérové riešenie, a mnohé iné. FreeNAS ma tiež zabudovanú podporu pre zásuvné moduly, v ktorých ako samostatné virtuálne stroje bežia projekty ako owncloud, transmission, btsync a iné. FreeNAS obsahuje aj zabudovanú kompresiu dát, deduplikáciu dát, snapshoty a mnohé iné pokročilé funkcie používané na serveroch v podnikovom prostredí.

47

2.2 Návrhová časť

K myšlienke vytvoriť riešenie postavené na platforme Raspberry Pi nás viedli najmä jeho prevádzkové vlastnosti (nízka spotreba, nízke odpadové teplo), jeho výkonnosť vzhľadom na kompaktné rozmery, množstvo podrobne zdokumentovaných projektov dostupných na internete a v neposlednom rade jeho nízka cena.

V nasledujúcich podkapitolách postupne prejdeme kompletnou softvérovou výbavou, ktorú budeme používať pri vytvorení vlastného NAS, za pomoci Raspberry Pi a externého disku. Ako prvé si vyberieme jednu z mnohých dostupných linuxových distribúcii upravených pre platformu Raspberry Pi a diskové riešenie vhodné pre naše účely. Ďalej sa budeme zaoberať výberom konkrétnych riešení pre jednotlivé funkcionality, ktoré od moderného NAS očakávame:

prístup ku dátam cez lokálnu sieť a internet prehrávanie multimediálneho obsahu cez sieť hostovanie vlastnej webovej stránky automatická synchronizácia obsahu na diskoch v počítačoch so sieťovým diskom vzdialené monitorovanie prevádzky platformy

2.2.1 Výber distribúcie Linuxu

Na výber máme množstvo operačných systémov, nie všetky však sú pre naše účely vhodné. Hlavným problémom pri výbere operačného systému je podpora architektúry ARM, ktorá je zväčša dostupná len pri linuxových.

Toto však nie je až takým výrazným problémom, nakoľko Raspberry Pi má obrovskú podporu komunity a aj jeho výrobcu (najmä čo sa týka otvorenej dokumentácie platformy). Vďaka tomu vzniklo množstvo komunitných distribúcií Linuxu, ktoré sú šité na mieru pre platformu Raspberry Pi a priebežne aktualizované a spravované. Ako príklady takýchto distribúcií môžeme uviesť distribúcie dostupné na oficiálnej stránke raspberrypi.org:

Raspbian

48 Snappy Ubuntu Core OpenELEC Raspbmc Pidora RISC OS

Snappy Ubuntu Core bol vytvorený spoločnosťou Canonical Ltd., ktorá stojí aj za, na osobných počítačoch, najrozšírenejšou rovnomennou distribúciou Linuxu a tou je Ubuntu. Snappy Ubuntu je novým prístupom k serverovým riešeniam operačných systémov, kde jadro je tvorené klasickým jadrom z Ubuntu, avšak aplikácie na ňom spúšťané sú distribuované v takzvaných kontajneroch a sú pomocou Docky spúšťané vzájomne oddelene. Zjednodušene by sa dalo povedať, že aplikácie sú, podobne ako pri FreeNAS, spúšťané v samostatných virtuálnych strojoch, ale z technického hľadiska to nie je presné, pretože kontajnery v Snappy Ubuntu priamo pristupujú ku jeho kernelu. Týmto sa výrazne zvyšuje bezpečnosť celého systému ako aj zjednodušuje jeho aktualizácia. Snappy Ubuntu Core sa od Snappy Ubuntu odlišuje iba v jeho určení na nasedenie na platformy internetu vecí oproti serverovým platformám.

Vďaka vyššie popísaným vlastnostiam by sa pre naše účely dalo toto riešenie považovať za ideálne avšak v čase písania diplomovej práce je Snappy Ubuntu Core vo verzii alpha-02, takže toto riešenie nie je ani zďaleka stabilné, čím sa stáva pre naše účely nepoužiteľné.

Ďalšími distribúciami uvádzanými na oficiálnych stránkach raspberrypi.org sú OpenELEC a Raspbmc, ktoré sú však pre naše účely absolútne nevhodné, pretože ide o riešenia určené pre multimediálne centrá. Postavené sú na XBMC, dnes už , ktorého jediným účelom je pristupovanie ku multimediálnemu obsahu uloženému na lokálnej sieti alebo externom disku.

Posledné dve riešenia Pidora a RISC OS sú pre naše účely tiež nevhodné. V prípade Pidora ide skôr o experimentálny pokus o preportovanie Fedory na platformu Raspberry Pi. Tento pokus ale nebol komunitou dobre prijatý, a tak projekt už dlhšiu dobu nebol aktualizovaný a nikdy ani úplne dokončený. RISC OS má veľký potenciál avšak jeho iterácia pre platformu Raspberry Pi je zatiaľ len v začiatočných vývojových fázach. Veľký potenciál má najmä vďaka tomu, že je vyvíjaný tímom, ktorý stojí za samotnou architektúrou procesorov ARM.

49 Poslednou z menovaných distribúcií je Raspbian. Spomedzi všetkých menovaných projektov ide o najrozšírenejší a najstabilnejší operačný systém, ktorý má najväčšiu podporu od komunity, aj od výrobcu. Medzi jeho hlavné prednosti patrí, že je neustále aktualizovaný. Ide o voľný operačný systém, ktorý je založený na linuxovej distribúcii Debian, ktorá bola optimalizovaná pre hardvér platformy Raspberry Pi. Súčasťou Raspbianu je 35000 predkompilovaných balíčkov špeciálne upravených pre hladký chod na našej platforme. Za Raspbianom nestojí žiadna veľká komerčná spoločnosť ale ide o čisto komunitný operačný systém, ktorý je podporovaný stovkami vývojárov.

Počas písania diplomovej práce bol predstavený aj Windows 10 for Internet of Things. Ide o riešenie od spoločnosti Microsoft, ktoré je odvodené od Windows 10 avšak špeciálne upravené pre fungovanie na hardvéri internetu vecí. Podobne, ako pri Ubuntu Snappy Core, ide o potencionálne vhodné riešenie pre naše potreby. Znovu ale ide o operačný systém, ktorého vývoj je zatiaľ len vo fáze verejného testovania, čiže nemôžeme predpokladať, že ide o stabilné riešenie, čím sa pre nás stáva nevhodným.

2.2.2 Výber diskového riešenia

V prípade výberu diskového riešenia máme, vďaka obrovskému presýteniu trhu týmito riešeniami, veľký výber. V prvom rade je však potrebné položiť si otázku:,, Na čo budeme toto riešenie používať?”. Až po jej zodpovedaní budeme schopní zodpovedne vybrať vhodné riešenie.

Pokiaľ sa rozhodneme, že nám bude postačovať diskový priestor v rádoch niekoľkých gigabajtov, znamená to, že najvhodnejším riešením pre nás bude USB flashdisk. Za nízke obstarávacie náklady si môžeme obstarať relatívne rýchly typ pamäte. Najvhodnejším kandidátom pre naše potreby by v tomto prípade bol USB flashdisk DataTraveler SE9 vyrábaný spoločnosťou Kingston. Ide o časom overené riešenie, ktoré vyniká svojimi rozmermi, kovovým telom, rýchlosťou a aj priaznivou cenou. Ceny podľa kapacity môžeme vidieť v nasledujúcej tabuľke číslo 3:

50

Tabuľka č. 3 Prehľad cien Kingston DataTravel SE9 na alza.sk ku dňu 23. 3. 2015

Kingsoft DataTraveler SE9 8 GB 16 GB 32 GB 64 GB

Cena podľa kapacity 4,98 € 7,86 € 15,02 € 30,10 € Zdroj: vlastné spracovanie

V prípade ak sa rozhodneme, že budeme potrebovať diskový priestor v rádoch terabajtov máme dve možnosti: buď sa rozhodneme pre externý disk, alebo sa rozhodneme vyrobiť si vlastný. Pre účely diplomovej práce som sa rozhodol vytvoriť vlastné riešenie a to z dôvodu, že bežné externé disky nie sú dimenzované na podmienky neustálej prevádzky.

Naše dátové úložisko teda bude pozostávať z kovového obalu s USB konektorom a externým napájaním AXAGO EE35-XA3 ALINE a disku Western Digital Red 2000 GB. Séria diskov Red, vyrábaná spoločnosťou Western Digital, je špeciálne určená pre použitie v sieťových úložiskách. Od bežných diskov sa odlišuje najmä zníženými otáčkami na 5400 otáčok za minútu, oproti bežným 7200 otáčkam za minútu, čím sa znižuje jeho spotreba, hlučnosť, vyprodukované teplo a vibrácie. Disk má ďalej upravený firmvér, ktorý napomáha týmto vlastnostiam. Ďalšou výhodou týchto diskov je ich rozšírená záruka na 3 roky. Naše riešenie môžeme vidieť na obrázku číslo 21.

Obrázok č. 21 Diskové riešenie použité pre účely diplomovej práce

Zdroj: vlastné spracovanie

51

Nami zvolené diskové riešenie je dostupné vo viacerých kapacitách. Ich cenový prehľad nájdeme v tabuľke číslo 4.

Tabuľka č. 4 Prehľad cien Western Digital Red na alza.sk ku dňu 23. 3. 2015

Western Digital 1 TB 2 TB 3 TB 4 TB 5 TB 6 TB RED

Cena podľa 73,86 € 109,21 € 133,84 € 191,17 € 250,02 € 306,47 € kapacity Zdroj: vlastné spracovanie

2.2.3 File server

Nakoľko budeme Raspberry Pi používať v prvom rade ako sieťový disk, je potrebné zabezpečiť túto funkcionalitu čo najjednoduchším a pre používateľa najpriateľskejším spôsobom. Mohli by sme zložitým spôsobom nastaviť zdieľania a prístupy Linuxu a pristupovať ku súborom pomocou FTP, SFTP, FTPS alebo SCP. Pri použití na lokálnej sieti ide o absurdné riešenie, ktoré by navyše vyžadovalo od používateľa znalosť používania ďalšieho programu, menovite FTP resp. SCP klienta. Ideálne riešenie by bolo, pokiaľ by sme vedeli zabezpečiť, aby sa Raspberry Pi tvárilo na sieti ako ďalší počítač, ku ktorého obsahu by sme vedeli pristupovať priamo cez súborový prehliadač, v prípade Windows ide o Windows Explorer. Toto vieme pomerne jednoducho zabezpečiť softvérom s názvom Samba.

Samba je súbor softvérových balíčkov s otvoreným zdrojovým kódom, ktorý poskytuje bezproblémové zdieľanie súborov a tlačiarní pre SMB alebo CIFS klientov. Oproti ostatným implementáciám SMB/CIFS protokolu je Samba voľne dostupná a poskytuje vzájomnú interoperabilitu medzi Windowsovými a UNIX/Linux klientmi.

Pomocou Samby tiež je možné efektívne prideliť prístupy k určitým zložkám pomocou linuxových používateľov a skupín. Napríklad na disku vytvoríme priečinky skupinaA a skupinaB, ku zložke skupinaA pridelíme prístup len členom linuxovej skupiny pracSkupA a ku zložke skupinaB pridelíme prístup len členom linuxovej skupiny pracSkupB. Ďalej vieme jednoducho pridávať jednotlivých linuxových

52 používateľov a robiť ich členmi jednej z dvoch, alebo oboch skupín, čím obmedzíme ich prístup len ku súborom, ktoré sú pre ich prácu nevyhnutné.

Pokiaľ sa rozhodneme, že pre naše účely budeme potrebovať aj priamy vzdialený prístup k súborom, budeme už od používateľa musieť vyžadovať, aby sa naučil používať určitého klienta. V tomto prípade máme na výber medzi SCP resp. SFTP a FTP resp. FTPS.

Protokoly FTP a SCP vylúčime ako prvé. FTP nebudeme používať z dôvodu, že ide o zastaraný ale najmä nezabezpečený protokol, komunikácia pomocou FTP je voľne odchytiteľná a čitateľná, nakoľko nepoužíva žiadnu formu šifrovania. Protokol SCP je zabezpečený protokol, ale používa zastaraný druh šifrovania (komunikáciu šifruje pomocou protokolov SSH 1.x).

Protokol FTPS tiež nie je pre naše účely úplne vhodný, aj keď už ide o zabezpečený protokol. Podľa RFC 2228 je FTPS (File Transfer Protocol Secure alebo File Transfer Porotocol SSL) zabezpečenou formou protokolu FTP, ktorá používa kryptografické protokoly TLS (Transport Layer Security) a SSL (Secure Socket Layer). Dôvod prečo nie je pre naše účely vhodný je ten, že vyžaduje použitie SSL certifikátov podpísaných certifikačnou autoritou. Ďalšou nevýhodou oproti SFTP je, že nie je natívne podporovaný unixovými systémami a tak by sme ho do nášho systému museli implementovať.

Posledným z menovaných a pre naše účely najvhodnejším riešením, je použitie protokolu SFTP (SSH File Transfer Protocol alebo Secure File Transfer Protocol), ktorý je protokolu SCP veľmi podobný, ale oproti nemu využíva novšiu verziu protokolu SSH verzie 2.0 a tiež obsahuje viacero pokročilých funkcií. SFTP funguje na princípe tunelovania posielania súborov cez protokol SSH, čím zabezpečuje jeho bezpečnosť. Toto je veľkou výhodou najmä kvôli tomu, že UNIX-ové systémy sú vopred nastavené tak, že používajú SSH na vzdialenú správu a na tieto účely používajú a majú otvorený port 22. Nakoľko SFTP používa na svoje fungovanie SSH znamená to tiež, že na prístup pomocou neho budeme využívať používateľov a skupiny definované priamo v Linuxe. Tie isté prístupy používa aj Samba, a teda znamená to, že si tým uľahčíme prácu a nebudeme musieť definovať prístupy duplicitne, teda zvlášť pre každý protokol.

Z vyššie uvedených dôvodov teda budeme pre potreby diplomovej práce používať na vzdialený prístup k súborom uloženým na našom servere protokol SFTP.

53

2.2.4 Multimediálne zdieľanie

Platforma Raspberry Pi môže tiež byť využitá ako centrum alebo server na zdieľanie multimediálneho obsahu. Na zabezpečenie tejto funkcionality budeme používať štandard DLNA používajúci UPnP.

UPnP (Universal Plug and Play) je architektúra tvorená súborom sieťových štandardov, ktorá umožňuje sieťovým zariadeniam, ako počítače, tlačiarne, WiFi acces pointy, smartfóny a iným, ich vzájomné bezproblémové a automatické objavovanie na lokálnej sieti a vytvorenie spojení na prenos súborov.

DLNA (Digital Living Network Alliance) je nezisková organizácia pre spoluprácu na štandardoch, ktorá bola vytvorená spoločnosťami Sony a Intel v roku 2003. DLNA používa UPnP na správu, objavovanie a kontrolu médií. DLNA v rámci svojho štandardu podporuje tri druhy zariadení: server, prehrávač a ovládač. Server je v tomto ponímaní zariadenia, ktoré uchováva multimediálny obsah a umožňuje prístup ku nemu. Prehrávač má za úlohu objavovať zariadenia, z ktorých je možné prehrávať multimediálny obsah a následne ho prehrať a ovládač funguje ako kontrolný prvok, ktorý ovláda funkcie prehrávača. Ako príklad uvediem domácnosť, ktorá má sieťový disk (v tomto prípade DLNA server) s multimediálnym obsahom, smart televíziu (DLNA prehrávač) ktorý je možné ovládať cez smartfón (DLNA ovládač). Takmer všetky moderné sieťové disky podporujú štandard DLNA, pričom vystupujú v roli server, preto aj my budeme používať v diplomovej práci Raspberry Pi ako DLNA server.

Pre implementáciu funkcionality štandardu DLNA budeme používať softvérový balík s názvom MiniDLNA, minulý rok premenovaný na ReadyMedia avšak v nami používaných repozitároch stále označovaný pod starým názvom, preto aj my budeme používať toto označenie. Ide o softvér alebo server, ktorého cieľom je byť plne kompatibilný s DLNA resp. UPnP klientmi. Existujú aj iné alternatívy, ktoré by sme mohli použiť, ako napríklad MediaTomb, alebo , mnohé z nich ale nie sú platformou Raspberry Pi podporované. MiniDLNA má oproti konkurencii nespornú výhodu v tom, že je vyvíjaný zamestnancom spoločnosti Netgear pre ich sériu sieťových diskov. Aj keď neposkytuje niektoré pokročilé funkcie akými je napríklad webové rozhranie, jeho konfigurácia je tiež plne textová pomocou konfiguračného

54 súboru, zato má minimálny dopad na beh servera, resp. využíva minimum výpočtového výkonu a operačnej pamäte.

2.2.5 Web server

Ďalším z možných využití Raspberry Pi je server, na ktorom budeme mať uloženú našu internetovú stránku. Takéto využitie je v poriadku, pokiaľ pôjde o jednoduchú statickú web stránku a bude ku nej pristupovať malé množstvo používateľov v rádoch desiatok. Samozrejme sú dostupné balíky, ktoré umožňujú budovanie pokročilejších webových stránok pomocou technológií, ako napr. PHP avšak vzhľadom na výkon Raspberry Pi by sme už pri obsluhe pár, do desať, požiadaviek narazili na výkonnostný strop platformy. To by spôsobilo, že načítavanie stránok klientami by sa dramaticky spomalilo.

V čase písania diplomovej práce patria medzi najpoužívanejšie webové servery s otvoreným zdrojovým kódom Apache a Nginx. Ako hlavné výhody Apachu môžeme uviesť, že ide o najpoužívanejší webový server, s podielom na trhu vo výške 47% (čiže ide o overené riešenie) a jeho modularitu. Pokiaľ chceme využívať napríklad technológiu PHP, jednoducho do neho pridáme zásuvný modul, ktorý nám túto funkcionalitu do servera pridá. Oproti tomu Nginx rieši podporu ďalších technológií presmerovaním dotazov na iné softvérové riešenia, čiže ich požiadavku len predá externému procesu, ktorý ju spracuje. Spracovaný výsledok predá späť Nginxu, ktorý ho následne odošle klientovi. Toto umožňuje Nginxu, oproti Apachu, rýchlejšie vybavovanie požiadaviek a spotrebovanie menej procesorového výkonu.

Nakoľko naša platforma má obmedzený výpočtový výkon a operačnú pamäť na naše účely nám pre funkcionalitu webového servera lepšie poslúži Nginx

2.2.6 Doména

S problematikou webového servera je úzko spojená aj problematika domén. Domény vznikli z dôvodu, že počítače na komunikáciu medzi sebou používajú IP adresy, ktoré sú vo formáte X.X.X.X v rozmedzí od 0.0.0.0 do 255.255.255.255, kde ide o štyri 8 bitové čísla, vzájomne oddelené bodkami, resp. v prípade IPv6 ide o osem skupín po štyroch hexadecimálnych číslach. Takéto adresovanie je pre ľudský mozog

55 len ťažko zapamätateľné. Z tohto dôvodu vznikol protokol DNS – Domain Name Server, ktorého jedinou úlohou je preklad IP adries na ľuďmi ľahšie zapamätateľné slovné reťazce, ako napríklad ťažko zapamätateľné 173.194.122.24 na www.google.sk a opačne.

Pokiaľ by sme teda chceli ku Raspberry Pi pristupovať cez internet pomocou domény bolo by potrebné jednu zakúpiť, pre účely diplomovej práce však toto robiť nebudeme.

Ďalším dostupným riešením je zaregistrovať si doménu tretej úrovne, alebo subdoménu, pričom tieto služby poskytujú mnohý zahraničný poskytovatelia zadarmo. Pre účely diplomovej práce sme si zaregistrovali doménu danas.ignorelist.com u poskytovateľa freedns.afraid.org.

Predošlé dve riešenia sú prístupné len v prípade, že máme tiež zakúpenú statickú IP adresu od nášho poskytovateľa internetového pripojenia. V prípade, že nemáme statickú IP adresu nemá zmysel riešiť služby DNS, pretože pri každom reštartovaní routera, resp. po uplynutí určitého časového intervalu, v závislosti od nastavenia, nám poskytovateľ pridelí novú IP adresu. Tento problém je riešiteľný technológiou DDNS, teda dynamické DNS. Tieto služby poskytujú mnohý poskytovatelia freedns služieb a funguje na princípe neustáleho kontrolovania IP adresy a následného presmerovania na novú IP adresu.

Všetky predošlé riešenia sú však dostupné len v prípade, že naše zariadenie, pomocou ktorého pristupujeme do internetu, má verejnú IP adresu. Mnohý, najmä lokálny, poskytovatelia konektivity pripájajú pomocou jednej verejnej IP adresy väčšie množstvo používateľov. V tomto prípade je problematika domény prakticky neriešiteľná.

2.2.7 Cloud

Keď hovoríme cloude, hovoríme o dátovom úložisku, resp. službách, ku ktorým môžeme pristupovať cez internet. V takomto ponímaní môžeme ako cloud chápať aj jednoduché FTP. Moderné cloudové služby, akými sú Dropbox, Onedrive, Google drive a mnohé iné však ponúkajú omnoho pokročilejšie funkcie. Tými sú napr. synchronizovanie súborov v pracovných zložkách priamo na zariadeniach

56 s nainštalovanými klientmi, alebo pristupovanie ku súborom pomocou internetového prehliadača ale aj ich editovanie priamo na stránke.

Všetku vyššie menované funkcionalitu vieme relatívne jednoducho zabezpečiť pomocou troch balíkov: BTSync, ownCloud a, resp. alebo, Syncthing.

BitTorrent Sync, alebo skrátene BTSync je softvér od spoločnosti BitTorrent Inc. využívajúci technológiu P2P na synchronizovanie obsahu medzi zariadeniami. Každé zariadenie funguje ako node (uzol), ktorý sa pomocou kľúča, alebo odkazu stáva súčasťou siete, v ktorej sa súbory medzi zariadeniami synchronizujú. V každej takto vytvorenej sieti existujú dva druhy kľúčov. Prvým je druh, ktorý má povolenie iba na čítanie, čiže od ostatných dokáže súbory len čítať a odosielať, sám ich však nemôže meniť. Druhý druh kľúča má povolenie aj zapisovať zmeny. Kľúče s povolením iba na čítanie sa v zásade používajú pri zdieľaní súborov s ľuďmi, ktorým ich chceme len ukázať, alebo pre servery, kde tiež nie je dôvod, aby mohli meniť obsah súborov. Z toho vyplýva aj ich funkcia ochranného prvku. Vďaka tomu, že je BTSync vytváraný komerčnou spoločnosťou má širokú podporu klientov, menovite: Mac OS X, Windows, Linux, FreeBSD, iOS, Android, Windows Phone, Kindle Fire, Netgear, Synology, Drobo, Qnap, Snapserver, Seagate, Western Digital, Asustor. V prípade serverov, resp. headless zariadení prebieha konfigurácia a celková správa pomocou webového rozhrania. Pre nekomerčné použitie je dostupný zadarmo, v prípade komerčného použitia je potrebné zakúpiť si licenciu v cene 34,99 € na rok. V prípade, že nemáme k dispozícii vlastné zariadenie, ktoré je neustále dostupné, resp. máme na sieti málo uzlov, je možné si zakúpiť priestor na serveroch spoločnosti BitTorrent. V prípade štvrť ročného predplatného o 9,00 € za mesiac, pol ročného predplatného o 8,50 € za mesiac a v prípade ročného predplatného o 8,00 €za mesiac.

Alternatívou s otvoreným zdrojovým kódom je Syncthing. Ide v podstate o zhodné riešenie využívajúce technológiu P2P na zdieľanie obsahu, avšak nestojí za ním komerčný podnik, ide čisto o komunitný projekt. Toto so sebou prináša však aj jednu podstatnú nevýhodu a tou je podpora platforiem. Syncthing má síce podporu pre všetky najpoužívanejšie počítačové platformy, menovite: Mac OS X, Windows Linux, FreeBSD a Solaris. V podpore mobilných klientov zaostáva, pretože poskytuje len jedného, aj to neoficiálneho, klienta pre Android.

57 Posledným riešením je Owncloud. Ide o voľne dostupný softvér s otvoreným zdrojovým kódom, ktorého úlohou je poskytovať funkcionalitu privátneho cloudu. Owncloud poskytuje to, čo nám chýbalo pri predošlých dvoch riešeniach, a to prístup cez webové rozhranie ako aj možnosť online editácie a správy súborov uložených na servere.

V diplomovej práci používame všade, kde je to možné, riešenia s otvoreným zdrojovým kódom, v tomto prípade to tak nie je. Syncthing sa stále nachádza v skorých vývojových štádiách a Owncloud dodnes nebol plne portovaný na platformu Raspberry Pi, preto je jeho implementácia náročná a prevádzkové vlastnosti otázne. Z tohto dôvodu budeme používať riešenie BTSync s uzavretým zdrojovým kódom.

2.2.8 Monitorovanie prevádzky

Nakoľko budeme platformu Raspberry Pi používať ako server, znamená to, že budeme potrebovať monitorovať jeho prevádzku. Pokiaľ nám niektorá zo služieb nebude odpovedať, mali by sme byť schopní vzdialene zistiť, čím je to spôsobené.

Pre tieto účely budeme používať vzdialený prístup do shellu Linuxu, kde budeme môcť spúšťať nami zvolené príkazy. Do shellu Linuxu sa pristupuje pomocou portu 22, ktorý je v Raspbiane predvolený a otvoreným. Na prístup do shellu sa používajú už viac krát spomínane linuxové skupiny a používatelia.

Pre základné a jednoduché monitorovanie budeme používať balíček RPi- Monitor vyvíjaný Xavierom Bergerom. Ide o balíček, ktorý nám cez jednoduché webové rozhranie umožní zobraziť a monitorovať verziu bežiaceho operačného systému spoločne s dostupnosťou nových verzií balíčkov na ňom bežiacich, uptime (čas prevádzky od posledného spustenia systému), vyťaženie procesora spoločne s frekvenciou, teplotu procesora, vyťaženie operačnej pamäte, vyťaženie swapovacieho priestoru (priestor na disku, ktorý sa používa v prípade, že plne obsadíme operačnú pamäť), využitie priestoru na SD karte (z ktorej je systém spúšťaný) a objem sieťovej prevádzky. Pre naše účely si ešte do balíka doprogramujeme sledovanie využitia priestoru externého disku, tomu sa však bližšie budeme venovať v praktickej časti diplomovej práce. Ďalej máme dostupné grafy, ktoré nám v čase ukazujú uptime, vyťaženie procesora, teplotu procesora, swap, SD karty a siete. Tieto grafy sú skvelým diagnostickým prvkom v prípade že hľadáme spomalenie zariadenia, resp. nám systém

58 neodpovedá. Takto vieme presne zistiť, že napríklad spomalenie sieťového prenosu bolo spomalené prílišným vyťažením procesora a podobne. Záznamy sú pomerne rozsiahle, pretože menované môžeme sledovať až jeden rok dozadu.

2.3 Možnosti iného využitia

Pre účely diplomovej práce sme sa rozhodli platformu Raspberry Pi použiť ako sieťový disk, resp. server, existuje pre ňu však obrovské množstvo iných využití. Na rôznych webových stránkach je možné nájsť stovky, možno tisíce, návodov a projektov od rôznych ľudí.

Raspberry Pi je možné využiť napríklad ako embedded, zapuzdrené, zariadenie vo výrobných podnikoch, kde môže slúžiť, ako riadiaci prvok pre krokové motory, na ovládanie ostatnej elektroniky.

Ďalším z možných využití je jeho použitie ako meteorologickej stanice. V tomto prípade k nemu pripojíme senzory merajúce svetlo, vlhkosť ovzdušia, rýchlosť vetra alebo barometer na meranie tlaku. Výsledky nám môže odosielať pomocou ethernetu, alebo wifi na vzdialený server, alebo sám poskytovať na vlastnej webovej stránke hostovanej priamo na zariadení.

Využitie si môže nájsť aj v hoteloch, kde môže slúžiť ako kartový terminál na prístup do izieb, alebo na sprístupnenie predplatených kanálov.

Možných využití sú tisícky, nakoľko ide o cenovo prívetivú, otvorenú a veľmi dobre zdokumentovanú platformu.

2.4 Porovnanie existujúcich a vlastného riešenia

Na začiatku analytickej časti práce sme si predstavili dve rôzne riešenia, ktoré sú bežne komerčne dostupné a to za účelom ich porovnania s naším riešením. V prvom prípade ide o riešenie NAS s označením DS1523+ od spoločnosti Synology, v druhom prípade ide o mikroserver HP ProLiant microserver Gen8, na ktorom je použitý operačný systém FreeNAS vo verzii 9.3. V prípade prvého riešenia sme vykonávali dve merania, jedno s použitím jedného pripojenia a druhé s pomocou 4x agregovanej linky.

59 Prípad s agregovanou linkou je v porovnávacej tabuľke označený, ako Synology DS1523+ 4X.

Prvým spôsobom porovnania je porovnanie výkonu v závislosti od ceny, ktoré budeme merať v eurách obstarávacích nákladov na 1 MB za sekundu prenosovej rýchlosti. Tabuľku s výpočtom týchto pomerových ukazovateľov môžeme nájsť nižšie, s označením číslo 5 Ako druhé budeme porovnávať ročné prevádzkové náklady na elektrickú energiu, uvedené v tabuľke číslo 6.

Tabuľka č. 5 Porovnane pomeru cena-výkon skúmaných riešení

HP Synology Synology Raspbery microserver DS1523+ DS1523+ 4X Pi Čítanie (MB/s) 109,0 108,7 450,7 11,3 Zápis (MB/s) 96,8 97,3 396,5 11,3 Priemer rýchlostí (MB/s) 102,9 103,0 423,6 11,3 Cena riešenia (€) 345,60 700,00 700,00 37,80 Celkové obstarávacie náklady (€) 345,60 700,00 700,00 46,80 Cena za 1 MB/s (€) 3,36 6,80 1,65 4,14 Zdroj: vlastné spracovanie

Podľa tabuľky nám vyšlo, že zariadením s najlepším pomerom cena-výkon je Synology DS1523+ v konfigurácii s 4x agregáciou s pomerom 1,65 €/1 MBps. Zároveň však vyšlo ako najmenej výhodné v prípade použitia jednoduchej 1 Gbps linky, s pomerom 6,80 €/1 MBps. Ako druhý skončil HP ProLiant microserver Gen8 s pomerom cena-výkon 3,36 €/1MBps. Naše riešenie postavené na platforme Raspberry Pi skončilo ako posledné s pomerom 4,14 €/1MBps. Pri kopírovaní sa záťaž systému pohybovala na úrovni 46%, čiže jeho nízka dosiahnutá prenosová rýchlo nebola spôsobená týmto. Externý disk používa rozhranie 6 Gbps, a jeho obal používa rozhranie USB 3.0, ktoré je pripájané ku Raspberry Pi pomocou USB 2.0, ktorého maximálna teoretická rýchlosť je 20 MB/s. Úzkym hrdlom systému teda zrejme je sieťové pripojenie, ktoré používa, dnes už zastaraných, 100 Mbps, čo sa rovná 12 MB/s, čo je hodnota takmer zhodná s nami nameranou hodnotou. Najmenej výhodným riešením, čo sa týka pomeru výkonu a obstarávacích nákladov, sa teda stáva naše riešenie.

Tabuľka č. 6 Výpočet ročných nákladov na elektrickú energiu HP microserver Synology DS1523+ Raspbery Pi

Spotreba (W) 30,60 40,00 3,97 Cena elektrickej energie (€/Wh) 0,00004145 0,00004145 0,00004145 Cena za hodinu prevádzky (€) 0,00126837 0,00165800 0,00016445 Cena za rok prevádzky (€) 11,11 14,52 1,44

60 Zdroj: vlastné spracovanie

Čo sa týka ročných nákladov na elektrickú energiu, ako môžeme vidieť v tabuľke číslo 9, je naše riešenie oveľa úspornejšie, ako ostatné dve porovnávané riešenia, v prípade porovnania s Synology DS1523+ ide dokonca o 1/10 nákladov. Chyba vo výsledných nákladoch v porovnaní s výpočtom v kapitole 3.1.2 vznikla zaokrúhľovaním.

61

3 Návrh a realizácia serverového riešenia postaveného na platforme Raspberry Pi

V tretej, praktickej časti diplomovej práce, sa budeme venovať návrhu a realizácii serverového riešenia postaveného na platforme Raspberry Pi. Zistíme, aké má prevádzkové vlastnosti, menovite teplotu a náklady na prevádzku. Ďalej sa budeme venovať úprave Raspbianu, linuxovej distribúcie, ktorú sme zvolili v analytickej časti, na ktorom budeme stavať naše riešenie. V nasledujúcich kapitolách sa budeme venovať konfigurácii jednotlivých softvérových balíčkov, ktoré sme zvolili v analytickej časti na dosiahnutie požadovanej funkcionality. V závere praktickej časti sa budeme venovať porovnaniu nášho riešenia s dvomi bežne komerčne dostupnými riešeniami.

3.1 Prevádzkové vlastnosti Raspberry Pi

Nakoľko plánujeme platformu Raspberry Pi inštalovať v podniku znamená to, že nás budú zaujímať jej prevádzkové vlastnosti, ako napríklad prevádzková teplota, alebo jeho spotreba, ktorá je pre nás zaujímavá najmä z ekonomického hľadiska.

3.1.1 Teploty

Jedna z prevádzkových vlastností je teplota. Raspberry Pi svojou veľkosťou a výkonom síce nie je schopné vyžarovať veľké množstvo tepla avšak, ako je všeobecne známe pri elektronike, vyššia prevádzková teplota znamená kratšiu životnosť súčiastok a zariadenia ako takého. Rozhodol som sa teda odmerať, akým spôsobom ovplyvní inštalácia hliníkových chladičov na Raspberry Pi jeho prevádzkové teploty. Chladiče som vyrobil rozpílením chladiča čipsetu nefunkčnej základnej dosky a môžeme ich vidieť na obrázku číslo 22.

62

Obrázok č. 22 Pasívne chladenie Raspberry Pi

Zdroj: vlastné spracovanie

Meranie prebiehalo v období od 27. marca do 11 apríla, na monitorovanie teploty sme použili softvér RPi Monitor, ktorého inštaláciu si popíšeme v kapitole 3.4 diplomovej práce. Pasívne chladiče sme inštalovali 7. marca. Výsledný graf s meraniami môžeme vidieť na obrázku číslo 23.

Obrázok č. 23 Prevádzkové teploty Raspberry Pi

Zdroj: vlastné spracovanie

Ako môžeme vidieť na vyššie uvedenom grafe, teploty jadra sa pred inštaláciou pasívneho chladenia pohybovali v priemere okolo hodnoty 40 °C. Po inštalácii chladičov sa nám podarilo znížiť prevádzkovú teplotu jadra na priemernú hodnotu 35 °C, čím sa nám podarilo ju znížiť o 5 °C. Ide teda skutočne o pomerne nízke prevádzkové teploty.

63 Na trhu sa nachádzajú aj obaly obsahujúce malý hliníkový chladič a malý aktívny ventilátor, žiadne takéto riešenie však nebolo v čase písania diplomovej práce dostupné.

3.1.2 Spotreba

Na napájanie platformy Raspberry Pi použijeme originálny zdroj, možné je však použiť aj akúkoľvek nabíjačku napríklad na mobilný telefón, pokiaľ má koncovku microUSB a dokáže dodať napätie 5 voltov a prúd aspoň 1,2 ampéra, výrobcom je však odporúčaný zdroj s prúdom 2,5 ampéra. Zvláštny je ale fakt, že zdroj, ktorý používame je oficiálnym zdrojom priamo od výrobcu Raspberry Pi a je schopný dodať iba 2 ampéry. Nami nameraný odber v kľude bol 230 mA a pri plnom vyťažení 420 mA. Podľa cenníka Slovenského plynárenského priemyslu, a.s., platného od 1. 1. 2015 , stojí v sadzbe dodávky DD2 jedna megawathodina 41,450 €. V tabuľke číslo 7 nájdeme prepočet, koľko nás stojí prevádzka Raspberry Pi ročne bez záťaže a v záťaži.

Tabuľka č. 7 Výpočet ročných nákladov na prevádzku Raspberry Pi

Bez záťaže V záťaži Napätie (A) 0,230 0,420 Prúd (V) 5 5 Príkon (W) 1,15 2,10 Cena (€/Wh) 0,00004145 0,00004145 Hodina prevádzky (€) 0,00004767 0,00008705 Rok prevádzky (€) 0,41756730 0,76251420 Zdroj: vlastné spracovanie

Ako ďalej môžeme vidieť na obrázku číslo 24, pri bežnej prevádzke dosahuje Raspberry Pi priemerné 15 minútové zaťaženie 0,050.

Obrázok č. 24 Priemerné 15 minútové zaťaženie procesora Raspberry Pi

Zdroj: vlastné spracovanie

64 Tento poznatok môžeme využiť aj pri výpočte ročných nákladov na elektrickú energiu a to nasledujúcim spôsobom:

0,76 € * 0,05 + 0,41 € * 0,95 = 0,43 €

Celkové náklady na elektrickú energiu spotrebovanú Raspberry Pi sú 0,43 €. My však v našom riešení používame aj externý disk, ktorého prepočet ročných nákladov na prevádzku nájdeme v tabuľke číslo 8.

Tabuľka č. 8 Výpočet ročných nákladov na prevádzku externého disku

Bez záťaže V záťaži Napätie (A) 0,225 0,342 Prúd (V) 12 12 Príkon (W) 2,70 4,10 Cena (€/Wh) 0,00004145 0,00004145 Hodina prevádzky (€) 0,00011192 0,00016995 Rok prevádzky (€) 0,98037540 1,48871820 Zdroj: Vlastné spracovanie

Za predpokladu, že externý disk je zaťažovaný len, ak je zaťažované aj Raspberry Pi môžeme použiť vyššie uvedený vzorec na výpočet ročných nákladov:

1,49 € * 0,05 + 0,98 € * 0,95 = 1,00 €

Po sérii výpočtov teda prichádzame k záveru, že ročná prevádzka Raspberry Pi v podniku by ho vyšla 1,43 €.

3.2 Úprava distribúcie Linuxu

Hneď po zavedení obrazu Raspbianu na SD kartu je možné ho začať používať avšak z bezpečnostných a iných dôvodov je nutné ešte distribúciu pred začatím používania upraviť.

Ako predvolený používateľ je v Raspbian nastavený „pi“ s priradeným heslom raspberry. Z bezpečnostných dôvodov je zrejmé, že je potrebné zmeniť predvolené heslo, pretože všetky obrazy Raspbianu sú distribuované s tým istým nastavením. Pokiaľ by sme tak neurobili, ktokoľvek, komu by sa podarilo dostať do našej siete, by mal následné najvyššie práva v systéme, takzvané ROOT práva, čiže by nad Raspberry Pi získal absolútnu kontrolu.

65

Raspbian je však distribuovaný s jednoduchou utilitou raspi-config, v ktorej je možné zmeniť všetky základné nastavenia systému pomocou jednoduchého textového rozhrania. Rozhranie utility raspi-config je možne vidieť na obrázku číslo 25.

Obrázok č. 25 Rozhranie konfiguračnej utility raspi-config

Zdroj: vlastné spracovanie

Postupne si prejdeme všetky jeho možnosti a vysvetlíme ich funkcionalitu:

1. Expand Filesystem – Raspbian je distribuovaný ako obrazový súbor .img s veľkosťou 3,2 GB, po nahratí na kartu má teda jeho súborový systém veľkosť 3,2 GB, my sme ho však nahrávali na 8 GB SD kartu, pokiaľ teda chceme využiť celú kapacitu média je potrebné rozšíriť súborový systém

2. Change User Password – Ako sme si už skôr vysvetlili, je potrebné zmeniť predvolene nastavené prístupové heslo používateľa pi

3. Enable Boot to Desktop/Scratch – Predvolene je Raspbian nastavený, aby spúšťal grafické rozhranie , nakoľko však budeme Raspberry Pi využívať ako takzvané headless zariadenie, čiže zariadenie bez priameho grafického výstupu, zmeníme nastavenie tak, aby spúšťal pri štarte len textovú konzolu, čím ušetríme cenné výpočtové prostriedky spoločne s operačnou pamäťou

4. Internationalisation Oprions – V tejto ponuka nájdeme submenu, v ktorom môžeme nastaviť locale, číže sadu parametrov, ktoré definujú používateľské rozhranie, ako napríklad akým spôsobom sa zobrazuje čas, alebo desatinná čiarka v číslach, z dôvodu predídenia problémom s kompatibilitou zvolíme britské en_GB.UTF-8,

66 časovú zónu, kde zvolíme Európu, Bratislavu a rozloženie klávesnice pripojenie ku Raspberry Pi, čo nás až tak nezaujíma, nakoľko ku nemu budeme pristupovať len cez sieť pomocou SSH

5. Enable Camera – Raspberry Pi obsahuje špeciálne rozhranie pre pripojenie kamery, týmto spôsobom je možné vytvoriť napríklad online bezpečnostnú kameru, my ho však využívať nebudeme, takže túto možnosť nechávame vypnutú

6. Add to Rastrack – Týmto nastavením je možné nastaviť odosielanie anonymných informácií o aktivite Raspberry Pi, v podstate slúži iba na vytvorenie mapy všetkých aktívnych Raspberry Pi, ktorú je možné nájsť na stránke rastrack.co.uk my však túto možnosť necháme vypnutú

7. Overclock – Zvýšiť výkon Raspberry Pi je možné pretaktovaním jeho procesoru a operačnej pamäte, čím síce zvýšime jeho výkon, ale aj spotrebu a produkované odpadové teplo, čím znížime jeho stabilitu, číže by šlo pre nás o kontraproduktívne nastavenie, takže ho ponecháme na základných frekvenciách

8. Advanced Options – Táto záložka obsahuje pokročilé nastavenia, ktoré nie je odporúčané meniť začiatočníckym používateľom

8.1. Overscan – ide o kozmetické nastavenie, ktoré potláča čierne pásy okolo konzoly, aby bolo možné zobraziť konzolu na celú plochu monitora s vysokým rozlíšením

8.2. Hostname – toto nastavenie nám umožňuje zmeniť názov Raspberry Pi, pod ktorým sa zobrazuje ostatným sieťovým zariadeniam, ide o užitočné nastavenie, nakoľko pri následnej konfigurácii už nie je potrebné používať ťažko pamätatelnú IP adresu zariadenia, ale stačí jednoduchý názov, v našom prípade to bude rpi2

8.3. Memory Split –Raspberry Pi má zdieľanú pamäť pre procesor aj pre grafické jadro a ich vzájomný pomer je možné zmeniť práve týmto nastavením, nakoľko my budeme používať Raspberry Pi ako headless zariadenie je možné pre grafické jadro vyčleniť absolútne minimum operačnej pamäte, čo je v tomto prípade 16 MB

8.4. SSH – umožňuje vypnúť zapnúť SSH, predvolene je nastavené zapnuté, my toto nastavenie ponecháme

67 8.5. Device Tree, SPI, I2C, Serial – ide o nastavenia kernelu Raspbianu, preto ich ponecháme nastavené na predvolené hodnoty

8.6. Audio – povoliť posielanie zvuku cez HDMI? Pre naše potreby nepotrebné nastavenie

8.7. Update – aktualizácia nástroja raspi-config

9. About raspi-config – nejde o nastavenie len o informácie ohľadne tohto nástroja

Ďalším, pre naše účely, potrebným nastavením je pripájanie externého disku pri štarte operačného systému. Linux sa v tomto ohľade správa inakšie ako Windows, ktorý automaticky pripája a otvára každé nové médium, ktoré pripojíme ku zariadeniu. Linux naproti tomu potrebuje príkaz, aby pripojil médium na určité miesto v súborovom systéme, v nasledujúcej časti si ukážeme, ako sme docielili jeho automatické pripájanie.

Pomocou príkaz “sudo fdisk -l“ vypíšeme všetky dostupné partície, či už na pamäťovej karte, alebo na pripojených zariadeniach.

pi@rpi2 ~ $ sudo fdisk -l

...

Device Boot Start End Blocks Id System

/dev/sda1 1 3907029167 1953514583+ ee GPT

Z výstupu nás bude zaujímať najmä jeho posledný riadok, v ktorom vidíme adresu zariadenia, označenú ako /dev/sda1. Vďaka tejto informácii môžeme zariadenie adresovať pomocou iných zariadení.

V prvom rade je dôležité naformátovať externý disk príkazom make filesystem “sudo mkfs.ext4 /dev/sda1 –L dandisk“, v ktorom postupne určíme pomocou .ext4, že pôjde o súborový systém ext4, pomocou /dev/sda1/ určíme, ktoré zariadenie ideme formátovať a pomocou –L dandisk určíme jeho label, čiže označenie. Používame súborový systém ext4, nakoľko ide o natívny súborový systém Linuxu a implementácia NTFS je síce dostupná, nazýva sa ntfs-3g, a na bežných počítačoch funguje bez problémov, pre platformu Raspberry Pi by však predstavovala zbytočné spomalenie, vďaka jej nižšiemu výpočtovému výkonu oproti bežným počítačom.

68 Ďalším krokom bude pripojenie disku do súborového systému Linuxu. V prvom rade je potrebné vytvoriť zložku, do ktorej ho budeme pripájať, pomocou linuxového príkazu make directory:

sudo mkdir /media/dandisk

Štandard pre hierarchiu súborových systémov s názvom Filesystem Hierarchy Standard (FHS) síce určuje, že používateľ by mal na pripájanie súborových systémov používať cestu /mnt/... avšak pokiaľ bude Linux pripájať systémy sám mal by používať zložku /media/..., preto sme aj my zvolili túto zložku.

Konečne sa dostávame ku pripojenia súborového systému, toto môžeme spraviť manuálne, príkazom “sudo mount –t auto /dev/sda1 /media/dandisk“, toto však nie je ideálne, pretože platformu ako takú budeme počas aktualizácií, alebo sa bude počas výpadkov prúdu sama, reštartovať a tým pádom by bolo zakaždým potrebné sa vzdialene pripojiť na platformu a manuálne ho pripojiť. Druhou možnosťou je úprava systémového súboru, ktorý uchováva údaje, na základe ktorých kernel pri zavádzaní operačného systému automaticky pripája súborové systémy. Ide o súbor filesystem table a upraviť ho môžeme pomocou textového editora nano, postupujeme zadaním príkazu “sudo nano /etc/fstab“, následne sme prezentovaný obsahom súboru:

proc /proc proc defaults 0 0 /dev/mmcblk0p1 /boot vfat defaults 0 2 /dev/mmcblk0p2 / ext4 defaults,noatime 0 1

Do súboru na koniec doplníme nasledujúci riadok:

/dev/sda1 /media/dandisk ext4 defaults,noatime 0 0

Týmto sme úspešne pripojili externý disk, naformátovali ho na súborový systém ext4 a zautomatizovali jeho pripájanie pri štarte operačného systému.

3.3 Konfigurácia Samba servera

Balíček Samba, slúžiaci na zdieľanie obsahu na sieti, nie je v základe súčasťou Raspbianu, nachádza sa však v jeho repozitároch, z kadiaľ ho vieme nainštalovať príkazom:

sudo apt-get install samba samba-common-bin

69

Správca balíkov nám následne odporučí ďalšie balíčky potrebné pre správne fungovanie Samby a spýta sa nás, či chceme pokračovať, pokračujeme stlačením klávesy Y.

Ďalším krokom je konfigurácia Samby, skôr však ako v nej budeme pokračovať si zálohujeme konfiguračný súbor pre prípad, že by sme potrebovali vrátiť vykonané zmeny, pokračujeme teda príkazom:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old

pomocou ktorého vytvoríme kópiu pôvodného konfiguračného súboru s názvom smb.conf.old.

Dostávame sa teda ku konfigurácii, ktorú budeme vykonávať zmenou konfiguračného súboru, znovu za pomoci textového editoru nano, pokračujeme príkazom:

sudo nano /etc/samba/smb.conf

Prvá úprava, ktorú chceme vykonať je obmedziť prístup ku zdieľaným súborom, nakoľko na základe predvolených nastavení by ku nim mohol pristupovať ktokoľvek s prístupom do lokálnej siete, ako napríklad hostia používajúci našu Wi-Fi, tomuto sa logicky chceme vyhnúť. Nájdeme preto riadok:

# security = user

Mriežka na začiatku riadku znamená, že toto nastavenie je od komentované a teda sa nepoužíva, jej odstránením dosiahneme, že pri prístupe ku súborom bude systém požadovať od používateľa meno a heslo, upravíme ho teda nasledovne:

security = user

V ďalšom kroku pridáme na koniec konfiguračného súboru nasledujúce riadky, pomocou ktorých určíme názov, pod ktorým sa bude zdieľaná zložka zobrazovať v sieti, komentár, do ktorého môžeme vložiť ľubovoľný obsah, cestu v súborovom systéme, ktorú chceme zdieľať, používateľa a používateľskú skupinu, ktorých meno a heslo sa bude vyžadovať pri prístupe a následne obmedzenia prístupu k súborom. Pridáme teda nasledujúce riadky:

[RPi disk] comment = Raspberry Pi sietovy disk

70 path = /media/dandisk/shares valid users = @users force group = users create mask = 0660 directory mask = 0771 read only = no

Úspešne sme nakonfigurovali Samba zdieľanie na Raspberry Pi, ešte je však potrebné pridať používateľa, pomocou ktorého sa budeme autentifikovať pri prístupe:

sudo useradd zaloha -m -G users

argument –m prikazuje Linuxu vytvoriť pre používateľa domovskú zložku so základnou štruktúrou a argument –G users určuje, že vytvorený používateľ bude patriť do skupiny users, pokračujeme zmenou jeho prístupového hesla:

sudo passwd zaloha

Úspešne sme vytvorili linuxového používateľa zaloha, priradili mu heslo a určili, že bude patriť do skupiny users, z bezpečnostných dôvodov ešte určíme jeho heslo pre prístup v sambe, ktoré by malo byť zo zrejmých dôvodov odlišné od jeho linuxového hesla:

sudo smbpasswd -a backups

Ako vidíme na obrázku číslo 26, pri pokuse o prístup cez sieť je od nás vyžadované prístupové meno a heslo.

Obrázok č. 26 Prihlásenie pomocou Samba shares

Zdroj: vlastné spracovanie

71

Po úspešnom prihlásení však pri pokuse o vytvorenie súboru zistíme, že nám bol odmietnutý prístup na zapisovanie do zložky, to je spôsobené tým, že sme zložku shares vytvárali pomocou príkazu sudo, Linux teda automaticky nastavil ako vlastníka root a skupinu ktorej zložka patrí tiež root. Tento problém môžeme jednoducho vyriešiť sadou príkazov na zmenu vlastníka zložky na zaloha:

sudo chown -R zaloha /media/dandisk/shares/

kde nám argument –R určuje, že práva sa budú rekurzívne dediť. Následne zmeníme skupinu, ktorej patrí priečinok:

sudo chgrp -R users /media/dandisk/shares/

Poslednou skúškou správnej konfigurácie bude vytvorenie súboru pomocou windows explorer a jeho následné nájdenie pomocou príkazu v Linuxe. Nazvať ho môžeme napríklad testovaci subor.txt. Jeho správne atribúty následne overíme príkazom v konzole:

ls -al /media/dandisk/shares/

Ako vidíme vo výstupe, vlastník aj skupina, ktorá súbor vlastní sú nastavené správne, týmto sa nám úspešne podarilo nastaviť Samba shares:

-rw-rw---- 1 zaloha users 0 Apr 9 10:33 testovaci subor.txt

3.4 Konfigurácia RPi Monitor

Ako sme v analytickej časti práce poukázali, na monitorovanie stavu platformy Raspberry Pi budeme používať softvérový balíček RPi Monitor, tento sa však nenachádza v oficiálnom repozitári Raspbianu, preto je potrebné pridať oficiálny repozitár balíčku, ktorý je spravovaný jeho tvorcom. Tento repozitár však používa na prenos zabezpečený HTTPS protokol, oproti klasickému HTTP, táto funkcionalita však predvolene nie je Raspbian podporovaná, preto ju musíme doinštalovať príkazom:

sudo apt-get install apt-transport-https ca-certificates

Ďalším krokom je stiahnutie súboru s informáciami o repozitári a jeho uloženie medzi ostatné, to zabezpečíme príkazom:

72 sudo wget http://goo.gl/rsel0F -O /etc/apt/sources.list.d/rpimonitor.list

Nakoľko budeme používať prenos zabezpečený protokol HTTPS, potrebujeme stiahnuť verejný kľúč repozitáru:

sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 2C0D3C0F

Keď sme už všetko pripravili môžeme pokračovať aktualizáciou dostupných balíčkov a inštaláciou balíčka rpimonitor:

sudo apt-get update sudo apt-get install rpimonitor

V tomto momente sme pripravení plne používať tento balíček, so všetkými jeho funkciami menovanými v analytickej časti, my však pridáme ešte ďalšiu funkciu, ktorú budeme monitorovať a tou je využitie úložného priestoru externého disku. V prvom rade upravíme konfiguračný súbor, umiestnený v /etc/rpimonitor/data.conf, tak, aby nám na stránke zobrazoval nami vytvorený template pridaním riadku:

include=/etc/rpimonitor/template/custo.conf

V nasledujúcom kroku vytvoríme template pre zobrazenie informácií, nazveme ho custo.conf a umiestnime ho do /etc/rpimonitor/template/, obsahom súboru bude:

static.10.name=storage1_total static.10.source=df -t ext4 static.10.regexp=sda1\s+(\d+) static.10.postprocess=$1/1024

dynamic.14.name=storage1_used dynamic.14.source=df -t ext4 dynamic.14.regexp=sda1\s+\d+\s+(\d+) dynamic.14.postprocess=$1/1024 dynamic.14.rrd=GAUGE

web.status.1.content.9.name=Storage web.status.1.content.9.icon=usb_hdd.png web.status.1.content.9.line.1="/storage1 Used: "+KMG(data.storage1_used,'M')+" ("+Percent(data.storage1_used,data.storage1_total,'M')+") Free: "+KMG(data.storage1_total-data.storage1_used,'M')+ " Total: "+ KMG(data.storage1_total,'M') +"" web.status.1.content.9.line.2=ProgressBar(data.storage1_used,data.storage1_tota l)

web.statistics.1.content.9.name=Storage1 web.statistics.1.content.9.graph.1=storage1_total

73 web.statistics.1.content.9.graph.2=storage1_used web.statistics.1.content.9.ds_graph_options.storage1_total.label=Storage1 total space (MB) web.statistics.1.content.9.ds_graph_options.storage1_total.color="#FF7777" web.statistics.1.content.9.ds_graph_options.storage1_used.label=Storage1 used space (MB) web.statistics.1.content.9.ds_graph_options.storage1_used.lines={ fill: true } web.statistics.1.content.9.ds_graph_options.storage1_used.color="#7777FF"

Ide o sadu linuxových príkazov a JavaScriptového kódu, vďaka ktorým získame potrebné premenné, menovite veľkosť súborového systému /dev/sda1 a jeho využitie, ktoré následne vypíšeme a zobrazíme na hlavnej stránke, ako progress bar a na stránke so štatistikami, ako graf, ako môžeme vidieť na obrázku číslo 27.

Obrázok č. 27 Webová stránka s rozhraním balíčka RPi Monitor

Zdroj: vlastné spracovanie

74

Dôležitým faktom, ktorý sme doteraz nespomenuli je spôsob, akým RPi Monitor funguje. RPi Monitor obsahuje vlastný webový server, pomocou ktorého všetky informácie interpretuje, tento funguje na porte 8888. Ku rozhraniu RPi Monitor teda pristupujeme pomocou webového prehliadača zadaním IP adresy Raspberry Pi, alebo jeho doménového mena a pridaním čísla portu, v našom prípade ide teda o adresu http://rpi2:8888, v prípade prístupu cez lokálnu sieť. V prípade prístupu z internetu je potrebná ďalšia konfigurácia.

Konkrétne je potrebné nakonfigurovať router, alebo modem, na forwardovanie ľubovoľného zvoleného portu na IP adresu na ktorej sa Raspberry Pi nachádza, alebo jeho doménové meno a port 8888.

3.5 Konfigurácia web servera

Na základe výberu webového servera v analytickej časti budeme v praktickej časti inštalovať webový server s názvom Nginx. Tento sa nachádza v oficiálnom repozitári Raspbianu, takže na jeho inštaláciu nám bude postačovať vykonanie príkazu:

sudo apt-get install nginx

Úspešne sme nainštalovali webový server, overiť jeho správnu funkčnosť môžeme zadaním IP adresy alebo doménového mena do internetového prehliadača. Zistíme, že webový server funguje korektne a privíta nás hláškou Welcome to nginx!

Obsah webovej stránky je umiestnený v súborovom systéme v /usr/share/nginx/www pokiaľ teda budeme vytvárať webovú stránku všetok jej obsah budeme musieť ukladať do tejto zložky, alebo zmeniť predvolené nastavenia Nginxu. Súčasťou servera však nie je podpora PHP, túto však môžeme jednoducho doinštalovať príkazom:

sudo apt-get install php-fpm

Pokiaľ chceme zjednodušiť prístup ku RPi Monitoru a zároveň zbytočne neotvárať porty na routery môžeme využiť funkcionalitu Nginxu známu, ako proxy pass, proxy forwarding, alebo reverse proxy. Táto funkcionalita pracuje nasledujúcim princípom, používateľ pomocou webového prehliadača od webového servera vyžiada

75 webovú stránku, ten je však nakonfigurovaný tak, že túto stránku nemá sám prístupnú, ale vyžiada ju od iného servera a následne ju sám prezentuje. V našom prípade teda Nginx vyžiada stránku http://localhost:8888 od zabudovaného webového serveru RPi Monitoru a bude ju sám prezentovať na adrese /rpimonitor/ v našom prípade teda http://rpi2/rpimonitor/ .

Pre toto nastavenie v prvom rade skontrolujeme hlavný konfiguračný súbor /etc/nginx/nginx.conf , ktorý obsahuje riadky:

include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*;

Toto nám napovedá, že na konfiguráciu Nginxu sa používajú aj iné konfiguračné súbory na vyššie uvedených cestách v súborovom systéme. Konfiguračný súbor, ktorý budeme meniť je /etc/nginx/sites-available/default. V ňom nájdeme ostatné nastavenia location a pridáme za ne nové riadky:

location /rpimonitor/ { proxy_pass http://localhost:8888; }

Pre zjednodušenie správy webovej stránky tiež môžeme zmeniť predvolené nastavenie umiestnenia jej obsahu a môžeme ho zmeniť z SD karty na externý disk, na ktorý máme jednoduchší prístup. Môžeme tak spraviť zmenov riadku

root /usr/share/nginx/www;

nasledujúcim spôsobom:

root /media/dandisk/shares/www;

Reštartujeme webový server (pomocou príkazu: sudo /etc/init.d/nginx restart) a overíme funkčnosť nastavenia návštevou lokality http://rpi2/rpimonitor/ v internetovom prehliadači a zistíme, že sme webový server nastavili správne

3.6 Konfigurácia cloudu

Pre zabezpečenie funkcionality cloudu na Raspberry Pi sme sa rozhodli, ako je v analytickej časti poukázané, rozdeliť túto úloha na dve podúlohy, prvou je zabezpečenie synchronizácie pracovných adresárov medzi podnikovými počítačmi a tou druhou je sprístupnenie dokumentov v týchto zložkách pre prezeranie, v niektorých

76 prípadoch aj upravovanie. Prvú z týchto funkcionalít zabezpečíme softvérom BTSync, jeho prevedenie je oveľa viac používateľsky priateľské Syncthing. Syncthing je možné relatívne jednoducho konfigurovať na osobnom počítači, v prípade Raspberry Pi jeho konfigurovateľnosť však hraničí s nepoužiteľnosťou. Zároveň je veľmi náročný na výpočtový výkon, čim sa tiež stáva nevhodným kandidátom na implementáciu. Tieto problémy môžu byť spôsobené tým, že v čase písania diplomovej práce sa nachádza ešte v skorom štádiu vývojového cyklu, kedy ešte nebola vydaná ani prvá plná oficiálna stabilná verzia. Druhú vyššie spomínanú funkcionalitu je možné implementovať pomocou softvéru Owncloud, avšak náročnosť jeho implementácie je na úrovni a rozsahu bakalárskej práce a dlhodobá udržateľnosť riešenia nie je na postačujúcej úrovni. Je to spôsobené tým, že aktualizácie by museli prebiehať ručne od stiahnutia balíčku až po jeho zavedenie, pretože zatiaľ nie je oficiálne podporovaná na platforme Raspberry Pi.

Softvér BTSync sa nenachádza v oficiálnom repozitári Raspbianu, preto, podobne ako v prípade RPi Monitoru, pridáme oficiálny repozitár vývojára softvéru. Pomocou nasledujúceho príkazu pridáme súbor do zoznamu repozitárov:

sudo nano /etc/apt/sources.list.d/btsync.list

a vložíme doň nasledujúce dva riadky:

deb http://debian.yeasoft.net/btsync wheezy main contrib non-free deb-src http://debian.yeasoft.net/btsync wheezy main contrib non-free

následne pridáme verejný kľúč repozitáru, aby sme pri inštaláciu boli schopný overiť pravosť softvéru a softvér nainštalujeme pomocou príkazov:

sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 6BF18B15 sudo apt-get install btsync

Ako môžeme vidieť na obrázku číslo 28 inštalácia následne prebieha textovým používateľským rozhraním, čiže nie je potrebné ručne konfigurovať konfiguračné súbory, ako v predošlých prípadoch.

77

Obrázok č. 28 Inštalácia BTSync pomocou textového používateľského rozhrania

Zdroj: vlastné spracovanie

Pomocou tohto inštalačného menu zvolíme predvolené nastavenia balíčka, menovite: používateľa, pod ktorým sa má btysnc spúšťať, používateľskú skupinu, prioritu, s ktorou sa majú jeho procesy vykonávať, IP adresu, na ktorej má počúvať, port, na ktorom má počúvať, či má webové rozhrania prijímať iba zabezpečené pripojenie a miesto, kam sa majú synchronizovať súbory. Týmto sme úspešne nainštalovali balíček, konfigurácia však ďalej pokračuje pomocou internetového prehliadača na IP adrese Raspberry Pi, alebo jeho doménovom mene, nasledovanou dvojbodkou a portom, ktorý sme pri inštalácii špecifikovali.

Na internetovej lokalite http://rpi2:9999 sme ďalej vyzvaný na zvolenie používateľského mena a hesla, ktorým sa budeme autorizovať pri jej ďalšom navštívení. Následne vytvoríme pomocou tohto rozhrania zložku /media/dandisk/shares/zdielanie, ktorú môžeme po nainštalovaní klienta na počítač s ním pomocou kľúča zdieľať. Na zdieľanie sú serverom generované dva druhy kľúčov, prvým je kľúč, pomocou ktorého môže klient obsah zložky iba čítať, pomocou druhého je kľúča, môže klient obsah zložky čítať a meniť.

78

3.7 Konfigurácia Transmission

Torrenty a celkovo technológia bittorrent je vnímaná verejnosťou a spoločnosťami negatívne, môže však predstavovať riešenie pre malé podniky, alebo živnostníkov. Prípad použitia, ktorý si môžeme predstaviť je, keď živnostník, alebo malý podnik vytvorí softvér, ktorý chce zdieľať so svojimi zákazníkmi ale nechce použiť žiadny verejný server, alebo službu, môže jednoduchým spôsobom vytvoriť torrent, ktorý pošle zákazníkovi a ten si pomocou neho softvér stiahne. Takýmto spôsobom je distribuovaný softvér skupiny vývojárov, ktorí vytvárajú distribúcie Linuxu. Nespornou výhodou takéhoto riešenia je rýchlosť sťahovania v prípade, že softvér stiahlo a zdieľa viacero používateľov.

Na základe výberu v analytickej časti práce budeme na využívanie tejto funkcionality používať Transmission. Softvérový balíček Transmission sa nachádza v oficiálnom repozitári distribúcie Raspbianu, nakoľko však nebudeme používať jeho grafické používateľské rozhranie, nainštalujeme len jeho démona:

sudo apt-get update sudo apt-get install transmission-daemon

Počas inštalácie bol vytvorený používateľ debian-transmission, ktorý patrí do skupiny debian-transmission, my však potrebujeme, aby pristupoval ku zložke /media/dandisk/shares/torrent/, ktorej vlastní používateľ zaloha a skupina users, preto pokiaľ chceme, aby program bol schopný zapisovať do tejto zložky musíme ho pridať do skupiny users a to spravíme pomocou príkazu:

sudo usermod -a -G users debian-transmission

Ďalej potrebujeme nakonfigurovať softvér, čo dosiahneme pomocou úpravy súboru /etc/transmission-daemon/settings.json, v ktorom upravíme nasledujúce riadky:

"blocklist-url": "http://www.example.com/blocklist", "download-dir": "/var/lib/transmission-daemon/downloads", "incomplete-dir": "/root/Downloads", "rpc-username": "transmission", "rpc-password": "{5d445ec192b14f48df772d49d8ae4d29fab40bfbetlL.YzP", "rpc-whitelist-enabled": true,

nasledujúcim spôsobom:

79 "blocklist-url": "http://list.iblocklist.com/?list=ydxerpxkpcfqjaybcssw& fileformat=p2p&archiveformat=gz", "download-dir": "/media/dandisk/shares/Torrent", "incomplete-dir": "/media/dandisk/shares/Torrent", "rpc-username": "zaloha", "rpc-password": "noveheslo", "rpc-whitelist-enabled": false,

Je dôležité poznamenať, že sa netreba obávať uloženia hesla v súbore vo forme čistého textu, pretože akonáhle ho uložíme, démon ho pomocou hashovacej funkcie pretransformuje, čiže pri prihlasovaní sa neporovnávajú zadané heslá, alebo ich hashe. Súbor uložíme a konfiguráciu dokončíme následne ukončíme príkazom:

sudo service transmission-daemon reload

Overiť úspešnosť konfigurácie môžeme pomocou návštevy webovej lokality služby na adrese Raspberry Pi nasledovanej dvojbodkou a číslom portu, ktorý je predvolene nastavený na 9091. Po autentifikácii prihlasovacími údajmi, ako je na obrázku číslo 29 prezentované, uvidíme webové rozhranie démona, pomocou ktorého môžeme spravovať naše torrenty.

Obrázok č. 29 Webové rozhranie aplikácie Transmission

Zdroj: vlastné spracovanie

3.8 Konfigurácia DLNA

Ako sme uviedli v analytickej časti diplomovej práce, DLNA slúži na zdieľanie multimediálneho obsahu medzi zariadeniami pripojenými v lokálnej sieti. Jedným z možných scenárov použitia tejto funkcionality v podniku je napríklad obchodné centrum s viacerými obrazovkami zobrazujúcimi reklamu. V prípade, že by sme na nich chceli zobrazovať reklamu by sme ich najprv museli vybaviť úložným priestorom, na ktorý by sme reklamu nahrali a prehrávali ju z neho. Prípadné pridávanie, alebo

80 odstraňovanie reklamy by následne muselo prebiehať na každom televízore zvlášť. Omnoho elegantnejšie riešenie by bolo to, kde máme jedno centrálne úložisko s reklamnými videami a obrazovky by sa k nemu pripájali pomocou siete. Správa obsahu by tým pádom tiež bola vykonávaná centrálne. Nemusí pritom ísť len o videá, ale môže ísť aj o spoty, obrázky, ktoré sa budú po určitom čase striedať, alebo hudbu hrajúcu v obchodnom centre.

Inštalácia je v prípade balíčku MiniDLNA jednoduchá, nakoľko sa nachádza v oficiálnom repozitári Raspbianu, na jeho inštaláciu nám postačí spustiť nasledujúce dva príkazy:

sudo apt-get update sudo apt-get install minidlna

Následne už len stačí upraviť v súbore /etc/minidlna.conf tieto tri riadky:

# * "A" for audio (eg. media_dir=A,/var/lib/minidlna/music) # * "P" for pictures (eg. media_dir=P,/var/lib/minidlna/pictures) # * "V" for video (eg. media_dir=V,/var/lib/minidlna/videos)

Nasledujúcim spôsobom:

media_dir=A,/media/dandisk/shares/minidlna/audio media_dir=P,/media/dandisk/shares/minidlna/pictures media_dir=V,/media/dandisk/shares/minidlna/video

Pre overenie správneho fungovania službu najprv zreštartujeme, aby načítala nový konfiguračný súbor a následne jej prikážeme znovu načítať obsah definovaných zložiek pomocou nasledujúcich dvoch príkazov:

sudo service minidlna restart sudo service minidlna force-reload

Posledným krokom overenia je nakopírovanie príslušného obsahu do zložiek pomocou lokálnej siete a jeho prehranie pomocou televízora. Tento postup však v diplomovej práci popisovať nebudem, nakoľko sa líši v závislosti od výrobcu a navyše ani dva rôzne modely toho istého výrobcu nemusia mať postup zhodný.

3.9 Vytvorenie distribúcie Linuxu

Posledným krokom , ktorý budeme v rámci diplomovej práce vykonávať je vytvorenie distribúcie, alebo nahrateľného obrazu. Cieľom je vytvoriť obraz partície,

81 ktorý bude možné nahrať na ľubovoľnú SD kartu a následne spustiť na ľubovoľnom Raspberry Pi, pričom nebude nutné inštalovať žiadne s nami inštalovaných softvérových balíčkov, ani ich konfigurovať, pretože toto sme už urobili.

Na tieto účely použijeme dva softvéry, prvým z nich je Win32 Disk Imager, pomocou ktorého vytvoríme bitovú kópiu SD karty a druhým je WinRAR, pomocou ktorého vytvorený obraz skomprimujeme.

Najprv je potrebné pomocou čítačky SD kariet načítať SD kartu do počítača, následne ju programom načítať a zvoliť možnosť Read, ktorá vytvorí obraz na špecifikovanej adrese. Rozhranie programu je možné vidieť na obrázku číslo 30. Vytvorený obraz však má veľkosť 7,9 GB, čo je spôsobené tým, že ide o bitovú kópiu SD karty. To je spôsobené tým, že aj keď na karte využívame len 1,8 GB z jej kapacity, jej súborový systém má veľkosť 7,9 GB, preto aj jej obraz má takúto veľkosť. Na zmenšenie obrazu môžeme použiť program WinRAR, pomocou ktorého skomprimujeme obraz na veľkosť 1,8 GB.

Obrázok č. 30 Rozhranie programu Win32 Disk Imager

Zdroj: vlastné spracovanie

3.10 Nastavenie sieťových zariadení

Pokiaľ budeme chcieť ku, v predošlých častiach nakonfigurovaným, službám pristupovať budeme musieť zmeniť nastavenia routera. Ide o to, že pokiaľ by sme pristupovali z internetu a požadovali napríklad pripojenie SSH alebo SFTP na porte 22 na našej verejnej IP adrese, router by si myslel, že požiadavka je smerovaná naň a podľa toho ako je nakonfigurovaný by ju buď odmietol, alebo by prístup povolil, ale

82 pristupovali by sme naň a nie na Raspberry Pi. Z tohto dôvodu je potrebné na routery nakonfigurovať jeho pokročilú funkcionalitu s názvom Port Forwarding. Jeho konfiguráciou dosiahneme to, že požiadavku na daný port nebude spracovávať router, ale presmeruje ju na zariadenie na vnútornej (lokálnej) sieti, ktoré ju spracuje. Pre účely diplomovej práce týmto spôsobom presmerujeme port 22 a 80, pričom prvý z nich, ako sme už naznačili, budeme používať na SSH a SFTP komunikáciu s Raspberry Pi a druhý na zobrazovanie webovej stránky uloženej na Raspberry Pi.

Pri konfigurácii port forwardingu sa nastavuje päť rôznych premenných. Prvou je komunikačný protokol, TCP, UDP alebo obidva. Druhou je zdrojová IP adresa požiadavky, toto nastavenie sa používa iba v prípade, že prístup chceme obmedziť len na určitú externú adresu. Treťou je externý port, na ktorý prichádza požiadavka, štvrtou interný port, na ktorý sa požiadavka preposiela. Poslednou, piatou je interná IP adresa zariadenia nachádzajúceho sa na lokálnej sieti. Väčšina zariadení ešte obsahuje posledné nastavenie, ktorým je len poznámka, slúžiaca na pripomenutie, na čo daný port slúži. Konkrétny postup konfigurácie v diplomovej práci popisovať nebudem, nakoľko sa líši v závislosti od výrobcu a modelu routeru, na obrázku číslo 31 však uvádzam príklad už nakonfigurovanej služby.

Obrázok č. 31 Konfigurácia port forwarding

Zdroj: vlastné spracovanie

83

Záver

Primárnym cieľom diplomovej práce bol návrh a realizácia serverového riešenia a sieťového úložiska postaveného na platforme Raspberry Pi. Tento cieľ sa nám úspešne podarilo splniť v praktickej časti diplomovej práce. Súčasťou tohto cieľa bolo aj nasadenie vytvoreného riešenia v konkrétnom podniku. Tento cieľ sa nám podarilo splniť, keď sme za pomoci spoločnosti ZNALEX, spol. s r.o. a jej konateľa Ing. Daniela Bartkoviča úspešne otestovali jej dlhodobú prevádzku po dobu približne jedného roka. Primárne testovanou funkcionalitou bolo synchronizovanie pracovných zložiek na jeho pracovnom počítači v kancelárii a osobnom počítači doma.

Sekundárnym cieľom bolo priblíženie problematiky serverových riešení a sieťových úložísk čitateľovi tejto diplomovej práce. Zhodnotenie splnenia tohto cieľa je subjektívne a jeho zhodnotenie je na čitateľovi

Prvá kapitola sa venovala vysvetleniu základných pojmov súvisiacich s informačnými a operačnými systémami, Linuxom, počítačovou a Raspberry Pi platformou, severmi a cloudom.

Druhá kapitola bola analytickou časťou práce a bola venovaná skúmaniu požadovaných funkcionalít, prehľadu možností ich implementácií a výberu konkrétnych softvérových riešení. V úvode kapitoly boli predstavené alternatívne riešenia slúžiace na komparáciu a v závere bol venovaný iným možnostiam využitia, ktorým v diplomovej práci nebola venovaná osobitá pozornosť.

Tretia kapitola bola praktickou časťou práce a prezentovala prevádzkové vlastnosti platformy Raspberry Pi, menovite teplotu a obstarávacie a prevádzkové náklady. Ďalej sa venovala konfigurácii jednotlivých softvérových balíčkov zvolených v analytickej časti. V závere práce sa nachádza porovnanie riešenia vytvoreného v diplomovej práci a riešení prezentovaných v úvode analytickej časti.

84

Zoznam použitej literatúry

Aplicattions.com, Net. 2015. NetMarketShare. Market Share for mobile, browsers, operating systems and search engines. [Online] 1. 20 2015. [Dátum: 1. 20 2015.] http://www.netmarketshare.com/report.aspx?qprid=9&qpaf=&qpcustom=Linux&qpcust omb=0.

Bell, Charles. 2013. Beginning Sensor Networks with Arduino and Raspberry Pi. s.l. : Apress, 2013. 9781430258254.

Course, Microsoft Official Academic. 2011. Windows Server Administration Fundamentals : Exam 98-365. [ebook] s.l. : John Wiley & Sons, 2011. ISBN: 0-470- 90182-9.

Foundation, Raspberry Pi. Raspberry PI. What is Raspberry PI? [Online] [Dátum: 24. 1 2015.] http://www.raspberrypi.org/help/what-is-a-raspberry-pi/.

IBM Slovensko, spol. s r.o. IBM - Slovensko. IBM - Cloud Computing - Prehľad - Slovensko. [Online] [Dátum: 16. 11 2014.] http://www- 05.ibm.com/sk/cloud/?lnk=mhso.

Mell, Peter and Grance, Timothy. 2011. National Institute of Standards and Technology - Information Technology Laboratory. http://csrc.nist.gov/. [Online] 9 2011. [Cited: 11 16, 2014.] http://csrc.nist.gov/publications/nistpubs/800-145/SP800- 145..

Palmer, Michael a Walters, Michael. 2011. Guide to Operating Systems. s.l. : Cengage Learning, 2011. 9781111306366.

Pour, Jan a Gála, Libor. 2009. Podniková informatika. Praha : GRADA Publishing,a.s., 2009. ISBN 978-80-247-2615-1..

Stallings, William. 2014. Operating Systems: Internals and Design Principles (8th Edition). s.l. : Prentice Hall, Inc., 2014. 0133805913.

Steele, Robert David a Bloom, Horward. 2012. The Open-source Everything Manifesto: Transparency, Truth, and Trust. s.l. : Evolver Editions, 2012. 9781583944431.

85 Thomas, Keir, Sicam, Jaime a Chanelle, Andy. 2009. Beginning Ubuntu Linux. s.l. : Apress, 2009. 9781430219996.

Torvalds, Linus Benedict. 2015. GitHub - Build software better, together. torvalds/linux - GitHub. [Online] GitHub, Inc., 18. 1 2015. [Dátum: 18. 1 2015.] https://github.com/torvalds/linux.

Upton, Eben a Halfacree, Gareth. 2013. Raspberrz PI - Uživatelská příručka. Brno : Computer Press, 2013. ISBN 978-80-251-4116-8.

Voříšek, Jiří. 2006. Strategické rízení informačního systému a systémová integrace. Praha : Managment Press, 2006. ISBN: 8085943409.

86

Zoznam obrázkov

Obrázok č. 1 Tučniak Tux, maskot Linuxu ...... 11 Obrázok č. 2 Vývoj UNIX-ových operačných systémov ...... 12 Obrázok č. 3 Mapa linuxového jadra ...... 13 Obrázok č. 4 Pracovné prostredie distribúcie Linux Mint ...... 16 Obrázok č. 5 Von Neumannova architektúra počítača ...... 17 Obrázok č. 6 Fotografia miniatúrneho počítača Raspberry Pi ...... 19 Obrázok č. 7 Hardvérové rozhranie platformy Raspberry Pi a možnosti jeho využitia 23 Obrázok č. 8 Rozhranie GPIO Raspberry Pi ...... 24 Obrázok č. 9 Fotografia platformy Banana Pi ...... 25 Obrázok č. 10 Fotografia Raspberry Pi 2 ...... 27 Obrázok č. 11 Pohľad do vnútra U2 rackového dátového servera spoločnosti SUN ... 31 Obrázok č. 12 Diagram architektúry klient-server ...... 37 Obrázok č 13 Diagram architektúry P2P rovný s rovným ...... 38 Obrázok č. 14 Typy cloudu ...... 39 Obrázok č. 15 Pohľad spredu na Synology DS1513+ ...... 42 Obrázok č. 16 Pohľad zozadu na Synology DS1513+ ...... 43 Obrázok č. 17 Webové rozhranie Synology DSM ...... 43 Obrázok č. 18 Infografika vysvetľujúca základný princíp fungovania technológie SHR ...... 44 Obrázok č. 19 Predný pohľad na HP ProLiant microserver Gen8...... 45 Obrázok č. 20 Zadný pohľad na HP ProLiant microserver Gen8 ...... 46 Obrázok č. 21 Diskové riešenie použité pre účely diplomovej práce ...... 51 Obrázok č. 22 Pasívne chladenie Raspberry Pi ...... 63 Obrázok č. 23 Prevádzkové teploty Raspberry Pi ...... 63 Obrázok č. 24 Priemerné 15 minútové zaťaženie procesora Raspberry Pi ...... 64 Obrázok č. 25 Rozhranie konfiguračnej utility raspi-config ...... 66 Obrázok č. 26 Prihlásenie pomocou Samba shares ...... 71 Obrázok č. 27 Webová stránka s rozhraním balíčka RPi Monitor ...... 74 Obrázok č. 28 Inštalácia BTSync pomocou textového používateľského rozhrania ...... 78 Obrázok č. 29 Webové rozhranie aplikácie Transmission ...... 80

87 Obrázok č. 30 Rozhranie programu Win32 Disk Imager ...... 82 Obrázok č. 31 Konfigurácia port forwarding ...... 83

Zoznam tabuliek

Tabuľka č. 1 Popis rozdielov medzi verziami Raspberry Pi ...... 22 Tabuľka č. 2 Podiel webových serverov ...... 34 Tabuľka č. 3 Prehľad cien Kingston DataTravel SE9 na alza.sk ku dňu 23. 3. 2015 ... 51 Tabuľka č. 4 Prehľad cien Western Digital Red na alza.sk ku dňu 23. 3. 2015 ...... 52 Tabuľka č. 5 Porovnane pomeru cena-výkon skúmaných riešení ...... 60 Tabuľka č. 6 Výpočet ročných nákladov na elektrickú energiu ...... 60 Tabuľka č. 7 Výpočet ročných nákladov na prevádzku Raspberry Pi ...... 64 Tabuľka č. 8 Výpočet ročných nákladov na prevádzku externého disku ...... 65

Zoznam príloh

Príloha č. 1 DVD s image súborom upraveného Raspbianu

88