命令记不住

登陆

KVM 的安装和日常命令

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_intel

linux内核:

[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=ja

4.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
推荐阅读