Blog (15)
Komentarze (117)
Recenzje (0)

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

@redsplSerwer 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

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.