Kiểm tra tổng thể (checksum)

Một phần của tài liệu Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX (Trang 51 - 52)

Việc thêm siêu dữ liệu kiểm tra tổng quát vào định dạng ext4 sẽ cho phép định dạng này dễ dàng phát hiện ra lỗi sai sót, và sẽ tự tìm cách sửa lỗi thích hợp thay vì tin tưởng vào dữ liệu lấy từ đĩa cứng. Các mô tả của nhóm dữ liệu được thêm phần kiểm tra tổng thể vào trước mỗi đoạn (section) của nhóm. Tiếp theo, việc kiểm tra tổng thể phải kiểm tra Nhật ký (journal), bởi vì nó chứa mật độ cao các siêu dữ liệu quan trọng, và nó luôn luôn được ghi ra liên tục. Do đó các thay đổi hoặc lỗi ngẫu nhiên sẽ được phát hiện từ đây.

Những kiểm tra thổng thể thêm vào nhật ký của định dạng ext4 là tương đối hoàn thiện. Trong định dạng ext3 và ext4, mỗi quá trình trao đổi dữ liệu lưu trong nhật ký có cấu trúc gồm một khối mở đầu và một khối chứa dữ liệu. Trong suốt quá trình tiến hành ghi nhật ký, khối chứa dữ liệu sẽ không được gửi đến đĩa cứng cho đến khi khối mở đầu và cả khối siêu dữ liệu được mô tả đầy đủ, sau đó tất cả được ghi vào đĩa cứng. Quá trình trao đổi dữ liệu tiếp theo cần đợi cho đến khi khối dữ liệu trước đó được ghi vào hoàn toàn đĩa, và nó bắt đầu có thể dùng để chỉnh sửa định dạng tập tin.

Với 2 quá trình lưu tập tin riêng biệt, nếu khối chứa dữ liệu tập tin bị trùng số thứ tự với khối mở đầu tập tin, thì nó sẽ ra hiệu cho quá trình trao đổi dữ liệu làm lại vào lúc khôi phục tập tin. Nếu như cả 2 không khớp nhau, quá trình khôi phục nhật ký kết thúc. Tập tin đã bị lỗi. Tuy nhiên thực tế có nhiều nguyên nhân dẫn đến tập tin bị lỗi định dạng.

Với kiểu kiểm tra tổng thể nhật ký, nhật ký tính toán dựa theo mã CRC32 trên tất cả các khối trong quá trình trao đổi dữ liệu (bao gồm cả khối mở đầu), và việc kiểm tra tổng thể được ghi vào khối chứa dữ liệu của quá trình trao đổi. Nếu việc kiểm tra tổng thể không khớp với nhật ký lưu tập tin, tức là có dầu hiệu của một hoặc nhiều khối siêu dữ liệu đã không được ghi vào đĩa cứng hoặc bị đứt khi trao đổi dữ liệu. Sau đó quá trình trao đổi dữ liệu (cả những quá trình sau đó) bị hủy bỏ và máy tính bị treo, cũng như khối chứa dữ liệu không được ghi ra nữa.

Kể từ khi quá trình kiểm tra tổng thể trong nhật ký cho phép nhận ra khối dữ liệu chưa được ghi vào nhật ký, thì nó không cần 2 quá trình lưu tập tin riêng rẽ như trước kia nữa. Khối chữa dữ liệu có thể được ghi đồng thời với tất cả các phần còn lại

của tập tin cùng lúc trong quá trình trao đổi tập tin. Quá trình này thật sự làm tăng xử lý định dạng tập tin lên (khoảng 20%), thay vì làm quá tải hệ thống như trước kia.

Có thể thêm phần kiểm tra tổng thể vào phần đuôi mở rộng của tập tin, bản đồ cố định các bít, các inode, và cả đường dẫn tập tin nữa. Điều này có thể làm được nhờ vào việc lưu nhật ký quá trình trao đổi tập tin. Thà mất thời gian tính toán kiểm tra tổng thể của định dạng tập tin mỗi khi nó thay đổi, chúng ta sẽ có thể ghi lại nhật ký thay đổi của tập tin và sửa chữa nó nếu bị lỗi vào lúc khôi phục. Các khối dữ liệu có thể chứa siêu dữ liệu cùng với dữ liệu kiểm tra được ghi lại cùng lúc vào tập tin.

Một phần của tài liệu Kiến trúc hệ thống File EXT2, EXT3, EXT4 của các hệ điều hành họ LINUX (Trang 51 - 52)