LXC občas podivně zatuhává síť/socket/služba

Petr Stehlík pstehlik na sophics.cz
Úterý Květen 2 15:11:33 CEST 2017


Dobrý den všem,

rád bych oprášil své staré vlákno tím, že celý původní popis nechám
níže. Pořád mě trápí LXC, stále si nevím rady, jen jsem posbíral pár
dalších příznaků a chci se tady ještě jednou zeptat, jestli někoho
nenapadne jen podle těch příznaků, o co by mohlo jít.

Připomínám, že na hostiteli běží virtuál s poštou a několik dalších
virtuálů s weby. Po nějakém čase se třeba na poštovním serveru
"zasekne" nejčastěji Dovecot, obvykle těsně následovaný i SSH. Vypadá
to tak, že se např. telnetem přihlásím na port 110, zadám "username
pstehlik", myslím, že ještě stihnu zadat "pass tajne" a pak už dál nic,
zůstane to tuhé. Podobně i ssh - připojím se, zeptá se mě na heslo
(pokud se hlásím bez klíče), zadám heslo a dál už nic. Nejde ani Ctrl+C
na přerušení mého ssh klienta. Až po několika minutách tam vytimeoutuje
spojení.

Tohle všechno by nebylo ještě tak zlé, kdyby se nákaza nerozšířila i na
samotného hostitele, kde typicky postihne ssh. V tu chvíli se na něj
nemůžu přihlásit, abych restartoval ten zaseklý poštovní virtuál a tak
musím potupně jet do serverovny. Tam se můžu na konzoli normálně
přihlásit, lxc-info i lxc-ls ukazují, že vše krásně běží, všechny
ostatní virtuály skutečně jedou (to mi přijde nejzajímavější), jen
třeba ten poštovní ve skutečnosti nepřijímá POP3, takže z pohledu
zákazníků je mrtvý. Restart dovecotu nepomůže, restart celého virtuálu
pomůže, ale jen na chvíli.

Zajímavé taky je, že po opravě jednoho virtuálu restartem se do 24
hodin "pokazí" druhý virtuál (web server), kde se typicky zasekne SSH a
pár dalších služeb (nejčastěji cron, ale teď jsem tam třeba našel
"mysqldump | gzip" dělající něco celé hodiny). Po opravě druhého
virtuálu se opět zasekne první a tak pořád dokola (jak když pejsek s
kočičkou věšeli prádlo). Třetí a čtvrtý virtuál se na to nechápavě
dívají, celou dobu šlapou jako hodinky. Konfigurace všech virtuálů je
stejná, mimochodem...

Co je neuvěřitelné je, že po přihlášení se na konzoli se samo od sebe
"spraví" to zablokované ssh na hostiteli. To jsem si ověřil teď v
sobotu a ještě jsem se s tím nesrovnal.

Každopádně intervaly mezi jednotlivými zatuhnutími se postupně zkracují
z dnů až na hodiny, až jsem nakonec donucen restartovat celý
hostitelský server, což na několik týdnů snad pomůže.

Z toho posledního se mi zdá, že serveru zkrátka docházejí nějaké
zdroje, ale nejsem schopen zjistit, které to jsou. Je to něco, co se
restartem hostitele uvolní víc, restartem virtuálu jen trochu, nebo
skoro vůbec. Není to paměť. Není to místo na disku ani někde v tmpfs.
Je to něco dalšího.

Připomínám, že když daná situace nastane, nemám čas na jakoukoliv
analýzu, neboť jde o živý server hojně využívaný početnou klientelou.
Minule mi někdo navrhoval gdb a zjišťovat, kde přesně to v ssh démonu
stojí a na čem to čeká - tak to bohužel nemůžu, na to není čas.

Aktuálně zvažuju opravit to okenním způsobem, tj. přeinstalací, ale
raději bych se tomu ještě vyhl, kdyby to šlo. Je pravda, že ten
hostitel je mnoho verzí starý Debian, který procházel řadou dist-
upgrade a taky na něm mohlo zbýt něco po linux-vserver, co situaci
zhoršuje. Vedle mi běží čistě nainstalovaný Jessie s LXC obsahujícími
různé verze Debianu a tam je vše v pořádku. Tak naděje je, ale
reinstalace je nepěkné řešení - raději bych na to přišel, ať se něčemu
přiučím a nemám z LXC tak hořké pocity.

Díky za tipy,

Petr


Petr Stehlík píše v Po 05. 12. 2016 v 10:40 +0100:
> Dobré pondělí,
> 
> po 10+ letech naprosto bezproblémového užívání Debianu s linux-
> vserver
> paravirtualizací/kontejnerizací jsem byl různými DirtyC0w donucen
> přejít na LXC. Přechod sám by vydal na kratší temný článek, ale
> budiž,
> vypadá to, že to jede.
> 
> Ovšem jednou za delší dobu, třeba měsíc, se v některém z kontejnerů
> NĚCO stane, netuším co, a pak se některá služba, v podstatě
> kterákoliv,
> jakoby ZASEKNE, takže se na její port sice dá připojit, ale už ne
> přihlásit. Zatím se mi to asi třikrát stalo s ssh a teď jednou i s
> POP3. Jak říkám, port je otevřen, dá se k němu i připojit, ale dál se
> nic nestane, login prompt nenaskočí. Časem přestane fungovat i toto,
> asi jak se na serveru namnoží ty poslouchající služby, které čekají
> na
> klienta, se kterým se ale nikdy nespojí.
> 
> Netuším, proč se to děje, a nevím, jak to zachytit, trejsovat, a
> hlavně
> jak tomu předejít nebo jak to úplně vyřešit. Nemá někdo prosím tip?
> 
> Na závěr mohu jen říct, že nestačí tuto v tu chvíli nemocnou službu
> zastavit (prakticky se musí zabít) a znovu spustit, ta nákaza jakoby
> sedí někde vejš, možná v síťování směrem k hostiteli, protože
> port/služba dál zůstává nefunkční. Pomůže jedině shodit celý
> kontejner
> a znovu spustit.
> 
> Zapomněl jsem zmínit, že hostitelem je Debian Jessie a v kontejnerech
> jsou Debian Wheezy.
> 
> Díky za pozornost,
> 
> Petr
> 
> _______________________________________________
> Linux mailing list
> Linux na linux.cz
> http://www.linux.cz/mailman/listinfo/linux


Další informace o konferenci Linux