Blog (15)
Komentarze (117)
Recenzje (0)
@redsplSerwer Samba na Raspberry Pi B+, czyli jak tego NIE robić

Serwer Samba na Raspberry Pi B+, czyli jak tego NIE robić

23.04.2016 13:47

Jakiś czas temu postanowiłem postawić serwer Samby na Raspberry Pi. Dodatkowo, dla kompatybilności postanowiłem zainstalować tam również serwer FTP, a żeby do plików mieć dostęp również z zewnątrz - serwer SSH, który oprócz dostępu do bash'a oferuje bezpieczny transfer plików po SFTP.

Idealnie przymocowane.. prawda?
Idealnie przymocowane.. prawda?

Potyczki z Hardware

Postanowiłem zaopatrzyć malinkę w dysk HDD - wybór padł na dysk SATA 2,5" 160GB z Hitachi, który miałem akurat "pod ręką" - i tu popełniłem pierwszy błąd. Nie jestem osobą, która musi trzymać ogromne ilości danych rzędu paru terabajtów, aczkolwiek na dłuższą metę wolałbym mieć dysk wielkości nie mniejszej niż 500GB m.in w celu trzymania backupów dysku mojego laptopa(dla przykładu podam tutaj backup świeżej instalacji Windowsa 7 z komputera Thinkpad W520 - spakowana w zip zajmowała ponad 30GB, a mówię tu o marce Lenovo, która wrzuca na swoje komputery naprawdę małą ilość bloatware. Z każdą zainstalowaną aplikacją wielkość się zwiększa; Przykładowo, popularny w ostatnim czasie Counter Strike - Global Offensive zabiera nieco poniżej 6gb, a gry z otwartym światem mogą zajmować nawet pare razy więcej miejsca na dysku - na przykład GTA V w wersji PC zabiera więcej niż 56gb. Warto wspomnieć też o backupach Windows Update - nie tylko Ja używając Windowsa często zapominam ich usuwać, a z własnej praktyki wiem, że nawet po tak krótkim okresie jak pół roku mogą one zajmować więcej niż 30gb!

Każdemu, kto widział kiedykolwiek Raspberry Pi na pewno nasunęło się pytanie - jakim cudem chcę podłączyć dysk SATA do malinki? Z pomocą przychodzi mi elektronika z kieszeni na takowy dysk. Takie rozwiązanie łączy prostotę(wystarczy podłączyć dysk do portu SATA znajdującego się na płytce drukowanej oraz płytkę drukowaną przez kabelek mini USB do komputera) oraz niską cenę(takową elektronikę posiadałem, ale najtańsze kieszenie na dyski do samodzielnego montażu dysku można dostać już za mniej niż 30zł).

Ponieważ do Mojego pokoju nie jest doprowadzony kabel Ethernetowy, podjąłem decyzje podłączenia Malinki do Internetu przez dongle WiFi, który kupiłem w sklepie za około 30zł, ale w internecie można dostać je już za mniej niż 10zł + przesyłka. Nie był to najlepszy wybór na łączenie się z siecią ze względu na szybkość połączenia, ale o tym później w tym wpisie. Ponieważ nie byłem zadowolony z zasięgu sieci WiFi, zmodyfikowałem antenę.. Polegało to na odcięciu dremelem tylniej części adaptera, wyjęcia płytki drukowanej, wylutowania wbudowanej anteny oraz wlutowania parocentymetrowego kawałka drucika, który miał służyć za antenę.

Do tego projektu specjalnie kupiłem kartę SD o pojemności 16GB aby mieć możliwość dodania innych funkcjonalności. Tu zaczęły się problemy - Nagrałem Linuxowym programem dd obraz systemu Raspbian na karte microSD, wstępnie skonfigurowałem (skonfigurowałem automatyczne łączenie się do sieci WiFi), czekam, aż zapali się niebieska dioda informująca o stanie połączenia.. i nic. Oryginalnie, miało obejść się bez podłączania Malinki do monitora, ale wyglądało na to, że teraz będzie inaczej. Jednak na monitorze czarny ekran.. To może oznaczać dwie rzeczy - albo Pi jest uszkodzone, albo karta microSD jest uszkodzona lub nie zawiera/zawiera błędne dane. W wyszukiwarce znalazłem rozwiązanie mojego problemu - wystarczyło do polecenia dd dodać przełącznik bs=4M (bs = block size; rozmiar bloku), aby rozwiązać problem.

Po wstępnej konfiguracji i ustaleniu, czy Malina działa prawidłowo podłączyłem dysk. I tu zaczęły się kolejne problemy - używałem taniego zasilacza o napięciu 5V i amperażu 2A.. przy podłączonym dysku, Raspberry nie chciało się włączyć; Szybko pozyskałem drugi zasilacz, odpowiednio zmodyfikowałem kabelek mini USB dodając do niego trzecią wtyczkę USB, która miała być używana jako zasilanie dysku. Oczywiście tu popełniłem jeszcze jeden błąd, którego byłem świadomy już przy budowie, ale nie chciałem jej przedłużać koniecznością nabycia mocniejszego zasilacza - jeżeli to nie jest konieczne, nigdy nie powinno się sprzęgać dwóch zasilaczy!

Kabelki, czyli jak nie chciało mi się iść do sklepu z elektroniką
Kabelki, czyli jak nie chciało mi się iść do sklepu z elektroniką

Pod koniec tej części chciałbym wspomnieć o pewnej decyzji której do dzisiaj nie jestem w stanie racjonalnie wytłumaczyć - sposób przymocowania dysku do Raspberry jest bardzo amatorski(dysk w celu ochrony obkleiłem z wierzchu taśmą(tak, zrobiłem otwór), a na taśmę przykleiłem Malinkę.. bleah) i również powinienem się go wstydzić.

Konfiguracja Software

Ta część przebiegła całkiem szybko, ale nie bezproblemowo. Najwięcej problemów sprawił mi serwer Samby, ale były to problemy spowodowane jedynie niewiedzą i nieznajomością składni plików konfiguracyjnych. Jedyna rzecz której powinienem się wstydzić w tej części to plik rc.local, w którym oprócz potrzebnych tuneli ssh znalazło się m.in polecenie montujące dysk, którego mógłbym się pozbyć dodając odpowiednią definicję do pliku fstab.

Praktyka

Wszystko ładnie, pięknie, więc można zacząć testować! Wiedziałem, że prędkość transferu po WiFi nie będzie zbyt duża, ale aż tak niskiej wartości się nie spodziewałem - po Sambie max. to około 750kB/s, a po FTP oraz SFTP około 800kB/s. Po podłączeniu Raspberry kablem Cross-Over do Mojego laptopa najwyższy transfer wynosił około 7MB/s w porywach do 7,5MB/s w przypadku Samby oraz około 8MB/s w przypadku FTP/SFTP. Pragnę przypomnieć, że są to wartości maksymalne - przykładowo przy kopiowaniu dużych plików używając WiFi uzyskiwałem transfer rzędu 250‑300kB/s, oraz 5‑5,5MB/s używając kabla Ethernetowego.

tl;dr - Czyli czego dzisiaj bym nie zrobił

Prawdopodobnie zamiast Raspberry Pi użyłbym płyty głównej standardu mITX, która ma wielkość troche ponad dwóch Malinek B / B+, a w ogromnej większości szybszy procesor i możliwość rozszerzania pamięci RAM oraz dodania przynajmniej jednego rozszerzenia w postaci karty PCI / PCIExpress. Taką płytę można dostać już za symboliczne 70zł, a pomijając piny GPIO których i tak w moim obecnym projekcie nie używam - ma o wiele większe możliwości, np. Gigabitowy port Ethernet, zwykle więcej slotów USB itd. Oprócz powyższego stwierdzenia, starałbym się uniknąć moich wcześniejszych wpadek, ale jak to mówi stare powiedzenie "Nikt nie jest idealny".

Pozdrawiam

Wybrane dla Ciebie
Komentarze (24)