文章目录
kvm是一种全虚拟化技术,是内核级别的
环境介绍 及 工具介绍
centos7.3文本安装,安装epel源
libvirt 管理kvm本身
virt-install 安装虚拟机
virt-manager 图形化管理创建删除虚拟机的工具(类是于virtorbox的界面)
openssh-askpass 若是采用图形化管理远程虚拟机,需要此软件支持
#查看cpu是否支持虚拟化(需要在bios中开启)
cat /proc/cpuinfo | grep -E '(vmx|svm)'
#安装KVM的相关软件
yum install qemu-kvm libvirt virt-install qemu-kvm-tools virt-top
#附加,ubuntu如何安装kvm
sudo apt install virt-manager virtinst qemu qemu-kvm virt-top
#查看kvm内核模块有无被加载
lsmod |grep kvm
#启动libvirt服务并加入到开机自启动
systemctl start libvirtd.service
systemctl enable libvirtd.service
#查看libvirt服务的状态(下面两种方法都可以)
systemctl status libvirtd.service
systemctl is-active libvirtd.service
创建虚拟机的步骤
#准备工作,创建iso系统镜像及其存放目录以及虚拟机存放目录
mkdir /iso /kvm-hosts
#第一:创建磁盘
qemu-img create -f raw /kvm-hosts/kvm-web01.raw 10G
#第二:创建虚拟机
virt-install --name kvm-web01 --virt-type kvm --ram 512 --cdrom=/iso/CentOS-7-x86_64-DVD-1611.iso --disk path=/kvm-hosts/kvm-web01.raw --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7
#也可以在安装时指定网卡为桥接模式:--network bridge=br0
#有时为了实现kvm嵌套虚拟化,可以在创建虚拟机时加入:--cpu core2duo,+vmx
#第三:通过vnc客户端输入物理机ip:5900连接过去,默认起始端口是5900,随着虚拟机的开启,会依次变大5901,5902
#注意:创建好虚拟机后,他会在/etc/libvirt/qemu目录下创建一个以虚拟机名字命名的xml文件
#可以通过virt edit 虚拟主机名 来修改这个xml文件
虚拟机磁盘格式
raw 超级简单,没有头文件,不支持动态增长,它是裸设备,性能好,但没有一些特性功能
qcow2 是集各种技术为一体的超级镜像格式,支持内部快照,加密,压缩等一系列功能
virt-install参数介绍
--virt-type 指定虚拟机类型(kvm,qemu,xen)
--name 指定虚拟机的名字
--raw 指定内存大小
--cpu 指定cpu参数(默认为1)
--cdrom 指定镜像
--disk 指定磁盘路径
--network 指定网络类
--graphics vnc 配置虚拟机显示设置,比如vnc
--noautoconsole 不要自动尝试连接客户端控制台
--os-type=linux 指定系统类型
--os-variant=rhel7 指定分支系统类型
KVM基本操作
#查看所有的虚拟机
virsh list --all
#查看运行的虚拟机
virsh list
#创建虚拟机
virsh create kvm01 xxxxxxx #create 和 define都需要一个xml格式的配置文件,但是create默认不会创建xml文件,当虚拟机关机,libvirt就不知道他了
virsh define kvm01.xml #define 方式创建的虚拟机是永久性虚拟机,但是创建好后默认不启动,需手动启动(xml配置文件默认路径/etc/libvirt/qemu)
#关闭虚拟机
virsh destroy 域名
(这种方式的关闭,是一种删除的方式,只是在virsh list 中删除了该虚拟机,注意这里的域名就是你看到的虚拟机名字)
#挂起虚拟机
virsh suspend 域名
#恢复被挂起的虚拟机
virsh resume 域名
#子机随宿主主机启动而启动
virsh autostart 域名
#取消随宿主机启动而启动
virsh autostart --disable 域名
#删除创建的虚拟机
virsh undefine 域名 #只会删除/etc/libvirt/qemu下的xml文件,不会删除磁盘文件(需手工)
#启动虚拟机
virsh start 域名
#关闭虚拟机
virsh shutdown 域名
#重启虚拟机
virsh reboot 域名
#强制重启虚拟机
virsh reset 域名
#保存虚拟机(将内存数据存储到文件中,保存需要的时间由虚拟机内存数据多少决定)
virsh save kvm01 kvm01-2023-save
#还原虚拟机
virsh restore kvm01-2023-save
#编辑虚拟机配置文件
virsh edit 域名
#将虚拟机配置文件xml导出并重命名
virsh dumpxml kvm-demo > new.xml
#列出虚拟机所有的磁盘块镜像
virsh domblklist kvm-web01
#检查磁盘是否有错误
qemu-img check /kvm-hosts/kvm-web01.raw
#查看磁盘信息
qemu-img info /kvm-hosts/kvm-web01.raw
#查看qemu支持那些CPU
/usr/libexec/qemu-kvm -cpu ?
#查看虚拟机的网络类型、接口名字和mac地址
[root@node101 dnsmasq.d]# virsh domiflist kvm5644
Interface Type Source Model MAC
-------------------------------------------------------
kvm5644.0 bridge ovs-ext virtio fa:a2:e0:00:00:10
小技巧:如何查看虚拟机运行时的具体参数,比如磁盘类型,内存大小
#一个虚拟机就是一个kvm进程,所以可以通过查看kvm进程,得知其具体的参数
ps -ef |grep kvm
创建虚拟机是指定另一种显示协议(非VNC而是spice),监听接口也不是0.0.0.0 而是具体接口IP
virt-install --name kvm-docker-ceshi --virt-type kvm --ram 1024 --cdrom=/iso/ubuntu-16.04.5-server-amd64.iso --disk path=/kvm-hosts/kvm-docker-ceshi.qcow2 --network network=default --graphics spice,listen=127.0.0.1 --noautoconsole --os-type=linux
如果文章对你有帮助,欢迎点击上方按钮打赏作者
暂无评论