Mamy wewnętrzny serwer WWW (zwirtualizowany, hostujący tablicę ReviewBoard, ale niezbyt odpowiedni) i mamy stosunkowo spójny tryb awarii z nieudanymi montowaniami NFS powodującymi / wypełniającymi się. Distro to Ubuntu (nie pytaj) jeśli rozwiązanie zależy od innej dystrybucji, wdrożenie będzie wolniejsze.
Kopie zapasowe są wykonywane w / mnt / backup /, który ma być zamontowany w systemie plików NFS w innym systemie. Niestety, gdy podłączenie nie powiedzie się lub spadnie, kopie zapasowe są wykonywane w głównym systemie plików, co, jak można sobie wyobrazić, nie trwa długo, zanim / zostanie zapełnione, a następnie usługi zaczną się nie powieść.
Omówiono szereg możliwych rozwiązań.
Monitoruj / mnt / kopie zapasowe i upewnij się, że nie jest to root. Być może praca crona.
Użyj / mnt / protected / backups i najpierw zamontuj / chronione w małym systemie plików, być może w pętli do pliku lokalnego, więc prawdopodobieństwo niepowodzenia jest znacznie mniejsze.
Chmod a-rwx / mnt / backups (punkt montowania głównego systemu plików). Nie jestem pewien, czy montaż nad chronionym reżyserem zadziała, myślę, że tak.
Na zamontowanym drzewie utwórz katalog o nazwie „Kopie zapasowe”, a następnie miękkie łącze „ln - s / mnt / backup / Backups / Backups”. Użycie / Backups do tworzenia kopii zapasowych zakończy się niepowodzeniem, chyba że zostanie zamontowane / mnt / backup, ponieważ lokalne drzewo nie zawiera podkatalogu.
Sprawdzanie, czy katalog jest poprawnie zamontowany w skrypcie kopii zapasowej.
Interesuje mnie informacja zwrotna na temat tych podejść, zalet i innych technik stosowanych przez ludzi jako standardowy sposób ochrony systemu plików root przed tego rodzaju nieprzyjemnością.
Najbardziej odpornym na błędy rozwiązaniem jest uczynienie punktu montowania niezauważalnym. To byłoby twoje rozwiązanie nr 3. Jest jednak jeden dodatkowy krok, który należy wykonać.
chattr +i /mnt/backups
. Dzieje się tak, ponieważ nawet bez uprawnień root nadal mógłby zapisywać do katalogu. Dziękichattr +i
(ustawia niezmienną flagę) nawet root nie może do niej pisać. Po zamontowaniu montowania uprawnienia nie mają znaczenia, ponieważ będą dotyczyły katalogu zdalnego, a nie lokalnego.źródło
encfs
systemem plików bezpieczników. Daje błąd:fusermount: user has no write access to mountpoint
Co powiedział ewwhite. Ponadto dodatkowe monitorowanie stanu podstawowego systemu nie byłoby złym pomysłem.
Coś takiego jak Monit może sprawdzić, ile pozostało miejsca . Jeśli chcesz się nudzić przy monitorowaniu systemu, możesz spojrzeć na Nagios, ale Monit jest lekki i zrobi podstawy.
Ponieważ używasz Ubuntu, Monit jest już w repozytorium, więc możesz zrobić „sudo apt-get install monit”, a następnie zacząć przeglądać pliki konfiguracyjne, aby poinformować go, aby wysyłał alerty we właściwe miejsce, monitorował właściwe usługi itp. Oto krótki samouczek .
źródło
Oto jedna linijka, którą możesz uruchomić jako zadanie crona, przy założeniu, że dany mount jest w fstab:
źródło
W przypadku rozwiązania długoterminowego: Nie jestem pewien, jak to zrobić na Ubuntu (jestem RH zorientowany) lub czy warto (jeśli masz tylko jedną maszynę), ale metodologią, która działała dla nas przez WIELE lat, jest stworzenie osobnej logiki woluminy, systemy plików, a nawet grupy woluminów na serwerach. Tak więc zgodnie ze standardową praktyką tworzymy woluminy logiczne LVM dla /, / tmp. / usr, / usr / local, / opt, / home, / var, przestrzeń wymiany i osobna partycja dla / boot. Takie podejście bardzo utrudnia systemom plików wypełnienie i wyłączenie systemu. W rzeczywistości takie podejście prawie uniemożliwi wypełnienie systemu plików /. Nadal musisz oglądać / tmp, / var oczywiście. Jeśli potrzebujemy przechowywać dane, tworzymy dla nich zupełnie inną grupę woluminów. Takie podejście ma również inne zalety, dowolne rozszerzanie systemów plików, przenoszenie ich, tworzenie nowych itp.
źródło