md_update_sb 부팅 RAID 1을 사용 중으로 유지

md_update_sb 부팅 RAID 1을 사용 중으로 유지

RAID 1 구성의 하드 드라이브 4개에 Ubuntu 18.04 LTS를 설치했습니다. 무언가가 하드 드라이브를 바쁘게 만들고 있으며 속도가 느려지지 않습니다. 내가 한 일: - 자주 액세스하는 디렉토리(/var/log, /tmp 등)를 tmpfs로 메모리에 매핑했습니다. - vmtouch를 통해 /bin, /sbin 및 여러 라이브러리를 메모리에 잠갔습니다.

이러한 변경 후 iotop은 어레이에 액세스하는 kworker만 표시합니다.

btrace는 다음을 보여줍니다.

9,0    0        0   350.464025971     0  m   N md md_update_sb
9,0    0       98   350.849029580  2206  Q  WM 71305144 + 8 [kworker/u128:0]
9,0    0       99   350.849034110  2206  Q  WM 71305216 + 8 [kworker/u128:0]
9,0    0      100   350.849038452  2206  Q  WM 71371648 + 8 [kworker/u128:0]
9,0    0      101   350.849045694  2206  Q   W 0 + 8 [kworker/u128:0]
9,0    0      102   350.849048534  2206  Q  WM 40 + 8 [kworker/u128:0]
9,0    1      137   350.976982774     0  C   W 0 + 8 [0]
9,0    1      138   350.994303913     0  C  WM 40 + 8 [0]
9,0    1      139   350.997638530     0  C  WM 71303296 + 8 [0]
9,0    1      140   351.011237159   353  C  WM 71305144 + 8 [0]
9,0    1      141   351.011403025     0  C  WM 71305216 + 8 [0]
9,0    1      142   351.276814094   353  C  WM 71371648 + 8 [0]
9,0    0        0   351.599976239     0  m   N md md_update_sb

추적을 올바르게 이해했다면 배열의 슈퍼블록이 업데이트되고 있는 것입니까? 디스크를 깨어있게 만드는 원인을 추적하기 위해 또 무엇을 할 수 있습니까?

업데이트 1: 같은 디스크에 RAID 6도 설정되어 있지만 마운트가 되어 있지 않아 접근이 전혀 안되는 것 같습니다.

cat /proc/mdstat

Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md127 : active raid6 sde3[5] sdd3[4] sdc3[1] sdb3[0]
      10737154048 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU]
      bitmap: 0/40 pages [0KB], 65536KB chunk

md0 : active raid1 sde2[5] sdd2[4] sdc2[2] sdb2[6]
      52395008 blocks super 1.2 [4/4] [UUUU]

unused devices: <none>

업데이트 2: inotifywait -r -m /파일 시스템에 대한 모든 액세스를 추적합니다. 이미 메모리에 마운트된 모든 것을 점진적으로 필터링합니다...

inotifywait -r -m / @/dev @/sys @/proc @/run @/var/tmp @/tmp @/var/log @/var/spool

... 스냅 쓰기 파일을 보여주었습니다. 설치 시 스냅해야 할 사항이 무엇인지 모르기 때문에 제거했습니다.

답변1

어쨌든, inotifywait 로그를 따라가면서 파일 시스템에 쓰는 프로세스(많았습니다!)가 하나씩 발견되었습니다. 부팅 스크립트를 사용하여 각 디렉터리를 tmpfs에 다시 매핑하고, 파일을 tmpfs에 복사하고 파일 시스템 위치 대신 다시 마운트한 다음 종료 시 파일을 다시 복사했습니다. 여기에는 주의 사항이 있지만 지금은 그럴 것입니다.

관련 정보