CentOS7.4安装部署KVM虚拟机
1 | https://blog.csdn.net/qq_39452428/article/details/80781403 |
1. 查看系统版本
1 | cat /etc/centos-release |
2. 首先验证CPU是否支持虚拟化,输入有vmx或svm就支持,支持虚拟化则就支持KVM
1 | cat /proc/cpuinfo | egrep 'vmx|svm' |
3. 查看是否加载KVM
1 | lsmod | grep kvm |
这表明已经加载,如果没有加载则执行以下命令加载KVM
1 | modprobe kvm |
4. 关闭selinux
1 2 | setenforce 0 vi /etc/sysconfig/selinux |
1 | SELINUX=disabled //原本enforcing |
5. 安装KVM相关软件包
1 2 3 | yum install qemu-kvm qemu-img \ virt-manager libvirt libvirt-python virt-manager \ libvirt-client virt-install virt-viewer -y |
qemu-kvm: KVM模块
libvirt: 虚拟管理模块
virt-manager: 图形界面管理虚拟机
virt-install: 虚拟机命令行安装工具
6. 启动libvirt并设置开机自启动
1 2 | systemctl start libvirtd systemctl enable libvirtd |
7. 先手工配置一台带IP地址的虚拟机.
1)进入图形化 – 新建虚拟机
2)本地安装介质
3)选择浏览
4)这里我们选择左下角的加号来新建一个存储池(我是建在 /home/images 文件夹)
5)名字写:kvm01, 硬盘20G
6)选择镜像:我选的是CentOS 7
7)内存2G,1核CPU
8)选择刚创建的存储卷 [位置: /home/images/kvm01.qcow2]
9)名字:kvm01 , 安装前自定义配置 前面打勾
10)连接选择 “VNC”
11)Video XML 选 “VGA”
12)开始安装
13)选 “install CentOs 7” – 回车键
14)屏幕可以放大,右边可以上下拖动
15)选择”English” – Continue – 回车键
16)选择硬盘
17)选中硬盘 – Done
18)选择网络
19)开始安装
20)输入root密码
21)安装完成 – 重启
22)登陆系统,发现没有IP
23)宿主机输入 ip add 会出现如下代码
1 2 | inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0 valid_lft forever preferred_lft forever |
24)那直接跟kvm01 配置静态IP
1 2 3 | cd /etc/sysconfig/network-scripts/ ls vi ifcfg-eth0 |
1 2 3 4 5 6 7 8 | BOOTPROTO=static //以前是dhcp ONBOOT=yes //以前是no IPADDR=192.168.122.11 GATEWAY=192.168.122.1 NETMASK=255.255.255.0 DNS1=192.168.1.1 DNS2=8.8.8.8 ZONE=public |
25)重启网卡
1 | systemctl restart network.service |
26)再查ip add就有地址了[192.168.122.11]
27)ssh进入虚拟机
1 | ssh root@192.168.122.11 |
28)试试看能不能改成跟宿主机同一网段.
宿主机网段如下:
1 2 | inet 192.168.0.101/24 brd 192.168.0.255 scope global noprefixroute eno1 valid_lft forever preferred_lft forever |
1 2 3 | cd /etc/sysconfig/network-scripts/ ls vi ifcfg-eth0 |
1 2 3 4 5 6 7 8 | BOOTPROTO=static //以前是dhcp ONBOOT=yes //以前是no IPADDR=192.168.0.11 GATEWAY=192.168.0.255 NETMASK=255.255.255.0 DNS1=192.168.1.1 DNS2=8.8.8.8 ZONE=public |
20200710075628.png
29)重启网卡
1 | systemctl restart network.service |
30)但进不了系统
8. 用命令行创建虚拟机
1 | virt-install --name kvm02 --ram 2048 --vcpus=1 --file=/home/images/kvm02.qcow2 --file-size=10 --autostart --vnc --vncport=5902 --video=vga --vnclisten=0.0.0.0 --network network=default --cdrom=/home/iso/CentOS_7_64.iso |
1 | virt-install --name kvm03 --ram 2048 --vcpus=1 --file=/home/images/kvm03.qcow2 --file-size=10 --autostart --vnc --vncport=5903 --video=vga --vnclisten=0.0.0.0 --network network=default --cdrom=/home/iso/CentOS_7_64.iso |
代码分析
1 2 3 4 5 6 7 8 9 10 11 12 | --name kvm02 //名称 kvm02 --ram 2048 //内存 2G --vcpus=1 //1核CPU --file=/home/images/kvm02.qcow2 //虚拟机存储文件位置[这个创建虚拟机时会自动创建] --file-size=10 //虚拟机硬盘10G [Centos 10G 足够,Windows 2008 R2要15G] --autostart //自动加载 --vnc //指定用vnc连接[这个不设置会默认"cirrus",到时vnc连不上] --video=vga /指定用vnc连接[这个不设置会默认"cirrus",到时vnc连不上] --vncport=5902 //端口号 5902 --vnclisten=0.0.0.0 //虽然不知道是什么.但挺重要. --network network=default //默认网卡 --cdrom=....... //镜像位置 |
9. 解决kvm 无法ping通 www.baidu.com 的问题
1 2 3 | cd /etc/sysconfig/network-scripts/ ls vi ifcfg-eth0 |
1 | ONBOOT=no 改成 yes |
1 | systemctl restart network.service |
9. 解决kvm 端口放行,否则vnc无法联上.
KVM的VNC端口默认从5900-6100,共200个
1 2 3 | firewall-cmd --zone=public --add-port=5901-6100/tcp --permanent //添加一个端口5904 firewall-cmd --reload //重新加载规则 firewall-cmd --list-port //列出添加的端口 |
10. 常见kvm命令
1 2 3 4 5 6 7 | virsh list --all //显示所有的虚拟机 virsh start kvm01 //开启 virsh shutdown kvm01 //关闭 virsh reboot kvm01 //重启 virsh destroy kvm01 //强制断电 [对于running的虚拟机使用] virsh undefine kvm01 //删除虚拟机 [对于shutdown的虚拟机使用] virsh edit kvm01 //修改虚拟机配置文件 |
11. 解决VNC无法连上虚拟机的问题.
1 | virsh edit kvm01 |
1. 第96行
1 | 96 model type = 'cirrus' 改成 model type = 'vga' |
2. 打开监听
1 | vi /etc/libvirt/qemu.conf |
1 | vnc_listen = "0.0.0.0 |
3. 重启进程
1 | service libvirtd restart |
添加放行端口5904 ,这个不做[只关闭防火墙]会连不上.
1 2 3 | firewall-cmd --zone=public --add-port=5904/tcp --permanent //添加一个端口5904 firewall-cmd --reload //重新加载规则 firewall-cmd --list-port //列出添加的端口 |
12. VNC 连 KVM 闪退的解决办法
[http://blog.sina.com.cn/s/blog_538052ba0101bavc.html]
VNC – option – Advanced – expert – ColourLevel的值为“rgb222” or “full”即可
再连就成功