RSS Feed

‘domyślna’ Category

  1. Jak przenosić kontener LXC na inny serwer lub/i hyperwizor

    Kwiecień 5, 2019 by 0verlord

    Podstawy podstaw

    Przenoszenie kontenera na inny serwer 1:1 jest bardzo proste, chociaż należy pamiętać o kilku detalach, które mogą spowodować, że całą robotę będzie trzeba powtórzyć…

    Jeżeli tu jesteś, to na pewno wiesz, jak się tworzy kontenery, jak je startuje i gdzie się znajdują fizycznie na dysku. W telegraficznym skrócie omówię je na przykładzie Debiana

    Fizycznie katalog z kontenerami są w /var/lib/lxc.Czyli zakładając, że nasz kontener do przeniesienia nazywa się kontener, będzie znajdował się w /var/lib/lxc/kontener. Należy przenieść całą zawartość tego katalogu. Najlepiej, żeby docelowy katalog nazywał się tak samo, wtedy nie trzeba będzie poprawiać ścieżki w pliku konfiguracyjnym (config).

    Mogłoby się wydawać, że ponieważ kontener to zwykłe pliki, wystarczy je po prostu skopiować. Czyli zachowujemy ownera, grupa i uprawnienia plików i wszystko gra.

    System i spółka

    Nie do końca – jeżeli użyjemy rsynca, domyślnie zostanie wykonane mapowanie nazwy usera na jego uid na docelowym systemie. Czyli jeżeli mamy na hoście źródłowym usera zenek o id 555, a na docelowym też istnieje user zenek tylko ma uid 777 – zostanie to przeniesione i uid/gid odpowiednio zmieniony. O ile dla normalnych userów to nie problem, ale w przypadku userów systemowych możemy mieć problem. Nagle się okaże, że właścicielem spoola MTA będzie ktoś zupełnie inny, i nasz kontekst zacznie losowo (nie) działać.

    Szczególnie wyraźnie widać to na przykładzie baz danych. W zależności od kolejności instalacji i historii kontenera, uid i gid usera postgres będą inne. Po przekopiowaniu tak po prostu, na docelowym systemie ownerem clustra będzie zupełnie ktoś inny, najczęściej nie mający uprawnień do plików.

    No to przenosimy

    Dla zupełnie niecierpliwych gotowe polecenie na hoście docelowym, na który kopiujemy kontener

    rsync --progress --verbose --exclude '*.log' -Havz -S --numeric-ids  -e "ssh -p 2222" root@serwer_źródłowy:/var/lib/lxc/kontener /var/lib/lxc/kontener

    Omówienie dłuższe: –progress i –verbose pokażą co się dzieje, -e podaje parametry od ssh. Oczywiście dla loginu na roota trzeba albo włączyć logowanie po haśle, albo wrzucić klucz.

    Kluczowe jest –numeric-ids ta opcja wyłącza mapowanie nazwy na uida/gida. Przerzucane są pliki z takim uidem i gidem jak na hoście źródłowym i nic nie jest przepisywane. Zasadniczo

    -Havz przerzuci pliki, uprawnienia symlinki, device’y i ogólnie wszystko dokładnie tak, jak to jest na kontenerze.

    S (inaczej –sparse) – ta opcja jest przydatna do przerzucania plików typu sparse czyli takich, które to mają mniejszą objętość na dysku niż faktycznie pokazuje ich zajętość. Np. taki przyrastający plik vhd, niby ma 80gb, ale w zależności od różnych rzeczy – może mieć mniej). Opcja szczególnie przydatna przy przerzucaniu baz ldapowych (np. Zimbra takie posiada – plik „zajmuje” 80GB ale faktycznie ma np. 190MB, przy standardowym kopiowaniu przekopiujemy jego maksymalną pojemność, a nie faktyczną)

    –exclude , oczywiste wykluczenie, tutaj plików kończących się na .log, chociaż powinno też być *.log.gz, żeby niepotrzebnie nie przerzucać nieistotnych plików. Można używać wiele razy.

    Na koniec

    Ostatnia uwaga to poprawki w pliku config. Należy się upewnić, że po przerzuceniu będą nam się zgadzały ścieżki w szczególności lxc.rootfs, oraz urządzenie zapewniające sieć, np. numerek bridge’a. Jeżeli wszystko jest – lxc-start -n podniesie kontener. Trzeba też pamiętać, żeby na źródłowym usunąć wpis z autostartem (lxc.start.auto). Szczególnie jeżeli migrujemy kontenery na inny serwer w tym samym lanie. Poziom katastrofy z tego wynikającej jest na prawdę interesujący 😉


  2. Firebird i gbak: ERROR:cannot start transaction for password database – przy próbie wykonania kopii zapasowej

    Grudzień 28, 2015 by 0verlord

    Ten komunikat może wskazywać na wiele rozmaitych błędów, ja go zobaczyłem przy próbie wykonania gbaka ze zdalnego hosta, na którym nie mam monitoringu ani dostępu do shella „bo nie potrzeba i po co mają mi skrypty jakieś działać bez sensu” (koniec cytatu pana klienta).
    Przyczyna była dość prozaiczna, za to zagadkowa przy braku dostępu do serwera. W tym przypadku skończyło się miejsce na dysku. Daemon.log i syslog miały po 60GB. Po skasowaniu, wszystko wróciło do normy.
    Natomiast, czy baza się nie popsuła, to się dopiero dowiemy, bo FB wyjątkowo nie lubi braku miejsca na dysku. Najczęściej wtedy rozlatuje mu się ODS i kończy się na przywracaniu z backupu.


  3. Prehistoria informatyki

    Maj 14, 2014 by 0verlord

    Przy okazji wycieczki do Jaworzyny i muzeum parowozów zobaczyłem na żywo komputer Odra i kilka innych zabytków wczesnej jury informatyczno-dolnośląskiej.

    Ponoć niedawno ją odpalali, ale przy próbie przeliczenia prostego programu wysadziło korki 🙂

    Na tych fotkach jest też jedyny laptop firmy Commodore (tych od C64) i kilka dalekopisów. Ta duża szafa ze szpulami taśmy to nie stary magnetofon, tylko pamięć zewnętrzna do Odry.

    Wg przewodnika, ostatnią działającą Odrę zgaszono w 2008 r. Wtedy to po cenie złomu odkupiło ją. muzeum w Jaworzynie.


  4. Dla potomnych, ku pamięci, Windows 95.

    Grudzień 17, 2013 by 0verlord

    Czasami grzebiemy też w takich rzeczach. Parametry powalają, łza się w oku kręci a przedszkolaki mają szybsze zegarki. Jeżeli pamiętasz te czasy i te maszyny, to rispekt men!

    zdjęcie
    zdjęcie
    zdjęcie


  5. Zbiorcza aktywacja ulepszeń InsertGT dla wielu podmiotów w BiuroGT

    Styczeń 12, 2013 by 0verlord

    Każdy, kto kiedykolwiek aktualizował Inserta w dowolnym biurze rachunkowym, obił się o problem pt.: zbiorcza aktywacja ulepszeń. A to wszystko jest bardzo proste.

    Ale po kolei. Jeżeli nie mamy do dyspozycji BiuraGT – jest przerypane, bo każdy podmiot trzeba aktualizować i aktywować osobno. Czyli jeżeli biuro rachunkowe korzysta z Inserta, a nie ma biura GT – zasugerujcie im zakup pod groźbą podwyższenia faktury, lub rozliczania aktualizacji na godziny.

    Jeżeli już się biuro ma, sprawa jest prosta i wygląda tak:

    aktualizacja: BiuroGT -> Widok -> bazy danych (lub alt+6) -> nad listą podmiotów będzie „konwersja”. Klikamy, i się robi. Trzeba tylko zadbać o poprawne parametry dla Archiwizatora, bo inaczej nie zrobi się kopia czyli nie zrobi się aktualizacja.

    a teraz punkt główny tego wpisu, tj. aktywacja ulepszeń. Jeżeli nie jest zrobiona, przy podłączeniu do konkretnego podmiotu system „zaproponuje aktywację”. Ale jeżeli podmiotów jest np. 100, klikanie tego ręcznie to masakra – wzywamy na ratunek BiuroGT.

    Zaraz pod opcją „Konwersja” z akapitu wyżej, jest opcja „Synchronizacja licencji”, po kliknięciu której dostajemy takie okno:

    insert gt licencja aktywacja ulepszeń

    I teraz, jeżeli klikniemy po prostu dalej, system będzie miał zapisane stare numery aktywacyjne i nic nie zrobi. Potrzebujemy nowe numery – o ile oczywiście mamy wykupiony abonament na ulepszenia. Załóżmy, że mamy.

    Klikamy w opcję oznaczoną prostokątem, i lądujemy tutaj:

    insert pobieranie numerów

    Klikamy, a jakże, „Pobierz numery aktywacyjne” i numery się pobierają. Jak się pobrały, klikamy ok, i lądujemy na pierwszym ekranie synchronizacji licencji. Tym razem zaznaczamy opcje wg screena i dajemy dalej.

    insert synchro licencji

    Ulepszenia się aktywują z nowymi numerami. Meldujemy w centrali wykonaną misję „Nowy Subiekt”.


  6. przerywnik #3

    Sierpień 13, 2011 by 0verlord

    doskonałe podsumowanie tych co to wszystko wiedza, jeżeli działa Wikipedia.

    http://xkcd.com/903/

    co to świeca? co to samochód? ratunku? <-:


  7. Przerywnik

    Marzec 29, 2011 by 0verlord

    kill -9 IRL.


    Stąd.


  8. Everybody lies + trust noone, szczególnie na przejmowanych sieciach

    Marzec 10, 2011 by 0verlord

    Uzupełnienie historyjki z poprzedniego posta.

    Wchodzimy do tktelekomowni, technik pokazuje dwa serwery. Jeden to hosting („to ten na dole”) drugi to router („ten obok szafy na półce”, tak, kiedyś zrobię zdjęcie :P, pewnie im kabli nie starczyło).

    Oglądam, router ma dwa interfejsy i kabelki, hosting ma jeden. Init=/bin/bash załatwił problem, host wstał, patrzę w ipki, nie ma tego, na który się logowałem wcześniej. Dopisałem, rebutnąłem, a że akcja była szybka, bo kolejarze o 16 kończą pracę, poszliśmy.

    Loguję się wieczorkiem, a ten host nie przypomina tego, z którego robiłem backup. Podniosłem apacza, bo nie wstawał, odzyskałem pocztę, ale dalej nie działał LMS. Po krótkiej chwili popatrzyłem do backupu, który na szczęście zrobiłem, zanim host się zapętlił i zmarł.
    To zdecydowanie był inny host. Z konfiguracji wynikało, że tamten miał tylko jeden interfejs, więc nie był routerem. Czyli hosting stał na routerze, a LMS na serwerze. Padł LMS a nie serwer, a że hosting też był routerem, net ludziom działał. Tylko zaktualizować się nie da, bo LMS nie działa. A jeszcze na dokładkę dowiedziałem się, że serwer LMSa ma 1 GB dysku bo stał na nim LMS. Tak, z mysqlem reającym po nim na maksa, pozwalającym na podłączenie się demonom itp.

    Tak, następnym razem nikomu nie uwierzę, i sprawdzę sam co za hosty mam przejmować.

    Trzyosobowa komisja w składzie ja, ja i ja przyznaje temu serweru i jego adminowi betonowa kostkę jako symbol ogólnego braku kumacji.


  9. Przerywnik

    Luty 10, 2011 by 0verlord

    Piękne podsumowanie buttonów FB.
    .
    Stąd.


  10. Chrome i OSX #fail

    Styczeń 30, 2011 by 0verlord

    Korzystam z tej przeglądarki. Nie zżera mi tyle ramu co Safari i jest od niego mniej toporna mimo ogólnie ładnego jabłkowego dizajnu.
    Szarpało mi kiedyś ramem na macu, więc odpaliłem monitor. Mój osobisty zaobserwowany rekord memory leaku, to było 897MB. Komp zwolnił na maksa i zaczął kręcić bez sensu wiatrakami z otwartym terminalem i właśnie Safari…
    Myślałem, że to jakieś flashe czy inne śmieci, ale jak wisiało dalej z jedną otwartą pustą zakładką i nie chciało ramu oddać, poddałem się.

    Pomijając czy Chrome jest lepsze, czy gorsze, czy szpieguje mnie bardziej czy mniej, korzystam. Natomiast odkryłem ciekawy fail. Chrome na OSX jest zintegrowane z keychain’em, więc zapisywane przez nie hasełka lądują ładnie w systemowym narzędziu do ich przechowywania. Nie trzeba żadnych 1passwd czy innych płatnych wynalazków. Keychain ma wszystko co trzeba.

    Ci, którzy korzystają, zapewne widzieli nie raz komunikat o zapisywaniu haseł dla danej strony. Ja na tym pasku kliknąłem w „nigdy dla tej witryny”.

    Po przeklikaniu wszystkich opcji, nie znalazłem wyłączenia tej opcji. Pewnie, dla Windowsa po kliknięciu w „pokaż hasła” można sobie odznaczyć, ale w Macu odpala się keychain i tyle w temacie. Ciężko mi to nawet było wygooglać, ale w końcu jeeeest. Usability tak własnie wygląda, patrzcie i uczcie się ziomy i ziomówy… A zacznijcie od uruchomienia terminala (CMD+spacja, terminal)

    cd Library/Application\ Support/Google/Chrome/Default
    sqlite3 Login\ Data
    delete from logins where blacklisted_by_user = 1;
    .quit

    Znalezione tu.

    Oczywiście ten wariant wylewa dziecko z kąpielą, lepsze by było select * from logins where blacklisted_by_user = 1;, odnalezienie wpisu, na którym popełniliśmy #fail i np. update logins set blacklisted_by_user=0 where origin_url='ten własnie sajt', albo po innym polu, które można sobie odczytać przy pomocy polecenia .schema logins.