Google 가상 NIC(gVNIC)는 Compute Engine을 위해 특별히 설계된 가상 네트워크 인터페이스입니다. gVNIC는 virtIO 기반 이더넷 드라이버의 대안입니다.
VirtIO의 뒤를 잇는 차세대 네트워크 인터페이스 gVNIC는 모든 새로운 머신 유형(3세대 이상)에 대해 Compute Engine에서 유일하게 지원되는 네트워크 인터페이스로 VirtIO-Net을 대체합니다. 최신 머신 시리즈 및 네트워킹 기능을 사용하려면 VirtIO 대신 gVNIC가 필요합니다. Compute Engine VM에서 최신 I/O 인터페이스로 gVNIC를 사용하면 다음과 같은 이점이 있습니다.
- 더 나은 성능을 제공합니다.
- 시끄러운 이웃(noisy neighbor) 문제를 줄여 일관성을 향상시킵니다.
- VirtIO가 지원하는 것 이상의 새로운 네트워크 기능을 도입합니다.
gVNIC는 모든 머신 계열, 머신 유형, 세대에서 지원되고 권장됩니다.
다음과 같은 최대 대역폭 속도를 달성하려면 gVNIC가 필요합니다.
- VM당 Tier_1 네트워킹 성능을 지원하는 VM이 있는 50~200Gbps 대역폭
- GPU가 연결된 VM의 경우 50~1,800Gbps 대역폭
컨피덴셜 VM 인스턴스, 3세대 이상의 머신 시리즈 VM, Arm CPU 플랫폼에서 실행되는 VM의 네트워크 인터페이스로 gVNIC를 사용해야 합니다.
시작하기 전에
- Windows Server 2022 또는 Windows 11 VM에 gVNIC를 사용하는 경우 네트워크 처리량 향상을 위해 gVNIC 드라이버를 GooGet 패키지 버전
1.0.0@45
이상으로 업데이트합니다. 자세한 내용은 알려진 문제를 참조하세요. -
아직 인증을 설정하지 않았다면 설정합니다.
인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다.
로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음과 같이 Compute Engine에 인증하면 됩니다.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- OS 이미지에 gVNIC 드라이버가 포함되어 있지 않음
- OS 이미지에 최신 gVNIC 드라이버 버전이 없음
- Linux VM의 경우 Linux 커널 드라이버 Compute Engine Virtual Ethernet을 참조하세요.
- FreeBSD에서 실행되는 VM의 경우 Compute Engine 가상 이더넷 FreeBSD 드라이버를 참조하세요.
- Windows VM의 경우 Compute Engine Virtual Ethernet용 Windows 드라이버를 참조하세요.
- Large Receive Offload(LRO)는 지원되지 않습니다. gVNIC를 사용하는 VM에는 Generic Receive Offload(GRO)가 기본적으로 사용 설정됩니다.
- Large Send Offload Version 2(LSOV2)는 Windows 11 또는 Windows Server 2022 VM에서 지원되지 않습니다. gVNIC 드라이버 버전
1.0.0@45
이상에서는 LSOV2를 중지합니다. Microsoft Windows에서 VM의 gVNIC를 확인하고 업데이트하는 방법은 알려진 문제를 참조하세요. - gVNIC를 지원하는 공개 OS 이미지를 선택하거나 gVNIC를 사용하도록 태그 지정된 커스텀 OS 이미지를 만듭니다.
- 공개 또는 커스텀 OS 이미지를 사용하는 VM을 만듭니다. VM을 만드는 동안 gVNIC를 사용하도록 네트워크 인터페이스를 구성합니다.
- gVNIC가 사용 설정되어 있는지 확인합니다.
gVNIC를 지원하는 OS 이미지 또는 이미지 계열을 선택합니다. 자세한 내용은 운영체제 세부정보를 참조하세요.
이전 단계에서 선택한 OS 이미지나 이미지 계열을 사용하여 커스텀 OS 이미지를 만들고 이 OS 이미지에
GVNIC
태그를 지정합니다. 커스텀 OS 이미지를 만들려면gcloud compute images create
명령어를 사용합니다. 예를 들어 다음 명령어는 gVNIC를 지원하고 특정 OS 이미지를 기반으로 하는 커스텀 OS 이미지를 만듭니다.gcloud compute images create IMAGE_NAME \ --source-image=SOURCE_IMAGE \ --source-image-project=SOURCE_IMAGE_PROJECT \ --guest-os-features=GVNIC
다음을 바꿉니다.
IMAGE_NAME
: 만들려는 이미지의 이름입니다.SOURCE_IMAGE
: gVNIC를 지원하는 특정 OS 이미지입니다(예:rocky-linux-8-optimized-gcp-v20220719
).이미지 계열에서 최신 OS 이미지를 사용하려면
--source-image
플래그를--source-image-family
플래그로 바꾸고 gVNIC를 지원하는 이미지 계열로 값을 설정합니다. 예를 들면 다음과 같습니다.--source-image-family=rocky-linux-8-optimized-gcp
.SOURCE_IMAGE_PROJECT
: 소스 OS 이미지 또는 이미지 계열을 포함하는 프로젝트의 이름입니다.
예시
Compute Engine
rocky-linux-8-optimized-gcp
이미지 계열의 최신 OS 이미지를 사용하여 Google Cloud용 Rocky Linux 8 최적화 OS 이미지를 만들려면 다음 명령어를 실행합니다.gcloud compute images create IMAGE_NAME \ --source-image-family=rocky-linux-8-optimized-gcp \ --source-image-project=rocky-linux-cloud \ --guest-os-features=GVNIC
이미지 계열을 사용할 시기에 대한 자세한 내용은 이미지 계열 권장사항을 참조하세요.
gVNIC를 지원하는 OS 이미지 또는 이미지 계열을 선택합니다. 자세한 내용은 운영체제 세부정보를 참조하세요.
이전 단계에서 선택한 OS 이미지나 이미지 계열을 사용하여 OS 이미지를 만들고 이 OS 이미지에
GVNIC
태그를 지정합니다. OS 이미지를 만들려면images.insert
메서드를 사용합니다.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images { "name":"IMAGE_NAME", "sourceImage":"SOURCE_IMAGE_URI", "guestOsFeatures":[ { "type":"GVNIC" } ] }
다음을 바꿉니다.
PROJECT_ID
: 새 이미지를 만들 프로젝트의 ID입니다.IMAGE_NAME
: 커스텀 이미지의 이름입니다.SOURCE_IMAGE_URI
: 사용할 특정 OS 이미지나 이미지 계열의 URI입니다.예를 들면 다음과 같습니다.
- 특정 OS 이미지:
"sourceImage": "projects/rocky-linux-cloud/global/images/rocky-linux-8-optimized-gcp-v20220719"
- 이미지 계열:
"sourceImage": "projects/rocky-linux-cloud/global/images/family/rocky-linux-8-optimized-gcp"
이미지 계열을 지정하면 Compute Engine이 해당 계열의 지원 중단되지 않은 최신 OS 이미지에서 VM을 만듭니다. 이미지 계열을 사용할 시기에 대한 자세한 내용은 이미지 계열 권장사항을 참조하세요.
- 특정 OS 이미지:
Google Cloud 콘솔에서 인스턴스 만들기 페이지로 이동합니다.
VM 인스턴스의 이름을 입력합니다.
VM을 만들 영역을 선택합니다.
부팅 디스크 섹션에서 변경을 클릭합니다.
부팅 디스크 패널의 커스텀 이미지 탭에서 다음을 완료합니다.
- 이전에 만든 OS 이미지가 포함된 소스 프로젝트를 선택합니다.
- 이미지 드롭다운에서 이미지를 선택합니다.
- 선택을 클릭합니다.
gVNIC를 네트워크 인터페이스로 설정하려면 고급 옵션 섹션을 펼친 후 다음을 수행합니다.
- 네트워킹 섹션을 펼칩니다.
- 네트워크 인터페이스 카드에
gVNIC
를 선택합니다.
필요에 따라 VM을 추가로 맞춤설정합니다.
만들기를 클릭하여 VM 인스턴스를 만듭니다.
gcloud compute instances create
명령어를 사용하여 VM을 만듭니다. 부팅 디스크의 경우 앞서 만든 커스텀 OS 이미지를 지정합니다. 네트워크 인터페이스의 경우nic-type
플래그 값을GVNIC
로 설정합니다.gcloud compute instances create VM_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --image=IMAGE_NAME \ --image-project=YOUR_IMAGE_PROJECT \ --network-interface=nic-type=GVNIC
다음을 바꿉니다.
VM_NAME
: 새 VM의 이름입니다.ZONE
: VM을 만들 영역입니다.MACHINE_TYPE
: VM 인스턴스를 만들 때 사용할 머신 유형입니다. 머신 유형을 지정하지 않으면 기본값은n1-standard-1
입니다.IMAGE_NAME
: 이전 단계에서 만든 OS 이미지입니다.YOUR_IMAGE_PROJECT
: OS 이미지가 포함된 프로젝트의 이름입니다.
선택사항: Compute Engine에서 VM을 만들었는지,
nicType
가GVNIC
로 설정되었는지 확인합니다.gcloud compute instances describe VM_NAME \ --zone=ZONE
다음을 바꿉니다.
VM_NAME
: VM의 이름입니다.ZONE
: VM을 만든 영역입니다.
예시
프로젝트
my-project-12345
에 있는my-gvnic-rocky8
이라는 OS 이미지를 사용하여us-west1-b
영역에n1-standard-1
머신 유형으로 Rocky Linux 8 VM을 만들려면 다음 명령어를 실행합니다.gcloud compute instances create my-rocky-linux-vm \ --zone=us-west1-b \ --image=my-gvnic-rocky8 \ --image-project=my-project-12345 \ --network-interface=nic-type=GVNIC
고려사항
--network-interface
플래그에는 다음과 같은 하위 수준 플래그가 있습니다.--address
: VM에 IP 주소를 할당합니다.--network
: 인터페이스를 포함할 네트워크입니다.--network-tier
: 인터페이스의 네트워크 등급입니다.--subnet
: 인터페이스를 포함할 서브넷입니다.--network
도 지정되었으면 서브넷이 지정된 네트워크의 일부여야 합니다.--private-network-ip
: VM에 할당할 RFC 1918 IP를 지정합니다.
전체 목록은
--network-interface
플래그를 참조하세요.- 부팅 디스크의 경우 앞서 만든 커스텀 OS 이미지를 지정합니다.
- 네트워크 인터페이스의 경우
nicType
필드 값을GVNIC
로 설정합니다. PROJECT_ID
: VM을 만들 프로젝트의 ID입니다.ZONE
: VM을 만들 영역입니다.VM_NAME
: 새 VM의 이름입니다.NETWORK
: 이 VM의 네트워크 리소스 URL입니다. 네트워크 또는 서브네트워크가 모두 지정되지 않은 경우 기본 네트워크global/networks/default
가 사용됩니다.SUBNET_NAME
: 서브넷의 이름입니다. 네트워크는 지정된 서브넷에서 추론됩니다. 이 필드는 선택 사항입니다.YOUR_IMAGE_PROJECT
: OS 이미지가 포함된 프로젝트의 이름입니다.IMAGE_NAME
: 이전 단계에서 만든 OS 이미지입니다.- Windows VM 인스턴스에서 기기 관리자를 엽니다.
- 네트워크 어댑터 아래에 다음과 같이 표시됩니다.
"Google Ethernet Adapter"
- 인스턴스에 연결
- 새 인스턴스에 영구 디스크 추가
- VM당 Tier_1 네트워킹 성능 구성.
- VPC 네트워크의 MTU 설정 변경
- 점보 프레임 알아보기
REST
로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공하는 사용자 인증 정보를 사용합니다.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
자세한 내용은 Google Cloud 인증 문서의 REST 사용 인증을 참조하세요.
가격 책정
Tier_1 네트워킹의 최신 가격 정보는 VM 인스턴스 가격 책정 페이지를 참조하세요.
가격 책정 정보를 찾는 데 사용할 수 있는 추가 방법 목록은 Compute Engine 가격 책정을 참조하세요.
운영체제 지원
Compute Engine에서는 모든 지원되는 공개 운영체제(OS) 이미지에서 gVNIC를 사용하도록 선택할 수 있습니다. 다음 경우에는 gVNIC 드라이버를 수동으로 설치할 수 있습니다.
지원되는 운영체제는 운영체제의 인터페이스 탭을 참조하세요. 또한 네트워킹 기능 지원은 네트워킹 기능 탭을 확인하세요.
지원되지 않는 운영체제에서 사용
gVNIC를 지원하지만 최신 버전의 gVNIC 드라이버가 없는 OS 이미지의 경우 GitHub에서 최신 드라이버 버전을 다운로드할 수 있습니다.
Linux 또는 Windows VM에서 최신 버전의 gVNIC 드라이버를 수동으로 구성하고 설치할 수 있습니다.
VM에서 gVNIC를 사용하도록 운영체제를 업데이트한 후 해당 OS 이미지에 따라 커스텀 OS 이미지를 만듭니다. 그런 후 커스텀 OS 이미지를 사용하여 해당 운영체제에서 gVNIC를 사용하는 추가 VM을 만들 수 있습니다. 커스텀 OS 이미지를 사용하여 VM 만들기에 대한 자세한 내용은 이 페이지에서 gVNIC를 지원하는 커스텀 OS 이미지 만들기를 참조하세요.
다음 절차에 따라 gVNIC 드라이버의 최신 버전을 수동으로 구성하고 설치합니다.
제한사항
Compute Engine VM에 gVNIC 사용하기 개요
gVNIC를 사용하는 VM을 만들려면 다음 단계를 완료합니다.
문제가 발생하면 Google Virtual NIC 문제 해결을 참조하세요.
gVNIC를 지원하는 커스텀 OS 이미지 만들기
Google Cloud CLI 또는 REST를 사용하여 OS 이미지를 만들 수 있습니다. 커스텀 OS 이미지 만들기에 대한 자세한 내용 및 권장사항은 커스텀 OS 이미지 만들기를 참조하세요.
gcloud
REST
gVNIC를 지원하는 VM 만들기
지원되는 공개 OS 이미지 중 하나를 사용하거나 gVNIC를 지원하는 커스텀 OS 이미지 만들기의 단계에 따라 만든 커스텀 OS 이미지를 사용하여 VM을 만들 수 있습니다.
선택적으로 빠른 네트워크 패킷 처리, 낮은 지연 시간, 일관적인 성능을 위해 VM에서 DPDK를 사용 설정할 수 있습니다.
다중 네트워크 인터페이스(NIC)를 지원하는 VM의 경우 인터페이스 지원이 NIC별로 구성되므로 다양한 유형의 NIC를 VM에 연결할 수 있습니다. 이 설정은 지원되지만 권장되지 않습니다. 여러 NIC를 지원하는 VM의 경우 VM을 만들 때 각 네트워크 인터페이스에
nic-type=GVNIC
를 지정해야 합니다.공개 OS 이미지를 사용하여 VM 만들기
gVNIC를 지원하는 공개 OS 이미지를 사용하여 VM을 만들려면 고대역폭 구성을 사용하여 VM 및 컨테이너 만들기의 안내를 따르세요.
커스텀 OS 이미지를 사용하여 VM 만들기
gVNIC를 지원하는 공개 OS 이미지를 사용하지 않는 경우 먼저 gVNIC를 지원하는 커스텀 OS 이미지를 만들어야 합니다. 그런 다음 Google Cloud 콘솔, Google Cloud CLI, REST를 사용하여 해당 커스텀 OS 이미지로 VM을 만듭니다.
콘솔
gcloud
REST
instances.insert
메서드를 사용하여 VM을 만듭니다.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name":"VM_NAME", "networkInterfaces":[ { "network":"NETWORK", "nicType":"GVNIC", "subnet":"SUBNET_NAME" } ], "disks":[ { "initializeParams":{ "sourceImage":"projects/YOUR_IMAGE_PROJECT/global/images/IMAGE_NAME" }, "boot":true } ] }
다음을 바꿉니다.
gVNIC가 사용 설정되어 있는지 확인
Linux
lshw
도구를 사용하여 가상 머신의 하드웨어 구성에 대한 세부 정보를 추출할 수 있습니다.Linux VM 인스턴스에
lshw
도구를 설치하려면 VM에 SSH로 연결하고 다음 명령어를 실행합니다.sudo apt-get install lshw -y
VM이 gVNIC 네트워크를 사용 중인지 확인하려면 다음 명령어를 실행합니다.
sudo lshw -class network
다음과 유사한 결과가 출력됩니다.
*-network description: Ethernet interface product: Compute Engine Virtual Ethernet [gVNIC] vendor: Google, Inc. physical id: 3 bus info: pci@0000:00:03.0 logical name: ens3 version: 00 serial: 42:01:0a:80:00:6f width: 32 bits clock: 33MHz capabilities: msix bus_master cap_list ethernet physical configuration: autonegotiation=off broadcast=yes driver=gve driverversion=1.0.0 duplex=full ip=10.128.0.111 latency=0 link=yes multicast=yes port=twisted pair resources: irq:11 memory:c0203000-c0203fff memory:c0200000-c02000ff memory:c0100000-c01fffff
Windows
문제 해결
gVNIC 문제를 해결하려면 Google Virtual NIC 문제 해결을 참조하세요.
다음 단계
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2024-08-14(UTC)
[{ "type": "thumb-down", "id": "hardToUnderstand", "label":"Hard to understand" },{ "type": "thumb-down", "id": "incorrectInformationOrSampleCode", "label":"Incorrect information or sample code" },{ "type": "thumb-down", "id": "missingTheInformationSamplesINeed", "label":"Missing the information/samples I need" },{ "type": "thumb-down", "id": "translationIssue", "label":"번역 문제" },{ "type": "thumb-down", "id": "otherDown", "label":"기타" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"이해하기 쉬움" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"문제가 해결됨" },{ "type": "thumb-up", "id": "otherUp", "label":"기타" }] -