Czy ext4 jest droższy niż NTFS?

11

Właśnie przekonwertowałem partycję NTFS na ext4, jednak całkowita przestrzeń wydaje się zmniejszona z 421G do 415G. Gdzie poszedł 6G? I zarezerwowane miejsce zostało zwiększone do 199 M w ext4, znacznie większym w porównaniu do 78 M w NTFS, dlaczego?

Partycja jest używana głównie do filmów / muzyki, więc większość plików jest bardzo duża (> 10 MB każda). Chcę użyć systemu plików ext4, czy są jakieś sugestie?

mkfs.ntfs:
    /dev/sdb4             421G   78M  421G   1% /mnt/mmedia

mkfs.ext4:
    /dev/sdb4             415G  199M  393G   1% /mnt/mmedia
                       (415G - 199M == 393G ?)

Dziwne jest również to, że pozostały rozmiar ext4 to 393G, czy nie powinien to być 415G czy 414G? Co się stało z zaginionym 22G? W porównaniu do NTFS, ext4 zużył 6,6% całkowitej przestrzeni, to naprawdę wielka sprawa.

Pytanie brzmi:

  1. Do czego służy 6G, do dziennika, do redundancji lub do indeksowania?
  2. Dlaczego pozostała przestrzeń 393G nie 415G? Jest dziura 22G, która jest dość duża.
  3. Jakie parametry radziłbyś, gdyby ta partycja ext4 służyła do przechowywania plików filmowych / muzycznych? Mówi się, że ext4 działa lepiej niż ext3 dla dużych partycji, czy to prawda? Nie wrócę do ext2, który nie jest dziennikiem.
Xiè Jìléi
źródło

Odpowiedzi:

8

Do czego służy 6G, do dziennika, do redundancji lub do indeksowania?

(Nie wiadomo jeszcze.)

Dlaczego pozostała przestrzeń 393G nie 415G? Jest dziura 22G, która jest dość duża.

Jest to 5% bloków zarezerwowanych dla superużytkownika, który służy do unikania fragmentacji. Możesz dostosować go do 1% o mkfs.ext4 -m 1.

Jakie parametry radziłbyś, gdyby ta partycja ext4 służyła do przechowywania plików filmowych / muzycznych?

Możesz określić opcję użycia dla mkfs.ext4, np. mkfs.ext4 -T large_filePozwoli to mkfs.ext4 wybrać parametry dla partycji zawierających duże pliki.

Xiè Jìléi
źródło
1
6G będzie dla list i-węzłów.
Sirex,
1
Zastrzeżone bloki ograniczają również wpływ ataku Denial Of Service, w którym zwykli użytkownicy zapełniają dysk do tego stopnia, że ​​nie można już zapisywać plików dziennika. Zarezerwowane miejsce da przynajmniej rootowi wystarczającą ilość dzienników, aby złapać winnego użytkownika.
MSalters
Mój /etc/mke2fs.conf mówi o parametrach „largefile” i „largefile4” dla -T, a nie „large_file”.
user1338062 18.04.13
4
  1. 6 GB to i-węzły. ext4 domyślnie wynosi 1/64 (1,56%) dla i-węzłów, każdy 256B; więc może wypełnić pliki 16 KB
  2. Dostępne miejsce df wyklucza miejsce zarezerwowane dla użytkownika root, domyślnie 5%, użyj tune2fs -m
  3. mkfs.ext4 -m 0 -N 4000000 / dev / cokolwiek # formatowanie, 0 zarezerwowane, 4 miliony i-węzłów używa 1 GB
  4. ext4 fsck jest znacznie szybszy niż ext3; poza tym nie zauważysz żadnej różnicy

Każdy plik / katalog wymaga 1 i-węzła. Nie można zmienić liczby i-węzłów po utworzeniu systemu plików ext. Nawet 1000000 i-węzłów byłoby wystarczających dla tej partycji, jeśli będziesz używać jej tylko do filmów i muzyki.

Główna tabela plików NTFS (MFT) jest nieco bardziej elastyczna, więc NTFS może domyślnie wcisnąć więcej danych.

Jedynym dobrym powodem do korzystania z systemu plików NTFS w systemie Linux jest udostępnianie plików w systemie Windows. Będzie działał dobrze dla mediów, ale brakuje różnych funkcji UNIX, więc nie nadaje się do ogólnego zastosowania w Linuksie. Nie kompiluj tego!

Sam Watkins
źródło
Each inode 256B, so can fill with 16KB filesCzy masz na myśli, że w każdym i-węźle jest 16 K-256 = 16128 wolnych bajtów?
Xiè Jìléi
1
Mam na myśli, że jeśli używasz 1/64 urządzenia do tworzenia tabel i-węzłów, a każdy i-węzeł ma pojemność 256B, to dostajesz jeden i-węzeł na 16 KB urządzenia ... w rzeczywistości jest to 1 i-węzeł na 15,75 KB pozostałego urządzenia, ale wystarczająco blisko. Masz więc wystarczającą liczbę i-węzłów, aby wypełnić cały dysk plikami 16 KB. Jeśli spodziewasz się, że będziesz mieć znacznie większe pliki, np. Filmy, możesz zadowolić się mniejszą liczbą i-węzłów i zaoszczędzić może kilka GB z urządzenia.
Sam Watkins
3

Tak, to fajny mały temat. Każdy system plików implementuje swoje struktury danych inaczej. Coś fajnego, co możesz wypróbować, to sformatowanie partycji za pomocą różnych systemów plików i porównanie. „Wolna” przestrzeń będzie się różnić. Ponadto, gdy je zapełnisz, będzie to różnica w obciążeniu pamięci, a więc w pewnym sensie, ile miejsca potrzeba do przechowywania tego samego pliku, może się różnić w zależności od systemu plików. Zwykle podczas formatowania systemu plików można również wybrać niektóre parametry, które mają być ustawione - ma to również wpływ.

Odpowiedź na twoje pytanie jest jedną z tych „zależnych” odpowiedzi . Myślę, że w sumie 6/400 GB nie jest straszną odmianą, ale rzeczywiście jest to zauważalne. Wciąż przestrzeń do przechowywania staje się coraz tańsza. Ale myślę, że systemy plików prawdopodobnie stają się coraz cięższe, ponieważ chcemy w nich więcej wymyślnych funkcji. Podejrzewam, że ext2 jest nieco szczuplejszy niż ext4. Byłbym zainteresowany, aby zobaczyć kilka liczb z tego świata. Oczywiście ta „wydajność” ma swoją cenę (największa jest to, że nie jest rejestrowana w dzienniku, a zatem jest szybsza ORAZ łatwiejsza do skorumpowania).

Jeśli chodzi o to, dlaczego ext4 zajmuje w tym przypadku więcej miejsca, założę się, że klastry pamięci w systemie NTFS zostały ustawione w taki sposób, aby adresowanie przestrzeni dyskowej było znacznie większe niż wymagane parametry ext4. Jeśli to prawda, powinieneś uzyskać bardziej wydajne wykorzystanie pamięci, jeśli masz dużo stosunkowo małych plików.

Wystarczy powiedzieć, że cały temat trwa i trwa. Jeśli chcesz uzyskać więcej informacji, sugeruję zajrzeć na różne strony wikipedii porównujące dostępne systemy plików. Jak również na stronach podręcznika dla każdego FS, który Cię interesuje.

Mam nadzieję, że uznasz to za pomocne.

James T. Snell
źródło
1

Zastrzeżone superbloki to jedna rzecz, ale wcale nie taka, o której mówisz. Zmiana zarezerwowanych superbloków nie pokazuje się w „całkowitej dostępnej przestrzeni” .. to się nie zmienia. Jest to liczba i-węzłów x ich rozmiar. Domyślnie na ext4 oczekuj czegoś takiego jak 256 bajtów na i-węzeł i dla 400 GB , Zgaduję, że mkfs.ext4 zrobi około 25-30 milionów. Użyj dumpe2fs -h, aby zobaczyć rzeczywistą liczbę. To stanowi 6 GB, którego brakuje, a nie zarezerwowane bloki, o których ktoś jest. (Np. Inode- policz x rozmiar i-węzła b / 1024 ^ 3) GB.

Podejrzewam, że wyjście df-h może wiązać się z pewną kulawością; p Spróbuj zrobić to jeszcze raz i określ połowę swoich i-węzłów (możesz to zrobić bezpiecznie, a nawet więcej, jeśli jesteś odważny), ale pamiętaj, że wiele katalogów może sprawi, że zabraknie Ci i-węzłów przed przestrzenią kosmiczną.

Na przykład. ext4 rezerwuje kilka 93-4?) i-węzłów na katalog, zakładając, że zamierzasz przechowywać więcej niż jeden lub dwa pliki, dzięki czemu jest on bardziej wydajny. Jeśli jednak masz 1 milion folderów z 1 milionem plików, zabraknie i-węzłów na tym układzie, zanim zabraknie miejsca. Zwykle i-węzły są używane tylko w kilku procentach miejsca, ale mogą wzrosnąć do 35%, więc podział przez dwa jest dość bezpieczny dla użytkowników komputerów stacjonarnych, ale nie rób więcej, aby być bezpiecznym.

Oto przykład:

415 GB RAW (powiedzmy dev / sdb1) mkfs.ext4 -m0 -Ndefault # / 2 -Lext4-1 -O zasięg, dir_index, large_file, sparse_super, uninit_bg / dev / sdb1

opcje pomogą w przypadku dużych plików / partycji z napisem media. uninit_bg jest dla najnowszych jąder. To jest publikowane, nawet jeśli jest zbyt stare dla przyszłych czytelników.

Malina Salina

Mali
źródło
0

Miałem (pełny) system plików NTFS zawierający około 1000 GB danych i tylko kilkaset megabajtów wolnych. Nawet jeśli sformatowana pojemność ext4 była znacznie mniejsza niż NTFS, pamiętam, że kiedy wszystko skopiowałem, nadal miałem około 70 GB wolnego miejsca na ext4, nawet jeśli sformatowana pojemność była mniejsza. (Pamiętaj, że NTFS był pełny). Nie mogę obiecać, że tak się stało, ale przynajmniej dla plików, które miałem, ext4 było naprawdę trudne do oszczędzania miejsca! :)

Waxhead
źródło