images
06/10/2022 11:09 am

Journaling trong filesystem là gì?

Một số filesystem hỗ trợ chế độ Journaling, một số khác thì không. Vậy journaling là gì? Bạn hãy tìm hiểu để chọn filesystem phù hợp.

Journaling được thiết kế để ngăn ngừa việc data bị hỏng (corruption) khi đột ngột bị tắt như khi bị ngắt điện lúc đang hoạt động. Ví dụ hệ thống của bạn đang trong giai đoạn ghi dữ liệu một file lên ổ đĩa thì đột ngột nguồn điện bị ngắt. Nếu không có journal, máy tính của bạn sẽ không biết rằng file đã được ghi hoàn toàn lên ổ đĩa chưa. File sẽ nằm trên ổ đĩa và bị hỏng.

Với journal, máy tính của bạn sẽ ghi nhớ rằng nó đang ghi dữ liệu vào file trên ổ đĩa vào hệ thống journal, rồi thực hiện ghi dữ liệu vào đĩa, sau đó loại bỏ tác vụ đã đánh dấu đó trong journal. Nếu nguồn điện bị ngắt trong quá trình ghi file, Linux sẽ kiểm tra journal trong filesystem khi nó khởi động và tiếp tục làm tiếp các công việc dang dở. Điều này ngăn ngừa data bị mất và file bị hỏng.

Cơ chế của journal hoạt động giống như một transaction. Việc ghi dữ liệu thành công thì giao dịch sẽ được commit. Bất cứ việc ghi dữ liệu nào mà giao dịch chưa được commit và hệ thống bị lỗi (crashed, mất điện) thì khi khởi động lại, hệ thống được đưa về giai đoạn trước đó để đảm bảo dữ liệu được toàn vẹn.


 

Journaling sẽ làm chậm lại quá trình ghi dữ liệu xuống ổ đĩa 1 chút nhưng điều này đáng giá trên máy tính cá nhân của mọi người. Nó không phải là yếu tố gây ra sự chậm trễ quá mức. 

Có 3 chế độ journal:

- Journal: Chế độ ít rủi ro nhất, cả dữ liệu và metadata sẽ được ghi vào journal trước khi được commit vào filesystem. Điều này làm performance của hệ thống chậm lại khi ghi dữ liệu.

- Ordered: Chỉ ghi metadata vào journal còn data được ghi trực tiếp vào filesystem. Sau khi dữ liệu được ghi xong, phần metadata tương ứng sẽ được tiếp tục từ journal ghi xuống filesystem. Khi có lỗi, hệ thống sẽ rollback lại được dữ liệu. Trong chế độ này, file có thể bị lỗi hỏng, tuy nhiên toàn bộ filesystem và các data khác thì không.

- Writeback: Chế độ này tương tự như Ordered về mặt cách lưu dữ liệu tuy nhiên thứ tự thực hiện thì không giữ nguyên mà tuỳ tình huống để đảm bảo có performance tốt nhất. Ở chế đọ này thì dữ liệu của file có thể bị mất, hỏng hóc nhưng toàn bộ filesystem thì vẫn an toàn.

Ngày nay các filesystem đều hỗ trợ cơ chế journaling, và bạn sẽ muốn filesystem hỗ trợ cơ chế này khi setup cho Desktop hay Laptop của bạn.


Xem thêm bài Tìm hiểu về Filesystem trong OS.


- Tech Zone -

Thư giãn chút nào!!!

Bài viết liên quan