Wybór systemu plików dla GNU / Linux na karcie SD

31

Mam wbudowany system ARM działający na karcie SD. Obecnie jest to Debian GNU / Linux, który używa systemu plików ext3. Gdy mam zamiar ponownie zainstalować system, zacząłem się zastanawiać nad zmianą systemu na bardziej przyjazny dla Flasha. Słyszałem o JFFS2, YAFFS2 i LogFS i wszystkie wydają się odpowiednie do tego zadania. Który poleciłbyś? Ponadto słyszałem, że wprowadzono wiele ulepszeń ext4, aby lepiej pasowały do ​​dysków SSD; mam zinterpretować, że uruchomienie ext4 powinno być w porządku? O czym muszę szczególnie myśleć w takim przypadku?

Myślę, że korzystanie z systemu jest ważne. Ale ze względu na ogólność, wyobraź sobie, że wykona standardowe czynności na pulpicie (nawet jeśli jest to tak naprawdę mały system oparty na ARM).

Dziękuję za wszelkie odpowiedzi.

Edytuj: Wikipedia mówi mi (w stwierdzeniu „potrzebne cytowanie”), że wymienne karty pamięci flash i dyski flash USB mają wbudowane kontrolery do przeprowadzania wyrównywania zużycia i korekcji błędów, więc korzystanie z określonego systemu plików flash nie przynosi żadnych korzyści . Dlatego skłaniam się do pozostania przy systemie plików ext.

gspr
źródło

Odpowiedzi:

18

Doskonały artykuł o systemach plików Flash .

Ważne pytanie dotyczące systemów plików Flash brzmi: Co to jest wyrównywanie zużycia? Artykuł w Wikipedii . Zasadniczo na dyskach flash możesz pisać ograniczoną liczbę razy, aż blok się zepsuje. Następnie system plików (jeśli nie ma wbudowanego zarządzania wyrównaniem zużycia sprzętu, jak zwykle w przypadku dysków SSD), musi oznaczyć ten blok jako nieprawidłowy i unikać jego używania.

Typowe systemy plików (na przykład ReiserFS, NTFS, ext3 itd.) Są przeznaczone dla dysków twardych, które nie mają takich ograniczeń.

JFFS2

Obejmuje kompresję i elegancką ochronę przed zużyciem.

YAFFS2

  • Jedna rzecz, która robi różnicę: krótkie czasy montażu, po udanym umount.
  • Implementuje zapis po właściwości: po zapisaniu danych w jednym bloku nie trzeba go przepisywać. Jest to ważne, ponieważ zmniejsza zużycie.

LogFS

  • Niezbyt dojrzałe, ale już zawarte w drzewie jądra Linuksa.
  • Obsługuje większe systemy plików niż JFFS2 / YAFFS2 bez problemów.

UBIFS

  • Bardziej dojrzały niż LogFS
  • Napisz wsparcie buforowania
  • O skalowalności: artykuł . Na dużych dyskach lepsza wydajność niż w JFFS2

ext4

Jeśli żaden sterownik ani karta (na przykład dyski SSD nie mają wewnętrznego wyrównywania zużycia, przynajmniej zwykle) radzą sobie z wyrównywaniem zużycia, wtedy ext4 nie jest najlepszym pomysłem, ponieważ nie jest przeznaczony do surowego użycia pamięci flash.

Która jest najlepsza?

Oczywiście zależy to od użytkowania i wsparcia. Z tego, co czytam w Internecie, poleciłbym UBIFS. Dobre wsparcie dla dużych systemów plików, dojrzała faza rozwoju, odpowiednia wydajność i brak ogromnych wad.

Olli
źródło
6
Dzięki, to bardzo pouczające! Jednak „duża czerwona notatka” ze strony internetowej UBIFS mówi: „Jedną rzeczą, którą ludzie muszą zrozumieć, mając do czynienia z UBIFS, jest to, że UBIFS bardzo różni się od tradycyjnego systemu plików - nie działa na urządzeniach blokowych (takich jak dyski twarde , Karty MMC / SD, dyski flash USB, dyski SSD itp.) UBIFS został zaprojektowany do pracy na surowej pamięci flash, która nie ma nic wspólnego z urządzeniami blokowymi. Dlatego UBIFS nie działa na kartach MMC i tym podobnych - wyglądają jak urządzenia blokujące na zewnątrz, ponieważ implementują sprzętowo obsługę FTL (Flash Translation Layer) ”.
gspr
3
Fajna odpowiedź, plus F2FS od Samsunga, również bardzo obiecujący system, całkiem nowy.
lzap
16
@gspr jest poprawny: SD ma warstwę translacji flash, a JFFS2, YAFFS2, LOGFS i UBIFS są zaprojektowane dla niezarządzanego flasha. Opcje SD to tradycyjne systemy plików urządzeń blokowych, takie jak ext2 / ext3 / ext4.
Robert Calhoun,
@Olli Czy NILFS2 to dobry wybór dla dysku SSD?
SebMa
12

Napotkałem ten sam problem i również przeprowadziłem badania. W końcu zdecydowałem się na ext2.

Wydaje się, że niektóre karty SDHC implementują własne wyrównanie zużycia w warstwie sprzętowej. Jeśli możesz zdobyć karty SDHC z wbudowanym wyrównaniem zużycia.

Systemy plików, które zapewniają wyrównywanie zużycia, mogą zakłócać wyrównywanie zużycia na poziomie Flash, więc korzystanie z nich może być złe (artykuł cytowany powyżej w IBM mówi o tym, jak robi to JFFS, więc jasne jest, że to nie zadziała z poziomem błysku WL). Zdecydowałem, że nie potrzebuję kronikowania ext3, ponieważ nie przechowuję na nim krytycznych danych i zwykle i tak regularnie tworzę kopie zapasowe (cron).

Zainstalowałem również / tmp i / var jako tmpfs, aby przyspieszyć działanie. Jeśli masz wystarczającą ilość pamięci RAM, powinieneś to zrobić (ale pamiętaj, aby regularnie obracać lub usuwać dzienniki)

WSKAZÓWKA: Zamontuj swoje ext karty SD z opcją „noatime”

Khaled
źródło
Miałem problemy ze starymi kartami SD i ext2 (uszkodzenie danych), które zniknęły po przejściu na XFS.
Alexander
1

Nie wiem, czy pasuje to do profilu twojego systemu, ale co z użyciem systemu plików tylko do odczytu oraz partycji do odczytu i zapisu (lub pamięci USB, którą można łatwo wymienić)? W ten sposób będziesz mieć szybki dysk dla swojego systemu operacyjnego i możesz łatwo wymienić pamięć rw, gdy się zużyje.

A potem są unionfs. Jak rozumiem, „układa” różne systemy plików (tj. Ro fs na rw fs). Jeśli istnieje dostęp do odczytu, unionfs przeszukuje stos, dopóki nie trafi do FS zawierającego szukany plik. Podczas pisania unionfs szuka pierwszego zapisywalnego FS na stosie i używa go.

Znalazłem również te artykuły, które mogą być interesujące: http://www.linux-mag.com/id/7357/ http://www.linux-mag.com/id/7345/

Oraz dwa artykuły z poradami na temat korzystania z dysków SSD: http://danweinreb.org/blog/using-solid-state-disks-on-linux http://www.zdnet.com/blog/perlow/geek-sheet-a- tweakers-guide-to-solid-state-drive-ssds-and-linux / 9190

lajuette
źródło
1
Pamiętaj, że nie jestem tym, który głosował za tą odpowiedzią. Zawiera ogólnie przydatne informacje, ale nie jest to związane z tym, czego potrzebuję. W każdym razie dzięki :)
gspr
0

Wybór (i zmiana rozmiaru) właściwego systemu plików jest ważniejszy niż cokolwiek innego, nie tylko ze względów bezpieczeństwa, ale z wielu innych powodów, których ludzie zwykle nie rozpoznają. Bez systemu plików całe przetwarzanie byłoby zerowane.

Bardzo dobrze odpowiedziała Olli, a OP jest bardzo przestarzały, ale systemy plików są moim wkurzającym zwierzakiem, którego nie mogłem trzymać z daleka. superuser.com nie jest czymś, co odwiedziłem wcześniej, nie jestem administratorem, ale zarejestrowałem się i zamierzam odwiedzić więcej.

Od 2011 roku wiele się zmieniło, ale nawet wtedy sformatowałem karty USB FAT i używałem napędów USB do przenoszenia plików 4 Gb +. Powodem była oczywiście zgodność, a nie bezpieczeństwo (tyle samo dla S w SD, ale używam haseł w moich 7z) i nigdy tak naprawdę nie nosiłem niczego większego niż CD ISO, były one głównie dla skryptów SQL i codziennych różnic już zaszyfrowane migawki bazy danych ściśnięte prawie do śmierci przez 7-Zip.

Obecnie zużywam SD szybciej niż ktokolwiek, kogo znam. Mam pamięć USB w niektórych maszynach produkcyjnych u mojego pracodawcy do cogodzinnej automatycznej kopii zapasowej w formacie FAT. Ale pilnuję ich każdego dnia i - zgadłeś - popieram je religijnie ręcznie (są zabezpieczone poza IT, budując rzeczy ITAR). SSD wyrównało niektóre pola gry, ale nadal nie ufam im tak bardzo jak zwykłym HD, a SD jest gorsze niż optyczne. Natychmiast psują się, a strata jest całkowita.

Każdy system plików, który zaprasza system operacyjny hosta do zapisu w nim losowo (NTFS, Kosz), to zła wiadomość dla SD. Ponadto odmontowanie to bardzo pomaga, żaden system operacyjny nie będzie próbował uzyskać dostępu do odmontowanej pamięci, więc każdy system plików będzie działał tak długo, jak SD będzie zawierał skrypt do odmontowania się (jeden ze standardowych plików na każdym SD w moim).

Czytanie SD jest dziś nadal wolne, więc zaleciłbym coś takiego jak zrzut dysku (dd), aby pobrać cały obraz podczas tworzenia kopii lustrzanej zamiast pliku po pliku. dd poinformuje cię również, gdy coś będzie nie tak, więc twój menedżer plików nie przejdzie w kaboom.

Oczywiście, jeśli twoim głównym celem jest przedłużenie żywotności zapasów grosza, podchodzisz do swojego biznesu w niewłaściwy sposób. Robię to, czego nie robię, aby przedłużyć życie SD, ale aby nie popsuć jej, gdy nie patrzę, i jest różnica.

Unikam ext4 lub jakiegokolwiek księgowania FS na SD, ponieważ nie dbam o to, kiedy źle się do nich piszą, ale na pewno boli, gdy dzień lub później nie mogę ich przeczytać!

arch-abit
źródło
2
Przepraszamy, ale tak naprawdę nie odpowiada na pytanie. To ciekawy esej na temat korzystania z nośników wymiennych, ale nie na temat wyboru systemu plików.
podejrzany
Chciałem skomentować, ale nie mogłem. Ten post jest nieco gadatliwy, to, co zaleciłem, nie było rozważane przez OP, zamiast tego poleciłem FAT. Na pewno powinienem był komponować z większą koncentracją i jasnością.
arch-abit
Dlaczego Any file system which invites the host OS to write randomly to it (NTFS, Recycle Bin) is bad news for an SD.? Nie składa się z obracających się dysków, więc myślę, że gdziekolwiek czytasz / piszesz, nie powinno to mieć znaczenia. A tak przy okazji, NTFS pisze w sposób ciągły - co prowadzi do fragmentacji. «Losowe przechowywanie plików» dotyczy np. EXTα.
Cześć Angel
0

W odpowiedzi na zalecenie użycia fat (32?): Przeprowadziłem kilka testów wydajności i okazało się, że fat32 ma bardzo przewidywalny czas na zapisanie pliku (2 GB potrzebuje dwa razy 1 GB + przesunięcie, 3 GB potrzebuje czasu drzewa 1 GB + przesunięcie). Wydajność ext4 jest nieco lepsza niż ext3. Zarówno ext3, jak i ext4 są czasami szybkie, ale czasem potrzebują więcej czasu na zapisanie plików dziennika na dysku (brak zachowania liniowego czasu zapisu). Wszystkie testy zostały wykonane za pomocą fsync (), aby upewnić się, że plik jest naprawdę zapisany na dysku. Przeprowadziłem kilka testów za pomocą sync (). Powodują bardzo słabą wydajność zapisu. Więc wróciłem do fsync (). Sprawdziłem, czy fsync () jest wystarczająca. Dlatego zasiliłem urządzenie bez wyłączania systemu lub wyjąłem kartę SD bez odmontowania. W żadnym wypadku zapisane pliki lub struktura katalogów nie zostały uszkodzone.

Pozdrawiam, Thomas

Th. Thielemann
źródło
1
Porównanie jest niesprawiedliwe. Porównywałeś system FAT niezwiązany z kronikowaniem z rejestrowaniem EXT3 / 4. Powinieneś porównać FAT vs EXT2. I tylko FYI, system plików, który został wstępnie sformatowany przez producenta, zwykle ma najbardziej optymalne rozmiary / przesunięcia bloków. Tzn. Po sformatowaniu systemu plików istnieje możliwość, że IO zajmie więcej czasu niż w przypadku oryginalnego.
Cześć Angel
0

jeśli chcesz bezstratną kartę SD, sugeruję użycie, BTRFSponieważ:

BTRFS to nowy system plików w porównaniu do EXT pierwotnie utworzonego przez Oracle w 2007 roku.

Wprowadza nowe funkcje do tradycyjnych systemów plików:

  • Klonowanie / migawki
  • Różnice (wysyłanie / odbieranie)
  • Cytat
  • Unia
  • Samoleczenie (z okresami zatwierdzenia domyślnie 30s)

dodatkowe wyjaśnienia i porównania znajdują się w tym pliku pdf

nowe porównania znajdują się na tej stronie

sayyed mohsen zahraee
źródło