Mỗi hệ điều hành sử dụng hệ thống file riêng của mình để lưu trữ dữ liệu. Windows sử dụng NTFS, macOS sử dụng APFS và hầu hết các bản phân phối Linux đều sử dụng Ext4. Mặc dù các hệ thống file này về cơ bản khác nhau, nhưng có một tính năng chung tồn tại trong tất cả các hệ thống file này là journaling.
Hãy cùng tìm hiểu thêm về journaling file system qua bài viết sau đây.
Journaling là gì?
Hãy tưởng tượng mỗi file trên máy tính là một danh mục thư viện duy nhất, gồm các tạp chí, báo hoặc tài liệu. Mỗi tài liệu mới được thêm vào một danh mục sẽ thay đổi thông tin của nó đôi chút. Thay vì tìm kiếm trên toàn bộ thư viện để tìm một mục, bạn chỉ phải kiểm tra danh mục có liên quan.
Journaling trong các hệ thống file máy tính hoạt động rất giống nhau. Mục đích của nó là theo dõi các thay đổi chưa được ghi lại (commit) đối với hệ thống file. Ngay cả sau khi có sự cố hoặc tắt máy đột xuất, bạn vẫn có thể truy cập phiên bản file mới nhất với khả năng bị lỗi thấp hơn.
Thuật ngữ “journal” xuất phát từ sự tương đồng với một cuốn nhật ký. Mọi thay đổi bạn ghi lại trong nhật ký sẽ được lưu trữ theo ngày và thời gian. Theo cách tương tự, journaling cho phép tất cả các bản cập nhật cho một file được lưu trữ trong phần liền kề của ổ đĩa.
Các cập nhật này không cần phải đặt gần nhau về mặt vật lý. Trên thực tế, các mục được ghi lại nằm rải rác trên ổ đĩa. Nhưng thay vì truy cập chúng một cách ngẫu nhiên, chúng có sẵn trong một chuỗi giống như nhật ký, với tốc độ nhanh hơn hàng ngàn lần.
Các định nghĩa
Tùy thuộc vào hệ điều hành, có các loại journaling khác nhau mà bài viết sẽ thảo luận dưới đây. Nhưng trước tiên, ta cần phải nắm rõ về một vài thuật ngữ.
- Tebibyte (TiB): Tất cả chúng ta đều biết một gigabyte là bao nhiêu. 1 tebibyte (TiB) = 1024 gigabyte. TiB là một trong những đơn vị mặc định để thể hiện các giá trị lớn trong lưu trữ file. Ngoài ra, 1 TiB = 1,09951 terabyte (TB).
- Pebibyte (PiB): 1 pebibyte (PiB) tương đương 1024 TiB hoặc khoảng 1 triệu gigabyte. Đây thực sự là một giá trị rất lớn.
- Cluster: Data cluster (cụm dữ liệu) là đơn vị nhỏ nhất của không gian ổ đĩa, có thể được sử dụng để lưu trữ một file. Nó có thể dao động từ 512 byte cho một sector đến 64KB cho 128 sector.
1. NTFS
New Technology File System (NTFS) là hệ thống journaling mặc định của Microsoft cho Windows và Windows Server. Nó sử dụng các file nhật ký và thông tin checkpoint để khôi phục các giá trị ổn định của hệ thống file sau khi khởi động lại.
NTFS hỗ trợ khối lượng dữ liệu lớn. Đối với dung lượng cluster 4KB, nó có thể chứa 16TiB dữ liệu. Đối với dung lượng cluster 64KB (tối đa), NTFS có thể chứa 256TiB dữ liệu với 256TiB là dung lượng file tối đa.
Ngày nay, NTFS sửa bất kỳ lỗi nào trong các file trực tuyến thông qua cái được gọi là “Self-healing NTFS”. Người dùng Windows 10 có thể vẫn nhớ trải nghiệm thời gian chết do Chkdsk gây ra. Trong bản cập nhật Self-healing NTFS mới nhất, sự cố đã được giải quyết trực tuyến và không có thời gian chết xảy ra.
2. Ext
Extended File System (Ext) là hệ thống journaling của Linux. Nó được lấy cảm hứng từ Unix File System (UFS) và đã trải qua 3 phiên bản kể từ khi xuất hiện vào đầu những năm 90.
- ext2 ban đầu được sử dụng trong Debian và Red Hat Linux. Ext2 vẫn được sử dụng trong phương tiện flash như thẻ SD và USB. Nó có thể chứa 2 đến 32TiB dữ liệu với dung lượng cluster tối đa là 8KB.
- ext3 được sử dụng với Linux, BSD và ReactOS. Các giới hạn về dung lượng tương tự như ext2.
- ext4 là phiên bản mới nhất của Ext, nó được sử dụng bởi BSD, PowerPC và hầu hết các bản phân phối Linux hiện tại. Giới hạn dung lượng là 1024PiB hoặc khoảng 1 triệu TiB. Kích thước cluster lớn nhất là 64KB.
3. APFS
Apple File System (APFS) được sử dụng với macOS High Sierra, iOS 10.3 trở lên và một số hệ thống khác. Nó hỗ trợ tới 8000PiB, lớn hơn khoảng 8 lần so với Ext4.
Các khả năng chính của APFS bao gồm việc tạo những ảnh chụp nhanh, giống như một bản sao của hệ thống tại một điểm cụ thể. Giống như NTFS, nó sử dụng checksum để đảm bảo tính toàn vẹn dữ liệu và bảo vệ tránh khỏi sự cố hệ thống, bằng cách sử dụng một cách tiếp cận có tên là “copy on writer”. Bên cạnh đó, APFS sử dụng tính năng mã hóa toàn bộ ổ đĩa.
Journaling trong các hệ thống file là một sự bảo vệ cơ bản chống lại sự cố hệ thống và tắt máy đột ngột. Bằng cách ghi lại các thay đổi một cách nhanh chóng, người dùng có thể đảm bảo rằng tất cả những thay đổi đối với các file được ghi lại và không bị mất khi tắt nguồn hoặc gặp sự cố máy tính.