Mam następujące urządzenia z Linux Mint 18.1 na laptopach i GNU / Linux Debian 9 na serwerze.

(Wszystkie są 64-bitowe i mają pulpit Cinnamon).

Wszystkie urządzenia napędowe są sformatowane w systemie plików ext4 ; RAID 1 jest wykonywany przy użyciu mdadm .

  1. Laptop z 1 dyskiem SSHD (nie mylić z dyskiem twardym).

  2. Laptop z 3 dyskami: 2 x konsumenckie dyski twarde w RAID 1 i 1 x SSD.

  3. Serwer z 5 dyskami: 4 x korporacyjne dyski twarde dwukrotnie RAID 1 i 1 x SSD.

Mam system na tych dyskach SSD i nigdy nie zdefragmentowałbym dysku SSD.

Pytanie dotyczy dysków twardych i dysków SSHD.

Znalazłem stary plik PDF przedstawiający kilka dodatkowych funkcji e4defrag .

  1. Dlaczego system plików musi być zamontowany, zgodnie z tym komunikatem o błędzie podczas próby defragmentacji odmontowanego systemu plików? Chcę zrozumieć, dlaczego tak jest:

    Filesystem is not mounted 
  2. Chciałbym mieć zaimplementowaną defragmentację wolnego miejsca. AFAIK jest teraz w trakcie przeglądu. Czy mogę np. skompilować e4defrag ze źródła z tymi opcjami dostępnymi, czy tak czy inaczej?

    e4defrag -f /deviceOrDirectory 
  3. Chciałbym też lubię używać odpowiednich funkcji danych:

    e4defrag -r /deviceOrDirectory 

Mam wiele ważnych powodów, by sądzić, że fragmentacja na tych maszynach zwalnia prędkość odczytu, przykład:

  1. Pobrane z serwera z dyskami RAID 1 :

    [2556/30987]/raid1a/bitcoind/blocks/rev00820.dat: 100% extents: 16 -> 1 [ OK ] 
  2. Zrobione z laptopa za pomocą RAID 1 Dyski twarde:

    [29405/50810]/raid1/movies/SGA-HEVC/S04E01 - Adrift.mp4: 100% extents: 31 -> 6 [ OK ] 

Jak widać, podczas defragmentacji nie udało się nawet umieścić pliku 31 bloków w 1 części. Oczywiście można argumentować, że jest to plik filmowy, więc nie ma to znaczenia. Prawda, ale tylko w tym przypadku.

Polecenie, którego używam do rozpoczęcia defragmentacji:

  1. Na serwerze:

    sudo e4defrag -v /dev/md1 
  2. Na laptopie:

    sudo e4defrag -v /raid1/ 

Tak wydaje się nie mieć znaczenia, czy wywołuję polecenie używając nazwy urządzenia czy katalogu.

Czy możesz wskazać mi właściwy kierunek?

Komentarze

  • Masz wyniki pomiarów wskazujące na defragmentację jako źródło wolnego dostępu? Jeśli tak, to które? W większości przypadków ' nie trzeba przeprowadzać ręcznej defragmentacji w systemach plików ext4, o ile jest wystarczająco ' miejsca aby algorytm alokacji automatycznie zdefragmentował go podczas normalnej pracy.
  • @dirkt Do tej pory nie wykonano żadnych pomiarów. Nie ' nie spieram się, czy defragmentacja systemu plików ext4 jest skuteczna, czy nie. Pytania są jasne: jak to zrobić e4defrag -r i e4defrag -f.

Odpowiedź

e4defrag wymaga zamontowania systemu plików, ponieważ prosi sterownik systemu plików jądra o wykonanie defragmentacji, nie robi tego t zrób to sam.

Jeśli chodzi o defragmentację wolnego miejsca i odpowiednią defragmentację plików, poprawki nigdy nie zostały ukończone; ostatnia wzmianka na odpowiedniej liście mailingowej pochodzi z 2014 r. :

e4defrag znajduje się w e2fsprogs, a kod jest nadal utrzymywany i ulepszany. W szczególności Dmitrij Monachow dodał wiele „testów tortur” i znalazł szereg warunków rasowych w podstawowym kodzie jądra. Niedawno wysłał również refaktor kodu jądra, który znacznie go ulepszył i (zmniejszył rozmiar ext4 o 550 linii kodu).

Biorąc to pod uwagę, nie było żadnego prawdziwego rozwoju funkcji dla e4defrag już od jakiegoś czasu. Dyskutowano o tym, jakie interfejsy API jądra mogą obsługiwać tę funkcję, ale nigdy nie było gotowej propozycji interfejsu API, nie mówiąc już o implementacji.

Wątpię, czy jest obecnie coś wartego przetestowania.

Komentarze

  • Czy są jakieś informacje na temat bieżącej (2020) najlepszej praktyki defragmentacji na ext4 – lub zalecenie, aby nie używać żadnego istniejącego narzędzia z powodu zawodności? Mój e4defrag --version mówi e4defrag 1.45.5 (07-Jan-2020).
  • Sytuacja niewiele się zmieniła.Niedługo po napisaniu powyższej odpowiedzi pojawił się wątek, który zawiera podsumowanie znaczenia e4defrag pod adresem czas. Jest to nadal w pełni obsługiwana część Ext4, ale nie można jej używać we wszystkich przypadkach (systemów plików z bigalloc nie można defragmentować, dziennikowanie danych jest niezgodne z defragmentacją, a i-węzły DAX i zaszyfrowane pliki nie mogą być przenoszone). li>
  • Dzięki, Stephen. Czy to oznacza, że polecenie jest bezpieczne w tym sensie, że wyskoczy przed potencjalnie szkodliwym działaniem, dzięki czemu będę mógł z niego korzystać bez ryzyka dla moich danych? (Zasadniczo właśnie usunąłem 750000 plików i zastanawiałem się, czy dysk można teraz pofragmentować (przypuszczam, że tak jest) i czy go wyczyścić, czy zostawić.)
  • Jak każda operacja systemu plików, jest potencjalnie niebezpieczna, więc używaj go tylko wtedy, gdy masz kopie zapasowe (lub dane są jednorazowe). Jednak polecenie jest bezpieczne, o ile są świadomi jego twórców; jeśli napotka sytuacje, których nie może sobie poradzić, bezpiecznie zatrzymuje się.
  • Pozdrawiam. Na dysku nadal są 3 TB danych, bez kopii zapasowej. Poczekam, aż będę miał dzień, w którym poczuję się na tyle odważny, aby spróbować 🙂

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *