Định dạng Fat 32 hay NTFS ?
Ổ cứng của chúng ta về đơn vị cơ sở là sector (1 sector = 512bytes). Và dữ liệu khi lưu trữ ở mặt phần cứng nó sẽ hiểu theo từng sector như vậy. (thậm chỉ cả USB)
Nhưng với hệ điều hành của microsoft thì có thêm đơn vị là cluster (Linux gọi nó là inode). Thông thường khi format thì mặc định thì 1 cluster = 8 sector (4KB).
Như vậy đơn vị lưu trữ file mà hệ điều hành sử dụng là Cluster. Giả sử bạn có 1 file chỉ chừng 200bytes (khoảng 200 ký tự) thì trên ổ cứng nó vẫn phải dùng hết 4KB (vì cluster là đơn vị cơ sở), do đó bạn để ý khi property kích thước file thì nó sẽ có 2 dạng kích thước là size và size on disk.
Tóm lại 1 tập tin nó sẽ chia ra nhiều mảnh cluster như vậy. Ban đầu khi copy file thì các cluster nó có thể nằm liên tiếp. Tuy nhiên trong quá trình sử dụng thì ta có thể xóa dãy cluster này đi và copy dãy cluster file khác vào dẫn đến file bị phân mảnh vì kích thước mỗi file khác nhau.
Lưu ý là Folder cũng là 1 file (nhưng có thuộc tính folder). Vậy nếu ta chỉnh max cluster (ví dụ 64KB – 128 Sector) thì ta sẽ tốn
hao phí ổ cứng hơn nhưng tốc độ truy xuất file sẽ đạt tốc độ nhanh nhất và khả năng phân mảnh đĩa cũng thấp nhất. Thông thường thì trên USB mình luôn format cỡ này. Nếu mà volumne có số lượng file ít nhưng dung lượng mỗi file lớn thì cũng nên để kích thước cluster cao 1 chút. Như vậy đó là phần DATA dữ liệu. Và FAT32 hay NTFS đều có chung phần này (nên bạn convert từ FAT32 -> NTFS rất nhanh). Điều này cũng đồng nghĩa là khả năng bị phân mảnh giữa 2 hệ thống như nhau chứ ko phải là NTFS ko bị phân mảnh.
Tuy nhiên Hệ Điều Hành cần có 1 vùng nữa gọi là FileSystem để quản lý vùng Data này. Vùng này ko mô tả nội dung dữ liệu file mà mô tả tên file + thuộc tính… Hiện nay thì MS Windows có FAT và NTFS còn Linux thì EXT2 EXT3… nên FAT và NTFS khác nhau ở chỗ này.
FAT FileSystem – Với FAT thì nó có 1 khái niệm là bảng FAT. Sự quan trọng nhất của hệ thống FAT nằm ở cái bảng này. Bảng FAT
nó thể hiện sự liên kết giữa các cluster để giúp HDH hiểu dãy cluster cần thiết để đọc 1 file.
Ví dụ như file A nó có dữ liệu nằm trên các cluster như 10 11 12 _ _ _ 16 17 EOF (ký tự _ giả sử là sự phân mảnh, còn EOF chỉ vị trí kết thúc file)
Như vậy bảng FAT nó sẽ có rất nhiều dòng. Ví dụ như ở file trên thì tại dòng 10 của bảng FAT thì giá trị nó là 11, tại dòng 11 thì giá trị nó là 12, tại 12 thì là 16 và … OEF.
HDH sẽ tra lần lượt từng dòng của bảng FAT như vậy và suy ra được vị trí file.
Ưu điểm của FAT:
– Chính là sự nhỏ gọn và nhanh lẹ.
– HĐH sẽ ko mất nhiều ko gian để lưu trữ nên các USB hầu hết đều sử dụng FAT
Nhược điểm của FAT:
– Trong kiến trúc FAT thì nếu mà bảng FAT bị bad sector thì coi như mất toàn bộ dữ liệu (do đó thông thường có 2 bảng FAT dự phòng). Vì vậy OS thường scandisk để đồng bộ lại 2 bảng FAT khi cúp điện.
– Ngoài ra nhược điểm của nó chính là chổ mắt xích liên kết từ cluster này đến cluster kia. Có nghĩa là nếu đứt 1 mắt xích do 1 sự cố nào đó thì OS sẽ ko đọc được file. Trên Windows thì bạn thấy nó đó nhưng ko cách nào xóa hay remove…. được NTFS FileSystem
Với NTFS thì ko còn khái niệm bảng FAT nữa mà tất cả mọi thứ trên đó đều là file. Hệ thống file có 1 file quan trọng gọi là Master File Table. File này tên là $MFT (file này khá lớn và mặc định bạn ko thể thấy). Ngoài ra còn có các file khác như $bitmap (lưu trữ cluster đã sử dụng) và $security… lưu trữ sự phân quyền… Dữ liệu mọi tập tin trên ổ cứng đều ở file $MFT.
Với file có kích thước < 512bytes thì dữ liệu của nó nằm trên $MFT luôn chứ ko phải mất 1 cluster như FAT.
1 file/folder khi tạo mặc định sẽ mất 1KB trên $MFT. Trong 1KB này sẽ lưu trữ tên file, thuộc tính và danh sách các cluster của file đó. NTFS đã khắc phục nhược điểm của FAT chính là ko có sự liên kết trên cluster mà tất cả đều lưu ở 1KB trên $MFT.
Nhờ vậy khả năng khôi phục dữ liệu như undelete trên NTFS rất là cao.
Ưu điểm của NTFS
– Sự bảo mật
– Khả năng lấy dữ liệu bị xoá.
Nhược điểm của NTFS
– Tốn khá nhiều không gian lưu trữ. Một vài điều mình muốn chia sẽ, rất tiếc là mình ko thể nói cụ thể và rõ ràng hơn được.
Vậy thì với các partitions chứa dữ liệu quan trọng thì tốt nhất bạn nên format sang NTFS. Còn nếu bạn ko quan trọng lắm về dữ liệu đặc biệt là với size HDD nhỏ thì để FAT32 cũng chả sao (FAT32 chỉ hô trợ ổ cứng tối đa là 4TB, Vì FAT32 có nghĩa là trên mỗi dòng bảng FAT dùng 32bit tức là đánh dấu khoảng 64000 cluster).
——————————————————–
Tác hại của phân mảnh dữ liệu là gì?
Để dễ hiểu, chúng ta tưởng tượng ổ cứng là một cái đĩa tròn giống như đĩa CD và được đọc bằng 1 cái kim từ. Bình thường thì cái kim chạy bình thường. Khi dữ liệu bị phân mảnh (vài trăm phần chẳng hạn) thì muốn đọc được dữ liệu, cái kim sẽ phải chạy qua chạy lại, thời gian đó sẽ chậm hơn bình thường, vì vậy dữ liệu sẽ được đọc chậm hơn -> lý do tại sao ta thấy khi phân mảnh thì mở ứng dụng hơi chậm hơn so với bình thường.
Việc phân mảnh xảy ra ở tất các phân vùng trên ổ cứng, đặc biệt là phân vùng nào có dữ liệu thường xuyên bị xóa, ghi mới (điển hình là ổ C: là nơi ta thường cài và gỡ bỏ phần mềm, file tạm….).
Dồn đĩa (chống phân mảnh) là quá trình ghi lại những phần không liền kề nhau của 1 file sang những sector gần nhau trên đĩa để tăng khả năng truy vấn dữ liệu.
Nếu ổ cứng định dạng NTFS quá trình dồn ổ cứng sẽ nhanh hơn nhiều FAT hay FAT32.
Thứ nhất là do NTFS có khả năng truy cập và xử lý file nén tốt như truy cập vào các file chưa nén, điều này không chỉ tiết kiệm được dung lượng mà còn gia tăng được tuổi thọ của đĩa cứng do ít bị phân mảnh hơn khi xử lý file nén.
Thứ hai là do NTFS có cách quản lý file khác với FAT32. Ta hiểu đơn giản rằng, dữ liệu trên ổ cứng được tách làm 2 phần, một phần là Data, và một phần là FileSystem để quản lý vùng Data này. Vùng FileSystem không mô tả nội dung dữ liệu file mà mô tả tên file + thuộc tính…
Với FAT thì nó có 1 khái niệm là bảng FAT. Sự quan trọng nhất của hệ thống FAT nằm ở cái bảng này. Bảng FAT nó thể hiện sự liên kết giữa các cluster để giúp HDH hiểu dãy cluster cần thiết để đọc 1 file.
Ví dụ như file A nó có dữ liệu nằm trên các cluster như 10 11 12 _ _ _ 16 17 EOF (ký tự _ giả sử là sự phân mảnh, còn EOF chỉ vị trí kết thúc file). Như vậy bảng FAT nó sẽ có rất nhiều dòng. Ví dụ như ở file trên thì tại dòng 10 của bảng FAT thì giá trị nó là 11, tại dòng 11 thì giá trị nó là 12, tại 12 thì là 16 và … OEF.
HĐH sẽ tra lần lượt từng dòng của bảng FAT như vậy và suy ra được vị trí file.
Trong kiến trúc FAT thì nếu mà bảng FAT bị bad sector thì coi như mất toàn bộ dữ liệu (do đó thông thường có 2 bảng FAT dự phòng). Vì vậy Khi mà mất điện đột ngột thì Windows 98, 2000, XP… đều phải quét lại đĩa khi khởi động lại nếu đĩa đó được format bằng chuẩn FAT32.
Trong khi format đĩa cứng bằng NTFS thì lại hoàn toàn không cần quét đĩa lại, bởi vì hệ thống dùng NTFS có được những thông tin về tính toàn vẹn dữ liệu ghi trên đĩa và nó mất rất ít thời gian để biết được về mặt logic đĩa của mình có lỗi hay không và nếu có thì hệ thống cũng tự phục hồi một cách cực kỳ đơn giản và nhanh chóng.
Với FAT32 thì nó phải rà quét toàn bộ lâu hơn nhiều. Ngoài ra nhược điểm của FAT32 chính là chổ mắt xích liên kết từ cluster này đến cluster kia.
Với NTFS thì ko còn khái niệm bảng FAT nữa mà tất cả mọi thứ trên đó đều là file. Hệ thống file có 1 file quan trọng gọi là Master File Table. File này tên là $MFT (file này khá lớn và mặc định bạn ko thể thấy). Ngoài ra còn có các file khác như $bitmap (lưu trữ cluster đã sử dụng) và $security… lưu trữ sự phân quyền… Dữ liệu mọi tập tin trên ổ cứng đều ở file $MFT.
Với file có kích thước < 512bytes thì dữ liệu của nó nằm trên $MFT luôn chứ ko phải mất 1 cluster như FAT. Một file/folder khi tạo mặc định sẽ mất 1KB trên $MFT. Trong 1KB này sẽ lưu trữ tên file, thuộc tính và danh sách các cluster của file đó.
NTFS đã khắc phục nhược điểm của FAT chính là ko có sự liên kết trên cluster mà tất cả đều lưu ở 1KB trên $MFT. Nhờ vậy khả năng khôi phục dữ liệu như undelete trên NTFS rất là cao, và việc dồn đĩa cũng nhanh hơn rất nhiều.
Trên đây cũng là lý do quá trình dồn đĩa mất thời gian hơn nhiều so với NTFS. Một hệ thống Windows 2000, XP sẽ ổn định hơn nhiều nếu cài trên phân vùng được format bằng NTFS (với Windows 7 thì đã bắt buộc phải là NTFS, và cơ chế quản lý việc ghi xóa dữ liệu được chủ động sắp xếp để hạn chế tối đa sự phân mảnh ổ cứng).
Theo mình, nên hạn chế tối đa việc sử dụng lưu trữ dữ liệu trên phân vùng hệ thống để có thể hạn chế tối đa sự phân mảnh ổ cứng mà lại dễ dàng chống phân mảnh cho cả phân vùng hệ thống lẫn các phân vùng chứa dữ liệu của bạn.
Hy vọng rằng với một số chia sẻ như vậy, bạn sẽ hiểu hơn về phân mảnh và chống phân mảnh ổ cứng, giúp bạn sử dụng máy tính hiệu quả hơn
Trong các số sau Tâm sẽ hướng dẫn các bạn cách chuyển FAT32 qua NFTS và ngược lại mà không ảnh hưởng đến dữ liệu; cũng như giới thiệu phần mềm chống phân mảnh hiệu quả & an toàn nhất