Có một thứ như định dạng 'nhanh' cho ext4 không?


28

Trong Windows, định dạng với NTFS rất nhanh. Tôi có một máy Linux hoạt động thấp, ít RAM. Việc định dạng âm lượng 2TB thành ext4 mất nhiều thời gian.

Tôi có thể làm gì để tăng tốc độ định dạng không? Tôi không thể tưởng tượng những gì mất nhiều thời gian? (cái gì quá lâu)


1
Những lệnh nào bạn đang sử dụng để định dạng nó?
thứ ba

Như một cách giải quyết. Hãy thử làm cho nó như một khối lượng lvm nhỏ hơn, và phát triển nó khi cần thiết? Dù sao đó cũng sẽ giảm chi phí ban đầu.
Sirex

1
hoặc sử dụng XFS nếu thời gian tạo hệ thống tập tin thực sự làm phiền bạn - mkfs.xfs nhanh hơn rất nhiều so với mkfs.ext4 (vì nó không làm - hoặc cần phải làm - nhiều như vậy). nhưng mkfs là thứ bạn thường chỉ phải thực hiện một lần trên mỗi hệ thống tập tin - có thể có những điều tốt hơn để tối ưu hóa.
cas

hoặc sử dụng ZFS. Tạo các hệ thống tệp với ZFS là gần như tức thời, bất kể kích thước của chúng.
jlliagre

Chỉ sử dụng ZFS nếu bạn có phần cứng cấp doanh nghiệp, đặc biệt nếu bạn có RAM ECC và bạn có UPS. Không nên sử dụng ZFS mà không có các yêu cầu này. Bạn có thể không phục hồi được sau lỗi chẵn lẻ bộ nhớ và / hoặc mất điện. Tất cả khối lượng của bạn sẽ bị mất trong trường hợp này. Bạn đa được cảnh bao.
Richard Gomes

Câu trả lời:


16

Câu trả lời nghiêm ngặt

Các giải pháp như -E lazy_itable_initkhông thay đổi kết quả, chỉ tăng tốc quá trình. Đây là những gì đã được hỏi rõ ràng trong nhiều trường hợp mọi người cần nhiều hơn.

Phần thưởng thêm

Trong hầu hết các trường hợp, bạn thực sự muốn một số tùy chọn phù hợp với mô hình sử dụng của bạn và không chỉ tăng tốc độ tạo hệ thống tệp mà còn cho phép sử dụng nhanh hơn và nhiều không gian sử dụng hơn.

Tôi vừa làm một bài kiểm tra. Ngay cả khi không sử dụng -E lazy_itable_init, các tùy chọn bên dưới tăng tốc thời gian tạo hệ thống tệp 2TB từ 16 phút 2 giây lên 1 phút 21 giây (kernel 3.5.0 64bit trên Intel i7 2.2GHz, đĩa 2TB trên kết nối USB2 - SATA có thể sẽ nhanh hơn) .

Đối với một hệ thống tệp sẽ chứa các tệp lớn, tôi sử dụng kết hợp này:

mkfs.ext3 /dev/sdXX -O sparse_super,large_file -m 0 -T largefile4

trong đó -T largefile4chọn các tùy chọn trong /etc/mke2fs.confđó thường chứa một cái gì đó như:

    inode_ratio = 4194304
    blocksize = -1

Làm một man mke2fsđể biết chi tiết về từng tùy chọn này.

Dưới đây là các trích đoạn có liên quan:

               sparse_super
                      Create a filesystem with fewer superblock backup copies (saves space on large filesystems).

               large_file
                      Filesystem can contain files that are greater than 2GB.  (Modern kernels set this feature  automatically
                      when a file > 2GB is created.)

   -i bytes-per-inode
          Specify  the  bytes/inode ratio.  mke2fs creates an inode for every bytes-per-inode bytes of space on the disk.  The
          larger the bytes-per-inode ratio, the fewer inodes will be created.  This value generally shouldn't be smaller  than
          the blocksize of the filesystem, since in that case more inodes would be made than can ever be used.  Be warned that
          it is not possible to expand the number of inodes on a filesystem after it is created, so be  careful  deciding  the
          correct value for this parameter.

-m 0chỉ nói không dự trữ 5% cho root, điều này là ổn đối với hệ thống tập tin dữ liệu (không phải boot / root). 5% của đĩa 2TB có nghĩa là 100Gb. Đó là một sự khác biệt khá đáng kể.


1
Lưu ý rằng việc cho phép hệ thống tập tin nhận được đầy đủ hơn 95% sẽ dẫn đến sự phân mảnh cực lớn, làm chậm hiệu suất đáng kể. Nếu bất cứ điều gì, nếu một người quan tâm đến hiệu suất của phân vùng dữ liệu của mình, thì nó sẽ được tăng lên 10%
Matija Nalis

Nếu đĩa của bạn không chỉ chứa các tệp lớn mà cả các tệp nhỏ , hãy đọc điều này: giảm tỷ lệ inode sẽ giúp bạn tiết kiệm tối đa khoảng 1,5% dung lượng lưu trữ, với chi phí linh hoạt. inode_ratio = xcó nghĩa là nếu kích thước tệp trung bình trên ổ đĩa nhỏ hơn x byte, thì bạn đang hướng tới việc hết các nút trước khi hết dung lượng lưu trữ . Trong kịch bản đó, bạn có thể lãng phí hàng ngàn đô la nhiều hơn bạn dự kiến ​​sẽ tiết kiệm.
Stéphane Gourichon

Nói cách khác, nếu kích thước tệp trung bình nhỏ hơn 4MB, không sử dụng "-TTHERefile4". Đối với các ổ đĩa lớn bây giờ tôi sẽ chỉ sử dụng -T hugemà không inode_ratio = 65536. Nếu nghi ngờ, chỉ cần không đặt -ihoặc -Tđể những người khôn ngoan thực hiện ext2 / 3/4 chọn cho bạn. Bạn sẽ dành một phần không gian nhỏ đã biết để dọn phòng và (trừ khi bạn lưu trữ hàng triệu tệp rất nhỏ), bạn được đảm bảo không lãng phí một tỷ lệ phần trăm tùy ý của không gian lưu trữ thực tế. Như mọi người viết, phần mềm ưa thích là tốt, nhưng một hệ thống tập tin tốt phải nhàm chán và chỉ hoạt động.
Stéphane Gourichon

trong trường hợp của tôi, mkfs.ext4nhanh hơn (thời gian real 0m16.001s:) so với mkfs.ext3(thời gian real 2m10.336s:).
sáng lập

19

Thêm cờ -E lazy_itable_init

Đây là những gì trang người đàn ông nói:

Nếu được bật và tính năng uninit_bg được bật, bảng inode sẽ không được mke2fs khởi tạo hoàn toàn. Điều này tăng tốc độ khởi tạo hệ thống tệp đáng chú ý, nhưng nó yêu cầu kernel hoàn thành việc khởi tạo hệ thống tệp trong nền khi hệ thống tệp được gắn lần đầu tiên. Nếu giá trị tùy chọn bị bỏ qua, nó mặc định là 1 để cho phép khởi tạo bảng inode lười biếng.


3
Về mặt kỹ thuật, điều này không thực sự làm cho định dạng nhanh hơn, nhưng nó cho phép bạn gắn kết và sử dụng hệ thống tập tin trong khi định dạng kết thúc ở chế độ nền.
Wyzard

cám ơn rất nhiều! wo4ked này thực sự tốt, các tài liệu / người đàn ông không rõ ràng cho đến khi tôi biết phải tìm gì! rất nhiều
bị kẹt

Tôi đã thấy các tài liệu tham khảo về phiên bản kernel tối thiểu, đây là mức tối thiểu cần thiết để sử dụng phiên bản này?
Xarses

8

Mặc định một định dạng nhanh chóng; thiết lập cấu trúc cho âm lượng ext * mất nhiều thời gian hơn so với âm lượng NTFS, vì có nhiều cấu trúc hơn. Bạn có thể giảm số lượng siêu khóa, nhưng thậm chí điều đó chỉ đi xa đến vậy.


cảm ơn thông tin, thiết bị của tôi đã bắt đầu định dạng đĩa USB2 2TB cách đây khoảng 20 giờ, nó vẫn hoạt động - thiết bị có công suất thấp, hãy nghĩ Raspberry Pi với 64 MB RAM. để bắt đầu định dạng, tôi phải thiết lập phân trang cho cùng một đĩa USB được định dạng, tôi có thể làm gì để tăng tốc độ này không? Tôi sẽ trở nên tuyệt vời nếu tôi có thể có được hiệu suất dưới một hoặc hai giờ?
bị kẹt

2
lazy_itable_init đã thực hiện thủ thuật cho tôi, đây không phải là mặc định và giúp định dạng nhanh hơn nhiều
bị kẹt vào

4

Nếu bạn sẽ lưu trữ hầu hết các tệp lớn hơn, bạn có thể tăng số byte trên mỗi nút, do đó giảm số lượng nút được tạo. Điều này về cơ bản có thể tăng tốc thời gian sáng tạo.

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.