Prowadzę serwer za pomocą Debian Squeeze z kilkoma kontenerami OpenVZ. Kontenery działają głównie w Squeeze, niektóre Lenny, a niektóre zostały już zaktualizowane do Wheezy. Host nie robi tak wiele poza iptables i DHCP. Serwery plików, serwery proxy, serwery poczty, Kerberos, LDAP, ... są umieszczane w kontenerach. System działał stabilnie przez wiele lat i nie miał większych zmian, z wyjątkiem niektórych reguł zapory przez ponad rok.
2 dni temu system nagle się zawiesił. Miałem wiele problemów z ponownym pojawieniem się. Na początku nie pozwalało mi się zalogować przez ssh. Logowanie do katalogu głównego zostało odrzucone przez „Nie istniejesz. Idź stąd!' Lokalne logowanie było w porządku. Jakiś czas później ssh znów zaczął działać. Przez przypadek nie użyłem ponownie wiersza z historii bash, ale napisałem nowe polecenie, które potrójnie sprawdzone było identyczne z wierszem, który nie działał wcześniej, ale działał przed awarią.
Następnie system uruchomił się, ale ruch sieciowy na większości protokołów został zablokowany po SYN ACK. DNS, Telnet i SSH były w porządku, ale reszta to bałagan. Po kilku godzinach łowienia w ciemności i kilkakrotnym przeładowywaniu zapory wszystko nagle wszystko poszło dobrze. Nie mogłem znaleźć niczego podejrzanego w dziennikach - ale nie jestem ekspertem kryminalistycznym.
Dzisiaj nscd serwera plików wyszedł z gniazd, aby skontaktować się z LDAP z powodu przydziału kontenera. Coś, co nigdy wcześniej się nie wydarzyło. Widziałem też dużo (> 30) gniazd zgłoszonych przez smbd.
/ var / log / messages wyglądały tak samo jak syslog . /var/log/kern.log miał te dodatkowe informacje dotyczące przyczyn awarii:
/var/log/kern.log:2950:Sep 19 10:46:57 asgard kernel: [6529441.320086] INFO: task sendmail:32181 blocked for more than 120 seconds.
/var/log/kern.log:2982:Sep 19 10:48:57 asgard kernel: [6529561.324525] INFO: task kdmflush:1932 blocked for more than 120 seconds.
/var/log/kern.log:3005:Sep 19 10:48:57 asgard kernel: [6529561.324694] INFO: task xfssyncd:10162 blocked for more than 120 seconds.
/var/log/kern.log:3027:Sep 19 10:48:57 asgard kernel: [6529561.324934] INFO: task postgres:16827 blocked for more than 120 seconds.
/var/log/kern.log:3060:Sep 19 10:49:51 asgard kernel: [6529561.325129] INFO: task imapd:31749 blocked for more than 120 seconds.
/var/log/kern.log:3084:Sep 19 10:49:51 asgard kernel: [6529561.325248] INFO: task cleanup:32194 blocked for more than 120 seconds.
/var/log/kern.log:3106:Sep 19 10:50:57 asgard kernel: [6529681.324028] INFO: task flush-253:3:3216 blocked for more than 120 seconds.
/var/log/kern.log:3142:Sep 19 10:50:57 asgard kernel: [6529681.324224] INFO: task kjournald:6859 blocked for more than 120 seconds.
/var/log/kern.log:3166:Sep 19 10:50:57 asgard kernel: [6529681.324366] INFO: task syslogd:11720 blocked for more than 120 seconds.
/var/log/kern.log:3198:Sep 19 10:50:57 asgard kernel: [6529681.324574] INFO: task postgres:16827 blocked for more than 120 seconds.
/var/log/kern.log:7152:Sep 19 19:29:41 asgard kernel: [ 1440.617090] INFO: task sendmail:11892 blocked for more than 120 seconds.
Ostatnia awaria programu „sendmail” miała miejsce po ponownym uruchomieniu komputera. Od tego czasu nie wystąpiły już takie zdarzenia. „imapd” i „postgres” zdecydowanie działają w różnych kontenerach.
Cóż, nie widzę palącego pistoletu, ale prawdopodobnie jestem po prostu ślepy. Ustawienie systemu ze znanych / przypuszczalnie dobrych kopii zapasowych uderzyłoby mnie zbyt mocno, aby wypróbować go bez bardzo dobrych powodów.
Byłbym wdzięczny za każdą radę, co następnie sprawdzić.
Dzięki za pomoc.
Aktualizacja : Wkładając więcej wysiłku w szukanie jakiegoś kursora poprzedzającego awarię, znalazłem w syslog:
Sep 19 10:09:56 asgard ntop[7965]: **WARNING** packet truncated (8754->8232)
Sep 19 10:09:56 asgard ntop[7965]: **WARNING** packet truncated (8754->8232)
Sep 19 10:09:56 asgard ntop[7965]: **WARNING** packet truncated (10490->8232)
Sep 19 10:09:56 asgard ntop[7965]: **WARNING** packet truncated (8754->8232)
Sep 19 10:09:56 asgard ntop[7965]: **WARNING** packet truncated (8754->8232)
Sep 19 10:09:56 asgard ntop[7965]: **WARNING** packet truncated (17442->8232)
Sep 19 10:11:02 asgard ntop[7965]: **WARNING** packet truncated (11650->8232)
Sep 19 10:11:02 asgard ntop[7965]: **WARNING** packet truncated (10202->8232)
Sep 19 10:11:29 asgard ntop[7965]: **WARNING** packet truncated (8754->8232)
Sep 19 10:13:27 asgard ntop[7965]: **WARNING** packet truncated (8754->8232)
Sep 19 10:20:33 asgard ntop[7965]: **WARNING** packet truncated (8754->8232)
Wiem, że jest to uważane za bezkrytyczne, ale wydaje się, że jest to rzadkie wydarzenie. Obcinanie pakietów istnieje tylko w dniu drugiej awarii. Nigdzie indziej we wszystkich dostępnych plikach dziennika.
Być może nie masz żadnych błędów systemu plików, ale jestem pewien, że widzisz te ostrzeżenia w swoim dzienniku, ponieważ masz wiele procesów w stanie D (czekających na We / Wy), a jądro informuje Cię o długim oczekiwaniu.
źródło
Błąd wskazuje, że twoje procesy czekają zbyt długo (120 sekund) na dostęp do dysków; dzieje się tak na bardzo zatłoczonych serwerach, na których dyski są zbyt zajęte, aby reagować na procesy.
Możesz to sprawdzić, zaznaczając „Oczekiwanie” w vmstat.
źródło