Tầm quan trọng của fsck khi khởi động với hệ thống tập tin Journalled?


10

Tôi nhận thấy rằng XFS không triển khai fsck khi khởi động hệ thống và một trong những lý do được quảng cáo trong hệ thống tệp nhật ký đó giúp đảm bảo hệ thống tệp ở trạng thái nhất quán sau khi tắt máy không sạch; trên mount tiếp theo (ví dụ sau khi khởi động lại), tạp chí được phát lại.

Là một fsck vẫn cần thiết sau khi tắt máy ô uế và tại sao?

fsck 

Câu trả lời:


4

Tôi đang trả lời điều này trong ngữ cảnh chung của "các hệ thống tập tin bị xáo trộn".

Tôi nghĩ rằng nếu bạn đã thực hiện một số "tắt máy ô uế" (bằng cách kéo dây nguồn hoặc một cái gì đó ) thì sớm muộn bạn cũng sẽ đến trạng thái hệ thống tập tin yêu cầu fsckhoặc tương đương đạo đức của fsck , xfs_repair. Phần lớn ext4fileystsm trên máy tính xách tay của tôi phần lớn chỉ phát lại nhật ký trên mỗi lần khởi động lại, bao gồm tắt máy sạch, nhưng thỉnh thoảng, nó lại hoạt động đầy đủ fsck.

Nhưng hãy tự hỏi những gì "phát lại tạp chí" hoàn thành. Phát lại một tạp chí chỉ đảm bảo rằng các đĩa đệm của phần còn lại của hệ thống tệp khớp với thứ tự mà các mục nhật ký yêu cầu. Phát lại một số tạp chí nhỏ fsck, hoặc một phần của một đầy đủ trên fsck.

Tôi nghĩ rằng có một số điều thú vị đang diễn ra: phát lại một tạp chí là một phần của những gì truyền thống fscklàm, và xfs_repairchính xác là loại chương trình tương tự e2fs.fsck(hoặc bất kỳ hệ thống tập tin nào khác fsck). Người XFS chỉ tin hoặc kinh nghiệm của họ khiến họ không chạy xfs_repairtrên mọi khởi động, chỉ để phát lại tạp chí.


3
Chặn một lỗi trong mã nhật ký hoặc ổ đĩa, không có số lần tắt ô uế nào có thể khiến đĩa ở trạng thái yêu cầu fsck. ext [34] vẫn giữ lại fsck tự động pedantic sau rất nhiều lần gắn kết một phần như là một sự chuyển giao từ ext2 kết hợp với, ... một thái độ phạm tội của "chỉ trong trường hợp". Ít nhất là trong các phiên bản gần đây của Ubuntu, điều này đã bị tắt theo mặc định.
psusi

Theo kinh nghiệm của tôi, một chiếc máy tự động fsckkhông phải là 'pedantic'. Tôi đã chuyển đổi một ext3 LVMphân vùng thành ext4và bắt đầu gặp lỗi 'ext4_mb_generate_buddy' do tôi hiểu là lỗi trong ext4mã gây ra sự không khớp trong các bản sao trên đĩa và trong bộ nhớ của bitmap trên các phân vùng 'LVM' đã chuyển đổi. Theo như tôi có thể nói fsck, không có tham nhũng xảy ra. Giải pháp là tắt UNINIT_BGtùy chọn hoặc di chuyển dữ liệu và xác định lại phân vùng như ext4; Tôi đã tham gia khóa học sau. Nhưng tôi vẫn nghĩ vài phút chờ đợi fscklà đáng để không mất dữ liệu!
StarNamer

1
Có rất nhiều thông tin bị thiếu từ câu trả lời này do đó downvote và trả lời khác.
symcbean

4

giúp đảm bảo hệ thống tập tin ở trạng thái nhất quán sau khi tắt máy ô uế

Điều đầu tiên cần lưu ý là XFS, trình tái cấu trúc và hầu hết các cấu hình của ext chỉ thực hiện nhật ký siêu dữ liệu, tất cả là về việc tránh fsck. Tạp chí không phải lúc nào cũng được phát lại khi khởi động - nó có thể bị loại bỏ nếu nó không đầy đủ.

Có những hệ thống hỗ trợ nhật ký dữ liệu đầy đủ - nhưng trên thực tế, mức độ đảm bảo những điều này đưa ra chỉ là nhật ký siêu dữ liệu là rất nhỏ trong các tình huống trong thế giới thực.

Vì vậy, một 'trạng thái không nhất quán' và các vấn đề được sửa bởi fsck, là sự không khớp giữa dữ liệu meta và chính các tệp. Để tránh điều này, HĐH ghi các thay đổi dữ liệu meta được đề xuất vào nhật ký, sau đó ghi dữ liệu thực tế vào đĩa, sau đó áp dụng các thay đổi dữ liệu meta được sao chép trong nhật ký vào đĩa. Điều hấp dẫn duy nhất với điều này là bộ điều khiển đĩa sẽ đệm và có khả năng sắp xếp lại các yêu cầu. Để tránh điều này, hầu hết các hệ thống tập tin tạp chí đều thực hiện các rào cản: chúng tách riêng từng thao tác và chờ đĩa xác nhận rằng nó đã hoàn thành thao tác. Nhưng nhiều đĩa hiện đại thực sự thừa nhận hoàn thành ghi trước khi dữ liệu được cam kết. Do đó, mọi thứ có thể trở nên lộn xộn.

Là một fsck vẫn cần thiết sau khi tắt máy ô uế và tại sao

Hầu hết các hệ thống tập tin duy trì số lần gắn kết - một khi số lượng này đạt được, một fsck đầy đủ sẽ được kích hoạt ở lần thử tiếp theo để gắn đĩa. Lý do là dữ liệu đĩa có thể bị hỏng ngay cả khi nó không được ghi rõ ràng, thậm chí không có lỗi trong phần mềm. Nhận xét của psusi ở trên là sai.


Bạn đang đặt hàng với các rào cản. Các đĩa không báo cáo việc ghi là đã hoàn thành trước khi chúng chạm vào đĩa trừ khi bạn bật bộ đệm ghi, mặc định bị vô hiệu hóa trong các đĩa cấp độ người tiêu dùng, vì vậy với chúng, fs chỉ cần đợi một lần ghi hoàn thành trước khi phát hành tiếp theo . Đối với phần cứng có bộ đệm ghi, các rào cản được sử dụng để ngăn chặn sắp xếp lại và buộc đĩa phải xóa bộ đệm ghi của nó, do đó giữ cho fs không bị hỏng.
psusi

1
psusi - bạn đã hút thuốc gì? "Đĩa không báo cáo viết như đã hoàn thành trước đây ..." - vâng họ làm. "bật bộ đệm ghi, được tắt theo mặc định" - không phải trên bất kỳ ổ đĩa nào tôi từng cấu hình. "các rào cản được sử dụng để ngăn chặn sắp xếp lại" - nhưng bạn nói rằng tôi đã "sắp xếp trật tự với các rào cản"
symcbean

Không, họ không. Nếu bạn không kích hoạt bộ đệm ghi đĩa ( hdparm -W), thì đĩa không hoàn thành yêu cầu ghi cho đến khi nó ở trên phương tiện. Tại sao bạn nghĩ rằng tùy chọn đó tồn tại? Rào cản ngăn chặn sắp xếp lại khi nhiều yêu cầu được ban hành. Không có rào cản, fs đơn giản là không đưa ra nhiều yêu cầu cho đến khi những yêu cầu trước hoàn thành, do đó duy trì trật tự mà không có rào cản ... với điều kiện là bộ đệm ghi đĩa không được kích hoạt. Mục đích của các rào cản là cho phép bạn kích hoạt bộ đệm ghi, mà không làm hỏng fs khi gặp sự cố.
psusi

Rất tiếc, tôi đã có một chút hỗn hợp ở đó và quên đi sync. Hãy để tôi thử lại. Quy trình ghi vào đĩa không có rào cản là ghi vào tạp chí sync, do đó xóa bất kỳ bộ đệm ghi nào, sau đó ghi dữ liệu thực. Điều này đảm bảo rằng tạp chí luôn có thể được sử dụng để khôi phục fs sau khi gặp sự cố, nhưng đồng bộ hóa làm chậm mọi thứ và giảm một nửa mục đích của bộ đệm ghi. Do đó, các rào cản đã được thêm vào như một sự thay thế tốt hơn syncvà với sự hỗ trợ đĩa thích hợp, chúng có thể lấy lại một cách an toàn phần lớn hiệu suất mà việc đồng bộ hóa mất đi.
psusi

2

Không cần phải fsck một hệ thống tập tin nhật ký chỉ vì tắt máy ô uế.

Các toàn bộ lý do để chịu đựng những hình phạt hiệu quả thời gian chạy của journaling siêu dữ liệu là để đảm bảo rằng hệ thống tập tin có thể được thực hiện 100% phù hợp một lần nữa bằng cách tự động phát lại các bản ghi siêu dữ liệu trên tiếp theo gắn kết, nếu hệ thống tập tin là không sạch chưa lắp ráp.

Vai trò duy nhất của fsck là đảm bảo tính nhất quán của siêu dữ liệu, do đó, việc chạy fsck đơn giản là vì hệ thống tập tin không được kết nối đúng.

Một hệ thống tập tin nhật ký có thể bị hỏng vì các lý do khác, mặc dù - lỗi phần cứng, lỗi trình điều khiển, lỗi quản trị viên, v.v. - vì vậy các công cụ fsck chắc chắn là cần thiết. Không có lý do gì để gọi họ chỉ vì tắt máy ô uế.


Điều gì về việc gọi họ mỗi lần khởi động lại? hữu ích? hoặc chỉ chờ một vấn đề được báo cáo và sau đó chạy fsck?
đơn giản hóa
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.