![nvme 시간 초과를 failure_early_로 단축 - 영향이 있나요?](https://linux55.com/image/220032/nvme%20%EC%8B%9C%EA%B0%84%20%EC%B4%88%EA%B3%BC%EB%A5%BC%20failure_early_%EB%A1%9C%20%EB%8B%A8%EC%B6%95%20-%20%EC%98%81%ED%96%A5%EC%9D%B4%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
Linux 커널을 사용하는 VMware Workstation 가상화 호스팅 플랫폼에서 저는 종종 다음과 같은 문제를 겪습니다.
[ 2181.746685] nvme nvme0: I/O 0 QID 4 timeout, completion polled
나는 이것이 가상 NVMe 컨트롤러/VMware 가상 플랫폼 구현의 결함으로 인한 것이라고 생각합니다.
아쉽게도 이런 일이 발생할 때마다 시스템은 대략 30초 동안 차단됩니다. 이 가상 컨트롤러는 매우 빠른 실제 SSD와 효과적으로 통신할 수 있지만 너무 깁니다.
이제 Linux NVMe 모듈 옵션을 조정하여 시간 초과(!)를 2초로 줄이려고 생각 중입니다 cat /sys/module/nvme_core/parameters
. 결국 이것은 거의 최대치에 도달한 매우 빠른 SSD이므로 NVMe 명령이 2초 미만으로 실행되지 않으면 의심스러운 가상 NVMe 제어 서버 이외의 장치가 꺼진 것뿐입니다.
io_timeout
30초에서 2초로 변경하면 어떤 단점이 있나요? 나는 일이 실패할 것이라고 예상했다서둘러요이는 기본적으로 오류가 더 빨리 발생한다는 것을 의미하며, 이는 모든 복구 메커니즘이 더 빠르게 트리거된다는 것을 의미합니다.
클라우드 공급업체의 문서를 본 적이 있으며 io_timeout
플랫폼에서 무한대로 설정하도록 권장하지만그들의 플랫폼반드시 올바른 접근 방식은 아닙니다내 VMware 워크스테이션 플랫폼?