Obsah

Oprava rozbité VPS

vpsAdmin od verze 2.0 umožňuje členům samostatně vyřešit většinu problémů s poškozeným VPS, tj. když nestartuje nebo není přístupná po síti. K rozbití VPS může dojít například při aktualizaci systému, špatně zvoleným příkazem či konfigurací, apod.

Neznamená to, že vám s VPS nepomůžeme na podpoře. Zdatní administrátoři si však mohou zprovoznit VPS sami rychleji a bez čekání na naši pomoc.

Identifikace stavu VPS

Pro zvolení správného postupu je nutné zjistit, v jakém stavu se VPS nachází. V každém případě potřebujeme vzdálenou konzoli ve vpsAdminu, můžou se tam objevit důležité informace.

Selhává transakce zapnutí VPS

Ve VPS buď chybí/je rozbit init systém nebo jiná důležitá součást systému. Pokračuj připojením rootfs.

VPS je zapnut

Pravděpodobně se na něčem zasekl init, nebo jen není nastavená síť. Nahlédnutím do vzdálené konzole ve vpsAdminu lze zjistit, na čem se start VPS zastaví, jaké služby se nepodaří zapnout, apod.

Připojení rootfs

vpsAdmin umožňuje připojit jakýkoliv dataset do kterékoli VPS. Tzn. je možné připojit dataset, na němž je rootfs rozbité VPS, do jiné, funkční, VPS. K tomuto účelu může posloužit buď playground nebo i jiná produkční VPS. Nezáleží na tom, zda VPS s rootfs na připojeném datasetu běží, nebo ne.

Mount se vytvoří následovně: Detail záchranné VPS → Create mount → vybrat dataset rozbité VPS.

Tento text dále počítá s mountem rootfs rozbité VPS do /mnt/recovery.

Po dokončení opravy je doporučeno mount mezi VPS zase odstranit.

Porovnání se zálohou

Pokud problém nastal během posledních 14 dní, je možné VPS buď rovnou obnovit ze zálohy, nebo porovnat konfiguraci s funkční zálohou a pokusit se systém opravit.

Ve vpsAdminu připojíme vybranou zálohu do záchranné VPS. Poté můžeme porovnat např. /etc. Jestliže je záloha připojena do /mnt/snapshot, může příkaz pro porovnaní vypadat následovně:

# diff -qr /mnt/recovery/etc /mnt/snapshot/etc
Pokud /mnt/snapshot/etc neexistuje, jedná se o lokální snapshot a je nutné použít jinou cestu: /mnt/snapshot/private/etc.

Nyní se musí prozkoumat nalezené rozdíly a zvážit, jestli může mít jejich změna vliv na funkčnost systému.

Chroot

Dle typu závady může být nutné se do poškozeného systému chrootnout, třeba k práci s balíčkovacím systémem, nebo jinými programy.

Jestliže je rootfs připojen do /mnt/recovery, chroot se provede následovně:

# cd /mnt/recovery
# mount -t proc proc proc/
# mount -t sysfs sys sys/
# mount -o bind /dev dev/
# chroot /mnt/recovery /bin/bash

Nyní lze k opravě využít programy z poškozené VPS.

Konkrétní postup je závislý na distribuci - kontrola logů, oprava balíčkovacího systému, apod.

Po dokončení práce vše odpojíme:

# umount proc
# umount sys
# umount dev

Konfigurace sítě

Běží-li VPS, ale nereaguje po síti, zkontrolujeme, zda má:

Tyto příkazy dávají smysl jen ve vzdálené konzoli, ne v chrootu!

Chybí-li default routa, lze ji přidat pomocí ip r a default dev venet0. Takto přidaná routa po restartu VPS zmizí, není to trvalé řešení.

Nemá-li VPS IP adresy nebo routu, může to znamenat, že buď je z nějakého důvodu poškozená konfigurace sítě.

iptables lze vyčistit přes vzdálenou konzoli např. příkazem service iptables stop, záleží na použité distribuci. Manuálně by to mohlo vypadat následovně:

# iptables -F
# iptables -X
# iptables -P INPUT ACCEPT
# iptables -P FORWARD ACCEPT
# iptables -P OUTPUT ACCEPT
Smazáním iptables pravidel mohou být z internetu přístupné služby, které počítají s nastaveným firewallem a nejsou patřičně zabezpečeny.

Bez přístupu ke vzdálené konzoli je nutné buď nalézt soubor, do kterého se ukládají perzistentní pravidla a smazat jeho obsah, nebo vypnout službu iptables. Poté restartovat VPS.

Známé příčiny nefunkčnosti VPS

Plný disk

Pokud je disk zaplněn, VPS nepůjde zapnout. Lze zkusit připojit dataset do jiné VPS a promazat data. Pokud by nešlo ani to, obrať se na podporu.

Ubuntu a ISPConfig

Po vytvoření nového webu se může do /etc/fstab zapsat bind mount s parametrem _netdev. Start VPS se kvůli tomutu parametru zasekne při připojování souborových systémů, je nutné jej odstranit.

Debian

Pro správné nastavení sítě je nutné mít nainstalován ifconfig z balíčku net-tools.