文章目录
- ==1. 什么是KVM???==
- 2. 案例目标
- 2.1 案例分析
- 2.2 规划节点
- 2.3 基础准备
- 3. 案例实施
- 3.1 查看CPU是否支持虚拟化
- 3.2 安装KVM
- 3.3 创建NAT模式KVM虚拟机
- 4. 验证
1. 什么是KVM???
KVM(Kernel-based Virtual Machine)是一个开源软件,基于内核的虚拟化技术,实际是嵌入系统的一个虚拟化模块,通过优化内核来使用虚拟技术,该内核模块使得Linux变成了一个Hypervisor,虚拟机使用 Linux 自身的调度器进行管理。KVM 是基于虚拟化扩展(Intel VT或者AMD-V)的X86硬件的开源的Linux原生的全虚拟化解决方案
。KVM中,虚拟机被实现为常规的Linux进程,由标准Linux调度程序进行调度;虚机的每个虚拟CPU被实现为一个常规的Linux进程。这使得KVM能够使用 Linux内核的已有功能。但是,KVM本身不执行任何硬件模拟,需要客户空间程序通过/dev/kvm接口设置一个客户机虚拟服务器的地址空间,向它提供模拟的I/O,并将它的视频显示映射回宿主的显示屏。目前这个应用程序是QEMU。
2. 案例目标
- 使用命令安装KVM组件
- 掌握NAT启动脚本的编写和使用
- 掌握在NAT模式下启动虚拟机
2.1 案例分析
2.2 规划节点
IP | 主机名 | 节点 |
192.168.200.9 | localhost | KVM |
2.3 基础准备
使用VMWare Workstation软件安装CentOS 7.2操作系统,镜像使用提供的CentOS-7-x86_64-DVD-1511.iso,关闭防火墙并且配置SELinux规则,配置IP地址。YUM源使用提供的kvm_yum
文件夹。
3. 案例实施
3.1 查看CPU是否支持虚拟化
grep -E '(svm|vmx)' /proc/cpuinfo
找到flags部分,如果其中输出有SVM或VMX,表明CPU支持虚拟化技术
svmSecure virtual machine, AMD的虚拟化技术AMD-V
vmxIntel的虚拟化技术Intel-VT
如果无输出结果,需要在BIOS中开启VT,然后在vmware workstation中开启,如下图所示
3.2 安装KVM
配置本地YNM安装源,将提供的kvm_yum文件夹上传至/opt目录,并配置本地YNM源,命令如下:
[root@localhost ~]# vi /etc/yum.repos.d/yum.repo
[kvm]
name=kvm
baseurl=file:///opt/kvm_yum
gpgcheck=0
enabled=1
使用YUM安装KVM的主要组件及工具。命令如下:
[root@localhost ~]# yum install qemu-kvm openssl libvirt -y
命令解释:
qemu-kvm qemu-img (qcow2,raw)
作用
:管理虚拟机的虚拟磁盘
openssl: 进行安全通信,避免窃听,同时确认另一端连接者的身份
libvirt 作用: 虚拟机的管理软件
libvirt: kvm,xen,qemu,lxc…
启动libvirtd服务,命令如下:
[root@localhost ~]# systemctl start libvirtd
将/usr/libexec/qemu-kvm链接为/usr/bin/qemu-kvm。命令如下:
ln -s /usr/libexec/qemu-kvm /usr/bin/qemu-kvm
3.3 创建NAT模式KVM虚拟机
将cirros-0.3.3-x86_64-disk.img镜像
与qemu-ifup-NAT.txt脚本文件
上传到系统/root目录下
[root@localhost ~]# ls
cirros-0.3.3-x86_64-disk.img qemu-ifup-NAT.txt
给脚本赋予执行权限。命令如下:
[root@localhost ~]# chmod +x /root/qemu-ifup-NAT.txt
通过qemu-kvm命令启动KVM虚拟机。命令如下:
[root@localhost ~]# qemu-kvm -m 1024 -drive file=/root/cirros-0.3.3-x86_64-disk.img,if=virtio -net nic,model=virtio -net tap,script=/root/qemu-ifup-NAT.txt -nographic -vnc :1
4. 验证
创建虚拟机完成后,cirros用户登录虚拟机,输入用户名为cirros,密码为cubswin:)。然后输入ip a命令查询IP地址,最后输入route -n命令查询路由表。命令如下:
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
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: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 52:54:00:12:34:56 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.89/24 brd 192.168.122.255 scope global eth0
inet6 fe80::5054:ff:fe12:3456/64 scope link tentative flags 08
valid_lft forever preferred_lft forever
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.122.1 0.0.0.0 UG 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
至此,使用KVM服务创建虚拟机完毕