Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

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

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.

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!

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 

linux sprzęt serwery

Komentarze

0 nowych
  #1 23.04.2016 12:51

A nie lepiej jakiegoś cienkiego klienta? Maila ma zużycie z dyskiem w granicach 5-7W, cienkie klienty takie już dostaniesz. Sam użytkuje np. HP T5720, ma to 32-bitowy AMD 1GHz w pełni x86, 6x USB 2.0, niestety bez SATA, ale ma ATA 44 pin, kupilem SSD Transcenda, podpięte pod ATA, tam trzymam system, usługi, bieżące dane, stronę. Drugi dysk SSD, także Transcenda, z wbudowanym na stałe USB 2.0, podpięty przez USB (średnie rozwiązanie) ale spokojnie wystarcza na moje zastosowania. Ten cienias ma kartę 100Mbit, Samba osiąga 11.5MB/s, po HTTP w LAN tak samo, SFTP po LAN do 4MB/s (SSL daje 100% procesora), dalej SSH, FTPS, Transmission (torrenty zdalnie), z obniżonym taktowaniem 666MHz zużywa w spoczynku 17W, obok jest także malina (do różnych pomiarów z czujników zewnętrznych), wszystko zasilone przetwornicami warsztatowymi dobranymi do obciążenia plus chińczyki zmniejszające napięcie (np. 12-5V).

Sprawuje się to bez uwag, leci juz czwarty rok a największym probleme dotychczas była zużyta bateria CMOS w cienkim kliencie. Do zastosowań domowych w zupełności wystarcza. Jeśli zepniesz to wszystko kablem (u mnie na staruszku Linksysa WRT54) to masz bezgłosny zestaw do pracy w sieci domowej, wypluje Ci dane 11MB/s po kablu (filmy HD dadzą radę, limituje Cię wtedy tylko sieć 100MBit/s), konserwacja jest banlana (czyszczenie z kurzu), zamontowane w szafce pod sufitem z dobrą wentylacją grawitacyjną (żadna elektronika nie melduje więcej niż 44 stopnie, wynik wyśmienity bez wentylatorów).

Rachunek miesięczny za energię za wszystkie zabawki: maksymalnie 18zł brutto za miesiąc. Nigdzie nie znajdę takiego hostingu z 100MBit/s, sprzęt w domu, robisz co chcesz, limitują Cię tylko pomysły. A wszystko (malina + cienki) firmuje Slackware, który stabilny jak jasna cholera. Problem zaczyna się jeśli zachce Ci się 1GBit/s w domu ale to już przerost ambicji w warunkach domowych.

  #2 23.04.2016 14:24

Kabel cross-over.. lata 90-te w pełni!

Berion   14 #3 23.04.2016 15:49

"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"

Goły Windows 7, spakowany LZMA to jakieś 4GB. ;) Nie rób backupów Windowsem bo to jest syf, kiła i mogiła, która na dodatek daje się przywracać tylko w kilku konkretnych scenariuszach... Używaj Clonezilla (pakując do BZIP2 lub XZ).

Nie wiem też jaki sens jest backupować zainstalowane gry, plik wymiany i hibernacji, na dodatek na laptopowego trupa.

Polecam też zrezygnować z Windows update - to placebo które zostawia na dodatek masę śmiecia w WinSxS, nie tylko swoje instalki gdzieś tam pochomikowane.

Powinieneś przemyśleć scenariusze bo ten przedstawiony wg. mnie nie ma żadnego sensu. ;)

Autor edytował komentarz w dniu: 23.04.2016 15:55
redspl   6 #4 23.04.2016 16:54

@Berion: Backupowałem przez dd, z którego wyjście było od razu przekazywane strumieniem do pakera, a z pakera było zapisywane na dysk. Plan był taki, aby mieć backup, który mogę łatwo przywrócić bez bawienia się w Windowsowy Recovery Mode.

Cd. backupowania gier i programów - miałem na myśli backupowanie całego dysku o jakiś czas, żeby w przypadku pełnego panięcia windy można było odzyskać niedawny stan - tak, wiem że są szybsze i prostsze sposoby ;-)

Dzięki za konstruktywną krytykę!

EDIT: Windows Update mam wyłączony - Pisałem tu o scenariuszu, w którym użyszkodnik chce mieć najnowszą wersje OS ze wszystkimi update.
Btw, co masz na myśli mówiąc o laptopowym trupie? W520 to całkiem niezły laptop(którego mam od wtorku ;-P)

Autor edytował komentarz w dniu: 23.04.2016 16:57
  #5 23.04.2016 16:57

Zrezygnować z Windows update? :D co proponujesz w zamian? Pewnie od razu instalacje linuxa? Ech....

mmm777   5 #6 23.04.2016 17:31

W tej chwili TC podaje do ok. 5 000 kbytes/s, przy kopiowaniu z RPi na PC, sambą przez WiFi

  #7 23.04.2016 19:28

@mmm777: Masz taki sam config jak Ja? Możliwe, że kupiłeś lepszej jakości adapter wifi, right?

Berion   14 #8 24.04.2016 00:53

@redspl: Zasugerowałem się rozmiarem - bardzo dziwnym. ;) No tak, posektorowo czyli kopiujesz każdy sektor >> czyli wchodzą w skład hibernacje, swap windowsa i "usunięte" dane. Clonezilla (konkretnie partclone) kopiuje tylko to co jest wpisane do tablicy.

Mnie byłoby szkoda miejsca (ograniczyłbym się to samej kopii ustawień programów czy save'ów do tych gier), ale rozumiem że czas ma tutaj większy priorytet.

Dysk twardy, który podłączasz do maliny jako magazyn na backup. Laptopowy dlatego, że 2.5 to z myślą o nich zostały zaprojektowane, a trup dlatego że są kiepskiej jakości i są same bez swoich klonów w raid lustrzanym aby na backup się nadawały. ;)

@dr.who (niezalogowany): Nic, bowiem nic nie jest ekwiwalentem aktualizacji. Pozostałe linie obrony trzeba mieć niezależnie od tego czy są włączone czy też nie. A Linuksa jak wolisz, nie jestem nawiedzonym ewangelistą. Aktualizowanie Windows jest bolesne w czas, transfer, śmiecie i niespodzianki. To jest tak tragicznie zaprojektowane, a Windows ma tak wielką popularność, że te aktualizacje są zbyteczne - i tak jest masa dziur w systemie, przeglądarkach, a nawet programach av które też mogą stać się celem, że moim zdaniem to kompletna strata czasu bo z chwilą kiedy to piszę masa 0d jest właśnie sprzedawana w mrocznych czeluściach internetu i dowiemy się o nich dopiero za miesiąc, rok, albo wcale... A skoro tak o Linuksie wspominasz... tam aktualizacje to góra 15min. w tle, bez restartów i bez patrzenia się w procenty, które nawet nie oddają postępu owej aktualizacji - są bezbolesne.

Autor edytował komentarz w dniu: 24.04.2016 00:59
mmm777   5 #9 24.04.2016 08:55

@Anonim (niezalogowany): Transfer radykalnie spada przy pogorszeniu się połączenia radiowego, wystarczy przesunąć RPi. Radiówka przypadkowa, WL725N, malutka.

redspl   6 #10 24.04.2016 10:02

@Berion: Ano, masz racje, dysk swoje najlepsze czasy użytku(czyli T61 jakieś 8 lat temu) ma już za sobą. Myślałem, że kiedy pisałeś o laptopowym trupie miałeś na myśli mojego thinkpada :D
@mmm777 Czynnikiem, który jest inny u mnie niż u Ciebie może być też odległość routera - ~10cm ściana nośna, która pomaga w pogorszeniu jakości sygnału. Jak znajde trochę czasu, to zrobie testy tuż przy routerze(przyjmijmy w odlgełości 2m)
@Gdańszczanin Podaj model swojego thin clienta - chciałbym wiedzieć o jakie mobo jest oparty, jest to standardowy mITX / mATX czy jest to jakaś customowa płyta?

pawcio1212   7 #11 24.04.2016 13:04

Ja używam Banana Pi. Dla mnie najważniejsze rzeczy to port Ethernet 1Gbit oraz port sata (chyba stata 2).
Wszystko pięknie chodzi powyżej 30MB/s a jak kopiuje film z dlna to nawet do 50MB/s z serwera.
A to wszystko chodzi na zasilaczu 1.4A od Nokii :)
Dysk którego używam to stary dysk 500GB 2.5 przenośny i może temu mniejszy prąd mu wystarcza :D.

Kiedyś się natknąłem że w Malince ethernet jest podpięty przez usb więc podpinanie np dysku usb zmniejsza prędkość ethernetu. Chociaż nie jestem pewny co do tego.

redspl   6 #12 24.04.2016 15:48

@pawcio1212: Tak, masz racje co do ethernetu - w malince jest używany jeden chip do ethernetu oraz do usb. Cd. poboru mocy dysku - mój ma około 0,7A, raspberry pi powinno mieć max 1A(w praktyce dawno temu, kiedy raspberry robiło za bridge ethernet > wifi było podpięte do zasilacza 0,7A i działało), a więc na 1,6A powinno zadziałać. Ba, potem zamieniłem zasilacze i podłączyłem zasilacz 2A, również nie chciało działać. Możliwe, że elektronika kieszeni konsumuje tyle energii.
Za niedługo będę się rozglądał za zamiennikiem, rozwarze wybór Banana Pi ze względu na port SATA oraz gigowy ethernet ale także ze względu na inne bajery takie jak szybszy proc oraz 1gb ram.

  #13 24.04.2016 17:39

@Gdańszczanin (niezalogowany): RPi nawet przy zastosowaniu dysku podłączonego przez USB i tak ma o wiele mniejszy pobór prądu...

  #14 25.04.2016 13:51

ThinClient HP T5720, masz wiele źródeł w sieci, np. http://grylewicz.pl/montaz-dysku-twardego-cienkim-kliencie-hp-t5720/ http://www.parkytowers.me.uk/thin/hp/t5720/

Procesor to AMD 1Ghz, w pełni zgodny z x86. Poniżej skręcony przez automat do 666MHz w idle:

$ cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 8
model name : AMD Athlon(tm) Processor
stepping : 1
cpu MHz : 666.730
cache size : 256 KB
fdiv_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mp mmxext 3dnowext 3dnow
bogomips : 1333.46
clflush size : 32
cache_alignment : 32
address sizes : 34 bits physical, 32 bits virtual
power management: ts fid vid

@Anonim: Pobor prądu to jedno, malinę stosuję do pomiarów z czujników i paru mniejszych rzeczy z zewnątrz, gdzie upalenie malinki nie przeniesie się dalej, połączona z cienkim klientem (serwer domowy) po NFS w Linuksie, za 10zł/mc więcej dostajesz od cienkiem o wiele większą wydajność, którą można spożytkować, w takiej malinie zapuść ściaganie ISO jakiegoś Linuksa na noc i przy 4MB/s z szyfrowanego HTTPS zaczyna się dusić, a po drodze wypada obsługuje jeszcze Sambę dla domu, SSH, itp. pierdoły, gdzie responsywność Maliny odrzuca a cienki spokojnie daje.

Próbowałem z OrangePi (klon BananaPi), wszystko wyglądało pięknie dopóki nie zrobiłeś dwóch-trzech rzeczy naraz: np. zapuszczenie torrenta z ISO jakiegoś Linuksa, zapuszczenie ściagania przez wget czegoś równie dużego oraz operacje na plikach przez Sambę, OrangePi poległ wydajnościowo, T5720 dawał radę przy operacjach na dysku przez ATA, po USB trochę sie ograniczał.

  #15 25.04.2016 13:59

Zapomniałem dodać: dawniej także chciałem migrować na ARM (zużycie energii) ale wydajność pełnego x86 względem ARM przy np. kompilowaniu PHP 7, itd. jest o wiele większa, przy Linuksie łatwo się zmylić patrząc, że taki T5720 ma 1300+ Bogomipsów a BananaPi 2000+ co nie przekłada się na wydajność (ale za to Banana ma natywny port SATA).

jozzy   3 #16 25.04.2016 14:10

@redspl jak szybki jest ten port SATA w Banana PI ?

U siebie mam coś takiego http://linux-sunxi.org/Mele_A1000 z wbudowanym portem SATA (wbudowany - procek A10 obsługuje http://linux-sunxi.org/A10). Wydajność tego nie jest jakaś oszałamiająca - coś około 20-30MB/s zapis/odczyt dysk + 100Mb/s LAN. Za to pobór prądu ~8-10W z chodzącym dyskiem. Samba tam spokojnie śmiga około 10.5 MB/s.

Ostatnio dorobiłem się też Pine A64+ (2GB ram + 1Gb ethernet). Tam dysk SATA podłączony przez USB osiąga zapis 33MB/s a odczyt 37MB/s.

Z tego co mi wiadomo, wbudowaną obsługę SATA ma niewiele chipów ARMowych (np. Allwinner A10 (mele a1000), A20 (banana pi) mają). Znacząca większość to dodatkowy chip USBSATA.

I stąd moje pytanie o prędkość :) Bo z mojego przykładu wynika że nie zawsze wbudowane oznacza szybsze.

redspl   6 #17 25.04.2016 19:20

@jozzy: Widzisz.. Nie wiem. Potem zrobie research, aktualnie nie mam czasu.
Mele A1000.. pierwsze słysze :D, ale jakbym miał kupować, to brałbym raczej Banana Pi ze względu na cenę, ale rozważyłbym kupno tego, co proponowałeś(są też argumenty za, m.in prędkość oraz pobór mocy)

Autor edytował komentarz w dniu: 25.04.2016 19:20
  #18 25.04.2016 20:08

spawn666 (niezalogowany): ja mam WYSE V90. AMD x86 (to samo co w alixach) z oryginalną płytką a'la dysk (taki wczesne SSD) + Gbit karta ethernetowa na PCMCIA i 500GB na USB 2.0. Jedyne co dodałem to wentylator bo pasywne chłodzenie na poziomie 65-70*C to trochę dużo jak dla mnie.

Maliny mam 2 (b+) i każda robi jedynie za odtwarzacz podłączony do TV (jeden to CRT). Na server plików się to nie nadaje IMHO.

Wcześniej używałem WYSE S10 ale był jeden problem o którym nie pomyślałem - brak DMA :/

pawcio1212   7 #19 26.04.2016 00:14

@jozzy: Nie jestem pewny co do maksymalnej prędkości sata w banana pi bo mój dysk ma prędkość odczytu około 50mb i zapisu 35mb( stary dysk sata co był kupiony z obudową jako przenośny).

Ale wszystko również zależy od konfiguracji i obciążenia procesora poprzez np szyfrowanie transmisji

coby6   1 #20 03.05.2016 17:54

Ja do celów domowej sieci użyłem kadłub dolny laptopa . Procesor i5 drugiej generacji i 8 GB ram jest w sam raz. Do tego dwa dyski 2,5" po 500 GB połączone w raid i dodatkowo w pełni zaszyfrowane. Całość działa pod kontrolą FreeNAS 9 i zestawem usług takich jak samba, transmission, owncloud , virtualbox. Transfery po lanie dochodzą do 90 MB . Maksymalny pobór mocy to około 90W.

  #21 03.05.2016 20:10

klasyczne wylamywanie dzrzw.
za 5 stow masz nowke NAS na dwa dyski 1G ethernet i takie tam, uzywany jeszcze taniej
wifi moglo mulic takze dlatego, ze kabelek mogl miec zla dlugosc

redspl   6 #22 04.05.2016 10:55

@coby6: 90W to o dużo za dużo. Ja celuje w 20W przy max obciążęniu, oraz około 5W idle.
@echhhh (niezalogowany) cały projekt kosztował mnie jedynie 100zł na raspberry pi - reszte komponentów już miałem, a jeśli miałbym je wszystkie kupować to łącznie z dobrym dyskiem rzędu 500gb nie wyszłoby więcej niż 300zł. Cd. wifi - istotnie, musze wreszcie sprawdzić długość fali wifi oraz odpowiednio dostosować długość.

coby6   1 #23 04.05.2016 21:55

@redspl: 90W to maksymalna moc zasilacza od laptopa . Wydaję mi się że zamykam się w 50W . W wolnej chwili podłącze watomierz i sprawdzę dokładnie.

redspl   6 #24 06.05.2016 16:23

@coby6: czekam na wyniki :)