Czy poprawiłoby to wydajność zapisu, aby wypełnić sformatowany dysk zerami?

14

Mam dysk 2 TB, który został wypełniony w> 99%. Usunąłem partycje fidski sformatowałem je mkfs.ext4.

O ile mi wiadomo, rzeczywiste dane znajdujące się na dysku nadal istnieją. Mimo to tabela partycji została ponownie przypisana.

Pytanie brzmi: czy poprawiłoby to wydajność zapisu dla dalszych działań zapisu, gdyby dysk został wyczyszczony ? Po wyczyszczeniu mam na myśli wypełnienie dysku zerami?

Coś jak

dd if=/dev/zero of=/dev/sdx bs=1 count=4503599627370496
Brettetete
źródło
8
Brak korzyści na początku od zera, ponieważ zastąpi wszystko, co jest na początek.
Moab
7
Gdyby to był dysk SSD, odpowiedź brzmiałaby „piekło nie”, ponieważ mkfs.ext4 faktycznie używa TRIM do odrzucenia zawartości całej partycji, więc ręczne zapisywanie zer na nim nieznacznie obniżyłoby wydajność.
user1686,
2
@grawity Zastanawiam się, czy istnieje dysk SSD, który automatycznie zamienia zapisy wszystkich zer na TRIM.
kasperd
@kasperd: dobre pytanie uzupełniające!
liori
Inne możliwe pytanie: jeśli wspomniany dysk był maszyną wirtualną zamontowaną w sieci SAN, która wykonała wdrożenie dysku niskiego poziomu, czy może to pomóc (w tym, jeśli dane zostały usunięte na poziomie maszyny wirtualnej, chyba że system używa interfejsu API obsługującego maszynę wirtualną) , SAN sprawiłby, że wszystkie usunięte bloki muszą pozostać w pobliżu, a ustawienie ich na wszystkie zera kończyłoby się wiązką zduplikowanych bloków, które wszystkie wskazywałyby na zero.)
Foon

Odpowiedzi:

36

Nie, nie poprawiłoby to wydajności.

TL; DR: magnetyczne dyski obrotowe nie działają w ten sposób.

Po pierwsze, kiedy zapisujesz dowolne dane na obrotowym napędzie magnetycznym, dane te są przekształcane w domeny magnetyczne, które mogą wyglądać zupełnie inaczej niż zapisywany wzór bitowy. Odbywa się to częściowo dlatego, że jest o wiele łatwiejsze do utrzymania synchronizacji gdy wzór odczytany z półmisek ma pewną zmiennością, a na przykład długi ciąg „zero” lub „jeden” Wartości stałaby się bardzo trudne do utrzymania synchronizacji . (Czytałeś 26 393 bity lub 26 394 bity? Jak rozpoznajesz granicę między bitami?) Techniki przeprowadzania tej transformacji między bitami danych komputerowych a fragmentami, które można zapisać, ewoluowały z czasem; na przykład wyszukaj zmodyfikowaną modulację częstotliwości , MMFM,Grupowe rejestrowanie kodów i bardziej ogólna technologia kodowania z ograniczoną długością .

Sam proces nagrywania, takie jak Hamr , PMR , gontem i tak dalej są orthgonal do tego, że opisują one mechanikę jak domeny magnetyczne są przechowywane na nośnikach fizycznych.

Po drugie, kiedy zapisujesz nowe dane w sektorze, domeny magnetyczne odpowiednich części talerza są po prostu ustawiane na pożądaną wartość. Odbywa się to niezależnie od tego, jaka poprzednia domena magnetyczna znajdowała się w tej konkretnej lokalizacji fizycznej. Talerz już wiruje pod głowicą zapisującą; najpierw odczyt bieżącej wartości, a następnie zapisanie nowej wartości, jeśli tylko wtedy, gdy jest inna, spowodowałoby, że każdy zapis wymagałby dwóch obrotów (lub dodatkowej głowicy dla każdego talerza), powodując dwukrotne opóźnienie zapisu lub znaczne zwiększenie złożoności napędu, z kolei wzrost kosztów. Ponieważ czynnikiem ograniczającym wydajność sekwencyjnego we / wy dysku twardego jest szybkość, z jaką każdy bit przechodzi pod głowicą odczytu / zapisu, nie przyniosłoby to żadnej korzyści użytkownikowi. (Tak na marginesie, czynnikiem ograniczającym losowe działanie We / Wy jest szybkość, z jaką głowica odczytu / zapisu może zostać ustawiona na pożądanym cylindrze, a następnie żądany sektor dociera pod głowicę. Głównym powodem, dla którego dyski SSD mogą być tak szybkie w przypadkowych obciążeniach We / Wy, jest to, że całkowicie eliminują oba te czynniki.)

Jak wskazał JakeGould , jednym z powodów, dla których możesz chcieć zastąpić dysk jakimś stałym wzorem (takim jak wszystkie zera), byłoby zapewnienie, że żadne pozostałości wcześniej zapisanych danych nie zostaną odzyskane , celowo lub przypadkowo. Ale zrobienie tego nie będzie miało żadnego wpływu na wydajność napędu w przyszłości, z wyżej wymienionych powodów. Innym powodem, o którym można powiedzieć, że „poprawia wydajność”, jak zauważył liori , jest pomoc w kompresji nieużywanych części przechowywanych obrazów dysków, ale nawet to nie poprawia wydajności używanego systemu.

CVn
źródło
3
Innym powodem zerowania partycji / dysków jest planowane wykonanie zrzutu pamięci partycji / dysku (np. Jako kopia zapasowa, wykonanie obrazu systemu operacyjnego dla wielu komputerów, technika migracji systemu itp.). Zera dobrze się kompresują, co może różnić się od poprzedniej zawartości przechowywanej na dysku.
liori
@liori Dobra uwaga, ale nie jest to częsty scenariusz dla użytkowników końcowych i jest daleki od tego, co opisuje OP.
CVn
Czy dyski optyczne są nierotacyjne lub magnetyczne?
Max Ried
4

Ty to mówisz:

Pytanie brzmi: czy poprawiłoby to wydajność zapisu dla dalszych działań zapisu, gdyby dysk został wyczyszczony? Po wyczyszczeniu mam na myśli wypełnienie dysku zerami?

100% nie. Zapisywanie zer na dysku nie poprawia wydajności. Zrobiłbyś to tylko w celu zniszczenia danych. Wiedząc to, mówisz tak:

O ile mi wiadomo, rzeczywiste dane znajdujące się na dysku nadal istnieją.

Technicznie tak… Dane, które wcześniej istniały na dysku, nadal istnieją na dysku na pewnym podstawowym poziomie. To powiedziawszy, nie istnieje w formie łatwej do uzyskania lub odzyskania w tym momencie, ale może to być niepokojące, jeśli naprawdę martwisz się, że dane zostaną naruszone przez kogoś, kto zechce odzyskać te fragmenty danych, które pozostawać.

Jeśli więc chodzi o bezpieczeństwo i prywatność, możesz chcieć zapisać zera na dysku, aby upewnić się, że całe wolne miejsce zostało naprawdę wyczyszczone. Ale bezpieczeństwo i prywatność to absolutny jedyny powód, dla którego kiedykolwiek wymazałeś wolne miejsce zerami, ponieważ takie działanie nigdy nie poprawia wydajności.

JakeGould
źródło
Czy uruchomienie takiego narzędzia recovernie jest liczone jako „łatwe”? Wyświetliłoby się mnóstwo plików na pełnym dysku, który właśnie był mkfs„d.
hobbs
0

Mój prezent za dwa centy dla was wszystkich jest moim własnym doświadczeniem, TAK pomaga, ale ostrożnie.

Miałem dużo dysków SSD i na podstawie własnych testów zalecam pełne wypełnienie zerami przed przepisaniem tabeli głównej i zamiast usuwania partycji odtworzyć tabelę główną.

Później wyjaśnię dlaczego, ale kroki będą ˋddˋ, aby wypełnić cały dysk SSD, użyj bs = 1M, znacznie szybciej niż bs = 1 i zapomnij parametr count, aby przejść do końca (da błąd braku więcej miejsca, gdy dotrzeć do końca, który został wykryty, więc nie martw się, aby zobaczyć taki błąd, należy go pokazać); po pełnym wypełnieniu użyj w razie potrzeby gparted lub cokolwiek, co chcesz napisać tabelę główną (MBR / GPT / itp.), to „przycina” cały dysk, a następnie tworzy partycje o pożądanym formacie itp.

Po co wypełniać je zerami? Krótka odpowiedź jest taka, że ​​moje doświadczenie jest takie, gdy wypełniam je zerami niektórych dysków SSD, w których naprawiono podawanie 2-24 nieczytelnych bloków, nie ma już bloków nierealnych.

Teraz pierwszą rzeczą, którą robię, kiedy otrzymuję nowy dysk SSD, przed jego użyciem, jest pełne wypełnienie go zerami, aby upewnić się, że nie będę więcej cierpieć z powodu typowych losowych błędów nieczytelnych bloków 1KiB.

Moje doświadczenie: Używając oprogramowania do odczytu / testowania całego dysku SSD (mówi ile czasu zajmuje odczytanie każdego „sektora”), otrzymałem wiele par „512-bajtowych sektorów” (bloki 1KiB), które są niewiarygodne i ich pozycja zmienia się losowo, a liczba awarii waha się od 2 do 24 itd .; po pełnym wypełnieniu zerami i odtworzeniu tabeli głównej (która nie powoduje przycinania) nie będzie już nieczytelnych sektorów.

Mój test zderzeniowy: Instesd wypełnienia zerami w celu odzyskania po takich błędach, pozwoliłem na użycie jednego dysku SSD, po kilku godzinach i przy zapisanym tylko mniej niż jednym terabajcie (dysk SSD 120 GiB) zmarł nieprawidłowo, nie pozwala na żadne dostęp do niego, bios płyty głównej go nie widzi, obudowy USB zawiesza się podczas uzyskiwania dostępu, więc ani Windows go nie widzi, ani fdisk Linixa nie widzą.

To był test „zginania” z wieloma dyskami SSD, które kupiłem w tym samym czasie, identyczne ... wszystko, czego nie zerowałem, są martwe, reszta ma wiele przeniesionych bloków, ale bez żadnych nieczytelnych błędów.

Oczywiście doszedłem do wniosku, że wszystkie dyski SSD nie są niezawodne, bez względu na markę i pojemność.

Tak więc, z mojego doświadczenia, pierwszą rzeczą jest zmusić ich do pełnego wypełnienia przynajmniej raz, lepiej zerami niż losowymi (jest to szybsze).

Co więcej, większość dysków SSD wykonuje wewnętrzne przycinanie, gdy jest zapisywane zerami (algorytmy przypominania garbe itp.).

Ponadto, jeśli wypełnisz je po raz pierwszy, każdy blok, który powoduje błąd zapisu, zostanie ponownie przydzielony. O wiele lepiej jest, gdy coś takiego dzieje się bez istotnych danych, gdy zapisywanie zer, jeśli dane zostały utracone (wszystkie były zerami), nie ma to znaczenia, ale jeśli dane są „istotne” dla systemu operacyjnego, jest bardzo złe.

Większość SSD dokonuje ponownej alokacji, ale tracąc dane w bloku, który dał błąd zapisu, tylko „przedsiębiorstwo” (kosztują> 10 € za GiB) ponawia próbę zapisu po prawidłowej alokacji. Niektóre dyski SSD utracą także wszystkie inne „sektory” w przypadku takiego nieudanego bloku (jak np. „Odrzuć”).

Najlepiej wypróbuj najpierw, po pełnym wypełnieniu sprawdź dane SMART, aby zobaczyć, ile jeszcze można dokonać realokacji.

Nie jest tak ważne, ile zostało dokonanych realokacji, większość dysków SSD pochodzi od producenta z niektórymi blokami już realokowanymi, znajdź jeden z zerowym mniejszym niż 1%, więc ważny jest stosunek, realokacja w porównaniu z przyszłymi ewentualnymi realokacjami.

Z mojego doświadczenia wynika, że ​​setki dysków SSD zmarły w ciągu 5 pięciu lat, niektóre zmarły w pierwszej godzinie użytkowania, inne w ciągu tygodnia, inne w ciągu miesiąca; ale wszystko, co zrobiłem przy zerowym pełnym wypełnieniu, trwało od 2 do 3 lat, z 13GiB zapisywanymi każdego dnia, 3 * 365 * 13 GiB = 13,9 TiB napisane, znacznie mniej niż mówią producenci (> 100TiB).

Ale prędkość ma znaczenie, najbardziej, jeśli w systemie Windows (w systemie Linux dobre rozłożenie 2xHDD LVM2 daje dokładnie taki sam czas rozruchu, ale nie zawiedzie w ciągu> 25 lat), więc używanie dysku SSD w cenie 0,21 € za gigabajt (120GiB = 25 €) to warto (dla Windows), między innymi należy je zmienić po 2 lub 3 latach; Mam nadzieję, że technologia poprawi niezawodność.

W systemie Linux nie chcę już dysku SSD, dopóki nie będzie bardziej niezawodny, ale w przypadku systemu Windows (Vista, 7 i 10) partycja systemowa jest koniecznością (w niektórych przypadkach czas rozruchu dziesięć razy krótszy, w przypadku systemu Windows Vista zamiast rozruchu> 30 minut uruchamia się> 4 min na starym laptopie).

Tak, biorąc pod uwagę moje doświadczenie, pełne wypełnienie zerami jest koniecznością.

Ale tylko po otrzymaniu dysku SSD i przed użyciem go do czegokolwiek.

Wskazówka: jeśli dysk SSD nie radzi sobie ze śmieciem, a system operacyjny nie nakazuje przycinania wszystkich, lepiej wykonaj pełne wypełnienie zerami, na końcu to jest to, co wewnętrznie na dysku SSD, gdy odrzuca bloki. Również zapisywanie zer usunie zapis elektroniczny, dlatego pomaga odzyskać uszkodzone bloki odczytu.

Ponadto za każdym razem, gdy zmienisz na nim dane, spróbuj wykonać klon, dysk SSD poinformuje, że zapis był w porządku, również w nieczytelnych sektorach (można je zapisać, ale nie można odczytać), żaden system operacyjny nie jest zaprojektowany do obsługi takiego warunku , wszystkie zakładają, że jeśli wtite jest OK, można odczytać dane; nie mylić czytelnego z odczytem różnych danych niż to, co zostało napisane.

Takie jest moje doświadczenie z dyskami SSD i HDD. W przypadku rozruchu systemu Windows i aplikacji używam dysku SSD, ale zawsze z klonem wykonanym na normalnych dyskach twardych, ponieważ dysk SSD umiera w ciągu mniej niż 3 lat, ale w przypadku systemu Linux korzystam z 2x lub 3x dobrego 2,5-calowego dysku twardego, przy normalnym użytkowaniu uzyskuje się podobny czas, jaki dałby dysk SSD , ale trwają znacznie dłużej (> 25 lat).

Nie jestem w stanie zapłacić> 1000 € za dysk SSD dla przedsiębiorstw 100GiB, który działa dobrze przez 10 lat, wolę płacić 25 € za 130GiB co 2 lub 3 lata. Cena ma znaczenie 100 € rocznie (przedsiębiorstwo) w porównaniu do 10 € rocznie (Yucon, Samsung itp.), Po prostu wykonaj matematykę.

Claudio
źródło
Zmuszanie do zapisu uszkodzonych sektorów jest rzeczywiście dość niezawodnym sposobem ich „naprawy”, o ile sektory zarezerwowane są nadal dostępne.
konfetti,