přejít na obsah přejít na navigaci

Linux E X P R E S, Raspberry Pi 2 model B v roli serveru

Control

Raspberry Pi 2 model B v roli serveru

raspberry_pi2_uv.png

V předchozím dílu minisérie věnované Raspberry Pi 2 jsme se seznámili s jeho vlastnostmi a možnostmi jeho použití. Nyní postavíme na základě Raspberry Pi 2 trvale běžící server.


reklama

Než začneme se samotnou instalací, pokusme se ujasnit si, jaké jsou výhody a nevýhody řešení postaveném na Raspberry Pi 2.

Výkonové omezení přenosu dat

Jak už bylo uvedeno v přechozím textu, Raspberry Pi 2 je oproti svým starším verzím výrazně výkonnější. V jedné oblasti má ale značný handicap. Ethernet je pouze 10/100 Mbit/s a navíc je připojen k vnitřnímu USB rozbočovači. Z toho vyplývají nepříliš oslnivé výkony při přenosu dat například v porovnání s Banana Pi.

Zkusil jsem si uvedené výsledky ověřit v jednoduchém testu, v němž jsem nejprve kopíroval soubor o velikosti 500 MB z domácího NASu QNAP HS-210 do Raspberry Pi 2. Rychlost zápisu dosáhla pouhých 5,29 MB/s. Když jsem namísto Raspberry Pi 2 kopíroval za stejných podmínek stejná data do mého notebooku, vybavenému SSD diskem, přesáhla rychlost zápisu 30 MB/s. Rychlost přenosu stejného souboru z Raspberry Pi 2 do NASu byla o něco lepší - 6,91 MB/s. Kontrolní kopírování stejných dat z notebooku do NASu ovšem bez potíží překročilo rychlost 32 MB/s.

Pro velmi zatížený NAS se tedy Raspberry Pi 2 příliš nehodí. Uvedené omezení ale nebude vadit domácímu cloudovému serveru, ke kterému bude přistupováno především skrze internetovou přípojku 40 Mb/s. Tím se dostáváme k vymezení optimálního použití Raspberry Pi v roli serveru. Dle mého mínění dává smysl tam, kde můžeme těžit ze spolehlivosti Raspberry Pi 2 a jeho nízkého odběru proudu a kde současně server poběží trvale a zároveň na něj nebudou kladeny velké nároky na výkon při přenosu dat.

Problém provozu z paměťové karty

Uživatelé, kteří Raspberry Pi libovolné verze nasadili do role trvale běžícího počítače, se často setkávají s potížemi danými omezenou životností paměťové karty. Příčina je nasnadě. Paměťové karty stejně jako USB flash disky nejsou zkonstruovány pro časté ukládání malých souborů, což je ale přesně to, co provoz linuxové distribuce vyžaduje.

Jejich poškození často nezabrání ani použití tmpfs a dalších úprav v linuxových distribucích, určených pro Raspberry Pi. Při trvalém provozu nemusí být záchranou ani nasazení velmi drahých paměťových karet, určených pro průmyslové využití. Způsobů, jak se s uvedeným neduhem vyrovnat, může být několik:

  1. Vůbec se jím nezabývat. Mít neustále v záloze druhou paměťovou kartu s bitovou kopií systému. Pokud dojde k problému, postačí přehodit karty. Uvedený způsob samozřejmě předpokládá, že řídicí jednotka nebo server postavený na Raspberry Pi bude data ukládat na nějaké externí úložiště a že také bude snadno fyzicky dostupný.
  2. Použít OverlayFS, který překryje souborový systém distribuce RAM diskem. Toto použití není úplně triviální, pokud se o něj zajímáte, doporučuji vynikající přednášku pana Píši.
  3. Provozovat linuxovou distribuci z externího pevného disku, připojeného do USB portu. Na tuto, dle mého mínění nejschůdnější cestu, se podíváme podrobněji.


Provoz z externího disku

Raspberry Pi potřebuje pro svůj provoz nejméně dva diskové oddíly. První z nich musí být formátovaný v souborovém systému fat16 nebo fat32. Obsahuje zavaděče systému a jejich konfigurační soubory. Další oddíly mohou být formátovány v některém z linuxem podporovaných souborových systémů, např. ext4.

Obsahují operační systém a jistě také uživatelská data. Důležité je, že první oddíl bude Raspberry vždy hledat na paměťové kartě a bude ho používat pouze při startu systému. Ostatní oddíly, které jsou používány při vlastním provozu systému, už se mohou nacházet na externím disku připojeném k Raspberry Pi pomocí USB portu. K instalaci budeme potřebovat libovolný počítač s nainstalovanou linuxovou distribucí (v mém případě Ubuntu 14.04).

Přípravné práce

Začněte stažením obrazu systému Raspbian 2015-05-05-raspbian-wheezy.zip z oficiálních stránek http://www.raspberrypi.org/downloads a rozbalením archivu ZIP.

Zjistíme si nejprve rozdělení oddílů, obsažených v obrazu (image) systému ve staženém souboru pomocí příkazu:

sudo parted 2015-05-05-raspbian-wheezy.img -s unit B print

Příkaz vám vrátí něco podobného:

Model:  (file)
Disk /home/lcevela/iso/2015-05-05-raspbian-wheezy.img: 3276800000B
Sector size (logical/physical): 512B/512B
Tabulka oddílů: msdos

Číslo  Začátek    Konec        Velikost     Typ      Systém souborů  Přepínače
 1     4194304B   62914559B    58720256B    primary  fat16           lba
 2     62914560B  3276799999B  3213885440B  primary  ext4

V obrazu systému jsou tedy obsaženy dva diskové oddíly. Vytvořte si dvě složky, které budou určené k připojení uvedených oddílů:

sudo mkdir /media/rpi_fat
sudo mkdir /media/rpi_ext

Nyní připojíme oba oddíly do složek při použití offsetu nastaveného na jejich začátky:

sudo mount -o loop,ro,offset=4194304 2015-05-05-raspbian-wheezy.img /media/rpi_fat/
sudo mount -o loop,ro,offset=62914560 2015-05-05-raspbian-wheezy.img /media/rpi_ext/

Pokud se vše podařilo, najdete nyní ve složce /media/rpi_fat zavaděče systému a jejich konfigurační soubory a ve složce /media/rpi_ext/ na vás bude čekat kořenový oddíl Raspbianu.

Příprava paměťové karty

Jak už jsem uvedl, zavaděče systému musí zůstat na paměťové kartě. K tomuto účelu může posloužit microSD karta o prakticky libovolné kapacitě od 64 MB (opravdu MB a nikoli GB) výše, na níž pomocí programu Gparted vytvoříte alespoň jeden oddíl systémem fat16 nebo fat32. Pro můj server jsem použil kartu o kapacitě 2 GB, pro kterou už dlouho nebylo jiné využití.

card_with_bootloaders.png

Na takto připravenou kartu zkopírujte obsah složky /media/rpi_fat pomocí libovolného souborového manageru. Tím bychom byli s kartou téměř hotovi.

Nesmíme ale zapomenout předem upravit nastavení zavaděče systému na kartě tak, aby hledal kořenovou složku systému nikoli na kartě samotné, ale na připojeném pevném disku. Otevřete soubor cmdline.txt na paměťové kartě a upravte nastavení zavaděče tak, aby mířil na druhý diskový oddíl externího pevného disku. Uvedený oddíl připravíme později při přípravě pevného disku. V souboru najdete jediný řádek textu:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 
rootfstype=ext4 elevator=deadline rootwait

Nahraďte cestu mířící ke kartě:

root=/dev/mmcblk0p2

cestou k druhému oddílu externího pevného disku, který bude připojen pomocí usb.

root=/dev/sda2

Tím je příprava paměťové karty dokončena. Můžeme ji odpojit a vložit do slotu v Raspberry Pi 2.

Příprava pevného disku

Externí pevný disk začneme připravovat opět pomocí programu GParted. Vytvořte na něm následující oddíly:

  • První oddíl o velikosti 16 MB oddíl formátovaný v souborovém systému fat16. Tento oddíl zůstane nevyužitý, proto nemá smysl plýtvat místem.
  • Druhý oddíl o velikosti nejméně 10 GB formátovaný v souborovém systému ext4, který bude kořenovým oddílem (root) operačního systému.
  • Dále můžete na disku založit další oddíly formátované v některém linuxovém souborovém systému.

system_hdd.png

Připojte druhý diskový oddíl například do složky /media/jméno_uživatele/root/, kde jméno uživatele je jméno aktuálně přihlášeného uživatele (v mém případě lcevela). Můžeme to udělat rovnou v GPartedu pomocí příkazu Připojit nebo jednodušeji přímo pomocí funkcí linuxového desktopu. Zkušenější uživatelé mohou samozřejmě použít v terminálu příkaz mount.

partitions.png

Na závěr přípravy disku zkopírujeme obsah kořenového oddílu budoucího systému připojeného do složky /media/rpi/ do druhého oddílu externího disku připojeného do složky /media/jméno_uživatele/root/ pomocí příkazu:

rsync -a  /media/rpi_ext/ /jméno_uživatele/root/

Nyní můžeme všechny oddíly externího disku odpojit a připojit ho pomocí kabelu k Raspberry Pi 2. Kartu již máme ve slotu připravenou a můžeme si spokojeně užít první start serveru z pevného disku.

Na závěr

Výhodou uvedeného řešení je dlouhodobá spolehlivost a jistě také vyšší disková kapacita. Mezi jeho největší nevýhody patří požadavek na výkonnější napájecí zdroj. Pro nakrmení proudově hladového externího pevného disku a celého Raspberry Pi bych doporučil podívat se po vhodném USB hubu, který je vybaven externím zdrojem schopným dodávat proud kolem 2 A.

Pokud server namísto úvodní obrazovky systému vypíše například „random nonblocking pool is initialized“, je jasné, že napájení nestačí. Pokud jste přesvědčeni, že použitý USB hub je v pořádku a zdroj dává dostatečný proud, zkuste se podívat po rozdvojeném napájecím kabelu, tzv. Y – kabelu, který umožňuje napájet externí disk ze dvou USB portů najednou. Základ serveru máme nyní připraven, v příštím díle bychom se mohli podrobněji podívat na instalaci ownCloudu a na jeho zprovoznění.

Nahoru

Příspěvky

Raspberry Pi 2 model B v roli serveru
nobody 4. 08. 2015, 21:29:10
 Odkaz 
btw: misto listovani oddilu pomoci parted a nasledne montovani s offsetem staci pouzit nastroj kpartx, tedy:

kpartx -a 2015-05-05-raspbian-wheezy.img

tim dojde k nacteni oddilu z image a automaticke vytvoreni mapovani loop0p1 a loop0p2 v /dev/mapper/ a pokud ma system aktivni automaticke montovani, rovnou se objevi jako /media/uzivatel/boot a /media/uzivatel/jmeno_podle_uuid, pokud ne staci pro rucni pripojeni jiz pouhe:

mount /dev/mapper/loop0p1 /media/rpi_fat
mount /dev/mapper/loop0p2 /media/rpi_ext

a pro uplnost, pro odpojeni:
umount /dev/mapper/loop0*

a zruseni mapovani:
kpartx -d 2015-05-05-raspbian-wheezy.img
Raspberry Pi 2 model B v roli serveru
Olin 5. 08. 2015, 07:05:27
 Odkaz 
Proč je na disku oddíl souborového systému fat16 který se nevyužije?
Start jde přes paměťovou kartu a zbytek přes USB-HDD.
Raspberry Pi 2 model B v roli serveru
Lubomír Čevela 6. 08. 2015, 22:16:41
 Odkaz 
První nevyužitý oddíl fat16 na disku je zde spíše pro jistotu a můžete jeho vytvoření zkusit vynechat a na kartě nastavit směrování do root=/dev/sda1. Uvádím tento krok proto, že starší verze Raspberry byly občas tvrdohlavé a nechtěly startovat z prvního oddílu na pevném disku. U Raspberry Pi 2 jsem se s uvedeným problémem už nesetkal.
Raspberry Pi 2 model B v roli serveru
Tomáš Jurman 24. 08. 2015, 09:11:30
 Odkaz 
Super! Díky. Článek obsahuje cenné rady.
Raspberry Pi 2 model B v roli serveru
Tomáš Svobda 31. 03. 2016, 20:42:29
 Odkaz 
Dobý den, nešel by použít flash disk? Nebo má taky omezený počet zápis?
Raspberry Pi 2 model B v roli serveru
Lubomír Čevela 31. 03. 2016, 21:01:35
 Odkaz 
Použít by šel, ale flash disky mají podobné vlastnosti jako paměťové karty. Jednoduše nejsou konstruovány pro časté ukládání malých souborů, což je přesně ta zátěž, která vzniká za provozu serveru. Dle mé zkušenosti některé flash disky nepřežijí ani instalaci systému. Úplně jiná káva je ale SSD disk vložený do rámečku s USB portem. Jeho fyzická životnost je v tomto nasazení velmi dobrá. Myslím, že zbytek vašeho serveru bez problémů přežije. Navíc je to i ekonomicky přijatelné řešení, pokud použijte velikost kolem 60 - 120 GB. Doporučuji porovnání s cenou paměťových karet o stejné kapacitě.
Raspberry Pi 2 model B v roli serveru
nobody 31. 03. 2016, 22:20:26
 Odkaz 
nez 2.5" SSD a USB ramecek, mozna lepe rovnou externi USB 1.8" SSD 128GB :)
http://www.czc.cz/transcend-esd400-128gb/155167/produkt

pripadne M.2 SSD a redukci M.2 do USB, ale to jen pro usetreni par stovej z psychickeho duvodu ze by nekdo chtel nutne max 32 nebo 64GB SSD :)
Raspberry Pi 2 model B v roli serveru
Lubo 31. 03. 2016, 22:57:56
 Odkaz 
Je mi jasné, že variací na téma připojení SSD disku k Raspberry Pi je několik. Každý asi zvolí tu, která vyhoví jeho nárokům a možnostem jeho peněženky. Jak už jsem uvedl je dle mého mínění důležitý rozdíl mezi kartou, případně flashdiskem, které jsou pro tuto zátěž nevyhovující a SSD diskem, který je v pohodě. Také bych měl asi poznamenat, že Raspberry Pi ani ve třetí verzi nemá USB 3.0, ale pomalejší 2.0, což znamená, že nějaké supervýkonné řešení nemusí být nejlepší volbou.
Raspberry Pi 2 model B v roli serveru
nobody 1. 04. 2016, 16:00:25
 Odkaz 
no vzdyt jo :) ja jen nahodil 2 dalsi moznosti :) a v pripade varianty nez M.2 mozna by bylo vhodnejsi mSATA + mSTATA=>USB redukce...jinak neslo o supervykon, ale mensi rozmer a/nebo nizsi cenu

Přidat názor

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz

Lubomír Čevela

Lubomír Čevela

Lubomír Čevela (*1968) pracuje jako vývojář pro jednu velkou nadnárodní společnost. Pokud zrovna něco nesepisuje, zabývá se fotografováním nebo hraním na basu.


  • Distribuce: Ubuntu, Mandriva

| proč linux | blog