KVM虚拟化
KVM必须开启虚拟化
环境搭建
网卡名分别是ens33和ens34
ens33 IP 192.168.20.110
ens34 IP 192.168.20.111
我在VMware里装了个centos7,把centos7当做宿主机使用
话不多说直接开始使用,详细原理见百度百科
1.关闭selinux
vi /etc/selinux/config
SELINUX=disabled
2.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3.开启虚拟化
4.查看虚拟机实例是否支持硬件虚拟化技术
egrep '(vmx\|svm)' /proc/cpuinfo
如果有输出则说明硬件支持虚拟化技术,vmx表示INTER系列CPU支持的类型,svm表示ADM系列CPU支持的类型
5.安装qemu-kvm
yum install qemu-kvm qemu-img -y
6.安装完之后,发现qemu-kvm工具并没有加入到环境变量中去,可以连接到 /usr/sbin中去,方便后续的使用
ln -s /usr/libexec/qemu-kvm /usr/sbin/
7.同时还需要在windows操作机中安装vncviewer来配合qemu-kvm使用
8.百度下载即可https://www.realvnc.com/en/connect/download/viewer/
安装完之后是这样的
9.了解qemu-kvm参数
\-h:显示帮助手册
\#qemu-system-x86\_64 -h:会显示所有参数
10.cpu相关参数
\-cpu:指定cpu模型,默认的为qemu64,可以通过“-cpu ?”查询当前支持的cpu模型
\-smp:设置虚拟机的vcpu个数。后面还可以加cores threads socke.
11.内存相关参数
\-m:设置虚拟机内存大小,默认单位为MB。
\-mem-path patch:指定从path路径表示的临时文件中为guest分配内存。
\-mem-prealloc:启动时即分配全部内存,而不是根据guest请求动态分配,与-mem-path参数配合使用。
\-balloon:开全内存balloon功能,俗称内存气球。
12.磁盘相关参数
\-hda、-hdb和cdrom等:设置虚拟机的IDE磁盘和光盘设置。
\-driver:配置驱动器。
\-boot:设置虚拟机的启动选项
13.网络相关参数
\-net nic:为虚拟机创建一个nic网卡
\-net user:让虚拟机使用不需要管理权限的用户模式网络(user mode network).
\-net tap:使用host的tap网络接口来帮助guest建立网络。
\-net none:不配置任何网络设备。
14.图形显示参数
\-sdl:使用sdl方式显示客户机。
\-vnc:使用vnc方式显示客户机。
\-vga:设置虚拟机中的vga显卡类型,默认为“-vga cirrus”.
\-nographic:关闭qemu的图形化界面输出。
15.其他常用参数
\-noreboot:guest执行reboot操作时,系统关闭后退出qemu-kvm,而不会再启动虚拟机。
\-no-shutdown:虚拟机shutdown后,系统关闭后,不退出qemu-kvm进程,保持这个进程存在,他的monitor仍然可以用。
\-loadvm:加载快照状态,与monitor中的“loadvm”命令类似
\-nodefaults:不创建默认的设备。默认会创建一些显卡、串口、控制台等设备
\-readconfig:从文件中读虚拟机设备的配置信息。
\-writeconfig:将虚拟机的配置信息写到文件中。
\-nodedefconfig:不加载默认的配置文件。默认会加载/use/local/share/qemu下的文件。
\-no-user-config:不加载用户自定义的配置文件。
\-usbdevice:使用usb设备
创建虚拟机实例
linux(以centos7.3 1611为例)
-
查看镜像的信息
qemu-img info CentOS-7-x86_64-Minimal-1611.iso
2.创建虚拟磁盘,指定镜像的格式、名字、大小
qemu-img create -f qcow2 centos7.qcow2 20G
3. 制作镜像,将系统安装盘挂到 cdrom,安装操作系统
qemu-kvm -m 2048 -boot d -cdrom CentOS-7-x86\_64-Minimal-1611.iso -drive
file=centos7.qcow2 -nographic -vnc :5
注意: CentOS-7-x86_64-Minimal-1611.iso centos7.qcow2
镜像默认我都是放在root目录下执行命令,可以放到指定目录(可以指定绝对路径)
-m 2048 分配2048M的内存
-boot d 从光盘启动,d表示光盘,c表示硬盘,a,b表示软盘,默认是硬盘启动
-drive file=centos.qcow2 使用虚拟磁盘的文件
-nographic 关闭qemu的图形化界面输出
4.执行完之后是这样的
5.现在用到vnc
viewer了,vnc的端口是从5900开始,我在命令中设置了-vnc:5,所以要连接5905,然后正常装系统
6.输入虚拟机地址192.168.20.110 以及 端口5905
7.双击打开
8.然后跟正常安装系统一样
9.装完之后kill掉进程或者关机
qemu-kvm创建虚拟机时,已经配置了2个驱动设备,一个是硬盘设备,一个是光驱设备,只有移除光驱设备,系统才能使用磁盘设备启动
10.启动已制作的linux镜像
qemu-kvm -m 2048 -smp 2 -drive file=centos7.qcow2,if=virtio,index=1 -nographic
-vnc :5
-smp 2 处理器的个数,也可以设置cores threds
sockets,即每个cpu的核心数以及cpu的线程数
if=virtio 指定硬盘设备所连接的接口类型
index=1 指定接口类型的标识号
这样启动的镜像是无法与宿主机通网的,需要在宿主机中配置桥接模式
桥接网络
搭建kvm虚拟机两块网卡都是桥接:网卡名分别是ens33和ens34
ens33 IP 192.168.20.110
ens34 IP 192.168.20.111
-
安装包
yum install bridge-utils -y
-
在宿主机上创建一个网桥
-
把已有的全部删除重新创建
-
brctl delbr virbr0 \#现将已有的删除 brctl addbr virbr0 \#重新重建 否则报错
-
将其绑定到一个可以正常工作的网络接口上
brctl addif virbr0 ens34 \#绑定第二块网卡 brctl show 查看一下是否添加成功,注意:virbr0只需要一个ens44 就可以了
6. 新建一个网卡脚本,使虚拟机网卡自动添加网桥
vi /etc/qemu-ifup
#!/bin/bash
ip link set \$1 up
brctl addif virbr0 \$1
7.同时设置执行权限,开启桥接网卡
chmod 777 /etc/qemu-ifup
ip link set virbr0 up
-
再次启动制作的镜像
qemu-kvm -m 2048 -smp 2 -drive file=centos7.qcow2,if=virtio,index=1 -net nic -net tap -nographic -vnc :5
-net nic 是必需的参数,表明这是一个网卡的配置
-net tap 通过物理的TAP网络接口连接至vlan n
通过vnc viewer连接之后,虚拟机与宿主机可以互通
给虚拟机配置一个dhcp和ONBOOT=yes 并重启网卡 ,测试ping 互通
9.同时宿主机中新增了一块网卡tap0
10.如果重启系统:stp no
问题解决:stp=no
brctl stp birbr0 on
brctl stp virbr0 on
windows(以win10为例)
1.步骤与创建Linux镜像大致相同,需要注意的是,windows镜像需要配置驱动,下载地址
<https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/>
模拟只下载virtio-win.iso驱动 下载驱动建议去迅雷下载,速度非常快!!!
2.创建虚拟磁盘
qemu-img create -f qcow2 win10.qcow2 20G
注意:执行前一定要确认是否还有qemu-kvm
还在运行,否则创建windows镜像报错已存在5905端口
2.创建镜像
qemu-kvm -m 2048 -boot d -cdrom win10.iso -drive file=virtio-win.iso,media=cdrom
-drive file=win10.qcow2,if=virtio,index=1 -usbdevice tablet -nographic -vnc :5
-usbdevice tablet 添加usb设备,鼠标
选择驱动(我选择光驱安装驱动”-drive file=virtio-win.iso”)
3.这是使用操作机vnc连接
4.然后点击现在安装
5.秘钥跳过
6.我安装的是win10专业版
7.勾选接受许可条款 →下一步
8.点自定义:仅安装windows(高级)
9.点击 加载驱动程序 →确定
10.注意如果安装win10系统一定 选择win10→ 下一步
11.新建 → 应用 → 确定→ 下一步
12.立即重启
13.这一步我没有截图,提示按任意键继续
14.点击以后再说
15.点击使用快速设置 等待5~6分钟(虚拟机非常卡)
16上步下一页和跳过,输入用户密码
17 .安装完毕之后结束进程 可以收到关机,或者结束进程
结束进程脚本脚本
Vim end.sh
\#!/bin/bash
a=\`ps -aux \| grep qemu-kvm \| awk 'NR==1{print \$2}' \`
/usr/bin/kill -a \$a
Chmod +x end.sh
执行
Source end.sh
18.启动制作的win10镜像
qemu-kvm -m 2048 -smp 2 -drive file=win10.qcow2,if=virtio,index=1 -net nic -net
tap -usbdevice tablet -nographic -vnc :5
由于配置了桥接网络,镜像与宿主机可以互通
当技术还撑不起你的野心时,那就静下心了学习吧!!!加油各位
是不是非常简单,那就点一个赞吧!!!