CentOS7.9下安装配置KVM虚拟机
1.关闭selinux、防火墙
##关闭selinux # sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config #永久生效,但是必须要重启系统。 ##立即生效,不需要重启系统 # setenforce 0 ##关闭防火墙 # systemctl stop firewalld # systemctl disable firewalld
2.查看系统是否支持KVM虚拟化
egrep '(vmx|svm)' /proc/cpuinfo |wc -l #输出结果大于一,说明支持 32
3.打开数据转发功能,因为KVM使用的是桥接的方式上网
##开启路由转发功能 sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf sysctl -p #生效
二、安装KVM以及依赖包
1.安装相关包
##安装KVM所有需要的包 yum -y install kvm python-virtinst libvirt tunctl bridge-utils virt-manager qemu-kvm-tools virt-viewer virt-v2v virt-install libguestfs-tools systemctl restart libvirtd #重启#查看虚机列表
#查看虚机列表
[root@k8s ~]# virsh list Id Name State ----------------------------------------------------
#查看虚机软件版本 [root@k8s ~]# virsh --version 4.5.0
#查看KVM使用的模块 [root@k8s ~]# lsmod |grep kvm kvm_intel 188793 21 kvm 653928 1 kvm_intel irqbypass 13503 7 kvm
三、因为虚拟机使用宿主机的网段,固使用桥接模式,所以需要配置网桥
1、桌面版本需要关闭NetworkManager服务(非桌面版的跳过此步骤)
#关闭桌面版网络服务(如果此时你使用ssh连接的服务器,那此刻连接会中断)
systemctl stop NetworkManager #停止
systemctl disable NetworkManager #禁止下次自启动
#打开network(NetworkManager和network服务不能共存,关闭NetworkManager后,需要打开network,否则网口状态为down)
systemctl start network
systemctl enable network
2、创建br0网桥(注意粗体部分)
/etc/sysconfig/network-scripts/ifcfg-eno1
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no BRIDGE=br0 #NAME=eno1 UUID=1331bfac-4037-4192-80ef-f9c310c0e4d2 DEVICE=eno1 ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no NM_CONTROLLED=yes NAME=br0 DEVICE=br0 ONBOOT=yes IPADDR=192.168.0.12 PREFIX=24 GATEWAY=192.168.0.1 DNS1=8.8.8.8
注意:上面配置的网卡信息为静态地址,如果使用DHCP需要对应修改为BOOTPROTO=dhcp
3.重启network服务
systemctl restart network
检查网卡状态:
[root@k8s ~]# ip add 2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000 link/ether 94:18:82:01:a4:d4 brd ff:ff:ff:ff:ff:ff inet6 fe80::9618:82ff:fe01:a4d4/64 scope link valid_lft forever preferred_lft forever11: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 94:18:82:01:a4:d4 brd ff:ff:ff:ff:ff:ff inet 192.168.0.12/24 brd 192.168.0.255 scope global br0 valid_lft forever preferred_lft forever inet6 fe80::9618:82ff:fe01:a4d4/64 scope link valid_lft forever preferred_lft forever
查看网桥状态
brctl show bridge name bridge id STP enabled interfaces br0 8000.000c296bdbdc no eno1 # 我们配置的桥接网卡 virbr0 8000.525400d2488d yes virbr0-nic # NAT模式的网卡
四、配置和安装KVM虚拟机
##创建文件夹 mkdir -p /data2/kvm/image mkdir -p /data2/iso ##使用FTP上传7.9的ISO文件到/data2/iso,我使用的rz进行上传 CentOS-7-x86_64-DVD-2009.iso
根据centos7.9的ISO镜像安装centos7.9虚拟机
#执行以下命令创建虚拟机
virt-install \ --name=centos1 \ --memory=1024,maxmemory=8096 \ --vcpus=4,maxvcpus=8 \ --os-type=linux \ --os-variant=rhel7 \ --location=/tmp/CentOS-7-x86_64-DVD-2009.iso \ --disk path=/data2/kvm/image/centos1.img,size=50 \ --bridge=br0 \ --graphics=none \ --console=pty,target_type=serial \ --extra-args="console=tty0 console=ttyS0"
参数详解:
--name 指定虚拟机的名称
--memory 指定分配给虚拟机的内存资源大小
maxmemory 指定可调节的最大内存资源大小,因为KVM支持热调整虚拟机的资源
--vcpus 指定分配给虚拟机的CPU核心数量
maxvcpus 指定可调节的最大CPU核心数量
--os-type 指定虚拟机安装的操作系统类型
--os-variant 指定系统的发行版本
--location 指定ISO镜像文件所在的路径,支持使用网络资源路径,也就是说可以使用URL
--disk path 指定虚拟硬盘所存放的路径及名称,size 则是指定该硬盘的可用大小,单位是G
--bridge 指定使用哪一个桥接网卡,也就是说使用桥接的网络模式
--graphics 指定是否开启图形
--console 定义终端的属性,target_type 则是定义终端的类型
--extra-args 定义终端额外的参数
出现如下界面,需要依次配置语言、时区、安装位置、root密码。(网络可以等到虚拟机创建完成后再配置)
如下图:输入1,按回车
如下图:按enter,然后输入68,按enter
如下图:输入1,按enter
如下图:选择时区,输入2,按enter
如下图:输入1,按enter
如下图:输入2,选择亚洲,按enter
如下图:按enter,输入65,按enter
如下图:输入5,按enter,设置安装位置
如下图:输入c,按enter
如下图:输入c,按enter
如下图:输入1,按enter
如下图:输入c,按enter
如下图:输入8,按enter,设置管理员密码
如下图:输入两次密码,然后按enter
如下图:输入yes,按enter
如下图:输入b,按enter,立即安装虚拟机
五、KVM基础操作
安装完成后,默认进入了创建好的虚拟机,按 Ctrl + ] 可以退出到宿主机
查看虚拟机状态
[root@k8s ~]# virsh list Id Name State ---------------------------------------------------- 3 centos1 running 5 centos2 running 8 centos3 running 9 centos4 running
查看虚拟机配置文件
[root@k8s ]# ls /etc/libvirt/qemu/ damowang.xml networks [root@k8s ]# ls /etc/libvirt/qemu/networks/ autostart default.xml [root@k8s ]# ls /etc/libvirt/qemu/networks/autostart/ default.xml
管理虚拟机的常用命令
Virsh语法参考(centos为KVM名字) virsh list --all 列出所有的虚拟机 virsh start centos 启动centos虚拟机 virsh shutdown centos 关闭centos虚拟机 virsh destroy centos 强制关闭centos虚拟机 virsh autostart centos 设置centos自动启动 virsh undefine centos 删除centos虚拟机 virsh suspend centos 暂停centos虚拟机 vrish resume centos 恢复centos虚拟机 virsh reboot centos 重启centos虚拟机 virsh edit centos 编辑centos虚拟机