ext4 jbd2 저널링은 빈 파일 시스템에서도 활성화됩니다.

ext4 jbd2 저널링은 빈 파일 시스템에서도 활성화됩니다.

내 ext4 파일 시스템에 다음과 같은 문제로 인해 몇 가지 문제가 발생했습니다.jbd2저널링. 관련 포스팅을 했는데요여기누군가가 도움을 줄 수 있기를 바라는 마음으로 다시 표현하겠습니다.

최소한의 예를 들어, 빈 8GB USB 스틱으로 시작하여 다음을 사용합니다.갈라진하나의 ext4 파티션을 생성합니다. ext4 파일 시스템을 생성할 때 gparted가 사용하는 명령은 다음과 같습니다.

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

gparted를 사용하여 파일 시스템을 확인합니다.

e2fsck -f -y -v /dev/sde1

그리고 나는 그것을 마운트합니다 :

sudo mount /dev/sde1 /media/test

디스크는 비어 있지만 이 디스크(/dev/sde1)에서 저널링이 매우 활성화되어 있습니다. 다른 디스크는 비슷하게 포맷된 ext4 SSD입니다. 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는 /dev/sde1로 무엇을 하고 있나요?

더 큰 2Tb 디스크에 대해 동일한 단계를 수행하면 iotop은 이 빈 디스크를 마운트하자마자 jbd2가 Mb/s의 속도로 지속적으로 기록하고 있음을 나타냅니다.

OS 및 /home이 있는 다른 디스크에서 프로세스에 의해 수정되는 파일이 있는지 찾으려고 노력했지만 찾을 수 없었습니다. 또한 많은 디스크 집약적 프로세스를 tmpfs를 사용하도록 옮겼습니다. 그리고 noatime을 사용했습니다.

이 컴퓨터에는 SSD가 아닌 또 다른 하드 디스크인 /dev/sdb가 있습니다. 이 하드 디스크도 ext4이지만 gparted로 포맷되지 않았습니다(동료가 제공한 것입니다). iotop에는 나타나지 않습니다. 그래서 나는 gparted에 문제가 있다고 가정합니다.

어떤 제안이라도 감사하겠습니다. 또한 처음부터 시작하지 않고도 문제를 해결하기 위해 기존 파티션을 수정하는 방법에 대한 팁도 있으면 좋을 것입니다.

jbd2와 관련된 게시물이 있지만 도움이 되지 않았습니다(예:여기).

답변1

ext4는 마운트될 때까지(아마도 uninit_bg 옵션?) 많은 초기화를 사후 게시하여 '빠른 포맷'을 수행하는 것으로 보이며, 드라이브를 처음 포맷한 후에 jbd2가 이 작업을 수행하는 것으로 의심됩니다. 댓글 중 하나여기jbd2는 생성 후 크기에 비례하는 시간 동안 파티션에 쓸 것을 제안했으며 200GB당 10분을 제안했는데 이는 TB당 50분을 의미합니다. 어제 3TB ext4 드라이브를 포맷했는데 jbd2가 오랫동안 쓰기 작업을 하고 있었는데 지금은 중지되었습니다.

btrfs는 이 작업을 수행하지 않지만 외부 드라이브에 대해서는 아직 신뢰하지 않습니다. 예를 들어 최신 커널(3.4 이상인 것 같아요)이 필요합니다. 그렇지 않으면 드라이브를 제거하면 커널이 오류가 발생하고 데이터가 손실될 수도 있습니다. 먼저 마운트를 해제하지 않고(물론 전원이 꺼지면 발생합니다).

관련 정보