단어 virtualize를 사전에서 찾으면 “무언가의 가상(실제가 아닌) 버전을 만드는 것”이라는 의미를 찾을 수 있습니다. 컴퓨팅에서 가상화라는 용어는 동일한 물리적(하드웨어) 시스템 위에서 동시에 여러 운영 체제를 실행하고 서로 격리시킬 수 있는 가능성을 말하며, 가상화 스키마에서 호스트라고 알려져 있습니다.

가상 머신 모니터(또는 하이퍼바이저라고도 함)를 사용하여 가상 머신(손님으로 알려진 손님)은 기본 하드웨어에서 가상 리소스(예: CPU, RAM, 저장소, 네트워크 인터페이스 등)를 제공받습니다.
이러한 점을 감안할 때 가상화의 주요 이점 중 하나는 비용 절감(장비 및 네트워크 인프라 및 유지 보수 노력 측면)과 필요한 모든 하드웨어를 수용하기 위해 필요한 물리적 공간의 상당한 감소입니다.
이 간단한 방법으로는 모든 가상화 방법을 다룰 수 없으므로 요약에 나열된 문서를 참조하여 항목에 대한 추가 세부 정보를 확인하는 것이 좋습니다.
이 기사는 RHEL 7에서 KVM(커널 기반 가상 머신)을 사용하여 명령줄 유틸리티로 가상화의 기본 사항을 배우기 위한 시작점으로 의도되었으며, 주제에 대한 심층적인 토론이 아닙니다.
하드웨어 요구 사항 확인 및 패키지 설치
가상화를 설정하려면 CPU가 지원해야 합니다. 다음 명령으로 시스템이 요구 사항을 충족하는지 확인할 수 있습니다:
# grep -E 'svm|vmx' /proc/cpuinfo
다음 스크린샷에서 현재 시스템(AMD 마이크로프로세서)이 svm으로 표시되어 가상화를 지원하는 것을 확인할 수 있습니다. 인텔 기반 프로세서가 있다면 위 명령의 결과에는 vmx가 표시됩니다.

또한, 호스트(BIOS 또는 UEFI)의 펌웨어에서 가상화 기능을 활성화해야 합니다.
이제 필요한 패키지를 설치하세요:
- qemu-kvm은 KVM 하이퍼바이저의 하드웨어 에뮬레이션을 제공하는 오픈 소스 가상화 도구이며, qemu-img는 디스크 이미지를 조작하는 명령 줄 도구를 제공합니다.
- libvirt는 운영 체제의 가상화 기능과 상호 작용하기 위한 도구를 포함합니다.
- libvirt-python은 libvirt가 제공하는 인터페이스를 사용하는 파이썬으로 작성된 응용 프로그램을 허용하는 모듈을 포함합니다.
- libguestfs-tools: 가상 머신에 대한 잡다한 시스템 관리자 명령 줄 도구입니다.
- virt-install: 가상 머신 관리를 위한 다른 명령 줄 유틸리티입니다.
# yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install
설치가 완료되면 libvirtd 서비스를 시작하고 활성화해야 합니다:
# systemctl start libvirtd.service # systemctl enable libvirtd.service
기본적으로 각 가상 머신은 동일한 물리 서버 내의 다른 가상 머신 및 호스트 자체와만 통신할 수 있습니다. 게스트가 LAN 내의 다른 기계 및 인터넷에 액세스하려면 호스트에 브릿지 인터페이스를 설정해야 합니다(예: br0). 이를 위해 다음을 수행해야 합니다.
1. 주 NIC 설정 파일(아마도 /etc/sysconfig/network-scripts/ifcfg-enp0s3
)에 다음 라인을 추가:
BRIDGE=br0
2. br0의 설정 파일(/etc/sysconfig/network-scripts/ifcfg-br0
)을 다음 내용으로 생성(IP 주소, 게이트웨이 주소 및 DNS 정보를 변경해야 할 수 있음):
DEVICE=br0 TYPE=Bridge BOOTPROTO=static IPADDR=192.168.0.18 NETMASK=255.255.255.0 GATEWAY=192.168.0.1 NM_CONTROLLED=no DEFROUTE=yes PEERDNS=yes PEERROUTES=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=br0 ONBOOT=yes DNS1=8.8.8.8 DNS2=8.8.4.4
3. 마지막으로, /etc/sysctl.conf
에 패킷 전달을 활성화하기 위해 다음을 수행하고 현재 커널 구성에 변경 사항을 로드:
net.ipv4.ip_forward = 1
# sysctl -p
이러한 유형의 트래픽을 허용해야 하는 경우 firewalld에도 알려야 할 수 있습니다. 이에 대한 도움이 필요한 경우 이 시리즈의 동일한 주제에 대한 기사(제11부: FirewallD 및 Iptables를 사용한 네트워크 트래픽 제어)를 참고할 수 있습니다.
Source:
https://www.tecmint.com/kvm-virtualization-basics-and-guest-administration/