Lựa chọn hệ thống tập tin cho GNU / Linux trên thẻ SD


31

Tôi đã nhúng hệ thống dựa trên ARM chạy trên thẻ SD. Hiện tại Debian GNU / Linux sử dụng ext3 làm hệ thống tập tin. Khi tôi sắp cài đặt lại hệ thống, tôi bắt đầu băn khoăn về việc thay đổi hệ thống tập tin thân thiện với flash hơn. Tôi đã nghe nói về JFFS2, YAFFS2 và LogFS, và tất cả chúng có vẻ phù hợp với công việc. Bạn muốn giới thiệu cái nào? Ngoài ra, tôi đã nghe nói đã có rất nhiều cải tiến ext4 để phù hợp hơn với các ổ SSD; Tôi có thể giải thích rằng khi chạy ext4 sẽ ổn không? Tôi cần nghĩ gì đặc biệt về trường hợp đó?

Tôi đoán việc sử dụng hệ thống là quan trọng. Nhưng vì lợi ích chung, hãy tưởng tượng nó sẽ làm những thứ máy tính để bàn tiêu chuẩn (mặc dù nó còn nguyên vẹn một hệ thống dựa trên ARM nhỏ).

Cảm ơn cho bất kỳ trả lời.

Chỉnh sửa: Wikipedia cho tôi biết (trong một tuyên bố "cần dẫn nguồn") rằng thẻ nhớ flash rời và ổ flash USB có bộ điều khiển tích hợp để thực hiện cân bằng hao mòn và sửa lỗi nên việc sử dụng hệ thống tệp flash cụ thể không thêm bất kỳ lợi ích nào . Vì vậy, tôi đang nghiêng về việc gắn bó với một hệ thống tập tin ext.

Câu trả lời:


18

Bài viết tuyệt vời về hệ thống tập tin flash .

Câu hỏi quan trọng khi nói về hệ thống tập tin flash như sau: Cân bằng hao mòn là gì? Wikipedia bài viết . Về cơ bản, trên các đĩa flash, bạn có thể ghi số lần giới hạn cho đến khi khối bị hỏng. Sau đó, hệ thống tập tin (nếu không có quản lý cân bằng hao mòn tích hợp trên phần cứng, như trong trường hợp SSD thường có) phải đánh dấu khối đó là không hợp lệ và tránh sử dụng nó nữa.

Các hệ thống tệp điển hình (ví dụ ReiserFS, NTFS, ext3, v.v.) được thiết kế cho các đĩa cứng, không có những hạn chế như vậy.

JFFS2

Bao gồm nén và bảo vệ cân bằng mặc thanh lịch.

YAFFS2

  • Điều duy nhất tạo nên sự khác biệt: thời gian gắn kết ngắn, sau khi vượt qua thành công.
  • Thực hiện ghi một lần thuộc tính: một khi dữ liệu được ghi vào một khối, không cần phải viết lại nó. Điều này rất quan trọng, vì nó làm giảm hao mòn.

LogFS

  • Không trưởng thành lắm, nhưng đã có trong cây nhân Linux.
  • Hỗ trợ các hệ thống tập tin lớn hơn JFFS2 / YAFFS2 mà không gặp vấn đề gì.

UBIFS

  • Trưởng thành hơn LogFS
  • Viết hỗ trợ bộ nhớ đệm
  • Về khả năng mở rộng: bài viết . Trên các đĩa lớn, hiệu năng tốt hơn so với JFFS2

máy lẻ

Nếu không có trình điều khiển hoặc thẻ (ví dụ: ổ SSD không có mức độ hao mòn bên trong, ít nhất là thường xuyên) xử lý mức độ hao mòn, thì ext4 không phải là ý tưởng tốt nhất, vì nó không dành cho sử dụng flash thô.

Cái nào là tốt nhất?

Tất nhiên, nó phụ thuộc vào cách sử dụng và hỗ trợ. Từ những gì tôi đọc được trên Internet, tôi muốn giới thiệu UBIFS. Hỗ trợ tốt cho các hệ thống tập tin lớn, giai đoạn phát triển trưởng thành, hiệu năng đầy đủ và không có nhược điểm lớn.


6
Cảm ơn, điều này rất nhiều thông tin! Tuy nhiên, "lưu ý lớn" từ trang web của UBIFS nói: "Một điều mọi người phải hiểu khi giao dịch với UBIFS là UBIFS rất khác với bất kỳ hệ thống tệp truyền thống nào - nó không hoạt động trên các thiết bị khối (như ổ cứng) , Thẻ MMC / SD, ổ flash USB, SSD, v.v.) UBIFS được thiết kế để hoạt động trên flash thô, không liên quan gì đến các thiết bị khối. Đây là lý do tại sao UBIFS không hoạt động trên thẻ MMC và tương tự - chúng trông giống như các thiết bị khối với thế giới bên ngoài vì chúng triển khai hỗ trợ FTL (Lớp dịch Flash) trong phần cứng. "
gspr

3
Câu trả lời hay, cộng với có F2FS của Samsung, hệ thống cũng rất hứa hẹn, tho khá mới.
lzap

16
@gspr là chính xác: SD có lớp dịch flash và JFFS2, YAFFS2, LOGFS và UBIFS đều được thiết kế cho flash không được quản lý . Các tùy chọn cho SD là các hệ thống tệp thiết bị khối truyền thống, như ext2 / ext3 / ext4.
Robert Calhoun

@Olli NILFS2 có phải là lựa chọn tốt cho ổ SSD không?
SebMa

12

Tôi đã phải đối mặt với cùng một vấn đề và cũng đã làm một số nghiên cứu. Cuối cùng tôi quyết định đi với ext2.

Có vẻ như một số thẻ SDHC thực hiện cấp độ hao mòn của riêng chúng ở lớp phần cứng. Nếu bạn có thể nhận được thẻ SDHC có buit-in cấp độ hao mòn.

Các hệ thống tập tin cung cấp mức độ hao mòn có thể gây trở ngại cho mức độ hao mòn ở cấp độ Flash do đó thực sự có thể có hại cho đèn flash khi sử dụng chúng (bài viết của IBM đã trích dẫn ở trên nói về cách JFFS thực hiện, vì vậy rõ ràng là nó không hoạt động với cấp độ flash flash). Tôi quyết định tôi không cần ghi nhật ký của ext3 vì tôi không lưu trữ dữ liệu quan trọng trên đó và tôi thường sao lưu thường xuyên (cron).

Tôi cũng gắn / tmp và / var là tmpfs để tăng tốc mọi thứ. Nếu bạn có đủ RAM, bạn nên làm điều đó (nhưng hãy chắc chắn để xoay hoặc xóa nhật ký của bạn thường xuyên)

GỢI Ý: Gắn thẻ SD mở rộng của bạn với tùy chọn "noatime"


Tôi đã gặp vấn đề với thẻ SD cũ và ext2 (hỏng dữ liệu) đã biến mất khi chuyển sang XFS thay thế.
Alexander

1

Tôi không biết điều này có phù hợp với hồ sơ hệ thống của bạn không, nhưng còn việc sử dụng hệ thống tập tin chỉ đọc cộng với phân vùng đọc-ghi (hoặc thanh usb có thể thay thế dễ dàng) thì sao? Bằng cách đó, bạn sẽ có một đĩa nhanh cho hệ điều hành của mình và có thể thay thế bộ lưu trữ rw của bạn một cách dễ dàng khi nó bị hao mòn.

Và sau đó có đoàn. Theo tôi hiểu, nó "sắp xếp" các hệ thống tập tin khác nhau (tức là một ro fs trên đầu của một rw fs). Nếu có một đoàn truy cập đọc tìm kiếm thông qua ngăn xếp cho đến khi nó chạm vào FS có chứa tệp chúng tôi tìm kiếm. Khi viết unionfs tìm kiếm FS có thể ghi đầu tiên trên stack không sử dụng nó.

Tôi cũng tìm thấy những bài viết này có thể thú vị: http://www.linux-mag.com/id/7357/ http://www.linux-mag.com/id/7345/

Và hai bài viết với các mẹo sử dụng SSD: http://danweinreb.org/blog/USE-solid-state-disks-on-linux http://www.zdnet.com/blog/perlow/geek-sheet-a- tweaker-guide-to-solid-state-drive-ssds-and-linux / 9190


1
Lưu ý rằng tôi không phải là người đánh giá thấp câu trả lời này. Nó chứa thông tin hữu ích nói chung, nhưng nó không liên quan đến những gì tôi cần. Dù sao cũng cảm ơn :)
gspr

0

Chọn (và định cỡ) hệ thống tệp chính xác quan trọng hơn bất kỳ thứ gì khác, không chỉ vì bảo mật mà còn vì hàng tấn lý do khác mà mọi người thường không nhận ra. Nếu không có một hệ thống tập tin, tất cả quá trình xử lý sẽ chuyển sang null.

Phản hồi rất tốt của Olli và OP rất nhiều ngày, nhưng hệ thống tập tin là thú cưng của tôi, tôi không thể tránh xa. superuser.com không phải là thứ tôi đã truy cập trước đây, tôi không phải là quản trị viên, nhưng tôi đã đăng ký và tôi sẽ truy cập thêm.

Mọi thứ đã thay đổi rất nhiều kể từ năm 2011, nhưng ngay cả khi đó tôi đã định dạng thẻ USB FAT và sử dụng ổ USB để mang các tệp 4Gb +. Lý do tất nhiên là khả năng tương thích không phải là bảo mật (rất nhiều cho S trong SD, nhưng tôi sử dụng mật khẩu trên 7z của tôi) và tôi chưa bao giờ thực sự mang bất cứ thứ gì lớn hơn CD ISO, chúng chủ yếu dành cho các tập lệnh SQL và khác biệt hàng giờ Ảnh chụp nhanh cơ sở dữ liệu được mã hóa đến mức gần chết bởi 7-Zip.

Ngày nay tôi đeo bất kỳ SD nào nhanh hơn bất cứ ai tôi biết. Tôi có một thanh USB trong một số máy sản xuất tại công ty của mình để sao lưu tự động hàng giờ, được định dạng FAT. Mặc dù vậy, tôi vẫn để mắt đến họ mỗi ngày và - bạn đoán - sao lưu chúng một cách tôn giáo bằng tay (chúng là công cụ ITAR ngoại tuyến được bảo mật). SSD đã san bằng một số sân chơi nhưng tôi vẫn không tin tưởng chúng nhiều như HD thông thường và SD còn tệ hơn cả quang học. Họ trở nên tồi tệ ngay lập tức và mất mát là tổng số.

Bất kỳ hệ thống tệp nào mời HĐH máy chủ ghi ngẫu nhiên vào nó (NTFS, Thùng rác) là tin xấu cho SD. Ngoài ra, việc ngắt kết nối này giúp ích rất nhiều, không có hệ điều hành nào sẽ thử truy cập vào bộ lưu trữ chưa được đếm, do đó, bất kỳ hệ thống tệp nào cũng sẽ làm miễn là SD bao gồm một tập lệnh để tự ngắt (một trong các tệp tiêu chuẩn trên mỗi SD trên máy của tôi).

Đọc SD ngày nay vẫn còn chậm, vì vậy tôi muốn giới thiệu một cái gì đó như kết xuất đĩa (dd) để lấy toàn bộ hình ảnh khi phản chiếu thay vì tệp theo từng tệp. dd cũng cho bạn biết khi có sự cố, vì vậy trình quản lý tệp của bạn sẽ không hoạt động.

Tất nhiên, nếu mục đích chính của bạn là kéo dài tuổi thọ của một số cổ phiếu mà bạn đang đi về doanh nghiệp của mình sai cách. Tôi làm những gì tôi không làm để kéo dài tuổi thọ của SD nhưng để nó không bị hỏng khi tôi không xem, và có sự khác biệt.

Tôi tránh ext4 hoặc bất kỳ FS nào ghi nhật ký trên SD vì tôi không quan tâm khi họ viết xấu cho họ, nhưng chắc chắn là đau khi một ngày sau đó tôi không thể đọc chúng!


2
Xin lỗi nhưng điều này không thực sự trả lời câu hỏi. Đây là một bài luận thú vị về việc sử dụng phương tiện lưu động nhưng không phải về sự lựa chọn hệ thống tập tin.
suspectus

Tôi muốn bình luận nhưng tôi không thể. Bài đăng hơi dài dòng, điều tôi khuyên không phải là OP đang xem xét, thay vào đó tôi đề nghị FAT. Tôi nên sáng tác với sự tập trung và rõ ràng hơn cho chắc chắn.
arch-abit

Tại sao Any file system which invites the host OS to write randomly to it (NTFS, Recycle Bin) is bad news for an SD.vậy? Nó không bao gồm các đĩa quay, vì vậy bất cứ nơi nào bạn đọc / ghi không quan trọng, tôi nghĩ vậy. Và btw, NTFS viết liên tục - dẫn đến phân mảnh. «Lưu trữ ngẫu nhiên các tệp» là, ví dụ, về EXTα.
Hi-Angel

0

Theo phản hồi về khuyến nghị sử dụng chất béo (32?): Tôi đã thực hiện một số bài kiểm tra hiệu suất và phát hiện ra rằng fat32 có thời gian rất dễ đoán để ghi tệp (2 GB cần hai lần bù 1 GB +, 3 GB cần thời gian của cây 1GB + bù). Hiệu suất của ext4 tốt hơn một chút so với ext3. Cả ext3 và ext4 đôi khi nhanh nhưng đôi khi cần thêm thời gian để ghi các tệp nhật ký vào đĩa (không có hành vi thời gian ghi tuyến tính). Tất cả các thử nghiệm đã được thực hiện với fsync () để đảm bảo rằng tệp thực sự được ghi vào đĩa. Tôi đã thực hiện một số thử nghiệm với sync (). Họ dẫn đến hiệu suất viết rất xấu. Vì vậy, tôi đã quay trở lại fsync (). Tôi đã kiểm tra xem fsync () có đủ không. Do đó, tôi cấp nguồn cho thiết bị mà không tắt hệ thống hoặc tháo Thẻ SD mà không ngắt kết nối. Trong mọi trường hợp các tập tin bằng văn bản hoặc cấu trúc thư mục đã bị hỏng.

Trân trọng, Thomas


1
Sự so sánh là không công bằng. Bạn đã so sánh FAT không ghi nhật ký với nhật ký EXT3 / 4. Bạn nên so sánh FAT với EXT2. Và chỉ FYI, hệ thống tập tin được nhà sản xuất định dạng trước thường có kích thước khối / độ lệch tối ưu nhất. Tức là sau khi bạn định dạng lại hệ thống tệp, có khả năng IO sẽ mất nhiều thời gian hơn so với hệ thống gốc.
Hi-Angel

0

Nếu bạn muốn mất thẻ sd miễn phí, tôi khuyên bạn nên sử dụng BTRFSvì:

BTRFS là một hệ thống tệp mới so với EXT ban đầu được tạo bởi Oracle vào năm 2007.

Nó mang lại các tính năng mới cho các hệ thống tập tin truyền thống:

  • Nhân bản / ảnh chụp nhanh
  • Khác biệt (gửi / nhận)
  • Quotat
  • liên hiệp
  • Tự phục hồi (với thời gian cam kết mặc định là 30 giây)

để giải thích thêm và so sánh tham khảo pdf này

để so sánh mới tham khảo trang web này

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.