
KVM的安装和日常命令
1.安装KVM虚拟化
1.公司业务使用为ESXI,需要开启对应硬件虚拟化技术
2.个人使用
KVM需要硬件支持, 所以需要开启虚拟化支持
1.硬件设备直接在BIOS设置开启CPU虚拟化
2.个人电脑同样进入BIOS开启虚拟化支持
3.VM需要找到对应虚拟机开启对应的VT-EPT虚拟化技术//没有任何内容则表示服务器没有启用虚拟化 [root@kvm-node1 ~]# egrep '(vmx|svm)' /proc/cpuinfo
2.基础环境配置
//查看当前系统版本 [root@kvm-node1 ~]# hostnamectl Static hostname: kvm-node1 Icon name: computer-vm Chassis: vm Machine ID: 6878674c84644fd381a5e3a82d80cf18 Boot ID: fd8e37aca7e4421fa5674fc0fff147e9 Virtualization: vmware Operating System: CentOS Linux 7 (Core) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 3.10.0-693.el7.x86_64 Architecture: x86-64 //设定主机名 [root@kvm-node1 ~]# hostnamectl set-hostname kvm-node1 //关闭防火墙与Selinux [root@kvm-node1 ~]# systemctl stop firewalld [root@kvm-node1 ~]# systemctl disable firewall [root@kvm-node1 ~]# sed -i '/SELINUX=/cSELINUX=disabled' /etc/selinux/config [root@kvm-node1 ~]# setenforce 0 //配置hosts解析 [root@kvm-node1 ~]# echo "192.168.56.11 kvm-node1" >> /etc/hosts //配置DNS [root@kvm-node1 ~]# echo "nameserver 192.168.56.2" >> /etc/resolv.conf
3.安装KVM虚拟化工具
linux内核只要KVM最核心的程序,所以KVM的管理工具需要额外去安装
# qeum 虚拟化软件,可以虚拟不同的CPU,以及模拟网卡、声卡、PCI设备等 # libvirt 用于管理KVM的工具 # virt-install 命令行安装虚拟机工具 # virt-manager 图形化管理虚拟机工具 # openssh-askpass 远程连接KVM主机[root@kvm-node1 ~]# yum install qemu-kvm qemu-kvm-tools \ libvirt virt-manager virt-install \ openssh-askpass –y //KVM是linux内核的一个模块,模块不需要安装只需要加载,通过用户态程序来管理即可 [root@kvm-node1 ~]# lsmod|grep kvm kvm_intel 148081 0 kvm 461126 1 kvm_intellinux内核:
[root@Web_node01 ~]#ls /boot/vmlinuz-3.10.0- vmlinuz-3.10.0-693.2.2.el7.x86_64 vmlinuz-3.10.0-693.el7.x86_64 vmlinuz-3.10.0-862.14.4.el7.x86_64
4.启动libvirt管理KVM工具
[root@kvm-node1 ~]# systemctl enable libvirtd.service [root@kvm-node1 ~]# systemctl start libvirtd.service #注意: 启动后会新增一块virbr0网络
5.安装一台kvm虚拟机
vnc:远程的桌面管理工具
[root@Web_node01 ~]#systemctl start libvirtd.service [root@Web_node01 ~]#systemctl status libvirtd.service建议虚拟机内存不要低于1024M,否则安装系统特别慢!
[root@Web_node01 ~]#virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name centos7 --memory 1024 --vcpus 1 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole # vnc:10.0.0.11:5900--virt-type kvm 虚拟化的类型(默认:qemu) --os-type=linux 系统类型 --os-variant rhel7 系统版本 --name centos7 虚拟机的名字 --memory 1024 虚拟机的内存 --vcpus 1 虚拟cpu的核数 --disk /opt/centos2.raw,format=raw,size=10 --cdrom /opt/CentOS-7-x86_64-DVD-1708.iso --network network=default 使用默认NAT的网络,常用bridge --graphics vnc,listen=0.0.0.0 指定虚拟机可连接方式, 比如VNC --noautoconsole 不连接虚拟机图形界面控制台 # raw:10G 不支持做快照,性能好 # qcow2: 支持快照云主机没有SWAP分区的原因为性能太低,本身磁盘就是虚拟化出来的,所以直接不建立SWAP分区。
1.安装系统的时候直接建立在根分区上。
2.不启用内核奔溃备份,内存占用较多UEFI启动方式
virt-install --name kvmsgx --memory 32768 --vcpus 16 --disk /home/kvmdisk/tmp/disk/os.qcow2,size=20 --boot uefi --cdrom /home/kvmdisk/CentOS-8.2.2004-x86_64-dvd1.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole需要安装和配置其他依赖
6.KVM基础知识延伸
1.云主机无sweap分区的原因为,分区使用虚拟磁盘会拖累系统性能,磁盘本身就读写慢,又用磁盘虚拟出来的磁盘文件性能会低很多。
2.KVM虚拟机的配置文件xlm所在目录 ( virsh edit centos7)
[root@kvm01 ~]# ls /etc/libvirt/qemu/ centos7.xml networks/3.写死vnc端口号(建议自动分配)
[root@kvm01 ~]# virsh edit centos7.4 自动获取:<graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'> 写死:<graphics type='vnc' port='5902' autoport='no' listen='0.0.0.0'> 命令指定VNC端口: [root@kvm01 ~]# virt-install --help | grep gra --version show program's version number and exit --graphics GRAPHICS Configure guest display settings. Ex: --graphics vnc --graphics spice,port=5901,tlsport=5902 --graphics none --graphics vnc,password=foobar,port=5910,keymap=ja4.virsh命令直接进入KVM交互模式;
[root@kvm01 ~]# virsh Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # list Id Name State ---------------------------------------------------- 3 centos7.4 running
7.virsh日常管理和配置
1.如何备份虚拟机:
- 备份磁盘文件:raw和
- 备份配置文件:virsh dumpxml centos7 >centos7.bak.xml
2.KVM丢失xml配置文件如何恢复
- 1.vim编辑一个虚拟机xml配置文件
- 2.修改名字
- 3.删除uuid
- 4.删除mac
- 5.修改磁盘文件路径名称
- 6.导入xml配置文件 virsh define centos7
管理KVM虚拟机
//虚拟机随着系统启动 [root@kvm-node1 ~]# virsh autostart Name //关闭虚拟机随系统启动 [root@kvm-node1 ~]# virsh autostart —disable Name //查看正在运行的KVM虚拟机 [root@kvm-node1 ~]# virsh list //查看所有KVM虚拟机 [root@kvm-node1 ~]# virsh list --all //启动KVM虚拟机 [root@kvm-node1 ~]# virsh start name //关闭KVM虚拟机 [root@kvm-node1 ~]# virsh shutdown name //强制关闭KVM虚拟机 [root@kvm-node1 ~]# virsh destroy name //挂起KVM虚拟机 [root@kvm-node1 ~]# virsh suspend name //恢复挂起的虚拟机 [root@kvm-node1 ~]# virsh resume name //配置文件xml目录 [root@kvm-node1 ~]# ls /etc/libvirt/qemu/ //编辑KVM虚拟机的xml配置文件 [root@kvm-node1 ~]# virsh edit name //删除创建的KVM虚拟机,推荐先destroy,在undefine [root@kvm-node1 ~]# virsh undefine name //导出配置dumpxml [root@kvm-node1 ~]# virsh dumpxml centos7 >centos7-off.xml //导入配置define [root@kvm-node1 ~]# virsh define centos7-off.xml //重命名domrename (低版本不支持) [root@kvm-node1 ~]# virsh domrename centos7 web01 //查询vnc端口号vncdisplay [root@kvm-node1 ~]# virsh vncdisplay web01