nvme fstrim으로 인해 Linux에서 충돌이 발생하고 systemctl을 사용하지 않도록 설정해도 도움이 되지 않습니다.

nvme fstrim으로 인해 Linux에서 충돌이 발생하고 systemctl을 사용하지 않도록 설정해도 도움이 되지 않습니다.

M2 nvme 디스크에서 부팅된 Linux(Ubuntu 18, 커널 4.15) 데스크톱이 있습니다.

일주일에 한 번, 자정쯤에 충돌이 발생합니다. /var/log/syslog.*의 관련 로그 파일 출력은 다음과 같습니다.

Jul 16 00:00:00rabbitcruncher systemd[1]: 사용하지 않은 청크를 버리기 시작합니다...

7월 16일 00:00:00 Rabbitcruncher 커널: [559644.954267] nvme 0000:41:00.0: AMD-Vi: 로깅 이벤트 [IO_PAGE_FAULT 도메인=0x0014 주소=0x0000000000000000 플래그=0x0000]

7월 16일 00:00:00rabbitcruncher 커널: [559644.975805] nvme nvme0: 비동기 이벤트 결과 00010300

7월 16일 00:00:30rabbitcruncher 커널: [559675.338834] nvme nvme0: 컨트롤러가 재설정됩니다. CSTS=0x3, PCI_STATUS=0x1010

7월 16일 00:00:31 Rabbitcruncher 커널: [559675.621182] nvme 0000:41:00.0: AMD-Vi: 로깅 이벤트 [IO_PAGE_FAULT 도메인=0x0014 주소=0x0000000000000000 플래그=0x0000]

7월 16일 00:01:01 Rabbitcruncher 커널: [559706.346300] nvme nvme0: 컨트롤러가 재설정됩니다. CSTS=0x3, PCI_STATUS=0x1010

Jul 16 00:01:01 Rabbitcruncher 커널: [559706.378641] nvme nvme0: 네임스페이스를 식별하지 못했습니다.

7월 16일 13:39:24 Rabbitcruncher systemd-fsck[962]: /dev/nvme0n1p1: 12개 파일, 1186/130812 클러스터

7월 16일 13:39:24 Rabbitcruncher 커널: [1.052853] nvme nvme0: pci 기능 0000:41:00.0

7월 16일 13:39:24 Rabbitcruncher 커널: [1.285806] nvme0n1: p1 p2

7월 16일 13:39:24rabbitcruncher 커널: [5.036910] EXT4-fs(nvme0n1p2): 정렬된 데이터 모드를 사용하여 마운트된 파일 시스템. 옵션: (비어 있음)

7월 16일 13:39:24rabbitcruncher 커널: [5.318742] EXT4-fs(nvme0n1p2): 다시 설치합니다. 선택: 오류=remount-ro

"사용하지 않는 블록을 폐기한다"는 것은 Linux가 fstrim을 실행하려고 한다는 것을 의미한다는 것을 이해합니다. 그러나 systemctl을 사용하여 fstrim을 비활성화했는데 여전히 발생합니다!

systemctl 상태 fstrim.service

● fstrim.service - 사용하지 않는 블록을 폐기합니다.

로드됨: 로드됨(/lib/systemd/system/fstrim.service; 정적; 공급업체 기본값: 활성화됨)

활성: 비활성(죽음)

이 문제를 해결하는 방법을 모르겠습니다. 누구든지 조언을 해줄 수 있나요?

답변1

당신의우분투kvm가상 머신에서 실행AMD-Vi따라서 실행하면 안 됩니다 fstrim.

서비스 는 다음을 기반 fstrim으로 실행됩니다 .timerroot

rm /var/lib/systemd/timers/stamp-fstrim.timer
systemctl stop fstrim.service fstrim.timer
systemctl disable fstrim.service fstrim.timer
systemctl mask fstrim.service fstrim.timer

답변2

귀하의 문제는 이것과 관련된 것 같습니다하나TRIMming이 트리거될 때마다 발생하는 충돌을 설명합니다 fstrim.timer. 이는 AMD에서 우회할 수 있는 최근 커널 문제인 것 같습니다 iommu=soft(처방전을 찾았습니다).여기이유에 대한 자세한 내용은 없습니다) - NVME SSD 모범 사례에 따라 이제 fstrim.timerM.2 NVME 디스크를 다시 활성화할 수 있습니다.

나는 Intel에서도 동일한 문제를 겪었다고 생각합니다. - 보고했습니다.여기- 그리고 이 문제를 어떻게 피할 수 있습니까( intel_iommu=ptIntel과 동일 iommu=soft).

문제가 IOMMU와 관련되어 있음을 확인한 후 동작을 변경할 수 있는 방법을 찾기 시작했습니다.여기약간 관련된 질문인 PCI 패스스루를 위한 호스트 구성 모범 사례에 대한 Red Hat 문서에서 intel_iommu=pt이를 언급하고 문제를 해결했습니다.

나는 현재 이 설정의 부작용(있는 경우)을 모릅니다.

관련 정보