Vì Sao NAS Ngày Càng Đầy? Bắt Đầu Bằng Việc Dọn Dẹp File Trùng Lặp
Cho dù đó là ổ cứng trong, ổ cứng ngoài hay NAS, việc xuất hiện các tập tin trùng lặp theo thời gian là điều gần như không thể tránh khỏi. Điều này đúng với người dùng cá nhân—và càng đúng hơn trong các thiết lập nhiều người dùng. Theo thời gian, các tập tin trùng lặp này sẽ tiếp tục tăng lên, lãng phí dung lượng lưu trữ, làm chậm quá trình sao lưu và có khả năng gây nguy hiểm cho dữ liệu của bạn.
Liệu vấn đề này có thực sự nghiêm trọng đến vậy? Hãy cùng xem xét một vài ví dụ đơn giản.
1. Sau một buổi chụp ảnh, nhiếp ảnh gia sao chép ảnh từ thẻ nhớ của máy ảnh sang thiết bị NAS nhưng quên định dạng thẻ. Lần tiếp theo chụp ảnh mới, họ lại sao chép toàn bộ thẻ nhớ sang NAS một lần nữa. Cho dù họ nhận ra các tập tin bị trùng lặp hay đơn giản là không nhớ những gì đã được chuyển, các bản sao trùng lặp vẫn nằm trên cùng một ổ đĩa, điều này gây khó khăn cho việc sao lưu.
2. Một điều phối viên triển lãm trong phòng marketing lưu hình ảnh chủ đạo cho gian hàng vào Thư mục A. Một nhà thiết kế trong cùng phòng ban cũng lưu một bản sao của hình ảnh đó vào Thư mục B để thuận tiện cho công việc. Sau đó, khi chuyển giao tập tin cho một công ty thiết kế bên ngoài, họ lại tạo thêm một thư mục khác để lưu trữ cùng một tập tin đó để công ty có thể truy cập. Cuối cùng, ổ cứng chứa ba bản sao của cùng một tập tin. Một tuần sau, chiến lược sao lưu 3-2-1-1-0 do nhóm MIS giàu kinh nghiệm thiết lập sẽ được kích hoạt, dẫn đến việc các tập tin trùng lặp này được sao lưu thêm nhiều lần nữa.
Cả hai trường hợp trên đều rất phổ biến. Ngoài việc lãng phí dung lượng lưu trữ và thời gian, việc có quá nhiều tệp trùng lặp có thể gây khó khăn cho việc quản lý phiên bản. Theo thời gian, sẽ rất khó để phân biệt tệp nào giống hệt nhau, và điều này thậm chí có thể dẫn đến việc xóa nhầm – khiến không còn bản sao hợp lệ nào.
Do đó, việc thường xuyên dọn dẹp các tập tin là một thói quen tốt giúp tiết kiệm cả thời gian và dung lượng lưu trữ. Tuy nhiên, việc xem xét từng tập tin một có thể rất tốn thời gian, vì vậy tốt nhất là nên sử dụng các công cụ của bên thứ ba để hoàn thành công việc này.
Làm thế nào để biết hai hoặc nhiều tệp có nội dung giống hệt nhau?
Nếu mọi thứ không được đặt tên đúng cách, lời giải thích sẽ không có ý nghĩa. Trước khi tiếp tục, hãy làm rõ nhiệm vụ: chúng ta đang tìm kiếm các tập tin và ảnh trên NAS là bản sao chính xác của nhau. Một số ứng dụng tập trung vào "tìm ảnh tương tự", nhưng đó là một loại nhiệm vụ hoàn toàn khác, mà chúng ta có thể thảo luận vào một dịp khác.
Đối với việc xác định các bức ảnh hoàn toàn giống hệt nhau, vì ảnh tồn tại trên ổ cứng dưới dạng các tập tin, nên bất kỳ tập tin nào có nội dung giống hệt nhau về cơ bản đều là cùng một hình ảnh. Điều này cho phép chúng ta đơn giản hóa mục tiêu cốt lõi của nhiệm vụ: chỉ cần tìm các tập tin trùng lặp. Quá trình này thường được gọi là "loại bỏ trùng lặp".
Thách thức đặt ra là: làm thế nào để tìm và so sánh chúng? Hầu hết các công cụ đều tuân theo cùng một thuật toán và logic cơ bản, thường hoạt động như sau:
1. Trước tiên, hãy so sánh kích thước tệp.
Các tập tin có nội dung giống hệt nhau luôn có cùng kích thước. Do đó, các công cụ này bắt đầu bằng cách lọc ra các tập tin có kích thước giống hệt nhau khỏi ổ đĩa.
Tuy nhiên, các tệp có cùng kích thước không nhất thiết phải có nội dung giống hệt nhau. Ví dụ, nhiều tệp lưu trữ được chia thành các phần có kích thước cố định, và các tệp văn bản có cùng số ký tự cũng sẽ có cùng kích thước. Do đó, chỉ sử dụng kích thước tệp để xác định xem các tệp có giống hệt nhau hay không chỉ là bước đầu tiên.
2. Sau đó, so sánh “dấu vân tay” của các tập tin.
Vì các tệp kỹ thuật số được lưu trữ dưới dạng nhị phân, một chuỗi thập lục phân duy nhất—được gọi là “giá trị băm”—có thể được tạo ra từ nội dung của mỗi tệp bằng cách sử dụng các thuật toán toán học. Các thuật toán khác nhau tạo ra các giá trị băm khác nhau. Các thuật toán yêu cầu nhiều phép tính hơn (như SHA-512) đáng tin cậy hơn nhưng mất nhiều thời gian hơn, trong khi các thuật toán yêu cầu ít phép tính hơn (như MD5) nhanh hơn nhưng kém tin cậy hơn.
Miễn là các tệp tin khác nhau, trong điều kiện bình thường, các giá trị băm này rất khó có thể giống hệt nhau. Thuật ngữ kỹ thuật hơn cho điều này là "xung đột"; sự khác biệt duy nhất là mức độ dễ bị làm giả. Chúng ta có thể coi giá trị băm như một dấu vân tay duy nhất cho mỗi tệp tin. Nếu hai tệp tin có dấu vân tay giống hệt nhau, chúng được coi là giống hệt nhau.
Với độ tin cậy cao của việc so sánh mã băm, tại sao vẫn cần kiểm tra kích thước tệp trước? Làm như vậy giúp tiết kiệm thời gian và tài nguyên. So sánh giá trị băm tốn nhiều tài nguyên tính toán, nhưng việc xác định các tệp có kích thước giống nhau hầu như không tốn công sức đối với máy tính hiện đại. Bằng cách thu hẹp số lượng tệp dựa trên kích thước trước khi thực hiện so sánh mã băm, quá trình này trở nên hiệu quả hơn nhiều.
Việc thực hiện so sánh trực tiếp trong môi trường NAS nhanh hơn đáng kể.
Nhiều ứng dụng máy tính để bàn trên Windows và macOS có thể xử lý tác vụ này. Tuy nhiên, nếu các tệp đã được lưu trữ trên NAS, việc chạy trực tiếp quy trình trên chính NAS có thể tiết kiệm được đáng kể thời gian. Có hai lý do chính cho điều này:
1. Thời gian truyền tải mạng
Việc tính toán giá trị băm yêu cầu đọc toàn bộ nội dung của từng tập tin. Việc thường xuyên đọc các tập tin NAS từ máy tính cục bộ là không hiệu quả.
2. Hỗ trợ công cụ gốc
Mặc dù các thiết bị NAS thường không được tích hợp sẵn các công cụ chống trùng lặp dữ liệu đơn giản (QNAP HBS có cung cấp tính năng chống trùng lặp cho các tác vụ sao lưu, điều này sẽ được thảo luận trong một bài viết khác), nhưng có rất nhiều tiện ích Linux có thể thực hiện nhiệm vụ này.
Trên thiết bị NAS QNAP, trước tiên hãy bật SSH và đăng nhập vào dòng lệnh từ xa. Sau đó, cài đặt tiện ích jdupes thông qua QPKG. Lưu ý rằng jdupes không phải là tiện ích chính thức của QNAP; nếu có bất kỳ lo ngại nào về bảo mật, nên thực hiện các tác vụ này trong môi trường Docker.
Các tùy chọn dòng lệnh của jdupes khá đơn giản. Ví dụ, để tìm các tệp trùng lặp trong thư mục hiện tại, bao gồm tất cả các thư mục con, hãy sử dụng lệnh sau:
jdupes -r .
Tùy chọn “-r” viết tắt cho tìm kiếm đệ quy, và dấu chấm “.” có nghĩa là quá trình tìm kiếm bắt đầu từ thư mục hiện tại. Sau khi được thực thi, tiện ích sẽ bắt đầu quét nội dung tệp, và thời gian cần thiết phụ thuộc vào số lượng và kích thước của các tệp. Vì công cụ này thường xuyên đọc dữ liệu từ các ổ đĩa bên trong NAS, nên việc chạy nó trên ổ đĩa trạng thái rắn (SSD) sẽ nhanh hơn nhiều.
Sau khi quá trình so sánh hoàn tất, tiện ích sẽ liệt kê tất cả các tệp trùng lặp và sắp xếp chúng thành các nhóm, như hình bên dưới:
Bạn sẽ nhận thấy rằng nhiều tệp có tên hoặc đường dẫn khác nhau về cơ bản là giống hệt nhau. Sau khi xác định các tệp trùng lặp, bước tiếp theo là xóa chúng. Thêm “d” vào lệnh trước đó, ví dụ:
Jdupes -rd .
Khi hiển thị kết quả, tiện ích sẽ nhắc người dùng chọn tệp nào muốn giữ lại; các tệp còn lại sẽ bị xóa. Phương pháp này hoạt động tốt với số lượng tệp nhỏ, nhưng khi xử lý số lượng lớn—ví dụ, hàng nghìn bộ dữ liệu trùng lặp—thì việc xác nhận từng tệp một là không thực tế.
Đến bước này, bạn có thể thêm chữ “N” vào lệnh, như sau:
Jdupes -rdN .
Ký hiệu “N” có nghĩa là “Không cần hỏi, chỉ cần giữ lại tệp tin khớp đầu tiên được tìm thấy”, và tất cả các tệp tin khác sẽ bị xóa tự động. Sau khi chạy lệnh này, chỉ còn lại một bản sao của mỗi tệp tin giống hệt nhau trong thư mục đích, giúp loại bỏ các tệp tin trùng lặp một cách hiệu quả.
Trong hình trên, các tệp có tiền tố “+” được giữ lại, trong khi các tệp có tiền tố “-” sẽ bị xóa.
Trong bài kiểm tra cho bài viết này, thư mục gốc có tổng dung lượng 282 GB và chứa 32.381 tập tin. Sau khi loại bỏ các tập tin trùng lặp, tổng dung lượng đã giảm từ 8–17%. Thư mục được đặt trên ổ SSD trong thiết bị TS-464, và toàn bộ quá trình mất khoảng 30 giây. Sau khi thực hiện, không chỉ tiết kiệm được một lượng không gian đáng kể mà thời gian sao lưu cũng nhanh hơn nhiều.
Đến đây, một số người dùng có thể tự hỏi: “Nếu tôi muốn giữ lại các tệp trong một thư mục cụ thể thì sao?” hoặc “Chắc chắn các tệp trong các thư mục quan trọng không nên bị xóa, phải không?”
Ví dụ, để giữ các tập tin trong thư mục C:\Important, bạn có thể sử dụng lệnh sau:
jdupes -rdN -X “path:Important” .
Các tệp có đường dẫn chứa từ “Quan trọng” sẽ không bị xóa.
Việc lấy lại không gian bắt đầu từ những thói quen quản lý tốt.
Việc dọn dẹp các tập tin trùng lặp không chỉ đơn thuần là giải phóng vài gigabyte dung lượng ổ đĩa; nó còn có thể được xem như một hình thức dọn dẹp kỹ thuật số. Với các công cụ hiệu suất cao như jdupes, việc so sánh thủ công trước đây mất nhiều ngày giờ có thể được hoàn thành trong vài phút thông qua tự động hóa. Điều này giúp tăng đáng kể hiệu quả lưu trữ NAS, đơn giản hóa quy trình sao lưu và đảm bảo rằng mọi dữ liệu theo chiến lược sao lưu 3-2-1-1-0 đều duy nhất và có giá trị.
Bằng cách hình thành thói quen dọn dẹp thường xuyên và sử dụng các công cụ phù hợp, NAS thực sự có thể hoạt động như một "trung tâm dữ liệu hiệu năng cao", đảm bảo rằng mọi dung lượng lưu trữ đều được sử dụng tối ưu.






Xem thêm