RHCSA 시리즈 : KVM을 통한 가상화 및 게스트 관리의 핵심-15 부
사전에서 virtualize라는 단어를 찾아 보면 \"무언가의 가상 (실제가 아닌) 버전을 만드는 것\"을 의미합니다. 컴퓨팅에서 가상화라는 용어는 가상화 스키마에서 호스트로 알려진 동일한 물리적 (하드웨어) 시스템 위에서 여러 운영 체제를 동시에 실행하고 서로 격리 할 수있는 가능성을 나타냅니다.

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

또한 호스트의 펌웨어 (BIOS 또는 UEFI)에서 가상화 기능을 활성화해야합니다.
이제 필요한 패키지를 설치하십시오.
- qemu-kvm is an open source virtualizer that provides hardware emulation for the KVM hypervisor whereas qemu-img provides a command line tool for manipulating disk images.
- libvirt includes the tools to interact with the virtualization capabilities of the operating system.
- libvirt-python contains a module that permits applications written in Python to use the interface supplied by libvirt.
- libguestfs-tools: miscellaneous system administrator command line tools for virtual machines.
- virt-install: other command-line utilities for virtual machine administration.
# 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를 사용한 네트워크 트래픽 제어)에서 해당 주제에 대한 기사를 참조 할 수 있습니다.