RHEL을 실행하는 Amazon EC2 인스턴스에 향상된 네트워크 지원을 위한 최신 ENA 드라이버를 설치하고 활성화하려면 어떻게 해야 하나요?

4분 분량
0

Red Hat Enterprise Linux(RHEL) Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 향상된 네트워크 지원을 위해 최신 Elastic Network Adapter(ENA) 드라이버를 사용하려고 합니다.

해결 방법

Amazon EC2 인스턴스에 최신 ENA 드라이버를 설치하려면, 사용 중인 RHEL 버전에 해당하는 섹션을 참조하세요. 일부 이전 버전의 RHEL 운영 체제(OS)에는 ENA 드라이버가 포함되어 있지 않습니다. Nitro 인스턴스의 경우, 네트워크 연결을 위해 ENA 드라이버가 EC2 인스턴스 유형을 변경해야 합니다.

참고: ENA 드라이버를 설치하거나 업데이트하기 전에 인스턴스의 스냅샷을 생성하는 것이 가장 좋습니다.

Linux 드라이버 업데이트 방법에 대한 자세한 내용을 보려면 GitHub 웹사이트의 ENA Linux 드라이버 모범 사례 및 성능 최적화 가이드를 참조하세요.

RHEL 버전 7.4 이상

ENA를 통한 향상된 네트워킹을 위한 모듈은 RHEL 버전 7.4 Amazon Machine Image(AMI) 및 모든 이후 RHEL 버전에 사전 설치되어 있습니다. 자세한 내용을 보려면 Linux 인스턴스에서 Elastic Network Adapter(ENA)를 사용하여 향상된 네트워킹 활성화를 참조하세요.

7.4 이전의 RHEL 버전

  1. 다음 명령을 실행하여 커널을 최신 버전으로 업그레이드합니다.

    sudo yum upgrade kernel -y
  2. 인스턴스를 중지합니다.
    참고: 인스턴스를 중지하면 인스턴스 스토어 볼륨의 데이터가 손실됩니다. 자세한 내용을 보려면 인스턴스의 루트 디바이스 유형 결정을 참고하세요. 인스턴스 스토어 볼륨에 보관하려는 모든 데이터를 백업해야 합니다.

  3. 다음 AWS Command Line Interface(AWS CLI) 명령을 실행할 수도 있습니다.

    aws ec2 modify-instance-attribute --instance-id i-xxxxxxxxxxxxxxxxx --ena-support --region xx-xxxxx-x

    참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

  4. 인스턴스를 시작합니다.

  5. 다음 명령을 실행하여 ENA 드라이버가 인스턴스에 로드되었는지 확인합니다. eth0 기본 인터페이스 이름을 확인하려는 인터페이스 이름으로 바꿉니다. OS에서 예측 가능한 네트워크 이름을 사용하는 경우 네트워크 이름이 다를 수 있습니다.

    $ ethtool -i eth0

RHEL 6+

참고: RHEL 6에는 Amazon EC2 프로덕션 지원 NVMe 드라이버가 포함되어 있지 않으며 NVME 드라이버로 업그레이드할 수 없습니다. Nitro 기반 인스턴스 또는 NVMe 인스턴스 스토어 볼륨이 있는 모든 인스턴스 유형을 사용하려면 RHEL 7.4 이상으로 업그레이드하세요.

ENA 드라이버 다운로드 및 설치

  1. 커널을 업데이트한 다음, 시스템을 재부팅하여 최신 커널이 적용되도록 합니다.

    sudo yum upgrade kernel -y && sudo reboot
  2. 개발 패키지를 설치하여 커널과 일치하는 커널 모듈을 빌드합니다.

    sudo yum install kernel-devel-$(uname -r) gcc git patch rpm-build wget -y
    cd /usr/src/
    sudo wget https://github.com/amzn/amzn-drivers/archive/master.zip
    sudo unzip master.zip
    cd amzn-drivers-master/kernel/linux/ena
    sudo make
  3. 모듈을 모듈 디렉터리에 복사합니다.

    sudo cp ena.ko /lib/modules/$(uname -r)/
  4. 커널 모듈 종속성 맵 파일을 재생성하세요.

    sudo depmod
  5. modinfo 명령을 사용하여 ENA 모듈이 있는지 확인합니다.

    modinfo ena

    modinfo 명령 출력은 ENA 드라이버 정보를 보여줍니다.
    참고: 시스템에 ENA 드라이버를 컴파일하고 설치할 때 버전이 2.2.11g 이상일 수 있습니다.

    filename:       /lib/modules/2.6.32-754.33.1.el6.x86_64/ena.ko
    version:        2.2.11g
    license:        GPL
    description:    Elastic Network Adapter (ENA)
    author:         Amazon.com, Inc. or its affiliates
    retpoline:      Y
    srcversion:     17C7CD1CEAD3F0ADB3A5E5E
    alias:          pci:v00001D0Fd0000EC21sv*sd*bc*sc*i*
    alias:          pci:v00001D0Fd0000EC20sv*sd*bc*sc*i*
    alias:          pci:v00001D0Fd00001EC2sv*sd*bc*sc*i*
    alias:          pci:v00001D0Fd00000EC2sv*sd*bc*sc*i*
    alias:          pci:v00001D0Fd00000051sv*sd*bc*sc*i*
    depends:        
    vermagic:       2.6.32-754.33.1.el6.x86_64 SMP mod_unload modversions
    parm:           debug:Debug level (0=none,...,16=all) (int)
    parm:           rx_queue_size:Rx queue size. The size should be a power of 2. Max value is 8K
     (int)
    parm:           force_large_llq_header:Increases maximum supported header size in LLQ mode to 224 bytes, while reducing the maximum TX queue size by half.
     (int)
    parm:           num_io_queues:Sets number of RX/TX queues to allocate to device. The maximum value depends on the device and number of online CPUs.
     (int)
  6. net.ifnames=0/boot/grub/grub.conf에 추가하여 네트워크 인터페이스 이름 지정을 해제하세요.

    sudo sed -i '/kernel/s/$/ net.ifnames=0/' /boot/grub/grub.conf
  7. 인스턴스를 중지합니다. 그런 다음, 인스턴스 수준에서 향상된 네트워크 지원을 활성화합니다. 다음 예제는 AWS CLI에서 인스턴스의 속성을 수정합니다.

    aws ec2 modify-instance-attribute --instance-id i-xxxxxxxxxxxxxxxxx --ena-support --region xx-xxxxx-x
  8. 인스턴스 유형을 ENA가 지원하는 인스턴스 유형 중 하나로 변경합니다.

  9. 인스턴스를 시작하고 SSH를 사용하여 인스턴스에 연결한 다음 ethtool 명령을 실행합니다.

    ethtool -i eth0

    다음 예제 출력에는 ENA 드라이버 버전이 포함되어 있습니다.

    driver: ena
    version: 2.2.11g
    firmware-version:
    bus-info: 0000:00:05.0
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: no
    supports-priv-flags: no
    

DKMS 프로그램을 구성하여 해당 드라이버가 향후 커널 업그레이드에 포함되도록 합니다.

참고: AWS와 RHEL은 EPEL 리포지토리의 소프트웨어를 지원하지 않습니다. 동적 커널 모듈 지원(DKMS)을 사용하는 경우, 구독에 대한 지원 계약이 무효화됩니다.

DKMS 프로그램을 구성하려면:

  1. 다음 Red Hat 패키지 관리자(rpm) 파일을 설치합니다.

    sudo yum install https://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm -y

    참고: 최신.rpm 패키지 목록은 Fedora 프로젝트 웹사이트의 엔터프라이즈 리눅스용 추가 패키지(EPEL)를 참조하세요.

  2. 설치 명령을 실행합니다.

    sudo yum install dkms -y
  3. 현재 버전 검색:

    VER=$( grep ^VERSION /usr/src/amzn-drivers-master/kernel/linux/rpm/Makefile | cut -d' ' -f2 )
  4. 소스 파일을 소스 디렉터리에 복사합니다.

    sudo cp -a /usr/src/amzn-drivers-master /usr/src/amzn-drivers-${VER}
  5. DKMS 구성 파일을 생성하고 ENA 모듈을 빌드 및 설치합니다.

    sudo cat <<EOM | sudo tee /usr/src/amzn-drivers-${VER}/dkms.conf
    PACKAGE_NAME="ena"
    PACKAGE_VERSION="$VER"
    CLEAN="make -C kernel/linux/ena clean"
    MAKE="make -C kernel/linux/ena/ BUILD_KERNEL=\${kernelver}"
    BUILT_MODULE_NAME[0]="ena"
    BUILT_MODULE_LOCATION="kernel/linux/ena"
    DEST_MODULE_LOCATION[0]="/updates"
    DEST_MODULE_NAME[0]="ena"
    AUTOINSTALL="yes"
    EOM
    
    sudo dkms add -m amzn-drivers -v $VER
    sudo dkms build -m amzn-drivers -v $VER
    sudo dkms install -m amzn-drivers -v $VER
AWS 공식
AWS 공식업데이트됨 3달 전
댓글 없음

관련 콘텐츠