Ogólne

    NetBSD w OVH na dedykowanym serwerze

    OVH oferuje dedykowane serwery w przystępnych cenach, zwłaszcza z linii kimsufi. Przy okazji posiada ich tyle, że swego czasu zablokowali możliwość kupowania nowych, ponieważ klienci starszych maszyn nie przedłużali umów, tylko kupowali nowe maszyny za niższą cenę i z lepszymi parametrami.

    Nastał czas migracji jednej maszyny (Pentium III Xeon) z 2010 roku na nową (Core 2 Duo). I tu zaczynają się problemy, ponieważ w roku 2010 w OVH było coś takiego jak vKVM, czyli podłączone zasoby fizycznego serwera poprzez Qemu, z możliwością użycia dowolnego ISO i instalacji czego dusza zapragnie. Pomny takich możliwości, nowy serwer został zakupiony i przesiadka ze starego z funkcjonującym NetBSD i kilkoma usługami wydawał się banalna. Niestety OVH jakiś czas temu nie mówiąc nic nikomu zrezygnowała z vKVMa dając do dyspozycji dość szeroki wachlarz dystrybucji, niestety bez NetBSD.

    ovh1

    Muszę tu z uznaniem zauważyć, że od 2011 roku nie musiałem wchodzić do panelu zarządzającego, ponieważ system osiągnął imponujący uptime 1012 dni po czym padł mu zasilacz i musiał zostać wymieniony, tracąc cały uptime :)

         #               Uptime | System                                     Boot up
    ----------------------------+---------------------------------------------------
         1   1012 days, 07:06:5 | NetBSD 5.99.37            Thu Jul 21 08:36:46 2011
         2   216 days, 23:27:49 | NetBSD 5.99.37            Wed Dec  8 12:34:48 2010
         3    64 days, 16:47:53 | NetBSD 5.99.37            Sun Aug 15 20:59:35 2010
         4    30 days, 02:34:48 | NetBSD 5.99.37            Mon Nov  8 09:59:07 2010
         5    19 days, 20:31:45 | NetBSD 5.99.37            Tue Oct 19 14:18:21 2010
         6     7 days, 15:07:02 | NetBSD 5.99.37            Wed Jul 13 17:28:44 2011
         7     4 days, 05:54:32 | NetBSD 5.99.37            Wed Aug 11 14:31:49 2010
    ->   8     0 days, 00:03:21 | NetBSD 5.99.37            Tue Apr 29 09:02:03 2014
    ----------------------------+---------------------------------------------------
    1up in     4 days, 05:51:12 | at                        Sat May  3 14:56:35 2014
    no1 in   1012 days, 07:03:3 | at                        Sat Feb  4 15:08:55 2017
        up   1355 days, 19:34:0 | since                     Wed Aug 11 14:31:49 2010
      down     0 days, 22:59:33 | since                     Wed Aug 11 14:31:49 2010
       %up               99.929 | since                     Wed Aug 11 14:31:49 2010

    Wymiana zasilacza

    Oczywiście takie standardy jak Apache, MySQL, Postfix, Dovecot, BIND itp. można przenieść na dowolną instalację, ale jest zasadnicza różnica między przeniesieniem configów (dzięki bardzo poukładanemu filesystemowi NetBSD) a przeniesieniem i poprawieniem każdej jednej ścieżki. Dodatkowo czas gonił bo pierwszego maja stary serwer miał zostać wyłączony.

    Szczęśliwie OVH w razie padu systemu daje możliwość uruchomienia go w trybie rescue. Jest to tryb w którym system bootuje się z sieci, na maila dostajemy tymczasowe hasło roota, a wszystkie slice’y/partycje możemy sobie podmontować i sprawdzić co tam nie gra, względnie przenieść gdzieś dane i zaorać stary system nowym z listy.

    System rescue jest wystarczający do zainstalowania jakiegokolwiek innego systemu z ISO wg. własnych potrzeb. W przypadku *BSD mamy właściwie dwa sposoby. Pierwszy to odpalenie rescue w trybie freebsd (musi być zainstalowany najpierw jakiś FreeBSD z listy). W tym trybie dostajemy dostęp do partycji na obydwóch dyskach fizycznych z obsługą FFS2. Po założeniu partycji FFS i rozpakowaniu setów z ISO NetBSD (można użyć drugi dysk jako tymczasowe miejsce na ściągnięcie setów, ponieważ rescu jest w trybie do odczytu tylko), właściwie mamy działający system. Pozostaje kwestia bootloadera, którego z FreeBSD nie zainsytlujemy. FreeBSD nie ma binarnej kompatybilności z NetBSD (w drugą stronę taka kompatybilność istnieje).

    Niesprawdzony sposób to zrzucenie z innego NetBSD pierwszych 446 bajtów z bootowalnego dysku.

    dd if=/dev/wd0d of=/tmp/netbsd_boot.dump bs=446 count=1

    Dlaczego 446? Dlatego, że po wgraniu na inny dysk będzie tam tylko kod rozruchowy. Zrzucenie 512 bajtów zrzuca cały disklabel, który kiedy nie jest identyczny spowoduje sieczkę na dysku.

    dd if=/tmp/netbsd_boot.dump of=/dev/ada0s1 bs=446 count=1

    To powinno po restarcie poprawnie wybootować NetBSD z pierwszego dysku . Oczywiście trzeba pobawić się w „ślepą inżynierię” aby wykryć wszystkie urządzenia, nazwy interfejsów sieciowych i po ponownym wybootowaniu w trybie rescue, odpowiednio wyedytować pliki konfiguracyjne. Ja używałem do tego prostych skryptów uruchamianych z rc.local lub z crona po wybootowaniu i wpisujących wynik do pliku, np:

    @reboot         dmesg >> /root/dmesg.txt

    Drugim sposobem jest instalacja z ISO przy pomocy Qemu. W tym celu uruchamiamy rescue linuksowe. Jest to jakis zmodyfikowany Debian. Jeżeli dysponujemy ilością RAM około 4GB możemy sobie system przerzucić do RAMu i dodatkowo mieć ISO w RAM.

    mount -t tmpfs -o size=4000m tmpfs /mnt
    mkdir /mnt/var
     mkdir /mnt/var/cache
     mkdir /mnt/var/lib
     mkdir /mnt/var/run
     mkdir /mnt/usr
     mkdir /mnt/lib
    rsync -a /var/cache/ /mnt/var/cache/
     rsync -a /var/lib/ /mnt/var/lib/
     rsync -a /var/run/ /mnt/var/run/
     rsync -a /usr/ /mnt/usr/
     rsync -a /lib/ /mnt/lib/

    rsync chwilę potrwa.

    mount -B /mnt/var/cache /var/cache
     mount -B /mnt/var/lib /var/lib
     mount -B /mnt/var/run /var/run
     mount -B /mnt/usr /usr

    Voila! Mamy Linuxa w ramie w trybie RW.

    Ściągamy teraz najnowsze dostępne ISO gdzieś do /mnt

    cd /mnt && ftp -a ftp://ftp.fr.netbsd.org/pub/NetBSD/iso/6.1.4/NetBSD-6.1.4-amd64.iso
     (albo wget ftp://ftp.fr.netbsd.org/pub/NetBSD/iso/6.1.4/NetBSD-6.1.4-amd64.iso)

    Potrzebujemy jeszcze Qemu

    apt-get update
     apt-get install qemu

    Fajne jest to że OVH ma swój mirror repozytorium Debiana więc idzie to szybko. Dodatkowo serwer ftp NetBSD we francji chyba także jest w OVH :)

    2014-04-29 19:55:36 (10.8 MB/s) – `NetBSD-6.1.4-amd64.iso’ saved [347023360]

    Przygotowania skończone, uruchamiamy Qemu ze ściągniętym ISO i dyskiem fizycznym jako pierwszy dysk twardy:

    qemu-system-x86_64 -net nic -net user -m 1G -alt-grab -localtime  -k en-us -cdrom \
     /mnt/NetBSD-6.1.4-amd64.iso -hda /dev/sda  -vnc :0

    Jeżeli nie dostaniemy żadnych błędów w konsoli, znaczy się, że działa i możemy się zalogować na nasz IP w OVH przez VNC. Jeżeli instalujemy system 32 bitowy zamiast qemu-system-x86_64 uruchamiamy po prostu qemu.

    NetBSD bootuje się w OVH

    Instalacja NetBSD przez VNC

    Należy przeprowadzić standardową instalację, i wstępnie skonfigurować system do działania. Można np. spróbować skonfigurować wszystkie podstawowe karty sieciowe (wm,bge0,fxp0,re0 itp.), jeżeli trafimy w tą właściwą to po restarcie z dysku NetBSD powinien zacząć odpowiadać na ping. Oczywiście trzeba otworzyć ssh, dodać użytkownika albo pozwolić rootowi się logować. Mi udało się dostać do systemu za drugim podejściem. Pierwszy raz zrobiłem literówkę w bramie :) Ustawienia sieciowe oczywiście bierzemy z systemu rescue, są identyczne z normalnym systemem. W przypadku droższych serwerów może być jeszcze potrzeba zmiany w fstabie z emulowanego wd0 na rzeczywisty sd0. W moim przypadku, jako że serwer posiada dyski SATA, zarówno w Qemu jak i fizycznym NetBSD dyski widniały jako wd0.

    No i to tyle. Powyższy sposób z Qemu może być stosowany do każdego ISO, np. Windows Server czy dowolnej dystrybucji Linuksa. Do Windows 7 lub 2008 trzeba doinstalować jeszcze kvm (apt-get install kvm)

    Przy okazji na koniec mała dygresja, o tym jak szybko rynek reaguje na takie zmiany i braki jak zrezygnowanie z vKVM. Szukając informacji i materiałów odnoście tego zagadnienia natrafiłem na kilka stron które w przedziale 20$-35$ oferują instalację dowolnego lub z innej listy systemu operacyjnego – głównie Windows. Przykłady:

    http://winstaller.org/

    https://www.pozzo-balbi.com/products/custom-installation.

    A u mnie macie za darmo i po polsku ;)

    Podziękowania dla morr’a za pomoc przy pierwszych próbach z instalacją bez Qemu :)

    BONUS: porównanie dmesga z maszyny w Qemu i fizycznego serwera po instalacji – http://maciejewski.org/temp/dmes_ovh_qemu_i_bm.txt

    Related Posts with Thumbnails

    Comment

    CommentLuv badge

    Add your widget here