KVM은 무엇인가?
이름은이다 KVM 커널 기반 가상 머신 (커널 기반 가상 머신)이며, 리눅스에게 이러한 커널 모듈을 그 하이퍼 바이저로 리눅스 커널 모듈 :
그것은 Quramnet에 의해 개발되었다, 2008 년이 회사는 레드햇이 인수했다. 이 86 (32 비트 및 64 비트), s390의 PowerPC에서 다른 CPU를 지원한다. 리눅스에서 2.6.20 그것은 그 이후 모듈은 리눅스 커널에 포함되어있다. 그것은 가상화 확장의 CPU를 지원해야합니다. 그것은 완전히 오픈 소스입니다.
KVM 전체 가상화 확장 기반의 가상화 솔루션 (인텔 VT 또는 AMD-V) 오픈 소스 리눅스 네이티브 X86 하드웨어입니다. KVM은 가상 머신은 표준 리눅스 스케줄러에 의해 스케줄링 종래 리눅스 프로세스로서 구현되며, 각각의 가상 머신은 가상 CPU 일반 리눅스 프로세스로서 구현된다. 이로써 리눅스 커널 KMV 기존 기능을 사용 할 수 있습니다.
그러나, KVM 자체는 아날로그와 함께 제공하는 클라이언트 서버의 가상 주소 공간을 설정은 / dev / KVM 인터페이스를 통해 고객의 하드웨어 시뮬레이션 프로그램 공간 요구 사항을 수행하지 않는 I / O 및 호스트 화면으로 다시 매핑의 비디오 디스플레이 화면. 현재이 응용 프로그램은 QEMU이다.
리눅스 커널 공간과 가상 시스템에서 사용자 공간 :
고객 다음 KVM 배치 제한 CPU 모드 중 하나에서 운영하는 CPU (vCPU를), 메모리, 드라이브 (콘솔, 카드, I / O 장치 드라이버 등)을 포함하는 클라이언트 시스템. KVM : 커널 공간에서 실행되는 가상 CPU와 무대의 메모리 및 클라이언트 I / O 차단을 제공한다. KVM을 차단 된 후 고객의 I / O는 QEMU를 처리합니다. QEMU : QEMU는 하드웨어의 I / O 가상화의 IOCTL DEV / KVM 장치와 KVM의 / 상호 작용을 제공하는 가상 머신 KVM에 대한 코드 및 사용자 공간에서 실행되도록 수정했습니다.
KVM 지원되는 기능은 다음과 같습니다 :
메모리 및 슈퍼 서브 CPU 지원 (오버 커밋)는 반 가상화 I / O (인 virtio) 지원 핫 스왑 (CPU, 블록 장치, 네트워크 장비 등)에 대칭 적 다중 지원 (대칭 다중 처리, SMP로 약칭 함) 라이브 마이그레이션을 지원하기를 (라이브 마이그레이션) PCI 장치를 직접 할당하고 단일 I / O 가상화 (SR-IOV) 지원 페이지 (KSM)와 결합 된 커널 지원 지원 NUMA를 (비 균일 메모리 액세스, 구조 비 균일 메모리 액세스)
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는 : 보안 도구
CPU가 가상화를 지원하는지 확인하려면 설치하기 전에
Lntel의 CPU : [루트 @ localhost를 ~] # 고양이 / proc 디렉토리 / cpuinfo의 | 그렙 VMX
상기 동작 출력하면, CPU는 가상화를 지원 도시
KVM : 를 CentOS 6.5 64 비트 운영 체제 메모리 4기가바이트 하드 드라이브 20G
열기 CPU 가상화 지원 :
[루트 @ localhost를 ~] # yum을 -y QEMU-KVM QEMU-KVM-도구 파이썬 virtinst.noarch QEMU-IMG 다리-utils를 libvirt를 VIRT 매니저를 설치
查看是否加载了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
[root@localhost ~]# ip a
[root@localhost ~]# mkdir -pv /data_kvm/{store,iso} mkdir: 已创建目录 "/data_kvm" mkdir: 已创建目录 "/data_kvm/store" mkdir: 已创建目录 "/data_kvm/iso"
[root@localhost ~]# virt-manager
连接出错,重启就好了
[root@localhost ~]# /etc/init.d/libvirtd start [root@localhost ~]# virt-manager
双击localhost{QEMU}----存储-----“+”添加池
选择浏览-----找到刚才创建的目录------完成
单机刚创建的KVM01池----新建卷
具体安装过程与安装Linux系统一样(linux系统安装教程)
[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
[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 被删除
[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
虚拟机磁盘文件分为raw与qcow2格式,KVM默认格式是raw裸设备。
raw好处:性能好、速度最快。缺点:不支持一些新的功能。如:镜像、zlib磁盘压缩,AES加密等
libguestfs-tools工具实现格式转换
[root@localhost ~]# yum -y install libguestfs-tools
[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
[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 차단