Linux narażony na uszkodzenie w wyniku awarii zasilania?

10

Administratorzy w mojej firmie twierdzą, że Linux jest podatny na zranienie spowodowane awarią zasilania. Mówią, że maszyny Windows zawsze przetrwają przerwy w dostawie prądu, ale Linux-y często stają się niemożliwe do odzyskania (tzn. Nie można już uruchamiać maszyn). Stało się tak, ponieważ powiedzieli mi, że firma energetyczna odcina zasilanie naszym biurom na długi okres czasu, więc administratorzy chcieli, żebym zamknął wszystkie urządzenia Linux, do których tylko ja mam dostęp przed awarią.

Myślałem, że Linux powinien być solidny?
Moje pytanie: - czy jest jakiś proces, który powinienem uruchomić, aby uniknąć sytuacji, w której moje urządzenia z systemem Linux zostaną uszkodzone przez awarię zasilania?

Tyler Durden
źródło
2
Pomijając różne problemy z systemem operacyjnym, przerwy w dostawie prądu wpływają na każdy komputer, po prostu dlatego, że zatrzymuje się każdy uruchomiony proces. Zawsze lepiej jest pozwolić maszynie się wyłączyć, ponieważ wtedy wszystkie procesy mogą zatrzymać się normalnie.
Doktoro Reichard
Doh, wiem to. Pytanie brzmi, czy Linux jest z jakiegoś powodu bardziej kruchy niż Windows, a jeśli tak, to czy mogę coś zrobić, aby zwiększyć jego odporność (na przykład zmuszanie go do częstszego opróżniania pamięci podręcznej dysku).
Tyler Durden
2
Moja odpowiedź miała być ogólna i obejmująca: bez względu na to, co robisz, zawsze istnieje ryzyko, że coś gdzieś zawiedzie. Jeśli Linux jest bardziej kruchy, zostawiam go tym, którzy potrafią konkretnie odpowiedzieć. Moje osobiste doświadczenia (z Windows i OSX) pokazały mi, że jeśli nie robię czegoś, na czym mi zależy (na przykład symulacje), łatwo się odbijają. Może coś, co powinieneś dodać, to sposób użytkowania maszyn.
Doktoro Reichard
„Czy jest jakiś proces, który powinienem uruchomić, aby uniknąć sytuacji, w której moje komputery z Linuksem zostaną zniesione przez brak zasilania?” Problem dotyczy poziomu sprzętu. Jedynym poleceniem, które można tu uruchomić, jest „zamknij komputer”. Jeśli martwisz się tym, polecam UPS (choć staje się to drogie szybko, jeśli masz dużą liczbę komputerów)
David
7
Zawsze jest wielkim słowem, jest także fałszywe. Windows może ulec uszkodzeniu podczas awarii zasilania. Dlaczego nie masz kopii zapasowych baterii i nie skonfigurujesz systemu do wyłączenia? Mogę śmiało powiedzieć, że każdy, kto mówi „zawsze”, myli się przez 99,99999% czasu.
Ramhound

Odpowiedzi:

14

Czy Linux jest bardziej kruchy niż Windows?
Odpowiedź brzmi: to zależy .

Kiedy ktoś mówi „nie można uruchomić” w tej sytuacji, tłumaczę to na „Uszkodzenie systemu plików”, a odpowiedź Tak lub Nie na pierwotne pytanie wszystko zależy od używanego systemu plików.

System Windows nie pozwala mieć pełnego wyboru systemów plików, na które zezwala Linux. Prawie nigdy nie widzisz systemu Windows innego niż NTFS. NTFS ma wbudowane funkcje, które pomagają w przypadku utraty zasilania, takie jak kronikowanie i transakcje plików, które mogą zostać wycofane w przypadku awarii.

Linux może mieć to i nie może. Wszystko zależy od konfiguracji serwera. Jeśli serwer używał ext2 1, możesz być bardzo podatny na uszkodzenie plików w przypadku awarii zasilania. Porównaj to z systemem, który używał czegoś takiego jak Btrfs, który ma więcej funkcji integralności danych niż NTFS.

Jeśli więc administrator systemu, z którym rozmawiasz, pracował tylko z systemami ext2, może mieć rację, ale jeśli użyjesz innego systemu plików, może się mylić.


1: Ext2 był przez długi czas domyślny zarówno dla Debiana, jak i dla Red Hat Linux. Został teraz zastąpiony głównie przez Ext3, który jest bardziej podobny do NTFS pod względem funkcji integralności danych.

Scott Chamberlain
źródło
Co z systemami plików z kronikowaniem i transakcjami plików, które nie są NTFS? Nie zaprzeczam, że brak pełnej i całkowitej mocy w systemie Windows może prowadzić do lepszej stabilności, jeśli coś zostanie przerwane.
Ramhound
3
Wspominam, że w mojej notatce na dole, Ext3 jest na tym samym poziomie co NTFS. Uważam, że sysadmin mógł mieć tylko systemy plików Ext2 i z jego punktu widzenia miałby rację. To tak, jakbyś był narażony tylko na pliki Fat32 i nigdy nie widział NTFS, podobnie czułbyś się z Windowsami (wersje Windowsa na Fat32 miały straszną historię uszkodzenia plików po utracie zasilania)
Scott Chamberlain
Całkowicie
spóźniłem się
+1 za odniesienie do różnych używanych systemów plików i kronikowania.
Doktoro Reichard
Najlepsza odpowiedź tutaj +1
Pimp Juice IT
3

Nie, Linux nie jest z natury mniej odporny niż Windows, jeśli chodzi o nagłe przerwy w dostawie prądu. To, co może się zdarzyć - w przypadku dowolnego systemu operacyjnego - polega na tym, że zapisywane są rzeczy w systemie plików na dysku twardym dokładnie w momencie utraty zasilania i (historycznie) może to uszkodzić system plików.

Rozwiązaniem tego problemu jest użycie systemu plików kronikowania, który jest odporny na ten problem na podstawie sposobu, w jaki zapisuje informacje. Większość nowych systemów plików - w tym Ext3 i ExT4 (najpopularniejsze systemy plików dla Linuksa), ponieważ, jak wierzę, NTFS również jest. Tak długo, jak korzystasz z systemu plików kronikowania, nie napotkasz tego problemu.

Później podczas uruchamiania systemu, jeśli masz bazę danych (patrzę na MYSQL, Postgres nie cierpi z tego powodu), możesz mieć analogiczne problemy z bazą danych MYSQL - MYSQL często nie jest szczególnie solidny ( zgodność z Google ACID MYSQL dla ten temat). Można obejść ten problem, wymuszając sprawdzenie indeksów przy ponownym uruchomieniu, jeśli konfiguracja MySQL nie jest zgodna z ACID.

Innym (nieco Jadesem i być może niesprawiedliwym w stosunku do systemu Windows) może być to - Linux-Box jest bardziej niezawodny niż Windows (mierzony przez Uptime i potrzebę ponownego uruchomienia) - dlatego możliwe jest, że gdy Linux Linux nie uruchomi się przy ponownym uruchomieniu, jest to problem sprzętowy ze względu na starość, a nie problem z oprogramowaniem - podczas gdy wadliwe okno systemu Windows może zostać wykryte wcześniej z powodu częstszych restartów)

Davidgo
źródło
1

W zależności od dystrybucji i posiadanego systemu plików może być mniej lub bardziej narażony na ataki. Jeśli wiesz o planowanym odcięciu zasilania, zdecydowanie powinieneś ręcznie wyłączyć (i poświęcić czas na konserwację, taką jak odkurzanie systemów lub może ponowne podłączenie ... W przypadku nieplanowanych przerw w dostawie prądu, uzyskaj systemy UPS z oprogramowaniem do wyłączania systemu Linux, aby nie musisz się martwić. Powinieneś to uruchomić mimo to. Dla większości dystrybucji Linuksa dostępny jest plik APCUPSD, jeśli nie to, sprawdź u swojego dystrybutora, co jest już w nim lub jest dostępne. Upewnij się, że się zamknie twoje systemy czysto, zanim zaczniesz na nich polegać.

Czarnoskóry
źródło
-9

Przeprowadziłem badania tego pytania i odkryłem, że to, co mówi mój dział IT, jest zasadniczo poprawne, Linux jest znacznie bardziej narażony na awarię zasilania niż Windows. Powodem jest to, jak działa tabela i-węzłów w systemie Linux / unix. Ponieważ jest to lista nieuporządkowana i jest ciągle modyfikowana, nie ma oddzielenia między ważnymi, statycznymi plikami, takimi jak pliki binarne jądra, a bezwartościowymi plikami, takimi jak pliki tymczasowe. Oznacza to, że wpisy i-węzłów do krytycznych plików systemowych są ciągle przepisywane, co jest bardzo złym projektem. W rzeczywistości w krytycznych plikach systemowych istnieje większe prawdopodobieństwo, że ich wpisy i-węzłowe zostaną zapisane w dowolnym momencie niż pliki nieistotne. Po zaniku zasilania ma tendencję do niszczenia każdej zapisanej części tabeli i-węzłów, która prawdopodobnie nie zawiera wskaźników do plików systemowych. Same pliki systemowe są w porządku i nienaruszone, ale katalog, w którym można je znaleźć, jest uszkodzony. Sytuację pogarsza buforowanie dysku, które powoduje zwiększenie rozmiaru uszkodzonych obszarów tabeli i-węzłów.

W systemie Windows nawet stary system plików FAT jest znacznie bardziej wytrzymały. FAT ma również tabelę, ale jest to tabela uporządkowana, więc nie ma pomieszanych plików systemowych z plikami tymczasowymi. Zwykle pliki systemowe znajdują się razem w jednym obszarze katalogu i jest mało prawdopodobne, aby ten obszar był zapisywany bardzo często. Ponadto FAT ma katalog kopii zapasowej, więc nawet jeśli katalog jest uszkodzony, po prostu wraca do kopii zapasowej. Oznacza to, że w przypadku FAT jest mało prawdopodobne, aby użytkownik utracił łącza do plików w przypadku awarii zasilania, nawet pliki tymczasowe. Jednak w systemie Linux, ponieważ tablica i-węzłów jest ciągle zapisywana, użytkownik ma praktycznie gwarancję utraty dostępu do plików w przypadku awarii zasilania.

Jedyne, co można zrobić, aby to złagodzić, to wyłączenie buforowania dysku.

Tyler Durden
źródło
2
-1. Prosimy o wsparcie swoich roszczeń za pomocą linków, artykułów, źródeł itp., A ja odwołam moje zdanie. Do jakich systemów plików Linux się odwołujesz?
Kamil Maciorowski
Tyler - Czytałeś odpowiedź Scott Chamberlain na twoje pytanie, prawda? Czy jesteś w 100% pewien, że sposób, w jaki objaśniasz te wskaźniki przechowywania tabel i-węzłów dla plików systemu Linux, w tym plików systemowych systemu operacyjnego, działa w ten sposób dla wszystkich obecnych systemów plików systemu Linux, ponieważ możesz wybrać więcej niż jeden zgodnie z objaśnieniem, a niektóre mają te więcej solidne sterowanie metadanymi plików i-węzłami / księgowaniem / transakcjami niż inne, w tym niektóre, które są bardziej wydajne niż nawet NTFS, jak wyjaśniono? Może jesteś systemem lub ten, o którym pisałeś, jest spowodowany użyciem starszego systemu plików Linux, a zatem mądrze wybierasz?
Pimp Juice IT
Głównym powodem, dla którego uważam tę odpowiedź - i całe pytanie - za żart, jest to, że Linux / Unix napędza Internet, a nie Windows. Jeśli awarie mogą tak łatwo zniszczyć systemy Linux / Unix, Internet nie będzie w stanie funkcjonować. Ponadto routery korzystające z systemu Linux byłyby wtedy bezużyteczne, gdyby rutynowo szybko włączały się i wyłączały.
JakeGould
Ta odpowiedź jest nie tylko zła; to po prostu nonsens. Żaden z faktów podanych w tej odpowiedzi nie jest nawet zdalnie dokładny.
duskwuff -inactive-