이 문서에는 비휘발성 메모리 표현식(NVMe) 인터페이스가 있는 디스크를 사용할 때 발생할 수 있는 오류가 나와 있습니다.
로컬 SSD 및 영구 디스크(영구 디스크 또는 Google Cloud Hyperdisk)에 대해 NVMe 인터페이스를 사용할 수 있습니다. Tau T2A, M3, C3, C3D, H3과 같은 최신 머신 시리즈만 Persistent Disk용 NVMe 인터페이스를 사용합니다. 또한 컨피덴셜 VM은 Persistent Disk용 NVMe를 사용합니다. 다른 모든 Compute Engine 머신 시리즈는 영구 디스크에 대해 SCSI 디스크 인터페이스를 사용합니다.
I/O 작업 시간 초과 오류
I/O 시간 초과 오류가 발생하는 경우 NVMe 기기에 제출된 I/O 작업에 대해 지연 시간이 기본 시간 초과 매개변수를 초과할 수 있습니다.
오류 메시지:
[1369407.045521] nvme nvme0: I/O 252 QID 2 timeout, aborting [1369407.050941] nvme nvme0: I/O 253 QID 2 timeout, aborting [1369407.056354] nvme nvme0: I/O 254 QID 2 timeout, aborting [1369407.061766] nvme nvme0: I/O 255 QID 2 timeout, aborting [1369407.067168] nvme nvme0: I/O 256 QID 2 timeout, aborting [1369407.072583] nvme nvme0: I/O 257 QID 2 timeout, aborting [1369407.077987] nvme nvme0: I/O 258 QID 2 timeout, aborting [1369407.083395] nvme nvme0: I/O 259 QID 2 timeout, aborting [1369407.088802] nvme nvme0: I/O 260 QID 2 timeout, aborting ...
해결 방법:
이 문제를 해결하려면 제한 시간 파라미터의 값을 늘립니다.
제한 시간 매개변수의 현재 값을 확인합니다.
- 영구 디스크 또는 로컬 SSD에 사용되는 NVMe 컨트롤러를 확인합니다.
ls -l /dev/disk/by-id
디스크에 대한
io_timeout
설정(초)을 표시합니다. 다음을 바꿉니다.cat /sys/class/nvme/CONTROLLER_ID/NAMESPACE/queue/io_timeout
CONTROLLER_ID
: NVMe 디스크 컨트롤러의 ID입니다. 예를 들면nvme1
입니다.NAMESPACE
: NVMe 디스크의 네임스페이스입니다. 예를 들면nvme1n1
입니다.
NVMe를 사용하는 단일 디스크만 있는 경우 다음 명령어를 사용합니다.
cat /sys/class/nvme/nvme0/nvme0n1/queue/io_timeout
- 영구 디스크 또는 로컬 SSD에 사용되는 NVMe 컨트롤러를 확인합니다.
NVMe 기기에 제출된 I/O 작업의 제한 시간 매개변수를 늘리려면
/lib/udev/rules.d/65-gce-disk-naming.rules
파일에 다음 줄을 추가한 후 VM을 다시 시작합니다.KERNEL=="nvme*n*", ENV{DEVTYPE}=="disk", ATTRS{model}=="nvme_card-pd", ATTR{queue/io_timeout}="4294967295"
분리된 디스크가 계속 컴퓨팅 인스턴스 운영체제에 표시됨
Linux 커널 버전 6.0~6.2를 사용하는 VM에서 Compute Engine API 메서드 instances.detachDisk
또는 gcloud compute instances detach-disk
명령어와 관련된 작업이 예상대로 작동하지 않을 수 있습니다.
Google Cloud 콘솔에서는 기기가 삭제된 것으로 표시하고 컴퓨팅 인스턴스 메타데이터(compute disks describe
명령어)에서는 기기가 삭제된 것으로 표시하지만 기기 마운트 지점 및 udev 규칙에 의해 생성된 모든 심볼릭 링크는 게스트 운영체제에 계속 표시됩니다.
오류 메시지:
VM의 분리된 디스크에서 읽기를 시도하면 I/O 오류가 발생합니다.
sudo head /dev/nvme0n3 head: error reading '/dev/nvme0n3': Input/output error
문제:
Linux 6.0~6.2 커널을 사용하지만 NVMe 수정 백포트가 포함되지 않는 운영체제 이미지는 NVMe 디스크가 분리된 시기를 인식할 수 없습니다.
해결 방법:
VM을 재부팅하여 디스크 삭제 프로세스를 완료합니다.
이 문제를 방지하려면 이 문제가 없는 Linux 커널 버전의 운영체제를 사용합니다.
- 5.19 이전
- 6.3 이상
게스트 OS에서 uname -r
명령어를 사용하여 Linux 커널 버전을 볼 수 있습니다.
다음 단계
- Persistent Disk에 대해 알아보기
- 로컬 SSD에 대해 알아보기
- 성능 요구사항을 충족하도록 디스크 구성
- 심볼릭 링크에 대해 알아보기