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
으로 실행됩니다 .timer
root
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.timer
M.2 NVME 디스크를 다시 활성화할 수 있습니다.
나는 Intel에서도 동일한 문제를 겪었다고 생각합니다. - 보고했습니다.여기- 그리고 이 문제를 어떻게 피할 수 있습니까( intel_iommu=pt
Intel과 동일 iommu=soft
).
문제가 IOMMU와 관련되어 있음을 확인한 후 동작을 변경할 수 있는 방법을 찾기 시작했습니다.여기약간 관련된 질문인 PCI 패스스루를 위한 호스트 구성 모범 사례에 대한 Red Hat 문서에서 intel_iommu=pt
이를 언급하고 문제를 해결했습니다.
나는 현재 이 설정의 부작용(있는 경우)을 모릅니다.