KVM 가상화 플랫폼 배포 (이론)

머리말:

미국 환경 보호 EPA 보고서는 한때 통계 세트를 계산했습니다. EPA는 서버와 데이터 센터의 에너지 효율성을 조사한 결과 실제로 서버가 5 %의 시간 동안 만 작동하고 다른 시간에는 휴면 상태임을 발견했습니다.

소프트웨어 리소스가 하드웨어 리소스만큼 높지 않음 (안정적이고 효율적) (동일한 기능)

1. KVM 가상화 기술

通过虚拟化技术将一台计算机虚拟为多台逻辑计算机, 在一台计算机上同时运行多个逻辑计算机,
同时每个逻辑计算机可运行不同的操作系统,应用程序都可以在相互独立的空间内运行而互相不影响,从而提高计算机的工作效率。
1、在一个操作系统中(win10)模拟多个操作系统(centos、win10、suse),同时每个操作系统可以跑不同的服务(nginx和tomcat),从而实现一台宿主机搭建一个集群
2、通过软件/应用程序的方式,来实现物理硬件的功能
例:ensp以软件形式实现物理设备的功能(二层交换机、路由器、三层交换机等)、workstation等

2. 가상화 기술 개발

원기

  • 1961 년 IBM 709 시스템은 CPU 사용량을 여러 개의 매우 짧은 시간 조각 (1/100 초)으로 나누는 시간 공유 시스템을 구현했습니다. 각 시간 조각은 서로 다른 작업을 수행했습니다. 이러한 시간 조각을 폴링하여 CPU를 폴링했습니다. 여러 CPU로
  • 1972 년 IBM은 공식적으로 system370 시스템의 시간 공유 시스템을 가상 시스템으로 명명했습니다.
  • 1990 년에 IBM이 도입 한 시스템 390 머신은 논리적 파티셔닝을 지원합니다 (CPU는 서로 독립적 인 다중, 즉 논리적 파티셔닝).

  • 2003 년에 출시 된 외부 하이퍼 바이저 / VMM 프로그램 (가상 머신 관리 프로그램)은 호스트를 제어하고 여러 클라이언트에 리소스를 할당 할 수 있습니다.
  • 지원되는 가상화 기술 : 전체 가상화, 반 가상화

KVM

  • 2007 년에 출시되었으며 현재 커널에 내장되어 있습니다. 지원되는 가상화 기술 : 전체 가상화

세, 가상화 기능

1. 장점

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

2. 단점

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

3. 사례

VMwareWorkstation: 소프트웨어를 사용하여 가상 다중 운영 체제 구현
VirtualBox: 소프트웨어를 사용하여 여러 물리적 장치 기능 가상화

VMware
워크 스테이션 을 예로 들어 보겠습니다. 워크 스테이션은 Intel 및 AMD의 가상화 기술을 지원합니다.
하드웨어 지원 가상화 기술 Intel-VT-x, AMD-V

Intel VT-x 기술은 주로 == CPU, 메모리 및 I / O ==의 가상화 기술을 포함하며 최적화 된 처리를 제공합니다 (초기에는 X86 아키텍처 가상화의 결함을 보완하기 위해)
AMD-V는 시스템 아키텍처입니다. x86 프로세서 용 하드웨어 확장 및 하드웨어 지원 가상화 기술로 소프트웨어 전용 가상화 솔루션을 단순화 할 수 있습니다.

VMM (가상 머신 모니터)의 설계를 개선하고 하드웨어 자원을 최대한 활용하며 서버와 데이터 센터의 가상화 효율성을 향상시킵니다
.VMM (가상 머신 모니터 / 관리 프로그램) haperivisor
VMM은 여러 개의 높은 성능을 유지할 수있는 시스템 소프트웨어입니다. 효율성, 격리 된 프로그램 환경 (가상 머신)은 컴퓨터 시스템의 실제 리소스를 관리하고 가상 머신을위한 인터페이스를 제공 할 수 있습니다.

4. VMM 기능

1. 물리적 리소스의 논리적 분할 (가상 리소스로 변환 됨)
2. 애플리케이션 용 가상 리소스 호출 (가상 머신)

네, KVM 소개

일반화 된 KVM : KVM (커널 기반 가상 머신) ---------- 커널 기반 가상 머신

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

다섯, KVM 아키텍처 및 원리

(1) KVM 가상화 아키텍처 / 3 가지 모드

1,고객 모델(guestOS) : VM의 OS
GuestOS 클라이언트가 운영 체제에서 실행되는 모드입니다. 클라이언트는 커널 모드와 사용자 모드로 구분됩니다. 기능은 다음과 같습니다
.사용자 모드:
사용자에게 가상 머신 관리를위한 사용자 공간 도구를 제공하고 사용자를 대신하여 I / O를 수행합니다. Qemu는이 모드 (Qemu의 주요 기능)에서 작동합니다
.리눅스 커널 모드
CPU 및 메모리 시뮬레이션, 클라이언트 모드 전환 실현, 클라이언트 모드에서의 실행 처리, KVM은이 모드에서 실행

(2) KVM의 원리

1. 게스트 : CPU (vCPU), 메모리, 드라이버 (콘솔, 네트워크 카드, I / O 장치 드라이버 등)를 포함한 게스트 시스템
은 KVM에 의해 제한된 CPU 모드에서 실행됩니다.
2. KVM 커널 모듈은 가상 머신 작동을 지원하기 위해 프로세서 및 메모리를 시뮬레이션합니다.
3. Qemu는 주로 I / O를 처리하고 고객에게 가상 머신 관리를위한 사용자 공간 / dev / kvm 도구 libvirt를 제공합니다.

ioctl (정의) : 장치 입력 및 출력 작업 전용 시스템 호출
libvirt : KVM 관리 도구
위는 완전한 가상화 플랫폼을 구성합니다.

간단한 이해 :

KVM 드라이버는 프로세서, 메모리 가상화 및 게스트 I / O 인터 셉션을 제공합니다. 게스트 I / O가 인터셉트 된 후 Qemu가 처리합니다.
Qemu는 libkvm 인터페이스를 사용하여 가상 머신 장치 인터페이스 / dev / kvm을 호출 (ioctl)합니다. 리소스 할당, 가상 머신 관리 및 유지

여섯, KVM 워크 플로우

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

추천

출처blog.csdn.net/panrenjun/article/details/114868542