Sau khi xóa nhiều tệp lớn, dung lượng trống sẽ tăng lên với độ trễ lớn


15

Hôm qua, tôi đã xóa 71 GB tệp trên máy chủ nhà / phương tiện của mình.
Dung lượng trống trước: 117 GB Dung lượng
trống sau: 126 GB

Vì vậy, thay vì có thêm 71 GB dung lượng trống, tôi chỉ có 9 GB. Tôi đã kiểm tra kỹ xem không có tệp nào được mở và tôi thực sự đã xóa 71 GB và dung lượng trống thực sự chỉ tăng 9 GB.

Tôi cũng đã cố gắng đồng bộ, nhưng không có hiệu quả.

Đây không phải là lần đầu tiên nó xảy ra. Thật vậy, tôi đã thấy hành vi này từ nhiều năm nay rồi. Đầu tiên trên ext3, bây giờ trên ext4.
Khi điều này xảy ra, tôi có thể lấy lại không gian trống bằng cách ngắt kết nối và sau đó kết nối lại hệ thống tập tin. Trong những trường hợp này, việc ngắt kết nối mất tới 2 phút thay vì gần như không có thời gian.

Ngày nay, tôi không thể dễ dàng ngắt kết nối và kết nối lại hệ thống tập tin, vì nó luôn bận rộn từ phần mềm ghi video của tôi, máy chủ owncloud cho gia đình tôi và một vài dịch vụ nữa mà tôi chưa có. Và tôi không muốn thức dậy lúc 3 giờ đêm chỉ để tháo gỡ và kể lại.

Không, tiện ích 'tại' sẽ không thực hiện được vì một trong các dịch vụ thực hiện các tác vụ chạy dài không thể phục hồi và do đó cần kiểm tra trạng thái thủ công để tìm thời điểm tốt khi có thể tắt, tức là một nhiệm vụ vừa kết thúc.

Nhưng sáng nay, tôi nhận thấy rằng không gian đã được giải phóng qua đêm. Trông tôi như thể có một loại dọn dẹp nào đó, và đây có thể là điều tương tự cần thêm thời gian khi không đếm được.

Cho đến nay, tôi chỉ nhận thấy hành vi này khi xóa một lượng lớn dữ liệu. Mặt khác, tôi không chắc chắn nếu nó xảy ra thường xuyên và sự khác biệt là quá nhỏ để nhận thấy.

Hệ thống tập tin được tạo với 0% dành riêng cho root ( mkfs -m 0). Theo fsck -f(Tôi đang làm điều này luôn luôn giữa unmount và remount), hệ thống tập tin không bị hỏng và theo thử nghiệm mở rộng chẩn đoán SMART, phần cứng cũng ổn.

[BIÊN TẬP]

tune2fs 1.42 (29-Nov-2011)  
Filesystem volume name:   bigdata  
Last mounted on:          /bigdata  
Filesystem UUID:          6aebd17a-e064-41dc-9c68-c9a3acbe4f66  
Filesystem magic number:  0xEF53  
Filesystem revision #:    1 (dynamic)  
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize  
Filesystem flags:         signed_directory_hash   
Default mount options:    user_xattr acl  
Filesystem state:         clean  
Errors behavior:          Continue  
Filesystem OS type:       Linux  
Inode count:              121413632  
Block count:              485645568  
Reserved block count:     0  
Free blocks:              29081276  
Free inodes:              121382378  
First block:              0  
Block size:               4096  
Fragment size:            4096  
Reserved GDT blocks:      908  
Blocks per group:         32768  
Fragments per group:      32768  
Inodes per group:         8192  
Inode blocks per group:   512  
Flex block group size:    16  
Filesystem created:       Tue Dec 25 23:42:35 2012  
Last mount time:          Fri Jan  3 17:37:36 2014  
Last write time:          Fri Jan  3 17:37:36 2014  
Mount count:              37  
Maximum mount count:      -1  
Last checked:             Thu Apr 18 17:03:40 2013  
Check interval:           0 (<none>)  
Lifetime writes:          14 TB  
Reserved blocks uid:      0 (user root)  
Reserved blocks gid:      0 (group root)  
First inode:              11  
Inode size:           256  
Required extra isize:     28  
Desired extra isize:      28  
Journal inode:            8  
Default directory hash:   half_md4  
Directory Hash Seed:      be2b977e-5127-4843-9123-fe33b6d7b573  
Journal backup:           inode blocks  

[/BIÊN TẬP]

Vì vậy, đây là 2 câu hỏi của tôi:

  1. Chuyện gì đang xảy ra ở đây? Tại sao không gian được giải phóng tại umount hoặc chậm trễ thay vì ngay lập tức khi xóa?
  2. Có điều gì tôi có thể làm để kích hoạt giải phóng không gian ngay bây giờ mà không cần kết nối và kể lại không?

Điều này có mùi rất nhiều đối với tôi như (các) tập tin vẫn đang mở bởi một cái gì đó. Làm thế nào để bạn xác nhận rằng không có tập tin nào được mở sau khi xóa? lsof | grep -i deletedthường là cách tốt nhất để kiểm tra điều này
Garrett

2
Thông thường bạn không thể bỏ qua một hệ thống tập tin khi các tập tin được mở. Vì vậy, nếu umount thành công, không có tệp mở. Ngoại trừ ngày hôm qua, tôi luôn luôn thực hiện chu kỳ gắn kết, gắn kết lại khi nhận thấy điều này.
Markus N.

Đây thực sự là trường hợp. Tùy chọn gắn kết ext4 của bạn là gì?
Garrett

buổi trưa, mặc định
Markus N.

Bạn có một số loại hệ thống sao lưu đang chạy có thể đang giữ các bản sao của các tệp hoặc các liên kết cứng khác với chúng không?
derobert

Câu trả lời:


9

Có hai yếu tố có thể tương tác.

  • Không giống như Windows, bạn có thể xóa các tệp đang mở. Nếu bạn xóa một bộ phim đang được phát trực tuyến, nó sẽ bị xóa khỏi thư mục, nhưng vẫn tồn tại dưới dạng tệp cho đến khi chương trình phát trực tuyến đóng nó. Khi phần mềm phát trực tuyến đóng nó, không gian sẽ được giải phóng. Các fuser -mlệnh có thể được sử dụng để tìm id quá trình bất kỳ quy trình với các tập tin mở. Một số chương trình có thể không đóng các tệp khi chúng được thực hiện với chúng.

  • Đây là cả hai hệ thống tập tin tạp chí. Thay đổi được viết cho một tạp chí và sau đó cam kết. Có thể mất một lúc để thay đổi cam kết. Hệ điều hành thường sẽ lưu trữ các thay đổi đĩa và chỉ cam kết thay đổi theo đĩa định kỳ. Chạy synclệnh sẽ xóa mọi thay đổi đang chờ xử lý vào đĩa. Gắn đĩa với synctùy chọn sẽ cải thiện tốc độ vào đĩa, nhưng làm việc đĩa khó hơn.


1
Các bạn, tôi biết tôi có thể xóa các tập tin đang mở. Tôi biết về mối quan hệ giữa các mục và thư mục. Nhưng tôi chắc chắn rằng các tệp không được mở, nếu không tôi sẽ không thể vượt qua hệ thống tệp ... Nhưng mục thứ hai của bạn có vẻ thú vị. Nó thực sự có thể mất hơn 30 phút để các tập tin bị xóa để cam kết? 30 phút là khoảng thời gian giữa việc xóa các tập tin và đi ngủ vào ngày hôm trước, vì vậy tôi không thể biết được nó thực sự mất bao lâu.
Markus N.

1
@MarkusN. Một số hệ điều hành lưu trữ rất nhiều dữ liệu hệ thống tập tin. Nếu không cần không gian, họ có thể ghi đủ dữ liệu nhật ký giao dịch để đảm bảo không gian được giải phóng, nhưng hãy dành thời gian giải phóng không gian. Nếu bạn ngắt kết nối khóa USB sau khi ghi nhiều dữ liệu, có thể mất nhiều thời gian để dữ liệu bị xóa trước khi bạn có thể xóa nó. Đó là một sự đánh đổi giữa việc ghi an toàn vào đĩa và không trì hoãn các hành động khác.
BillThor

Cảm ơn đã chỉnh sửa. Nhưng như bạn thấy trong câu hỏi ban đầu của mình, tôi đã thử đồng bộ hóa mà không có hiệu quả.
Markus N.

1
@MarkusN. Tôi không nghĩ rằng đồng bộ hóa có hiệu quả như trước đây. Nó có thể chỉ đảm bảo dữ liệu tạp chí được viết, không nhất thiết là tất cả các thay đổi được cam kết. Unmount / mount sẽ buộc tạp chí được áp dụng. Tôi không biết ưu tiên lập lịch cho việc xóa, nhưng tôi hy vọng nó sẽ tương đối thấp. Khám phá mã có thể trả lời nhiều câu hỏi của bạn.
BillThor

Âm thanh hợp lý với tôi.
Markus N.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.