KVM 설치 및 배포 (상세 교육)

1. 가상화 기술

가상화 기술을 통해 컴퓨터를 여러 논리 컴퓨터로 가상화하여 한 컴퓨터에서 동시에 여러 논리 컴퓨터를 허용하고, 각 논리 컴퓨터가 서로 다른 운영 체제를 실행할 수 있으며, 응용 프로그램이 독립적 인 공간에서 실행될 수 있으며 서로 영향을주지 않으므로 개선됩니다. 컴퓨터의 효율성

둘째, 가상화 유형

  1. 전체 가상화: 모든 물리적 하드웨어 리소스는 소프트웨어를 통해 추상화되고 마지막으로 호출됩니다.
    적용 가능한 방법 : 하이퍼 바이저 (VMM) 소프트웨어를 적용합니다. 그 원칙은 기본 하드웨어와 서버 사이에 추상화 계층을 설정하는 것입니다. 코어 기반 가상 머신은 CPU 명령을 캡처하고 하드웨어 컨트롤러 및 주변 장치에 액세스하기위한 명령의 중개자 역할을 할 수있는 Linux 시스템 용 오픈 소스 하이퍼 바이저 (VMM)입니다.
  2. 반 가상화: 운영 체제 수정 필요
  3. 을 통하여: 물리적 하드웨어 리소스를 직접 사용 (지원 필요, 아직 완벽하지는 않음)

세, 가상화 기능

1,이점

  1. 중앙 집중식 관리 (원격 관리, 유지 관리)
  2. 하드웨어 활용도 향상 (물리적 리소스 활용률이 최고 수준이고 가상화는 "유휴"용량을 해결 함)
  3. 머신 / 리소스 구성의 동적 조정 (가상화 된 시스템의 애플리케이션 및 서비스 하드웨어 분리로 유연성 향상)
  4. 높은 안정성 (투명한로드 밸런싱, 마이그레이션 및 복구 복제와 같은 애플리케이션 환경을 개선하기 위해 추가 기능 및 솔루션을 배포 할 수 있음)

2 、불리

  1. 높은 초기 비용 (초기 하드웨어 지원)
  2. 하드웨어 사용률 감소 (예 : 리소스를 매우 많이 사용하는 애플리케이션이 반드시 가상화에 적합하지 않은 특정 시나리오에서)
  3. 더 큰 오류 영향 영역 (로컬 물리적 머신 다운으로 인해 가상 머신을 사용할 수 없게 될 수 있으며 동시에 가상 머신의 모든 파일이 손상 될 수 있음)
  4. 복잡한 구현 구성 및 복잡한 관리 (관리 인력의 운영 및 유지 관리 및 문제 해결의 어려움)
  5. 특정 제한 (가상화 기술에는 다양한 제한이 포함되며 가상화를 지원 / 호환하는 서버, 애플리케이션 및 공급 업체와 함께 사용해야 함) 보안 (가상화 기술 자체의 보안 위험)

네, KVM 소개

  1. 일반화 된 KVM
    KVM (커널 기반 가상 머신)-커널 기반 가상 머신
    KVM은 가상화 된 X86 하드웨어 (Intel-VT-x 또는 AMD-V를 지원하려면 CPU가 필요함)를 기반으로하는 오픈 소스 Linux 네이티브 전체 가상화 솔루션입니다
    . 커널 모듈에 내장 된 KVM , 프로세서 및 메모리는
    가상 머신 의 작동을 지원하도록 시뮬레이션됩니다 . 가상 머신은 표준 Linux 스케줄러에 의해 예약 된
    일반 Linux 프로세스로 구현됩니다. 가상 머신의 각 가상 CPU는 일반 Linux 프로세스로 구현됩니다. . 이를 통해 KMV는 Linux 커널의 기존 기능을 사용할 수
    있지만 KVM 자체는 시뮬레이션을 수행하지 않습니다. / dev / kvm (이 가상 장치는 하드웨어 지원 가상화
    를 켜야 함 ) 인터페이스를 통해 클라이언트 가상 서버의 주소 공간을 설정하려면 클라이언트 공간 프로그램 (가상 머신)이 필요하며, Qemu 시뮬레이션 / O (ioctl) 리소스 및 유지 관리
    Libvit : KVM 관리 도구, KVM과 같은 VMM 관리 외에도 Xen, VirtualBox 및 OpenStack의 맨 아래 계층도 관리 할 수 ​​있습니다
    .Libvirt에는 백그라운드 데몬 프로그램 libvirtd의 3 가지 구성 요소가 있습니다. API 라이브러리, 명령 줄에 virsh가 있습니다.

  2. KVM 가상화 아키텍처 및 세 가지 모드
    1. 게스트 모드 (guestOS) : VM의 OS는 게스트 OS
    게스트가 운영 체제에서 실행 되는 모드입니다 . 게스트는 커널 모드와 사용자 모드로 구분됩니다.
    2. 사용자 모드 :
    사용자에게 사용자 공간 도구를 제공합니다. 가상 머신 관리 및 사용자 대신 I / O 수행, Qemu는이 모드 (Qemu의 주요 기능)에서 작동합니다.
    3. Linux 커널 모드
    CPU 및 메모리 시뮬레이션, 클라이언트 모드 전환 실현, 클라이언트 모드 시작 처리 및 KVM 이 모드에서 실행

  3. KVM 원리
    1. 게스트 : CPU (vCPU), 메모리 및 드라이버 (콘솔, 네트워크 카드, I / O 장치 드라이버 등)를 포함한 게스트 시스템
    은 KVM에 의해 제한된 CPU 모드로 전환되어 실행됩니다.
    2. KVM 커널 모듈은 가상 머신 작동을 지원하기 위해 프로세서 및 메모리를 시뮬레이션합니다.
    3. Qemu는 주로 I / O를 처리하고 고객에게 가상 머신 관리를위한 사용자 공간 / dev / kvm 도구 libvirt를 제공합니다.
    ioctl (정의) 장치 입력 및 output 운영 체제는
    libvirt를 호출합니다 : KVM 관리 도구
    위는 완전한 가상화 플랫폼을 구성합니다.
    간단한 이해 :
    KVM 드라이버는 프로세서, 메모리 가상화 및 게스트 I / O 차단을 제공합니다. 게스트 I / O가 차단 된 후 Qemu
    Qemu에 의해 처리됨 libkvm 인터페이스를 사용하여 가상 머신 장치 인터페이스 / dev / kvm을 호출 (ioctl)하여 리소스를 할당하고, 가상 머신을 관리 및 유지합니다.

  4. KVM 워크 플로우
    사용자 모드 Qemu는 libkvm 인터페이스를 사용하여 ioctl 시스템 호출을 통해 커널 모드로 들어갑니다. KVM 드라이버는 가상 머신에 대한 가상 CPU 및 가상 메모리를 생성 한 다음 VMLAU-NCH 명령을 실행하여 게스트 모드로 들어가고 게스트 OS를로드하고 실행합니다. 게스트 OS의 동작 중에 이상이 발생하면 게스트 OS의 동작을 중지하고 현재 상태를 저장하고 커널 모드를 종료하여 이러한 이상을 처리합니다.
    커널 모드가 이러한 예외를 처리 할 때 V / O가 필요하지 않으면 처리가 완료된 후 클라이언트 모드로 다시 들어가십시오. V / O가 필요한 경우 사용자 모드로 들어가면 Qemu가 I / O를 처리하고 처리가 완료된 후 커널 모드로 들어가 클라이언트 모드로 들어갑니다.

다섯, KVM 호스트 배포

1. 실험 환경
CPU : 듀얼 코어 듀얼 스레드 CPU 가상화 지원
메모리 : 8G
하드 디스크 : 300G
네트워크 카드 : 단일 네트워크 카드
운영 체제 : Centos 7.6 (1810)

1.
여기에 사진 설명 삽입
먼저 새로운 가상 머신 생성 2. 실험 환경
1. 호스트 이름 수정

[root@kvm ~]# hostnamectl set-hostname kvm 
[root@kvm ~]# su

2. 미러 디스크를 자동 / 영구 마운트로 설정합니다.

[root@kvm ~]# vim /etc/fstab
/dev/cdrom /mnt iso9660 defaults 0 0
[root@kvm ~]# mount -a 
[root@kvm ~]# df -hT
/dev/sr0       iso9660   4.3G  4.3G     0  100% /mnt

여기에 사진 설명 삽입
여기에 사진 설명 삽입
3. 환경 최적화

① DNS 역방향 확인 설정
#DNS 역방향 여부, 클라이언트가 서버에 빠르게 연결되도록 NO로 설정
[root @ kvm ~] # vim / etc / ssh / sshd_config #DNS
주석
취소 및 NO UseDNS no로 변경

여기에 사진 설명 삽입
4. 지역 YUM 창고 만들기

[root@kvm ~]# mkdir /abc
[root@kvm ~]# cd /etc/yum.repos.d/
[root@kvm yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@kvm yum.repos.d]# mkdir bak
[root@kvm yum.repos.d]# mv CentOS-* bak
[root@kvm yum.repos.d]# ls
bak
[root@kvm yum.repos.d]# vim local.repo
[local]
name=kvm
baseurl=file:///abc
gpgcheck=0
enabled=1
[root@kvm yum.repos.d]# yum clean all 
[root@kvm yum.repos.d]# yum repolist

여기에 사진 설명 삽입

여기에 사진 설명 삽입
여기에 사진 설명 삽입
5. 방화벽 및 핵심 보호 ​​해제

[root@kvm yum.repos.d]# systemctl stop firewalld
[root@kvm yum.repos.d]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@kvm yum.repos.d]# setenforce 0

둘째, KVM 설치

① 安装KVM基本组件
# 安装 GNOME 桌面环境  如果装了图形界面可以不需要装
yum groupinstall -y "GNOME Desktop"
# KVM 模块
yum -y install qemu-kvm
# 安装KVM 调试工具,可不安装
yum -y install qemu-kvm-tools
# 构建虚拟机的命令行工具
yum -y install virt-install
# qemu 组件,创建磁盘、启动虚拟机等
yum -y install qemu-img
# 网络支持工具
yum -y install bridge-utils
# 虚拟机管理工具
yum -y install libvirt
# 图形界面管理虚拟机	
yum -y install virt-manager


#以下是安装的内容
yum groupinstall -y "GNOME Desktop"
yum -y install qemu-kvm
yum -y install qemu-kvm-tools
yum -y install virt-install
yum -y install qemu-img
yum -y install bridge-utils
yum -y install libvirt
yum -y install virt-manager

여기에 사진 설명 삽입

CPU가 가상화를 지원하는지 확인

[root@localhost ~]# cat /proc/cpuinfo | grep vmx

여기에 사진 설명 삽입

KVM 모듈이 설치되었는지 확인

Lsmod:显示已载入的系统模块
[root@kvm ~]# lsmod | grep kvm
kvm_intel             183621  0 
kvm                   586948  1 kvm_intel
irqbypass              13503  1 kvm

여기에 사진 설명 삽입
② 시작 인터페이스의 표시 모드 설정

[root@kvm ~]# ln -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target

여기에 사진 설명 삽입

셋, KVM 네트워크 설정

KVM 네트워크의 두 가지 모드 :
① NAT : 기본 설정, 데이터 패킷은 NAT
의해 호스트의 인터페이스를 통해 전송 되며 , 외부 네트워크에 액세스 할 수 있지만 외부에서 가상 머신 네트워크에 액세스 할 수 없습니다
. ② 브리지 :이 모드는 가상 머신이 하나처럼 작동하는 독립 호스트에도 네트워크가 있으며 외부 머신은 가상 머신 내부에 직접 액세스 할 수 있지만 네트워크 카드 지원이 필요합니다 (일반적으로 유선 네트워크 카드 지원).

使用Bridge网桥模式进行部署

[root@bdqn ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=aac61931-47a6-40e5-9511-68adf20e97c5
DEVICE=ens33
ONBOOT=yes
#IPADDR=192.168.162.130
#PREFIX=24
#GATEWAY=192.168.162.2
BRIDGE=br0			#删除原先地址,设置为网桥模式,关联br0网卡

여기에 사진 설명 삽입

# 브리지 된 네트워크 카드 생성 및 수정

vim /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=static
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
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.162.130
NETMASK=255.255.255.0
GATEWAY=192.168.162.2

여기에 사진 설명 삽입

넷째, KVM 배포 및 관리
#KVM 스토리지 및 미러링 데이터를위한 디렉터리 생성, centos7 미러 업로드

[root@kvm network-scripts]# mkdir -p /data_kvm/iso
[root@kvm network-scripts]# mkdir -p /data/_kvm/store
[root@kvm network-scripts]# mkdir /abc
[root@kvm network-scripts]# mount.cifs //192.168.162.1/LAMP-C7 /mnt
Password for root@//192.168.162.1/LAMP-C7:  
[root@kvm network-scripts]# cd /abc
[root@kvm abc]# cp -p CentOS-7-x86_64-DVD-1806.iso /data_kvm/iso/

여기에 사진 설명 삽입

여기에 사진 설명 삽입

거울보기

[root@kvm abc]# ll /data_kvm/iso/
总用量 4481024
-rwxr-xr-x. 1 root root 4588568576 2月  20 2019 CentOS-7-x86_64-DVD-1810.iso

여기에 사진 설명 삽입

가상 시스템 관리자를 사용하여 가상 머신 관리
생성 아이디어 :
① 스토리지 풀 (ISO, STORE) 생성
② 스토리지 볼륨 추가
③ 가상 머신 생성

[root@kvm kvmdata]# virt-manager

여기에 사진 설명 삽입

① 1 단계 : 스토리지 풀 생성
두 번 클릭하여 QEMU / KVM-storage-add (더하기 기호)를 열고 이름을 입력합니다 .-forward-browse-other locations-computer-data_kvm-store-open-finish를 사용합니다. 미러링 된 스토리지 풀을 만드는 방법, 선택한 폴더는 / data_kvm / iso입니다.

여기에 사진 설명 삽입

여기에 사진 설명 삽입

여기에 사진 설명 삽입

② 저장 볼륨 생성
여기에 사진 설명 삽입

③ 가상 머신 생성
가상 시스템 관리자를 열고 QEMU / KVM을 마우스 오른쪽 버튼으로 클릭하고 새로 만들기를 선택합니다.

여기에 사진 설명 삽입
여기에 사진 설명 삽입

ISO 이미지 찾아보기를 사용하여 방금 만든 이미지의 스토리지 풀에서 이미지를 선택합니다.

여기에 사진 설명 삽입
메모리 및 CPU 구성

여기에 사진 설명 삽입
여기에 사진 설명 삽입

여기에 사진 설명 삽입
여기에 사진 설명 삽입
여기에 사진 설명 삽입

요약하자면 :

1. KVM 기술 소개
어떤 기술 : 가상화

2. KVM 기술 포지셔닝 (실용 애플리케이션)
워크 스테이션,
가상 박스는 하드웨어 리소스 / 장비 / 운영 체제를 시뮬레이션합니다.

3. KVM 가상화 기술의 핵심 기능 (원칙)
QEMU (사용자 계층에서 작동, ibkvm 도구 (도구 기능, 커널에서 KVM 제어)를 제어하여 물리적 가상화 리소스를 호출 (물리적 가상화 리소스를 호출
하는 방법은 ioctl) , 가상 머신 제공)
KVM (커널 계층에서 작동, 물리적 하드웨어 리소스 가상화 / 추상화, Qemu 구성 요소 호출 제공)

4. KVM 핵심 구성 요소 기능
QEMU
기능 : I / O 가상화 제어, 하드웨어 리소스 호출
KVM
기능 : 가상 머신에 CPU, 메모리 (하드웨어 리소스) 가상화 제공

추천

출처blog.csdn.net/weixin_51622156/article/details/114645698