User Tools

Site Tools


navody:vps:oprava

This is an old revision of the document!


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řistupná 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 zapnuto

Pravděpodobně se na něčem zaseknul 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řipojít *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.

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á:

  • IP adresy: ip addr, popřípadě ifconfig -a
  • default routu: ip route list
  • přístup neblokuje pravidlo či politika v iptables
Tyto příkazy davájí 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ě, nebo se jedná o bug ve vzctl, které např. zatím nepodporuje nainstalovanou verzi distribuce.

Skripty, kterými vzctl nastavuje ve VPS síť si lze prohlédnout na https://src.openvz.org/projects/OVZL/repos/vzctl/browse/etc/dists.

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.

Setkali jsme se s rozbitím konfigurace např. kvůli existenci /etc/network/interfaces.head nebo tail, jenž obsahoval statickou konfiguraci sítě a přebil tak konfiguraci, kterou vytvořilo vzctl.

navody/vps/oprava.1442137248.txt.gz · Last modified: 2015/09/13 09:40 by Aither