NVMe 드라이버
NVMe 드라이버 (NVMe drivers)
Nitro 기반 인스턴스에서는 Amazon EBS 볼륨과 인스턴스 스토어 볼륨이 NVMe 블록 디바이스로 노출돼요. NVMe 블록 디바이스로 노출된 볼륨에서 Amazon EBS 기능의 성능과 능력을 충분히 활용하려면 인스턴스에 AWS NVMe 드라이버가 설치되어 있어야 해요. 모든 현재 세대 AWS Windows AMI에는 AWS NVMe 드라이버가 기본적으로 설치되어 있어요.
출처: 문서
본문
EBS와 NVMe에 대한 자세한 내용은 Amazon EBS 사용자 가이드의 "Amazon EBS and NVMe"를, SSD 인스턴스 스토어와 NVMe는 "SSD instance store volumes for EC2 instances"를 참고하세요.
다음 AMI에는 필요한 NVMe 드라이버가 포함돼 있어요.
- Amazon Linux 2
- Amazon Linux AMI 2018.03
linux-aws커널을 가진 Ubuntu 14.04 이상- 참고: AWS Graviton 기반 인스턴스 유형은
linux-aws커널을 가진 Ubuntu 18.04 이상이 필요해요.
- 참고: AWS Graviton 기반 인스턴스 유형은
- Red Hat Enterprise Linux 7.4 이상
- SUSE Linux Enterprise Server 12 SP2 이상
- CentOS 7.4.1708 이상
- FreeBSD 11.1 이상
- Debian GNU/Linux 9 이상
인스턴스에 NVMe 드라이버가 있는지 확인하기
Amazon Linux, RHEL, CentOS, SUSE Linux Enterprise Server:
$ modinfo nvme
인스턴스에 NVMe 드라이버가 있으면 명령이 드라이버 정보를 반환해요.
Amazon Linux 2와 Ubuntu:
$ ls /sys/module/ | grep nvme
인스턴스에 NVMe 드라이버가 있으면 설치된 드라이버를 반환해요.
NVMe 드라이버 업데이트하기
인스턴스에 NVMe 드라이버가 있으면 최신 버전으로 업데이트할 수 있어요.
- 인스턴스에 연결해요.
- 패키지 캐시를 업데이트해요.
- Amazon Linux 2, Amazon Linux, CentOS, Red Hat Enterprise Linux:
[ec2-user ~]$ sudo yum update -y - Ubuntu와 Debian:
[ec2-user ~]$ sudo apt-get update -y - Ubuntu 16.04 이상에는 Nitro 기반 인스턴스에 필요한 NVMe·ENA 드라이버가 들어 있는
linux-aws패키지가 포함돼 있어요. 최신 버전을 받으려면linux-aws패키지를 다음과 같이 업그레이드해요.[ec2-user ~]$ sudo apt-get install --only-upgrade -y linux-aws - Ubuntu 14.04는 최신
linux-aws패키지를 다음과 같이 설치할 수 있어요.[ec2-user ~]$ sudo apt-get install linux-aws
- Amazon Linux 2, Amazon Linux, CentOS, Red Hat Enterprise Linux:
- 최신 커널 버전을 로드하려면 인스턴스를 재부팅해요.
sudo reboot - 재부팅 후 인스턴스에 다시 연결해요.
Windows 인스턴스에 AWS NVMe 드라이버 설치하기 (PowerShell)
Amazon이 제공하는 최신 AWS Windows AMI 중 하나에서 인스턴스를 시작하지 않았다면 다음 절차로 현재 AWS NVMe 드라이버를 설치해요. 재부팅이 필요해요(설치 스크립트가 재부팅하거나 마지막 단계로 직접 재부팅).
전제 조건: PowerShell 3.0 이상이 설치되어 있어야 하고, 명령은 64비트 PowerShell 버전에서 실행해야 해요. x86(32비트) 버전은 지원되지 않아요.
다운로드·설치 절차:
- 변경을 롤백해야 할 경우를 대비해 백업으로 AMI를 만드는 것을 권장해요. 인스턴스를 중지하면 인스턴스 스토어 볼륨의 데이터가 지워지므로, 중지 전에 인스턴스 스토어 볼륨에서 필요한 데이터를 영구 스토리지(EBS, S3 등)로 복사했는지 확인해요.
- 콘솔에서 인스턴스를 선택하고 Instance state, Stop instance를 선택해요.
- 인스턴스가 중지된 후 Actions, Image and templates, Create image로 AMI를 만들어요.
- Instance state, Start instance로 인스턴스를 시작해요.
- 인스턴스에 연결해 로컬 관리자로 로그인해요.
- 다음 중 하나로 드라이버를 다운로드해요.
- 브라우저 – 최신 드라이버 패키지를 인스턴스에 다운로드하고 zip 아카이브를 추출.
- PowerShell – 다음 명령 실행:
파일 다운로드 시 오류가 나고 Windows Server 2016 이하를 사용한다면 PowerShell 터미널에서 TLS 1.2를 활성화해야 할 수 있어요.Invoke-WebRequest https://s3.amazonaws.com/ec2-windows-drivers-downloads/NVMe/Latest/AWSNVMe.zip -outfile $env:USERPROFILE\nvme_driver.zip Expand-Archive $env:userprofile\nvme_driver.zip -DestinationPath $env:userprofile\nvme_driver[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
nvme_driver디렉터리에서install.ps1PowerShell 스크립트(.\install.ps1)로 드라이버를 설치해요. 오류가 나면 PowerShell 3.0 이상을 사용하는지 확인하세요.- (선택) AWS NVMe 1.5.0부터 Windows Server 2016 이상에서 SCSI 영구 예약(scsi persistent reservations)이 지원돼요. 이 기능은 공유 Amazon EBS 스토리지가 있는 Windows Server 장애 조치(failover) 클러스터링 지원을 추가해요. 기본적으로 설치 중에 활성화되지 않아요. 활성화하려면
install.ps1실행 시EnableSCSIPersistentReservations파라미터를$true로, 비활성화하려면$false로 지정해요.PS C:\> .\install.ps1 -EnableSCSIPersistentReservations $true - AWS NVMe 1.5.0부터
install.ps1스크립트는 항상 드라이버와 함께ebsnvme-id도구를 설치해요. 1.4.0, 1.4.1, 1.4.2 버전은InstallEBSNVMeIdTool 'Yes'(설치) 또는'No'(설치 안 함)로 지정할 수 있어요.InstallEBSNVMeIdTool을 지정하지 않으면, 도구가C:\ProgramData\Amazon\Tools에 이미 있으면 기본으로 업그레이드하고, 없으면 업그레이드하지 않아요. - 설치 프로그램이 인스턴스를 재부팅하지 않으면 재부팅해요.
Distributor로 NVMe 드라이버 설치하기
AWS Systems Manager의 기능인 Distributor를 사용해 NVMe 드라이버 패키지를 일회성으로 또는 예약 업데이트로 설치할 수 있어요.
- Distributor로 NVMe 드라이버 패키지를 설치하는 방법은 Amazon EC2 Systems Manager 사용자 가이드의 "Install or update packages" 절차를 참고해요.
- Installation Type으로 Uninstall and reinstall을 선택해요.
- Name으로 AWSNVMe를 선택해요.
- (선택) Additional Arguments에서 유효한 JSON 구문으로 값을 지정해 설치를 맞춤 구성할 수 있어요.
- AWS NVMe 1.5.0부터 드라이버는 Windows Server 2016 이상에서 SCSI 영구 예약을 지원해요. 활성화하려면
{"SSM_EnableSCSIPersistentReservations":"true"}를, 아니면"false"를 지정해요. - 1.5.0부터
install.ps1은 항상ebsnvme-id도구를 설치해요. 1.4.x는{"SSM_InstallEBSNVMeIdTool":"Yes"}또는"No"로 지정할 수 있어요. 지정하지 않으면 도구가 이미 있으면 기본 업그레이드하고, 없으면 업그레이드하지 않아요.
- AWS NVMe 1.5.0부터 드라이버는 Windows Server 2016 이상에서 SCSI 영구 예약을 지원해요. 활성화하려면
- 설치 프로그램이 인스턴스를 재부팅하지 않으면 재부팅해요.
Windows 인스턴스에서 SCSI 영구 예약 구성하기
AWS NVMe 드라이버 1.5.0 이상이 설치된 후 Windows Server 2016 이상에서 Windows 레지스트리로 SCSI 영구 예약을 활성화·비활성화할 수 있어요. 이 레지스트리 변경이 적용되려면 인스턴스를 재부팅해야 해요.
활성화(값 1):
PS C:\> $registryPath = "HKLM:\SYSTEM\CurrentControlSet\Services\AWSNVMe\Parameters\Device"
Set-ItemProperty -Path $registryPath -Name EnableSCSIPersistentReservations -Value 1
비활성화(값 0):
PS C:\> $registryPath = "HKLM:\SYSTEM\CurrentControlSet\Services\AWSNVMe\Parameters\Device"
Set-ItemProperty -Path $registryPath -Name EnableSCSIPersistentReservations -Value 0