... czyli zrobiłem sobie kuku. I zamiast skończyć dłuższy artykuł na zupełnie inny temat, straciłem trochę czasu, a teraz wrzucam tę notkę.
Bieda
Krzywdę zrobiłem sobie (a raczej mekk.waw.pl-owi) bezmyślnie akceptując w trakcie do-release-upgrade sugestię zainstalowania gruba na głównej partycji (czyli na wirtualnym dysku mojego linode). Mea culpa, choć - jeśli dobrze pamiętam -wyrazisty warning o ryzykowności instalacji gruba na partycji pojawił się już ... po wykonaniu się tej operacji.
Upgrade zakończyło się rebootem a po reboocie system nie wstał. A lishowa konsola pokazała błędy wskazujące na problemy z rozpoznawaniem partycji.
Ratunek
Po chwili jałowych kombinacji (reboot w single mode, reboot z inną wersją jądra) ochłonąłem, przypomniałem sobie, że
mam parę gigabajtów nie wykorzystanego dysku i po prostu (przy pomocy interfejsu webowego linode) zadeployowałem dystrybucję (Ubuntu 9.10) od nowa (na nowy wirtualny dysk).
Do powstałej konfiguracji dopiąłem jako pomocnicze wszystkie stare dyski (/home i /database tak samo jak dotychczas, stary root pod nową literkę) i nakazałem reboot do niej.
System wstał - co oczywiście nie było szczególnie zaskakujące, było to równoważne robieniu nowego VPSa.
Następnie spróbowałem ręcznie podmontować stary root (mnt /dev/xvde /mnt). Uff. Podmontował się poprawnie. Inne partycje - także. Wszystkie dane pozostały.
Nie byłem pewien czy z wnętrza VPSa uda mi się gruba posprzątać, przeniosłem zatem dane (na /mnt stary root, na / nowy):
rsync --progress -axH /mnt/var/ /var/
rsync --progress -axH /mnt/usr/ /usr/
rsync --progress -axH /mnt/opt/ /opt/
rsync --progress -axH /mnt/root/ /root/
rsync --progress -axH /mnt/srv/ /srv/
rsync --progress -axH /mnt/lib/ /lib/
rsync --progress -axH /mnt/bin/ /bin/
rsync --progress -axH /mnt/sbin/ /sbin/
rsync --progress -axH /mnt/etc/ /etc/
Kopiowałem po jednym katalogu, a nie całość, bo wolałem przenoszenie /lib, /bin, /sbin i /etc zostawić na koniec, nie chciałem też - profilaktycznie - przenosić /boot.
Reboot, chwila niepokoju i ... system wstał, zamykając przygodę na nieco ponad godzinie niedostępności. Zostaje jeszcze do skasowania stary dysk root, ale to zrobię za parę dni, gdy upewnię się, że o niczym nie zapomniałem.
W tym wszystkim plusik dla Linode za dostępne w webowym interfejsie narzędzia, dzięki którym mogłem sobie poradzić sam (stworzyć nowego roota z preinstalowaną dystrybucją, ustalić jak mają zostać udostępnione poszczególne dyski, robić rebooty, korzystać z awaryjnej konsoli) bez szukania pomocy adminów.
Gdybym nie miał wolnego dysku ... też miałbym szanse sobie poradzić - webowy
interfejs pozwala na zmiany rozmiaru wirtualnych dysków, mógłbym zatem wygospodarować potrzebne miejsce zmniejszając stare urządzenia.
A na koniec Linode przysłało mi maila o niepokojąco dużym disk io rate.
Wnioski
Co mogłem zrobić lepiej i co mogę zrobić, by takich problemów w przyszłości uniknąć?
Cóż - uważać. mekk.waw.pl nie jest serwisem na tyle ważnym, by był wart redundancji, testowania procedur administracyjnych przed wykonaniem czy utrzymywania skryptów reanimujących system od zera.
Trochę się zastanawiam nad wypróbowaniem przy następnej okazji pełzającego upgrade z wykorzystaniem stworzonego na chwilę - przez sklonowanie - drugiego VPSa.
Obserwacje o upgrade
Samo upgrade niczego nie zepsuło (tj. wszystkie potrzebne mi programy działają nadal, pojawił się Postgres 8.4 ale Postgres 8.3 też jest dostępny i nadal działa nie wymuszając natychmiastowego upgrade) ... z jednym drobnym wyjątkiem. Z niewiadomych przyczyn w /etc/default/memcached
pojawiło się ENABLE_MEMCACHED=no i memcached przestało startować. Trywialne do poprawienia ale dziwne.
No, ale zapomniałeś napisać, że przed rozpoczęciem upgrade zrobiłeś pełny backup danych ;)
Ale to jest przecież oczywiste...
Backup danych i konfiguracji mam, straciłbym tylko troszkę watchbota (musiałbym się cofnąć do robionego parę dni temu backupu bo ze względu na wcześniejszy upgrade w domu i niezgodność wersji slonego wstrzymała się replikacja - zresztą, jej przywrócenie było jednym z głównych motywów do robienia upgrade ;-)). Natomiast nie backupowałem samego systemu (uważam to za zwyczajnie nieekonomiczne przy tym hoście) i musiałbym go konfigurować od początku, z czym byłoby znacznie więcej zachodu...
Przymierzam się do założenia sobie konta na linode, czy mógłbyś napisać jakąś notkę (nawet krótką :-) o Twoich innych przemyśleniach z korzystania z linode? Może coś o szybkości działania i dostępności, problemach konfiguracyjnych? Który pakiet warto wybrać?
Muszę przyznać że podobają mi się Twoje artykuły - są przesiane dużą ilością przydatnych szczegółów i informacji i są ciekawe, to naprawdę robi wrażenie.
Pozdrawiam
Marek
Za wiele tych innych przemyśleń nie mam, dlatego może po prostu odpowiem. Z rzeczy o które pytasz:
szybkość/wydajność - Linode ślicznie wypadło w tym benchmarku, sam tak systematycznych badań nie robiłem (nie mam teraz aplikacji które wysycałyby to, co mam) ale nigdy nie czułem tu żadnych problemów
dostępność - przez cały czas, przez jaki je używam (półtora roku) miałem dwa czy trzy wymuszone przez adminów rebooty (do paru minut niedostępności), jeden casus niedostępności przez sieć przez około godzinę (sąsiada ktoś DDOSował) i jeden fuckup administracyjny z ich strony (dla mnie oznaczał tylko wymuszony reboot, dla niektórych innych osób było ponoć parę godzin off). Moje własne fuckupy kosztowały więcej ;-)
Co do pakietów - proponuję na początek kupić na miesiąc najtańszy i się rozejrzeć. Ile RAM i dysku Ci potrzeba to już naprawdę zależy od aplikacji i przewidywanego obciążenia. Linode pozwala na łatwe upgrade w razie potrzeby więc można startować od dołu.
Aha: nie pamiętam czy wspominałem, że już mają europejskie sajty. Nie chciało mi się migrować więc nie testowałem ale przy robieniu serwisu dla Polaków to teraz najsensowniejsza opcja.
Jeśli coś jeszcze konkretnego chciałbyś wiedzieć, to pytaj.
PS Cieszę się, że moje artykuły się przydają.
Aha: a chyba jedyna rzecz, którą można źle zrobić przy konfiguracji, to sensowny podział dysku. Trzeba pamiętać o zrobieniu swapu (sensowny to 2xRAM), do tego moim zdaniem resztę warto podzielić na główny dysk inicjowany dystrybucją (jakieś 2-3GB) i osobne partycje na dane, własne aplikacje itp.
Dziękuję za pomoc, dwa dni temu dostałeś ode mnie refa na linode. Artykuł o ustawieniach DNS i servera mejlowego są dla mnie nieocenioną pomocą :-) Niedługo powinienem wystartować mój "serwisik" ale już mogę stwierdzić że wydajność Linode jest naprawdę niezła.
Pozdrawiam Marek Dominiak
Także pozdrawiam i życzę powodzenia.