Co to za urlop bez awarii.
Wczoraj o 7:10 dostałem informację, że padł jeden z serwerów
webowych. Jako, że jest to Bardzo Ważny Serwer, przerwałem to co
aktualnie mnie pochłaniało (spanie) i usiadłem do komputera.
Serwer webowy jest maszyną wirtualną hostowaną na Vmware ESX (jak większość mojej infrastruktury).
Problem ujawnił się zaraz po zalogowaniu do konsoli VI, na dysku
macierzy skończyło się miejsce. Ale moment, kilka dni temu było tam
33GB wolnego miejsca. Problemem okazał się “zapomniany” snapshot
zrobiony kilka tygodni wcześniej przez soft do backupu. Oprogramowanie,
owszem stworzyło snapshot, wykonało backup, ale po sobie nie
posprzątało. Snapshot rósł sobie w najlepsze przez kilka tygodni. W
międzyczasie na serwerze uruchomiony został proces defragmentacji
dysku. Co ta operacja robi z dyskami różnicowymi … teraz to wiem 
Ok, mam przyczynę, ale co z tym zrobić? Zawartość dysku w chwili padu wyglądała następująco:
dysk systemowy – 70 GB i dysk różnicowy 77 GB, reszta pomijalna, wolnego miejsca na dysku 30MB.
Z takiej sytuacji są dwa wyjścia – przenieść maszynę wirtualną na
większe dyski, albo zmergować dysk różnicowy z podstawowym. Jako, że
serwer i tak już nie działał, a klienci bili pianę wybraliśmy opcję
drugą. 30MB wolnej przestrzeni nie było problemem. W sytuacji, gdybym
miał więcej niż 1 aktywny snapshot, należałoby wygospodarować więcej
miejsca. Wyłączyłem serwer wirtualny, wybrałem snapshot i kliknąłem
delete. Po 15 minutach ESX wypluł komunikat “Operation timed out”.
Dziwne, na dyskach dalej 30MB wolnego miejsca, esx dalej mieli dyskami
jakby cały proces mergowania się nie zakończył. I nie zakończył się
faktycznie. Można to poznać na 2 sposoby – 1) to śledzenie operacji
zapisu i odczytu dysków (zakładka performance w VI) , 2) zalogowanie
sie do konsoli esx odnalezienie pliku dysku i śledzenia daty jego
modyfikacji. Jako, że maszyna jest wyłączona jedynym procesem jaki
zmienia jej znacznik czasu jest operacja mergowania. U mnie, przy 70GB
dysku różnicowym cała operacja trwała 2,5h (ESX 3.5). Podszas pracy
procesu (szczególnie jak zaniepokoi was komunikat o przekroczonym
czasie operacji) odradzam restart ESXa lub klikanie 2x “delete” na
snapshocie. Po zakończeniu scalania dysków, snapshota nie widać w
przystawce “snapshot manager” a na dysku brak plików dysku różnicowego
(dysk1-00000.x), no i 30GB wolnego miejsca. Lekcje na przyszłość:
Ustawić sobie alertowanie o kończącym się miejscu na dysku, śledzenie
czy któraś z maszyn wirtualnych przypadkiem nie ma aktywnego snapshota.
I spokojnie wracam na plac budowy – piękna, żółta kopara zabiera mi
ziemie z działki – zapytam kierowcy, może da pojeździć a on sobie na
fajeczke skoczy.
