Domowy serwer NAS

28 11 2013

Ostatnio przybyło mi trochę urządzeń podłączonych do domowej sieci Wi-Fi i powstał problem z wygodnym współdzieleniem plików – rozwiązaniem okazało się postawienie serwera NAS. Na rynku jest wiele gotowych rozwiązań sprzętowych, ale po pierwsze trochę kosztują, po drugie nie byłbym sobą gdybym nie spróbował posatwić NAS’a samodzielnie 🙂

Etap I – wybór sprzętu

Założenia:

  • architektura zgodna z PC
  • niski pobór prądu
  • chłodzenie pasywne
  • niska cena
  • standardowe złącze IDE lub SATA
  • USB min. 2.0

Po przeglądnięciu ofert na pewnym popularnym serwisie aukcyjnym wybór padł na terminal HP t5720

HP t5720

Urządzonko kosztowało mnie całe 60zł 🙂 a daje całkiem spore możliwości:

  • procesor AMD Geode NX1500 1GHz – prawdziwa architektura x86 a nie w trybie emulacji jak w przypadku dość popularnych Transmeta Crusoe
  • moc od 10-20W w zależności od obciążenia
  • IDE-2.5”
  • 6 x USB 2.0
  • pamieć RAM 512MB DDR-SODIMM
  • robudowane opcje WakeUp z poziomu BIOS’u

Do tego zestawu dokupiłem adapter CF-IDE oraz kartę Kingston CF 4GB – nie jest to demon szybkości ale w zupełności wystarcza, karta Wi-Fi na chipsecie RT-3070.

Etap II – wybór systemu

Założenia:

  • darmowy, najlepiej OpenSource
  • ma działać na karcie CF 4GB
  • obsługa NTFS w trybie zapisu

FreeNAS odpadł w przedbiegach ze względu na ociężałość najnowszej wersji, NAS4Free byłby ciekawy, ale niestety obsługa NTFS pod FreeBSD jest bardzo uboga i są problemy z zapisem (NTFS jest na dysku USB podłączonym do NAS’a – wiem że jest to bardzo niedoskonały FS, ale mam powody aby go używać na tym dysku), więc pozostał mi do wyboru tylko Linux.

Na pierwszy ogień poszedł Open Media Vault

omv

 

OMV jest panelem WebUi zbudowanym na bazie Debiana. Nie będę rozwodził się nad jego zaletami i wadami i ujmę moją opinię w kilku zdaniach. Działał stabilnie i w miarę szybko, dla osób które nie mają zbytniego doświadczenia w konfiguracji linuksa jest to całkiem sensowne rozwiązania, właściwie wszystko można sobie wyklikać w panelu. Jednak ja czułem pewien niedosyt, ponieważ lubię mieć cały system „po swojemu” i mam manię maksymalnej optymalizacji, ponadto miałem trochę inne potrzeby niż te, które oferuje OMV.

Z początku myślałem o Gentoo ze względu na jego elastyczność konfiguracji i wydajność, jednak czas kompilacji i miejsce potrzebne na portage oraz ściągnięte źródła (system na CF 4GB) skutecznie go wykluczyły. Jeżeli nie Gentoo to co? – Cóż za pytania, oczywiście że Debian 🙂 – ze względu na stabilność i wygodę używania APT’a.

Do dzieła

Zdecydowałem się na Debian’a Testing. Instalacja oczywiście w trybie Expert żeby mieć większą kontrolę na tym co jest instalowane.

Podział partycji:

/boot – 128MB – EXT4
/ – 3.5GB – BTRFS

Pierwszą rzeczą jaką zrobiłem to zainstalowałem aptitude oraz wyłączyłem instalację pakietów zalecanych.

Zdecydowałem się na BTRFS ze względu na jego możliwości optymalizacji dla napędów FLASH. Mój /etc/fstab wygląda następująco:

# <file system> <dir> <type> <options> <dump> <pass>
UUID=xxxxxx /boot ext4 defaults,noatime,noauto          0 1
UUID=xxxxxx /     btrfs ssd_spread,compress=lzo,noatime 0 2

Następnie zainstalowałem i skonfigurowałem dodatkowe usługi:

  • lighttpd
  • rtorrent + rutorrent
  • OpenSSH
  • samba
  • minidlna

Wiem, można te same usługi mieć w OVM, ale … lighttpd jest dużo lżejsze niż apache2, samba z gałęzi testing jest w nowszej wersji niż w squeze (logiczne) i po prostu szybciej działa, minidlna, rtorrent, rutorrent i tak musiałbym konfigurować samodzielnie, ponieważ w OMV nie ma tych usług. Ponadto nie potrzebuję pozostałych usług, więc po co mają zajmować zasoby skoro ich nie używam?

Z nieznanych mi przyczyn w Testing’u nie ma minidlna, więc dodałem do Apt’a repozytoria Sid’a, ale że nie chcę bazować na gałęzi unstable obniżyłem priorytet instalacji z tej gałęzi, dodając wpis w pliku /etc/apt/preferences.d/debian

Package: *
Pin: release
a=unstable
Pin-Priority: 10

Jako nośnik dla danych podłączyłem dysk USB sformatowany jako NTFS i dopisałem regułę w fstab

UUID=xxxxxx /media/dyskUSB ntfs-3g umask=000 0 0

Żeby nie ciągnąć prądu jak nie ma mnie w domu, zadanie w cronie o godz 8:00 od poniedziałku do piątku zamyka system

0 8 * * 1-5 /sbin/shutdown -h now

a włącza się automatycznie dzięki funkcji WakeUp w BIOS’ie o godzinie 16:30

Podsumowanie

NAS uruchamia się ok 10s co uważam za wartość do przyjęcia. Całość działa szybko, sprawnie i stabilnie, właściwie bezobsługowo, tylko od czasu do czasu zaloguję się po SSH i puszczę aktualizacje, które też mogły by robić się z automatu ale wolę mieć nad tym procesem pełną kontrolę.



Instrukcja Clonezilla – Jak utworzyć obraz całego dysku

15 02 2013

Zaktualizowana wersja tutoriala jak utworzyć obraz całego dysku w Clonezilla. Instrukcja opiera się na wersji 2.0.1-15



Gentoo: jak naprawić brzydką czcionkę Helvetica

5 10 2012

Nie wiem czy to wina mojej konfiguracji (KDE), czy może Gentoo tak ma, ale bardzo popularna na stronach internetowych czcionka Helvetica wyglądała paskudnie:

Rozwiązanie, które proponuję nie jest idealne, ale za to banalnie proste, wszystkie czcionki które gentoo źle renderuje należy zastąpić innymi czcionkami. Najprościej to zrobić dodając plik:

/etc/fonts/local.conf
o treści:

<!-- Replace Helvetica with DejaVu Sans -->
<match target="pattern" name="family">
<test name="family" qual="any"><string>Helvetica</string></test>
<edit name="family" mode="assign">
<string>DejaVu Sans</string>
</edit>
</match>
<!-- Replace Lucida with DejaVu Sans -->
<match target="pattern" name="family">
<test name="family" qual="any"><string>Lucida</string></test>
<edit name="family" mode="assign">
<string>DejaVu Sans</string>
</edit>
</match>
<!-- Replace Times with DejaVu Serif -->
<match target="pattern" name="family">
<test name="family" qual="any"><string>Times</string></test>
<edit name="family" mode="assign">
<string>DejaVu Serif</string>
</edit>
</match>

Co daje nam już ładniejsze czcionki w systemie i przeglądarce:



Kalendarium polskich imienin w MySQL

22 03 2012

MySQLJak to w życiu bywa, miło by było aby w kalendarzu były imiona solenizantów 🙂 Po kilku godzinach poszukiwań w internecie nie znalazłem gotowca, który by mnie zadowolił. Najbardziej rzetelny spis imienin znalazłem na Wikipedii. Pozwoliłem sobie go zaimportować do mojej bazy. Przy użyciu mojego ulubionego edytora kwrite oraz dwunastokrotnej operacji zaznacz-kopiuj-wklej utworzyłem pliczek csv, który bezproblemowo zaimportowałem do bazy MySQL.

Gdyby ktoś potrzebował do swojego projektu spis imienin, to proszę bardzo udostępniam owoce mojej pracy. Będzie mi miło, jeżeli dacie linka do strony z której pobraliście bazę imienin 🙂

Baza imienin: imieniny.sql.bz2



Clonezilla – Instrukcja wideo jak odtworzyć dysk z obrazu

7 03 2012