KVM_KVM

 KVM(Kernel-based Virtual Machine)是基于内核的虚拟机。

 KVM本质是Linux内核中的虚拟化功能模块kvm.ko,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。是开源软件。

在KVM虚拟化方案中,KVM主要用于管理CPU和内存的虚拟化,IO设备的虚拟化则由QEMU来完成。KVM借助了QEMU的源码。

虚拟化平台管理工具 - LibvirtLibvirt是一套由C语言开发的API,主要目标是提供一种通用并且稳定的软件层,来管理物理主机上多种不同的虚拟化方式和虚拟主机,并支持远程管理。

Libvirt是Linux上的虚拟化库,Libvirt也是一个开源项目,它是一个非常强大的虚拟化平台管理工具,被管理的虚拟化平台可以是KVM,也可以是Xen、VMware以及Hyper-V等。

安装KVM

配置yum源

mount /dev/cdrom /mnt/

[root@yw yum.repos.d]# cat abc.repo

[abc]

name = abc

baseurl = file:///mnt/

gpgcheck = 0

[root@yw ~]# yum groups install "Virtualization*"

了解虚拟化网络类型

仅主机:

VMnet1(虚拟交换机)虚拟机之间能够互通,默认情况下不能出外网。 为了安全起见本地环境之间才能互通。

KVM_KVM_02

你想在本地搭建集群,节点的是手工绑定静态IP,还想去上外网,如果你选择桥接,wife是无线网络,无线网络可以获取IP地址,更换了网络环境。不同网段之间,就通不了外网了。最好选择NAT。

NAT:

KVM_KVM_03

桥接:

虚拟机可以通过桥接上外网。依赖于物理网络环境,未来创建的虚拟机网段会和桥接的网段相同。

KVM_KVM_04

KVM图形化指定虚拟机存储

图形化创建的虚拟机默认磁盘是存放在该目录下

[root@cen82 ~]# ls /var/lib/libvirt/images/

centos701.qcow2

能否手工指定存储路径呢?在指定的路径下首先创建虚拟机所用的磁盘

[root@cen82 ~]# qemu-img create -f qcow2 /data/centos701.qcow2 20g

Formatting '/data/centos701.qcow2', fmt=qcow2 size=21474836480 cluster_size=65536 lazy_refcounts=off refcount_bits=16

[root@cen82 ~]# ls /data/

centos701.qcow2

之后,通过图形化创建虚拟机的时候可以选择刚才

手工创建的存储磁盘 centos701.qcow2

KVM_KVM_05

KVM命令行创建虚拟机

qemu-img create -f qcow2 /disk/centos3.qcow2 10g

virt-install \

--name ecs03 \

--memory 2048 \

--vcpus 1 \

--disk path=/disk/centos3.qcow2 \

--location /iso/CentOS-7.6.1810-x86_64-DVD.iso \

--network network=default \

--noautoconsoleKVM命令行创建虚拟机-kickstart全自动安装

1. 安装httpd

yum install -y httpd

2. 启动服务

systemctl start httpd

systemctl enable httpd开机自启动

3. 防火墙关闭

systemctl stop firewalld

systemctl disable firewalld

4.生成kickstart文件

yum install -y system-config-kickstart.noarch 安装工具

5.修改repo里面的repoid

[root@yw yum.repos.d]# vim abc.repo

[root@yw yum.repos.d]# cat abc.repo

[development]

name = abc

baseurl = file:///mnt/

gpgcheck = 0

system-config-kickstart  --启动工具,注意禁用udev命名规则

net.ifnames=0 biosdevname=0 cnotallow=ttyS0  并通过 virsh console xxx 方式连接到虚拟机里面,相当于插上了一根console线。

6.将文件保存到/var/www/html/abc/下面

这时候通过网页即可访问到

http://192.168.142.132/abc/ks.cfg

KVM_KVM_06

7.创建硬盘,启动虚拟机

qemu-img create -f qcow2 /disk/centos4.qcow2 15g

virt-install \

--name ecs04 \

--memory 2048 \

--vcpus 1 \

--disk path=/disk/centos4.qcow2 \

--location /root/iso/CentOS-7-x86_64-DVD-2003.iso \

--network network=default \

--noautoconsole \

-x ks=http://192.168.142.132/abc/ks.cfg

8. 插入console线,到时候就可以登录查看IP地址。

[root@cen82 ks]# virsh console centos705

Connected to domain centos705

Escape character is ^]

CTRL + ]

KVM基本命令:

virsh --help 查看帮助

virsh list --all 列出所有虚拟机(包括正在运行的和关闭的)

virsh list 列出所有虚拟机(仅运行中的)

virsh start centos705 --启动虚拟机

virsh shutdown centos705 -- 关闭虚拟机

virsh reboot centos705 --重启虚拟机

如果虚拟机关不了,强制关闭,非正常关闭

virsh destroy centos705

清除配置

virsh undefine centos705