部署及命令行管理KVM

经过博文部署及图形化管理KVM已经能够经过图形化的方式来管理KVM平台的虚拟机。本篇博文主要介绍如何经过命令行的方式来管理KVM平台的虚拟机。web

博文大纲:
1、环境要求
2、安装方式
3、远程链接KVM虚拟机的方法
4、使用默认的方式使KVM虚拟机能够访问互联网
5、KVM经常使用命令vim

1、环境要求

若是是真实服务器,那么就须要在BIOS中开启虚拟化功能(Virtualization Technology),通常物理服务器,此项功能默认都是打开的。如图:
部署及命令行管理KVMcentos

若是实验环境使用VMware Workstation的状况下,就须要在开机以前开启此项功能。如图:
部署及命令行管理KVM服务器

2、安装方式

最简单的安装方式:在安装系统时,安装虚拟化功能。如图:
部署及命令行管理KVM网络

若是系统已经安装完成,并且是最小化进行安装的,则须要进行如下操做:dom

(1)安装依赖包:

[root@localhost ~]# yum groupinstall -y "GNOME Desktop"
//安装GNOME桌面环境
[root@localhost ~]# yum -y install qemu-kvm
//安装KVM模块
[root@localhost ~]# yum -y install qemu-kvm-tools
//安装KVM调试工具(能够不安装)
[root@localhost ~]# yum -y install virt-install
//安装构建虚拟机的命令行工具
[root@localhost ~]# yum -y install qemu-img
//安装qemu组件,建立磁盘、启动虚拟机等
[root@localhost ~]# yum -y install bridge-utils
//安装网络支持工具
[root@localhost ~]# yum -y install libvirt
//安装虚拟机管理工具
[root@localhost ~]# yum -y install virt-manager
//安装图形界面管理虚拟机
若是系统时最小化安装则需执行这条命令
[root@localhost ~]#  ls -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
//将系统默认运行的target更改成graphical.target,若不执行该命令,重启时可能会报错。

(2)验证CPU是否支持虚拟化

[root@localhost ~]# cat /proc/cpuinfo | grep vmx
//Intel服务器使用这条命令进行验证(有输出就表示支持虚拟化)
[root@localhost ~]# cat /proc/cpuinfo | grep smv
//AMD服务器使用这条命令进行验证

(3)检查KVM模块是否安装

[root@localhost ~]# lsmod | grep kvm
//表示已经安装
kvm_intel             170181  0 
kvm                   554609  1 kvm_intel
irqbypass              13503  1 kvm

(4)启动libvirtd服务,开启相应的支持

[root@localhost ~]# systemctl start libvirtd
[root@localhost ~]# systemctl enable libvirtd
//启动libvirtd服务,并将其设置为开机自启

(5)使用命令建立虚拟机

能够参考博文图形化安装虚拟机进行图形化安装虚拟机。tcp

[root@localhost ~]# mkdir -p /kvm/{iso,disk} 
//建立相应目录用来存放镜像和虚拟机磁盘
[root@localhost ~]# cp /mnt/CentOS-7.iso /kvm/iso/
//准备用于安装虚拟机的镜像
[root@localhost ~]#  qemu-img create -f raw  /kvm/disk/web01.raw 10G
//建立虚拟磁盘,使用“-f”指定磁盘类型,大小为10G
[root@localhost ~]# 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     
域安装仍在进行。您能够从新链接
到控制台以便完成安装进程。
[root@localhost ~]# virt-manager              //打开图像化管理控制台

部署及命令行管理KVM
部署及命令行管理KVM

[root@localhost ~]# virsh start web01
//安装完成以后,启动web01虚拟机

3、远程链接KVM虚拟机的方法

(1)使用VNC软件链接KVM虚拟机

下载VNC软件ide

[root@localhost ~]# virsh vncdisplay web01   //查看web01的监听端口
:0
//0表示监听的端口是5900端口;1则表示监听的是5901端口,以此类推!

实验环境,我就直接关闭防火墙了,不想关闭防火墙的话,执行如下命令便可!工具

[root@localhost ~]# firewall-cmd --add-port=5900/tcp --permanent
[root@localhost ~]# firewall-cmd --reload
//开启5900端口,便于VNC对其进行操做

打开VNC:
部署及命令行管理KVM
若是链接时,出现如下情况:
部署及命令行管理KVM
则表示在KVM宿主机中,虚拟机已经打开了一个终端,关闭便可!
部署及命令行管理KVM
VNC链接成功后,咱们能够调整其内核参数,使用console方式能够链接到KVM虚拟机,在KVM虚拟机中执行如下命令:ui

[root@localhost ~]# grubby --update-kernel=ALL --args=”console=ttyS0”    
//修改其内核参数,使其向console方式分配一个终端
[root@localhost ~]# reboot    //重启此虚拟机,以便更改生效

(2)使用console方式链接KVM虚拟机

[root@localhost ~]# virsh console web01
//使用console方式登陆web01虚拟机

部署及命令行管理KVM
登陆成功!

4、使用默认的方式使KVM虚拟机能够访问互联网

部署及命令行管理KVM

[root@localhost ~]# ls /usr/share/libvirt/networks/
default.xml      
[root@localhost ~]# virsh net-define /usr/share/libvirt/networks/default.xml 
//确认有以上文件,若是没有能够用以上命令生成
[root@localhost ~]# virsh net-autostart default        //网络default标记为自动启动
[root@localhost ~]#  virsh net-start default              //启动网络,若已启动,此处会报错
[root@localhost ~]# echo "net.ipv4.ip_forward=1"  >> /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
//开启路由转发
[root@localhost ~]# 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
部署及命令行管理KVM

访问互联网成功!

5、KVM经常使用命令

[root@localhost ~]# virsh start 虚拟机名称                        //开启虚拟机
[root@localhost ~]# virsh list                                             //仅查看运行的虚拟机列表
[root@localhost ~]# virsh list --all                                      //查看全部虚拟机列表
[root@localhost~]# virsh shutdown 虚拟机名称                //正常的关闭虚拟机
[root@localhost ~]# virsh destroy    虚拟机名称                //强制关闭虚拟机(相似于拔电源)
[root@localhost ~]# virsh dumpxml 虚拟机名称 > /root/test01-dum.xml             //虚拟机备份
[root@localhost ~]# virsh undefine 虚拟机名称                             //删除虚拟机(注意:取消定义以后,磁盘文件须要手动删除)
[root@localhost ~]# virsh define 备份的.xml虚拟机文件               //经过配置文件生成虚拟机
[root@localhost ~]# virsh edit 虚拟机名称                                  //编辑虚拟机的配置文件
[root@localhost ~]# virsh domrename 原名字 要更改的名字 
#  好比:([root@localhost~]# virsh domrename test01 test03)    更改虚拟机名称
[root@localhost qemu]# virsh dominfo test02                           //查看虚拟机的详细信息
[root@localhost ~]# virsh autostart test02                               //设置虚拟机为开机自启
[root@localhost ~]# virsh autostart --disable test02                //取消开机自启
[root@localhost~]# virsh vncdisplay test02                          //查看对应的VNC链接端口号;默认第一个端口号为:5900(用“:0”表示)
[root@localhost ~]# virsh suspend test02                             //挂起虚拟机
[root@localhost ~]# virsh resume test02                               //取消挂起虚拟机
[root@localhost ~]# virsh console test02                              //console方式登录虚拟机
[root@localhost ~]# qemu-img info /kvm/disk/test01.raw      //查看虚拟机的磁盘信息
[root@localhost disk]# qemu-img create test.raw 2G           //建立虚拟机使用的磁盘
[root@localhost disk]# qemu-img create -f qcow2 21.qcow2 2G      //建立qcow2格式的虚拟机磁盘
[root@localhost disk]# qemu-img convert -f raw -O qcow2 test.raw test.qcow2   //将test.raw磁盘格式raw转换为qcow2
[root@localhost qemu]# virsh snapshot-create test02        //建立虚拟机快照
[root@localhost disk]# virsh snapshot-list test02               //查看虚拟机快照
[root@localhost disk]# virsh snapshot-revert test02 1570692304     //恢复快照
[root@localhost disk]# virt-clone --auto-clone -o test01  -n 指定要克隆的名字(可选)        //自动克隆虚拟机
[root@localhost disk]# virt-clone -o test01 -n test04 -f /kvm/disk/test04.qcow2    //手动克隆
#上述都是属于完整克隆。
[root@localhost disk]# qemu-img create -f qcow2 -b test01.qcow2 lktest01.qcow2
// -f:指定要克隆为的磁盘格式;
//-b:指定要转换的源文件及目标文件
//上述命令是在克隆虚拟机的磁盘文件

———————— 本文至此结束,感谢阅读 ————————

相关文章
相关标签/搜索