Skip to content

Artykuły z miesiąca: Luty 2016

Jak zdiagnozować kernel OOPS

Kernel linux'a, jak każdy inny program, podczas swojego działania może napotkać nieprzewidzianą przez programistów sytuację. W przypadku zwykłych aplikacji, pewne błędy krytyczne mogą doprowadzić do "naruszenia ochrony pamięci", co szerzej jest znane jako segfault. W przypadku wystąpienia tego błędu, proces zwykle jest unicestwiany. Co jednak w przypadku kernela? Odpowiedź jest prosta: kernel panic, czyli panika kernela, która pozostawia system w stanie braku jakichkolwiek oznak życia. Są jednak pewne błędy, z którymi kernel jest w stanie sobie poradzić i odzyskać sprawność w mniejszym lub większym stopniu. Te błędy są nazywane kernel OOPS. W tym wpisie postaramy się przeanalizować przykładowy OOPS i zobaczymy czy uda nam się ustalić przyczynę zaistniałego problemu.

Czytaj cały wpis

WordPress: Zmiana serwera i nazwy bloga

Prędzej czy później przyjdzie taki czas, że będziemy musieli porzucić stary hosting, na którym trzymamy swój blog WordPress'a. O ile samo przeniesienie całego kontentu nie powinno sprawić trudności, bo to przecież zwykłe kopiowanie plików, to zmiana struktury strony, np. katalogu głównego lub też nazwy bloga (domeny), pociąga już za sobą pewne komplikacje. W tych bardziej zaawansowanych przypadkach, zwłaszcza jeśli posiadamy niestandardową konfigurację, będzie potrzebna edycja niektórych plików WordPress'a oraz trzeba będzie zmienić szereg wpisów w bazie danych. W tym artykule zostanie opisany proces przenoszenia instalacji WordPress'a na nowy serwer wliczając w to zmianę nazwy serwisu.

Czytaj cały wpis

Implementacja protokołu SSL/TLS w vsftpd

Kwestię konfiguracji serwera FTP na debianie w oparciu o vsftpd już przerabialiśmy. Została nam jeszcze do omówienia implementacja protokołu SSL/TLS. FTP nie jest bezpiecznym protokołem i wszelkie dane logowania są przesyłane przez sieć otwartym tekstem. W przypadku, gdy stawiamy lokalny serwer FTP w zaufanej sieci lub też będziemy korzystać jedynie z dostępu anonimowego, to raczej nie potrzebujemy szyfrować danych. Trzeba pamiętać, że każde szyfrowanie dość mocno obciąża procesor, który może stanowić wąskie gardło przy przesyle danych. W tym wpisie założenie jest takie, że bezpieczeństwo danych, które będziemy przesyłać za pomocą protokołu FTP, jest rzeczą najważniejszą i dlatego wdrożyć szyfrowanie.

Czytaj cały wpis

Aktualizacja Firefox'a i Thunderbird'a w debianie

W 2006 roku, Mozilla przyczepiła się do debiana o to, że ten wykorzystuje ich znaki towarowe. Chodziło głównie o to, że debian wprowadzał swoje poprawki, które nie były zatwierdzone przez zespół Mozilli. W efekcie czego, debian pozmieniał nazwy szeregu produktów Mozilli i tak zamiast normalnego Firefox'a mamy Iceweasel, podobnie z Thunderbird'em i Icedove. Obecnie nie ma możliwości wgrania aplikacji Mozilli wykorzystując repozytorium debiana. Trzeba się trochę wysilić i paczki pobierać ręcznie z serwerów Mozilli. Takie rozwiązanie nie jest zbytnio praktyczne, bo przecie w linux'ie aplikacji nie aktualizuje się za pomocą ich interfejsów graficznych. Jeśli tak by było, to musielibyśmy uruchamiać przeglądarkę z uprawnieniami root w trybie graficznym, czego raczej nikt rozsądny nie próbowałby robić. Można, co prawda, napisać skrypt i całą operację aktualizacji nieco zautomatyzować. Problem w tym, że zarówno Firefox jak i Thunderbird ważą tak około 50 MiB każdy i taka aktualizacja polegająca na pobraniu całej aplikacji i zainstalowaniu jej na nowo zjadłaby trochę transferu. Istnieje jednak rozwiązanie, które zakłada wykorzystanie plików MAR. Ważą one zaledwie kilka MiB, bo zawierają jedynie aktualizację danej aplikacji. W tym wpisie spróbujemy się przyjrzeć procesowi aktualizacji z wykorzystaniem tych właśnie plików.

Czytaj cały wpis

Backup dysku przez sieć przy pomocy dd i netcat

Dyski talerzowe mają to do siebie, że zawierają elementy mechaniczne, np. ramię głowicy czy też sam napęd dysku. Te ruchome elementy się zużywają podczas eksploatacji dysku i trzeba mieć na uwadze, że prędzej czy później taki dysk ulegnie awarii. Statystycznie rzecz biorąc, około 5% dysków rocznie zdycha. Oczywiście to tylko statystyka i w sporej części przypadków dyski twarde ulegają awarii znacznie wcześniej. Niekoniecznie musimy mieć tutaj do czynienia z planowanym postarzaniem sprzętu i zwyczajnie możemy trafić na trefny model, którego wada fabryczna wyjdzie po 2-3 miesiącach użytkowania. Poza tym, producenci dysków implementują w nich te energooszczędne rozwiązania, które znacznie skracają żywotność nośników. Można o tym przekonać się analizując 193 parametr SMART (Load/Unload Cycle) odpowiadający za parkowanie głowicy w dyskach firmy Western Digital. Także na dobrą sprawę nie możemy być pewni kiedy nam ten dysk zwyczajnie odmówi posłuszeństwa. Dlatego też powinniśmy się zabezpieczyć na taką ewentualność robiąc kopię bezpieczeństwa (backup) danych zawartych na dysku. W tym wpisie postaramy się zrobić kompletny obraz dysku laptopa przy pomocy narzędzi dd i nc (netcat). Nie będziemy przy tym rozkręcać urządzenia czy też podłączać do portu USB zewnętrznego nośnika. Dane prześlemy zwyczajnie przez sieć.

Czytaj cały wpis

Mechanizm inhibitor lock w systemd

Hibernacja w przypadku komputerów, zwłaszcza laptopów, to bardzo użyteczny wynalazek. Na linux'ach wymaga ona czasem lekkiej konfiguracji ale generalnie można powiedzieć, że działa OOTB. Po migracji szeregu dystrybucji na systemd, proces hibernacji zdaje się przebiegać nieco inaczej niż to miało miejsce w przeszłości. Bardzo często możemy się spotkać z sytuacjami, gdzie przy próbie zahibernowania czy wyłączenia systemu, ten zwyczajnie ignoruje nasze żądanie i pracuje dalej jak gdyby nigdy nic. W tym przypadku nie mamy do czynienia z bug'iem ale ficzerem. Okazuje się bowiem, że systemd dysponuje mechanizmem zwanym inhibitor lock, który ma na celu powstrzymanie systemu od dokonania hibernacji, uśpienia lub wyłączenia w pewnych określonych sytuacjach. W tym wpisie przyjrzymy się nieco bliżej temu mechanizmowi.

Czytaj cały wpis

Implementacja protokołu IPv6 za pomocą tunelu 6to4

Ogromna cześć lokalnych ISP zdaje się nie nadążać za ciągle zmieniającą się rzeczywistością. Problem dotyczy implementacji protokołu IPv6, który jest już z nami od bardzo wielu lat. W przypadku mojego obecnego ISP raczej nie mam co liczyć na to, by w bliżej nieokreślonej przyszłości dodał on obsługę tego protokołu. Istnieje jednak mechanizm zwany tunelowaniem pakietów protokołu IPv6 wewnątrz pakietów protokołu IPv4 (w skrócie 6to4), którym warto się zainteresować. W ogromnym skrócie, część puli adresowej IPv6 jest zarezerwowana i zmapowana na adresy protokołu IPv4. Dzięki takiemu podejściu, każdy kto posiada stały zewnętrzny adres IPv4 ma również adres w puli IPv6. Mając zatem zarezerwowany adres, możemy pokusić się o utworzenie tunelu 6to4, co aktywuje w naszej infrastrukturze ten nowszy protokół obchodząc jednocześnie ograniczenia ISP. Trzeba jednak mieć na względzie, że nie jest to natywne wsparcie dla protokołu IPv6 i jest niemal pewne, że wystąpią mniejsze lub większe problemy z wydajnością.

Czytaj cały wpis

Jak dodać nowy dysk do LVM

Rozmiary obecnych dysków twardych zwykliśmy już liczyć w TiB. Jest to dość sporo ale ciągle zdarzają się sytuacje, gdzie zaczyna nam brakować miejsca na pliki. W takich przypadkach myślimy raczej o zmianie rozmiaru istniejących już partycji czy też dokupieniu nowego dysku. Pierwsza z powyższych opcji nie zawsze może wchodzić w grę, no chyba, że zaimplementowaliśmy sobie LVM. Jeśli tak, to możemy bez większego problemu zmieniać rozmiar każdego z tych voluminów LVM. Niemniej jednak, nawet jeśli już dostosujemy sobie te wirtualne dyski, to miejsce wciąż może nam się skończyć i raczej można przyjąć za pewne, że tak się stanie w bliżej nieokreślonej przyszłości. Gdy to nastąpi, czeka nas druga opcja wymieniona wyżej, tj. zaopatrzenie się w dodatkowy nośnik danych. Przy pomocy LVM jesteśmy w stanie ten nowy dysk dodać do istniejącej grupy voluminów i zwiększyć tym wirtualnym partycjom rozmiar bez potrzeby przerywania pracy systemu, czy też wykonywania dodatkowych czynności związanych z formatowaniem i instalowaniem systemu na nowo. W tym wpisie postaramy się przebrnąć przez ten proces.

Czytaj cały wpis