KVM 가상화 기술 Centos6.5에 배포

KVM은 무엇인가?

이름은이다 KVM 커널 기반 가상 머신 (커널 기반 가상 머신)이며,  리눅스에게  이러한 커널 모듈을 그 하이퍼 바이저로 리눅스 커널 모듈 :

      그것은 Quramnet에 의해 개발되었다, 2008 년이 회사는 레드햇이 인수했다. 
      이 86 (32 비트 및 64 비트), s390의 PowerPC에서 다른 CPU를 지원한다. 
      리눅스에서 2.6.20 그것은 그 이후 모듈은 리눅스 커널에 포함되어있다. 
      그것은 가상화 확장의 CPU를 지원해야합니다. 
      그것은 완전히 오픈 소스입니다.
KVM 아키텍처

KVM 전체 가상화 확장 기반의 가상화 솔루션 (인텔 VT 또는 AMD-V) 오픈 소스 리눅스 네이티브 X86 하드웨어입니다. KVM은 가상 머신은 표준 리눅스 스케줄러에 의해 스케줄링 종래 리눅스 프로세스로서 구현되며, 각각의 가상 머신은 가상 CPU 일반 리눅스 프로세스로서 구현된다. 이로써 리눅스 커널 KMV 기존 기능을 사용 할 수 있습니다.

그러나, KVM 자체는 아날로그와 함께 제공하는 클라이언트 서버의 가상 주소 공간을 설정은 / dev / KVM 인터페이스를 통해 고객의 하드웨어 시뮬레이션 프로그램 공간 요구 사항을 수행하지 않는 I / O 및 호스트 화면으로 다시 매핑의 비디오 디스플레이 화면. 현재이 응용 프로그램은 QEMU이다.

리눅스 커널 공간과 가상 시스템에서 사용자 공간 :

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

고객 다음 KVM 배치 제한 CPU 모드 중 하나에서 운영하는 CPU (vCPU를), 메모리, 드라이브 (콘솔, 카드, I / O 장치 드라이버 등)을 포함하는 클라이언트 시스템. 
KVM : 커널 공간에서 실행되는 가상 CPU와 무대의 메모리 및 클라이언트 I / O 차단을 제공한다. KVM을 차단 된 후 고객의 I / O는 QEMU를 처리합니다. 
QEMU : QEMU는 하드웨어의 I / O 가상화의 IOCTL DEV / KVM 장치와 KVM의 / 상호 작용을 제공하는 가상 머신 KVM에 대한 코드 및 사용자 공간에서 실행되도록 수정했습니다.
KVM 기능

KVM 지원되는 기능은 다음과 같습니다 :

      메모리 및 슈퍼 서브 CPU 지원 (오버 커밋)는 
      반 가상화 I / O (인 virtio) 지원 
      핫 스왑 (CPU, 블록 장치, 네트워크 장비 등)에 
      대칭 적 다중 지원 (대칭 다중 처리, SMP로 약칭 함) 
      라이브 마이그레이션을 지원하기를 (라이브 마이그레이션) 
       PCI 장치를 직접 할당하고 단일 I / O 가상화 (SR-IOV) 지원 
      페이지 (KSM)와 결합 된 커널 지원 
      지원 NUMA를 (비 균일 메모리 액세스, 구조 비 균일 메모리 액세스)
KVM 일반적인 도구
      libvirt를 : 가상화 API 운영하고 C로 작성 KVM 가상 머신을 관리 할 수는, 파이썬, 루비, 펄, PHP, 호출 할 수있는 자바 와 다른 언어. 작동은 KVM, VM웨어, 젠, 하이퍼를 포함 할 수 V, LXC 하이퍼 바이저 등이. 
      virsh를이 : libvirt를에 기초 명령 - 라인 도구 (CLI) 
      libvirt를 기반 GUI 툴 : VIRT - 관리자 
      VIRT-V2V : 포맷 가상 머신 마이그레이션 도구 
      virt- * 도구는 다음과 같습니다 (만들 KVM 가상 머신을 VIRT가 설치 명령 - 라인 도구), VIRT -viewer (가상 화면에 연결 공작 기계), VIRT - 클론 (가상 공작 기계를 복제) 같은 VIRT 정상 
      sVirt는 : 보안 도구
KVM 설치

CPU가 가상화를 지원하는지 확인하려면 설치하기 전에

Lntel의 CPU : 
[루트 @ localhost를 ~] # 고양이 / proc 디렉토리 / cpuinfo의 | 그렙 VMX

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

상기 동작 출력하면, CPU는 가상화를 지원 도시

실험 환경
KVM : 를 CentOS 6.5 64 비트 운영 체제 
메모리 4기가바이트 
하드 드라이브 20G

열기 CPU 가상화 지원 :

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

설치 종속성
[루트 @ localhost를 ~] # yum을 -y QEMU-KVM QEMU-KVM-도구 파이썬 virtinst.noarch QEMU-IMG 다리-utils를 libvirt를 VIRT 매니저를 설치

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

查看是否加载了KVM模块
[root@localhost ~]# lsmod | grep kvm
kvm_intel              54285  0
kvm                   333172  1 kvm_intel
 
在libvirt中运行KVM网络有两种方法:NAT和bridge,默认是NAT。

将以bridge(桥接模式)为例。
[root@localhost ~]# ip a
1: lo:  mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:29:88:85:64 brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.113/24 brd 192.168.2.255 scope global eth0
    inet6 fe80::20c:29ff:fe88:8564/64 scope link
       valid_lft forever preferred_lft forever
3: pan0:  mtu 1500 qdisc noop state DOWN
link/ether c2:34:e0:1c:77:37 brd ff:ff:ff:ff:ff:ff
 
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-br0
[root@localhost network-scripts]# vim ifcfg-br0
DEVICE=br0
HWADDR=00:0c:29:88:85:64
TYPE=Bridge
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=192.168.2.113
NETMASK=255.255.255.0
 
[root@localhost network-scripts]# vim ifcfg-eth0
 
DEVICE=eth0
HWADDR=00:0c:29:88:85:64
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
BRIDGE="br0"  #桥接虚拟网卡名称
 
[root@localhost ~]# /etc/init.d/network restart

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

[root@localhost ~]# ip a

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

安装KVM
[root@localhost ~]# mkdir -pv /data_kvm/{store,iso}
mkdir: 已创建目录 "/data_kvm"
mkdir: 已创建目录 "/data_kvm/store"
mkdir: 已创建目录 "/data_kvm/iso"
进入图形界面
[root@localhost ~]# virt-manager

连接出错,重启就好了

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

重启libvirtd
[root@localhost ~]# /etc/init.d/libvirtd  start

[root@localhost ~]# virt-manager

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

添加池

双击localhost{QEMU}----存储-----“+”添加池

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

选择浏览-----找到刚才创建的目录------完成

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

创建存储卷

单机刚创建的KVM01池----新建卷

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

新建虚拟机

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

具体安装过程与安装Linux系统一样(linux系统安装教程)

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

查看KVM的配置文件存放目录
[root@localhost ~]# ls /etc/libvirt/qemu
centos6.5.xml  networks
查看虚拟机状态
[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 2     centos6.5                      running(开启)
虚拟机的关机、开机自启等操作
要保证acpid服务安装并运行
[root@localhost ~]# yum -y install acpid

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

[root@localhost ~]# /etc/init.d/acpid start
 
[root@localhost ~]# /etc/init.d/haldaemon stop
正在关闭 HAL 守护进程:                                    [确定]
 
[root@localhost ~]# /etc/init.d/acpid start
[root@localhost ~]# /etc/init.d/haldaemon start
启动 HAL 守护进程:                                        [确定]
 
[root@localhost ~]# /etc/init.d/acpid status
acpid (pid  1417) 正在运行...
 
关机KVM虚拟机
[root@localhost ~]# virsh shutdown centos6.5
域 centos6.5 被关闭
 
[root@localhost ~]# virsh destroy centos6.5
域 centos6.5 被删除

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     centos6.5                      关闭
 
开机KVM虚拟机
[root@localhost ~]# virsh start centos6.5
域 centos6.5 已开始
[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 4     centos6.5                      running
 
虚拟机伴随宿主机自动启动
[root@localhost ~]# virsh autostart centos6.5
域 centos6.5标记为自动开始
 
[root@localhost ~]# ls /etc/libvirt/qemu
autostart  centos6.5.xml  networks
 
导出虚拟机配置
[root@localhost ~]# virsh dumpxml centos6.5 > /etc/libvirt/qemu/centos6.5_bak.xml
 
删除虚拟机
[root@localhost ~]# virsh undefine centos6.5
 
修改虚拟机配置信息
[root@localhost ~]# virsh edit centos6.5
KVM文件管理,raw格式转换为qcow2格式

虚拟机磁盘文件分为raw与qcow2格式,KVM默认格式是raw裸设备。

raw好处:性能好、速度最快。缺点:不支持一些新的功能。如:镜像、zlib磁盘压缩,AES加密等

libguestfs-tools工具实现格式转换

[root@localhost ~]# yum -y install libguestfs-tools

Centos6.5 KVM 가상화 기술에 배포 KVM 가상화 기술은 Centos6.5에 배포

 [root@localhost ~]# qemu-img info /data_kvm/store/KVM011.img
image: /data_kvm/store/KVM011.img
file format: raw
virtual size: 3.9G (4194304000 bytes)
disk size: 3.9G
 
[root@localhost ~]# virsh shutdown centos6.5
域 centos6.5 被关闭
 
格式转换,需要一些时间
[root@localhost ~]# qemu-img convert -f raw -O qcow2 /data_kvm/store/KVM011.img /data_kvm/store/KVM011.qcow2
 
[root@localhost ~]# ls /data_kvm/store/
KVM011.img  KVM011.qcow2
 
[root@localhost ~]# ls /etc/libvirt/qemu
autostart  centos6.5_bak.xml  centos6.5.xml  networks
 
[root@localhost ~]# virsh edit centos6.5
编辑了域 centos6.5 XML 配置。
 
修改centos6.5的xml配置文件
 
23       
24       
 
Virt-cat命令,类似于cat,可查看虚拟机里的文件
 
查看虚拟机里的network文件,需要些时间
[root@localhost ~]# virt-cat -a /data_kvm/store/centos6.5.qcow2 /etc/sysconfig/network
 
Virt-edit命令,用于编辑文件,用法与vim基本相同
[root@localhost ~]# virt-edit -a /data_kvm/store/centos6.5.qcow2 /etc/sysconfig/networ
 
Virt-df命令用查看虚拟机磁盘信息
[root@localhost ~]# virt-df -h centos6.5
Filesystem                                Size       Used  Available  Use%
centos6.5:/dev/sda1                       484M        33M       427M    7%
centos6.5:/dev/sdb1                       4.2G       4.2G          0  100%
centos6.5:/dev/VolGroup/lv_root           3.0G       1.0G       1.8G   34%
虚拟机的克隆
[root@localhost ~]# virsh destroy centos6.5
域 centos6.5 被删除
 
[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     centos6.5                      关闭
 
从centos6.5克隆为centos6.5-clome
[root@localhost ~]# virt-clone -o centos6.5 -n centos6.5-clome -f /data_kvm/store/KVM011-clone.qcow2
 
Clone 'centos6.5-clome' created successfully.
 
[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     centos6.5                      关闭
 -     centos6.5-clome                关闭
虚拟机的快照
创建快照
[root@localhost ~]# virsh snapshot-create centos6.5
Domain snapshot 1535644190 created
 
1535644190:快照的版本号(距离1970年1月1日过去了多少秒)
 
查看快照信息
[root@localhost ~]# virsh snapshot-list centos6.5
 名称               Creation Time             状态
------------------------------------------------------------
 1535644190           2018-08-30 23:49:50 +0800 shutoff

 
恢复快照
[root@localhost ~]# virsh snapshot-list centos6.5
 名称               Creation Time             状态
------------------------------------------------------------
 1535644190           2018-08-30 23:49:50 +0800 shutoff
 1535644574           2018-08-30 23:56:14 +0800 shutoff
 
[루트 @ 로컬 호스트는 ~] #의 virsh를 스냅 샷 되돌리기 centos6.5 1535644190 
[루트 @ 로컬 호스트는 ~] #의 virsh를 스냅 샷 - 현재 centos6.5 

  1535644190 
  차단은 
 
 
删除快照
[루트 @ 로컬 호스트는 ~] # 개의 virsh를의 centos6.5 1535644190 스냅 샷 - 삭제 
도메인의 스냅 샷을 1,535,644,190 삭제 
 
[루트 @ localhost를 ~] # 개의 virsh를 스냅 샷 목록 centos6.5 
 名称생성 시간状态
------------------------------ ------------------------------ 
 1535644574 2018년 8월 30일 23시 56분 14초 0,800 차단

 

추천

출처www.cnblogs.com/linuxprobe-sarah/p/11108729.html