ext4 jbd2 ghi nhật ký hoạt động ngay cả trên hệ thống tập tin trống


8

Tôi đã gặp một số vấn đề với hệ thống tệp ext4 của mình mà dường như là do nhật ký jbd2 . Tôi đã thực hiện một bài viết liên quan ở đây và đang đọc lại nó với hy vọng rằng ai đó có thể giúp đỡ.

Để có một ví dụ tối thiểu, tôi bắt đầu với một thanh USB 8gb trống và sử dụng gparted để tạo một phân vùng ext4. Lệnh được sử dụng bởi gparted khi tạo hệ thống tệp ext4 là:

mkfs.ext4 -j -O extent -L DataTraveler8gb /dev/sde1

Tôi kiểm tra hệ thống tập tin với gparted:

e2fsck -f -y -v /dev/sde1

và tôi gắn kết nó:

sudo mount /dev/sde1 /media/test

Đĩa trống, nhưng ghi nhật ký rất tích cực trên đĩa này (/ dev / sde1). Các đĩa khác là SSD ext4 được định dạng tương tự. Ảnh chụp nhanh của iotop:

% sudo iotop -oPa

Total DISK READ: 0.00 B/s | Total DISK WRITE: 2027.21 K/s
  PID  PRIO  USER     DISK READ  DISK WRITE  SWAPIN      IO    COMMAND
  262 be/3 root          0.00 B     56.00 K  0.00 %  0.18 % [jbd2/sda1-8]
29069 be/3 root          0.00 B      0.00 B  0.00 %  0.16 % [jbd2/sde1-8]
  891 be/3 root          0.00 B      4.00 K  0.00 %  0.03 % [jbd2/sdc1-8]

Jbd2 đang làm gì với / dev / sde1?

Nếu tôi làm theo các bước tương tự với đĩa 2Tb lớn hơn, iotop cho biết đĩa trống này liên tục được ghi bởi jbd2 với tốc độ Mb / s ngay khi tôi gắn nó.

Trên các đĩa khác, có HĐH và / home, tôi đã cố gắng tìm xem có tệp nào đang bị sửa đổi bởi các quy trình để gây ra hành vi này không nhưng không thể tìm thấy. Tôi cũng đã chuyển nhiều quá trình sử dụng nhiều đĩa để sử dụng tmpfs. Và sử dụng noatime.

Tôi có một ổ cứng không phải SSD khác trên máy này, / dev / sdb, cũng là ext4 nhưng không được định dạng bởi gparted (được đồng nghiệp trao cho tôi). Nó không xuất hiện trong iotop. Vì vậy, tôi giả sử có một vấn đề với gparted.

Bất kỳ đề xuất đều được đánh giá cao. Ngoài ra bất kỳ lời khuyên nào về cách sửa đổi các phân vùng hiện có để khắc phục sự cố mà không phải bắt đầu từ đầu sẽ rất tuyệt.

Có một số bài viết liên quan đến jbd2 nhưng chúng không giúp ích (ví dụ: ở đây ).


Bạn đã bắt đầu iotop trước khi bạn định dạng đĩa? Trong trường hợp đó, nó đang hiển thị dữ liệu được ghi trong định dạng.
jippie

@jippie Tôi bắt đầu iotop sau khi định dạng đĩa. Đĩa trong ví dụ tối thiểu là trống rỗng. Trên các đĩa được định dạng tương tự, hoạt động jbd2 xảy ra ngay cả khi không có tệp nào được ghi (được kiểm tra bằng find trên toàn bộ hệ thống tệp của tôi).
Paul

Bạn đã thử gắn nó với mount -o noatime ... ...?
jippie

Tôi đã cố gắng vào buổi trưa. Nó dường như không làm gì cả.
Paul

Câu trả lời:


7

Dường như ext4 thực hiện 'định dạng nhanh' bằng cách đăng tải rất nhiều khởi tạo cho đến khi nó được gắn kết (tùy chọn uninit_bg, có lẽ?) Và tôi nghi ngờ rằng jbd2 đang làm điều này sau khi bạn định dạng ổ đĩa đầu tiên. Một trong những ý kiến ở đây cho rằng jbd2 ghi vào phân vùng sau khi tạo trong một thời gian tỷ lệ thuận với kích thước của nó và đề xuất 10 phút cho mỗi 200 GB, sẽ chỉ ra 50 phút mỗi TB. Tôi đã định dạng ổ đĩa ext4 3TB ngày hôm qua và jbd2 đã bị xóa từ lâu, nhưng hiện tại nó đã dừng.

btrfs không làm điều này, btw, nhưng tôi chưa tin tưởng nó cho các ổ đĩa ngoài - ví dụ: bạn cần một kernel gần đây (3,4+, tôi nghĩ) hoặc kernel sẽ oops (và có thể mất dữ liệu) nếu bạn xóa ổ đĩa mà không ngắt kết nối trước (điều này tất nhiên xảy ra nếu mất điện).


Wow, tôi chưa bao giờ nghĩ về điều đó (và bằng cách nào đó tôi đã bỏ lỡ nó sau khi đọc cùng một chủ đề). Tôi sẽ cố gắng xác nhận về uninit_bg, nhưng nếu bạn hoặc ai đó chắc chắn, tôi có thể đánh dấu nó đã trả lời.
Paul
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.