새로운 RAID5 어레이에서 6일 이후로 "ext4lazyinit" 실행 중

새로운 RAID5 어레이에서 6일 이후로 "ext4lazyinit" 실행 중

나는 "ext4lazyinit" 주제가 많다는 것을 알고 있습니다. 하지만 그것들은 모두 4~6TB HDD 정도이고, 몇 시간 만에 결국 완성되었다는 포스터가 붙어 있습니다.

내 편에는 5*14TB 디스크(따라서 총 크기 51TB)가 포함된 새로 생성된 RAID5 영역이 있고 "ext4lazyinit"는 ... 6일(= 마지막 재부팅 이후로 실행 중이지만 아마도 며칠 동안 실행되었을 것입니다) 그것 앞에). 물론, 어레이에서 지속적으로 I/O를 생성합니다. 어디에도 오류가 없으므로 이 외에는 모든 것이 괜찮아 보입니다.

그런데 왜 이렇게 오래 걸리나요? 좋아, 디스크 어레이는 크지만 ... 6 일?!

처음에는 이 동작을 인식하지 못했기 때문에 어느 시점(레이드 어레이를 생성한 후 며칠 후)에 시스템 재부팅을 수행했습니다. 그 후 "ext4lazyinit"가 자동으로 다시 시작된 것 같지만 가능합니까? 재부팅으로 인해 뭔가가 손상되었다는 것인가요?

ps -ef|grep lazy
root       583     2  0 Dec02 ?        00:04:37 [ext4lazyinit]

그리고 이 프로세스의 진행 상황을 모니터링할 수 있는 방법이 있습니까( cat /proc/mdstat일부 mdadm 작업에 사용할 수 있는 것과 같은 것)? (dmesg, Journalctl 또는 기타 로그에서 아무것도 찾을 수 없습니다)

주목해야 할 점은(어쩌면 이것이 왜 그렇게 느린지 설명하는 것일까요?) I/O 수는 지속적으로 초과 근무를 하는 것처럼 보이지만 다소 낮은 것입니다(그래서 프로세스가 최대 HDD 속도로 실행되고 있지 않을 수도 있습니까?). 그 속도를 높일 수 있는 방법이 있나요?

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.25    0.00    0.42    1.17    0.00   98.17

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
mmcblk0           0.00         0.00         0.00          0          0
sda               3.00         0.00         8.50          0         17
sdb               5.00       256.00       264.50        512        529
sdc               4.00       192.00       200.50        384        401
sdd               4.00        64.00        72.50        128        145
sde               3.00         0.00         8.50          0         17
md0               0.50         0.00       256.00          0        512

답변1

나도 같은 문제가 있습니다. 24GB RAID5 어레이와 어제 mkfs.ext4를 시작했습니다. 내가 찾은 정보를 가지고 이 스레드를 발견하는 다른 사람을 위해 여기에 남깁니다.

가장 쉬운 방법은 게으른 옵션을 끈 상태에서 mkfs.ext4를 실행한 다음 모든 것이 초기화될 때까지 오랜 시간 기다리는 것입니다. 배열을 사용하고 싶다면 지연 초기화가 완료될 때까지 분산된 I/O가 많이 발생하고 읽기/쓰기 속도가 완전히 떨어지기 때문에 회전 디스크에서는 좋지 않을 것입니다.

mkfs.ext4 -E lazy_itable_init=0,lazy_journal_init=0 /dev/md0

속도 향상: 이 옵션을 사용하여 마운트합니다: init_itable=0(이것은 청크를 0으로 만든 후 기다리는 시간에 대한 승수입니다(기본값은 10입니다. 이는 계속 진행하기 전에 마지막 청크를 0으로 만드는 데 걸린 시간만큼 10배를 기다린다는 의미입니다. 0). = 즉시 수행하지만 I/O 대역폭을 훨씬 더 많이 차지합니다.)

위 댓글의 링크(ext4lazyinit가 작업을 완료하도록 강제합니까?)은 진행 상황을 모니터링하는 데 매우 유용합니다. 현재 쓰기와 fdisk의 총 섹터 비교. 하루가 지났고 현재 54%에 도달했으므로 거기에 도달한 것 같습니다... 게으른 초기화가 10-12MB/s 쓰기 속도로 실행되고 있습니다.

디스크에서 다른 작업을 수행하고 있지 않은지 확인하고 다음을 수행하세요.

echo 1 > /proc/sys/vm/block_dump  # Turn on logging in /var/log/syslog
fdisk -l /dev/md0                 # Note total sectors.
echo 0 > /proc/sys/vm/block_dump  # Turn of logging.  Don't fill the log :)

syslog에서 기록되는 섹터를 fdisk의 총계로 나눕니다.

이 문제를 겪는 다음 사람에게 도움이 되기를 바랍니다. 이제 완료될 때까지 하루 더 기다리면 실제로 적절한 속도로 어레이를 사용할 수 있습니다. (그때까지는 여전히 30MB/s를 끌어낼 수 있으므로 절망적이지 않습니다.)

관련 정보