部署及命令行管理KVM
通过博文部署及图形化管理KVM已经可以通过图形化的方式来管理KVM平台的虚拟机。本篇博文主要介绍如何通过命令行的方式来管理KVM平台的虚拟机。
博文大纲:
一、环境要求
二、安装方式
三、远程连接KVM虚拟机的方法
四、使用默认的方式使KVM虚拟机可以访问互联网
五、KVM常用命令
一、环境要求
如果是真实服务器,那么就需要在BIOS中开启虚拟化功能(Virtualization Technology),一般物理服务器,此项功能默认都是打开的。如图:
如果实验环境使用VMware Workstation的情况下,就需要在开机之前开启此项功能。如图:
二、安装方式
最简单的安装方式:在安装系统时,安装虚拟化功能。如图:
如果系统已经安装完成,而且是最小化进行安装的,则需要进行以下操作:
(1)安装依赖包:
[ ~]# yum groupinstall -y "GNOME Desktop" //安装GNOME桌面环境 [ ~]# yum -y install qemu-kvm //安装KVM模块 [ ~]# yum -y install qemu-kvm-tools //安装KVM调试工具(可以不安装) [ ~]# yum -y install virt-install //安装构建虚拟机的命令行工具 [ ~]# yum -y install qemu-img //安装qemu组件,创建磁盘、启动虚拟机等 [ ~]# yum -y install bridge-utils //安装网络支持工具 [ ~]# yum -y install libvirt //安装虚拟机管理工具 [ ~]# yum -y install virt-manager //安装图形界面管理虚拟机 如果系统时最小化安装则需执行这条命令 [ ~]# ls -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target //将系统默认运行的target更改为graphical.target,若不执行该命令,重启时可能会报错。
(2)验证CPU是否支持虚拟化
[ ~]# cat /proc/cpuinfo | grep vmx //Intel服务器使用这条命令进行验证(有输出就表示支持虚拟化) [ ~]# cat /proc/cpuinfo | grep smv //AMD服务器使用这条命令进行验证
(3)检查KVM模块是否安装
[ ~]# lsmod | grep kvm //表示已经安装 kvm_intel 170181 0 kvm 554609 1 kvm_intel irqbypass 13503 1 kvm
(4)启动libvirtd服务,开启相应的支持
[ ~]# systemctl start libvirtd [ ~]# systemctl enable libvirtd //启动libvirtd服务,并将其设置为开机自启
(5)使用命令创建虚拟机
可以参考博文图形化安装虚拟机进行图形化安装虚拟机。
[ ~]# mkdir -p /kvm/{iso,disk} //创建相应目录用来存放镜像和虚拟机磁盘 [ ~]# cp /mnt/CentOS-7.iso /kvm/iso/ //准备用于安装虚拟机的镜像 [ ~]# qemu-img create -f raw /kvm/disk/web01.raw 10G //创建虚拟磁盘,使用“-f”指定磁盘类型,大小为10G [ ~]# virt-install --os-type=linxu --os-variant centos7.0 --name web01 --ram 1024 --vcpus 1 --disk /kvm/disk/web01.raw,format=raw,size=10 --location /kvm/iso/CentOS-7.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole //创建虚拟机,由于命令配置项一目了然,这里就不多做介绍了 开始安装...... 搜索文件 .treeinfo...... | 354 B 00:00:00 搜索文件 vmlinuz...... | 5.9 MB 00:00:00 搜索文件 initrd.img...... | 50 MB 00:00:00 域安装仍在进行。您可以重新连接 到控制台以便完成安装进程。 [ ~]# virt-manager //打开图像化管理控制台
[ ~]# virsh start web01 //安装完成之后,启动web01虚拟机
三、远程连接KVM虚拟机的方法
(1)使用VNC软件连接KVM虚拟机
下载VNC软件
[ ~]# virsh vncdisplay web01 //查看web01的监听端口 :0 //0表示监听的端口是5900端口;1则表示监听的是5901端口,以此类推!
实验环境,我就直接关闭防火墙了,不想关闭防火墙的话,执行以下命令即可!
[ ~]# firewall-cmd --add-port=5900/tcp --permanent [ ~]# firewall-cmd --reload //开启5900端口,便于VNC对其进行操作
打开VNC:
如果连接时,出现以下状况:
则表示在KVM宿主机中,虚拟机已经打开了一个终端,关闭即可!
VNC连接成功后,我们可以调整其内核参数,使用console方式可以连接到KVM虚拟机,在KVM虚拟机中执行以下命令:
[ ~]# grubby --update-kernel=ALL --args=”console=ttyS0” //修改其内核参数,使其向console方式分配一个终端 [ ~]# reboot //重启此虚拟机,以便更改生效
(2)使用console方式连接KVM虚拟机
[ ~]# virsh console web01 //使用console方式登录web01虚拟机
登录成功!
四、使用默认的方式使KVM虚拟机可以访问互联网
[ ~]# ls /usr/share/libvirt/networks/ default.xml [ ~]# virsh net-define /usr/share/libvirt/networks/default.xml //确认有以上文件,如果没有可以用以上命令生成 [ ~]# virsh net-autostart default //网络default标记为自动启动 [ ~]# virsh net-start default //启动网络,若已启动,此处会报错 [ ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf [ ~]# sysctl -p net.ipv4.ip_forward = 1 //开启路由转发 [ ~]# vim /etc/libvirt/qemu/web02.xml ............//省略部分内容 <interface type=‘network‘> <mac address=‘52:54:00:24:9d:24‘/> <source network=‘default‘/> <model type=‘virtio‘/> <address type=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x03‘ function=‘0x0‘/> </interface> //定位“interface”关键字,确定有上述内容
KVM虚拟机进行验证:
访问互联网成功!
五、KVM常用命令
[ ~]# virsh start 虚拟机名称 //开启虚拟机 [ ~]# virsh list //仅查看运行的虚拟机列表 [ ~]# virsh list --all //查看所有虚拟机列表 [~]# virsh shutdown 虚拟机名称 //正常的关闭虚拟机 [ ~]# virsh destroy 虚拟机名称 //强制关闭虚拟机(类似于拔电源) [ ~]# virsh dumpxml 虚拟机名称 > /root/test01-dum.xml //虚拟机备份 [ ~]# virsh undefine 虚拟机名称 //删除虚拟机(注意:取消定义之后,磁盘文件需要手动删除) [ ~]# virsh define 备份的.xml虚拟机文件 //通过配置文件生成虚拟机 [ ~]# virsh edit 虚拟机名称 //编辑虚拟机的配置文件 [ ~]# virsh domrename 原名字 要更改的名字 # 比如:([~]# virsh domrename test01 test03) 更改虚拟机名称 [ qemu]# virsh dominfo test02 //查看虚拟机的详细信息 [ ~]# virsh autostart test02 //设置虚拟机为开机自启 [ ~]# virsh autostart --disable test02 //取消开机自启 [~]# virsh vncdisplay test02 //查看对应的VNC连接端口号;默认第一个端口号为:5900(用“:0”表示) [ ~]# virsh suspend test02 //挂起虚拟机 [ ~]# virsh resume test02 //取消挂起虚拟机 [ ~]# virsh console test02 //console方式登陆虚拟机 [ ~]# qemu-img info /kvm/disk/test01.raw //查看虚拟机的磁盘信息 [ disk]# qemu-img create test.raw 2G //创建虚拟机使用的磁盘 [ disk]# qemu-img create -f qcow2 21.qcow2 2G //创建qcow2格式的虚拟机磁盘 [ disk]# qemu-img convert -f raw -O qcow2 test.raw test.qcow2 //将test.raw磁盘格式raw转换为qcow2 [ qemu]# virsh snapshot-create test02 //创建虚拟机快照 [ disk]# virsh snapshot-list test02 //查看虚拟机快照 [ disk]# virsh snapshot-revert test02 1570692304 //恢复快照 [ disk]# virt-clone --auto-clone -o test01 -n 指定要克隆的名字(可选) //自动克隆虚拟机 [ disk]# virt-clone -o test01 -n test04 -f /kvm/disk/test04.qcow2 //手动克隆 #上述都是属于完整克隆。 [ disk]# qemu-img create -f qcow2 -b test01.qcow2 lktest01.qcow2 // -f:指定要克隆为的磁盘格式; //-b:指定要转换的源文件及目标文件 //上述命令是在克隆虚拟机的磁盘文件
———————— 本文至此结束,感谢阅读 ————————