虚拟化:把x个物理设备,虚拟成y个逻辑上的设备。
KVM:是Linux内核模块,需要cpu的支持,采用硬件辅助虚拟化技术。通过lsmod命令可以查看内核模块。
QEMU:虚拟化仿真工具,通过ioctl与内核的kvm进行交互,从而完成对硬件的虚拟化支持。
Libvirt:是一个对虚拟化管理的接口工具,提供用户端的程序。
Libvirt–>QEMU–>KVM #由外层到内层
-------
1、虚拟化必备软件:
qemu-kvm:为kvm提供底层的仿真支持
libvirt-daemon:libvirtd守护进程,用于管理虚拟机。libvirtd这个服务,通过systemctl查看
libvirt-client:客户端软件,提供客户端管理命令
libvirt-daemon-driver-qemu:是libvirt连接qemu的驱动
# 一台虚拟机必须要有以上四个软件
yum -y install qemu-kvm ibvirt-daemon libvirt-client libvirt-daemon-driver-qemu
systemctl start libvirtd
2、可选软件:
virt-install:系统安装工具
virt-manager:图形化管理工具
virt-v2v:虚拟机迁移工具
virt-p2v:物理机迁移工具
3、虚拟机的组成:
XML文件:虚拟机配置声明文件,/etc/libvirt/qemu
磁盘镜像文件:虚拟机的硬盘,/var/lib/libvirt/images/xxxx.qcow2
4、virsh命令:
virsh list [--all] #列出运行的虚拟机,--all代表列出所有
virsh dominfo node1 #查看名为node1的虚拟机
virsh start | shutdown | reboot node1 #启动 | 关闭 | 重启名为node1的虚拟机
virsh destroy node1 #强制停止虚拟机node1
virsh define | undefine /etc/libvirt/qemu/xxx.xml #根据xml配置文件创建 | 删除一台虚拟机
virsh console node1 #连接新创建的虚拟机,做初始配置(ip等信息)
virsh autostart node1 #将虚拟机node1设置为开机自启动
virsh domiflist node1 #查看虚拟机node1的网卡信息,source(源)表示连接的虚拟交换机,决定了虚拟机是否可以连接网络
virsh domblklist node1 #查看虚拟机node1的硬盘信息,硬盘在物理机上的位置
virsh edit node1 #编辑配置文件,相当于 vim /etc/libvirt/qemu/node1.xml
5、虚拟网络管理:(虚拟交换机,在主机开启之前开启)
和virsh命令相似,只是选项变为 net-xxx
例:查看所有虚拟交换机
virsh net-list --all
# 仅有开启virsh net-start,和强制关闭virsh net-destroy,没有reboot和shutdown
写总结的第六十七天!!!