Raspberry Pi 4 boot z SSD (webový server)

S novým Raspberry Pi 4 se dají dělat i výkonnostně zajímavé projekty a když starému domácímu serveru dochází dech, je Raspberry Pi 4 s SSD diskem ideální volba.

Stavba serveru a nastavení bootování z SSD disku

Pro vlastní stavbu serveru budeme potřebovat následující:

Za investici cca 3.000 Kč získáme velmi rychlý domácí webový server s diskovým prostorem 256 GB.

Sestavení HW je tak jednoduché, že jej netřeba popisovat, tak rovnou přejdeme k instalaci a nastavení bootování z SSD disku. Stáhněte si Raspbian s desktopem a doporučeným software a pomocí programu balenaEtcher jej přeneste, jako obraz, na microSD kartu. Desktopová verze je potřeba kvůli přenesení diskových oddílů z microSD karty na SSD disk.

Zapněte Raspberry Pi 4 a počkejte než se nainstaluje Raspbian a zobrazí se nám desktopové prostředí. Spusťte terminál a pokračujte následujícími kroky.

Aktualizace operačního systému a firmware:

sudo apt-get update
sudo apt-get full-upgrade

sudo rpi-update
sudo reboot

Raspberry Pi se restartuje.

Instalace nejnovějšího zavaděče:

sudo rpi-eeprom-update -d -a
sudo reboot

Raspberry Pi se znovu restartuje.

Změny nastavení: 

sudo raspi-config

Povolení SSH pro vzdálený přístup.

Změna zavaděče.

Změna bootování z USB (připojený SSD disk)

Vypnutí desktopového prostředí – později (po restartu) již nebude potřeba

Nyní v desktopovém prostředí přejdeme do Příslušenství a spustíme aplikaci SD card copier. V položce Copy From Device zvolte vaší microSD kartu a v položce Copy To Device se nám automaticky doplní náš SSD disk.  Můžeme i zatrhnout volbu New Partition UUIDs, zvolíme Start  a vyčkáme než se zkopíruje SD karta na SSD disk.

Nyní již můžeme Raspberry Pi vypnout a vyjmout SD kartu. Po opětovném zapnutí již Raspberry Pi naběhne ze SSD disku.

Instalace LAMP (MariaDB, Apache2, PHP, phpMyAdmin)

Správa uživatelů – přidání vlastního uživatele honza (kromě skupin pi a sudo), nastavení hesla pro root a po restartu , přihlášení jako uživatel honza a následném přihlášení jako root příkazem su odstranění uživatele pi.

groups pi
sudo useradd -m -G adm,dialout,cdrom,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio honza
sudo passwd honza
sudo passwd root
sudo reboot
userdel -r pi

Instalace databázového serveru MariaDB

apt-get install -y mariadb-server mariadb-client
mysql_secure_installation

Instalace webového serveru Apache

apt-get install -y apache2 apache2-utils
apache2 -v
systemctl status apache2
systemctl reload apache2
systemctl enable apache2
apt-get -y install elinks
apache2ctl fullstatus

Instalace PHP 7.3

apt-get -y install php php-common
php -v
apt install php libapache2-mod-php php-cli php-fpm php-json php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath
a2enmod php7.3
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/phpinfo.php

Instalace phpMyAdmin

apt-get -y install phpmyadmin
mysql -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
USE mysql;
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
FLUSH PRIVILEGES;
exit
service mysql restart

Nyní si můžete vše zkontrolovat přes webový prohlížeč na těchto url adresách:

Apache: http://ip_vašeho_raspberry/
PHP: http://ip_vašeho_raspberry/phpinfo.php
phpMyAdmin: http://ip_vašeho_raspberry/phpmyadmin/

Na závěr můžete svůj nový webový server otestovat pomocí benchmarku. Můj výsledek:

# ab -n 2000 -c 30 http://127.0.0.1/

Server Software: Apache/2.4.38
Server Hostname: 127.0.0.1
Server Port: 80
Document Path: /
Document Length: 10701 bytes

Concurrency Level: 30
Time taken for tests: 0.543 seconds
Complete requests: 2000
Failed requests: 0
Total transferred: 21954000 bytes
HTML transferred: 21402000 bytes
Requests per second: 3683.59 [#/sec] (mean)
Time per request: 8.144 [ms] (mean)
Time per request: 0.271 [ms] (mean, across all concurrent requests)
Transfer rate: 39487.05 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect:    0 1 0.6 1  6
Processing: 3 7 1.5 6 17
Waiting:    1 5 1.3 5 14
Total:      4 8 1.8 7 22

Percentage of the requests served within a certain time (ms)
50% 7
66% 8
75% 8
80% 8
90% 10
95% 10
98% 15
99% 17
100% 22 (longest request)