环境
CentOS Linux release 7.7.1908 (Core)
ip : 10.0.0.41
1、虚拟机的配置
2、检查CPU是否支持虚拟化
[root@c7 ~]# egrep -o '(vmx|svm)' /proc/cpuinfo
vmx
vmx
[root@c7 ~]# dmesg |grep kvm
3、安装kvm用户动态模块(libvirt用来管理kvm)
[root@c7 ~]# yum install qemu-kvm qemu-kvm-tools libvirt -y
4、启动livirt
[root@c7 ~]# systemctl start libvirtd.service
[root@c7 ~]# systemctl enable libvirtd.service
5、启动之后我们可以使用ifconfig进行查看,libvirtd已经为我们安装了一个桥接网卡
6、创建虚拟机
(1).准备虚拟机硬盘
(2).需要系统iso镜像
(3).需要安装一个vnc的客户端来连接
7、上传镜像
[root@c7 opt]# ls
CentOS-7-x86_64-Minimal-1810.iso
若rz上传不上去可用以下命令,
使用dd命令,复制系统的镜像。只需要挂载上光盘即可。
[root@c7 opt]# dd if=/dev/cdrom of=/opt/CentOS-7-x86_64-Minimal-1810.iso
8、创建磁盘 (qemu-img软件包是我们安装qemu-kvm-tools 依赖给安装上的)
[root@c7 opt]# qemu-img create -f qcow2 /opt/c73.qcow2 6G
qcow2为磁盘格式,
/c73 为自定义磁盘名
6G为磁盘的大小
ll命令可查看到新建的磁盘
[root@c7 opt]# ll
total 940228
-rw-r--r-- 1 root root 197120 May 17 16:13 c73.qcow2
-rw-r--r-- 1 root root 962592768 May 13 13:49 CentOS-7-x86_64-Minimal-1810.iso
9、安装虚拟机
[root@c7 opt]# yum -y install virt-install
[root@c7 opt]# virt-install --virt-type=kvm --name=c73 --vcpus=1 -r 1024 --cdrom=/opt/CentOS-7-x86_64-Minimal-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole --os-type=linux --os-variant=rhel7 --disk path=/opt/c73.qcow2,size=6,format=qcow2
成功创建如下:
[root@c7 opt]# virsh list --all
Id Name State
----------------------------------------------------
1 c73 running
查看端口5900是否存在
[root@c7 opt]# netstat -lntup|grep 5900
tcp 0 0 0.0.0.0:5900 0.0.0.0:* LISTEN 12125/qemu-kvm
10、然后用vnc连接虚出来的机器,机器的ip是自己机子的ip加上5900端口
进入之后进行安装虚拟机的正常操作
到此为止kvm创建虚拟机就成功了,如果中途出现错误,很有可能是yum安装的相关插件,服务,软件,没装上,把yum命令都执行一遍做排除!!!
virsh相关管理命令 !!!!
列出所有的虚拟机 virsh list --all
显示虚拟机信息 virsh dominfo c73
列出ID为6的虚拟机名 virsh domname 6
显示虚拟机内存和cpu的使用情况 virt-top
关闭虚拟机 virsh shutdown c73
强制关闭虚拟机 virsh destroy c73
启动虚拟机 virsh start c73
设置虚拟机随系统自启 virsh autostart c73
关闭虚拟机随系统自启 virsh autostart --disable c73
删除虚拟机 virsh undefine c73
通过控制窗口登录虚拟机 virsh console c73
挂起$hostname虚拟机 virsh suspend c73
恢复挂起的虚拟机 virsh resume c73
查看网卡配置信息 virsh domiflist c73
查看该虚拟机的磁盘位置 virsh domblklist c73
查看KVM虚拟机当前配置 virsh dumpxml c73
虚拟机安装完成后是关闭了,我们需要启动
[root@c7 opt]# virsh list --all
Id Name State
----------------------------------------------------
- c73 shut off
[root@c7 opt]# virsh start c73
Domain c73 started
kvm桥接模式配置
1、先查看虚拟化组件是否生成virbr0桥接设备
[root@c7 opt]# brctl show
bridge name bridge id STP enabled interfaces
virbr0 8000.525400b9a72e yes virbr0-nic
vnet0
在查看物理机的网卡设备
[root@c7 opt]# ifconfig virbr0
virbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:b9:a7:2e txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2、配置桥接设备br0(两种方法,一种临时的,一种永久的,都是在宿主机上操作的!!!)
[root@c7 opt]# yum -y install bridge-utils
(1)手动增加临时生效
临时方法一:临时热添加
virsh iface-bridge ens33 br0(不会造成网路中断)
临时方法二:会网络断开
[root@c7 opt]# brctl addbr br0
[root@c7 opt]# brctl show
bridge name bridge id STP enabled interfaces
br0 8000.000000000000 no
virbr0 8000.525400b9a72e yes virbr0-nic
vnet0
[root@c7 opt]# brctl addif br0 ens33
(执行此命令时,会导致xshell与宿主机断开连接)
所以以下命令在宿主机上执行:(删除ens33上面的ip地址,将br0上面添加上固定ip地址)
ip addr del dev ens33 10.0.0.41/24 //删除ens33上的IP地址
ifconfig br0 10.0.0.41/24 up //配置br0的IP地址并启动设备
route add default gw 10.0.0.254 //重新加载默认网关
连接xshell查看是否生效
[root@c7 ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.0.0.254 0.0.0.0 UG 0 0 0 br0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
169.254.0.0 0.0.0.0 255.255.0.0 U 1003 0 0 ens37
172.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 ens37
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
[root@c7 ~]# ifconfig br0
br0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.41 netmask 255.255.255.0 broadcast 10.0.0.255
inet6 fe80::20c:29ff:feeb:6b9f prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:eb:6b:9f txqueuelen 1000 (Ethernet)
RX packets 137 bytes 10055 (9.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 71 bytes 9288 (9.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
(临时配置下次重启时就会失效)
(2)永久生效桥接配置
[root@c7 ~]# cd /etc/sysconfig/network-scripts/
[root@c7 network-scripts]# cp ifcfg-ens33 ifcfg-ens33.bak
[root@c7 network-scripts]# vim ifcfg-ens33
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BRIDGE=br0
NM_CONTROLLED=no
编写ifcfg-br0文件
[root@c7 network-scripts]# vim ifcfg-br0
DEVICE=br0
TYPE=Bridge
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.0.0.41
NETMASK=255.255.255.0
GATEWAY=10.0.0.254
NM_CONTROLLED=no
重启网卡
[root@c7 network-scripts]# systemctl restart network
3、VNC连接KVM虚拟机修改网卡配置
我这里为网卡名为eth0,你的是ens33或eth0就修改成对应名称
重启eth0
4、KVM图形化管理工具(在宿主机上完成接下来步骤才能完成桥接,否则无法ping外网)
查看ssh是否开启x11转发
[root@c7 opt]# grep X11Forwarding /etc/ssh/sshd_config --colour
X11Forwarding yes
# X11Forwarding no
安装xorg-x11
[root@c7 opt]# yum install -y xorg-x11-font-utils.x86_64 xorg-x11-server-utils.x86_64 xorg-x11-utils.x86_64 xorg-x11-xauth.x86_64 xorg-x11-xinit.x86_64 xorg-x11-drv-ati-firmware
安装libvirt (libvirt是管理虚拟机的API库,不仅支持KVM虚拟机,也可以管理Xen等方案下的虚拟机)
[root@c7 opt]# yum install virt-manager libvirt libvirt-Python python-virtinst libvirt-client virt-viewer qemu-kvm mesa-libglapi -y
安装virt-manager,x-window。图形化界面
[root@c7 opt]# yum install libXdmcp libXmu libxkbfile xkeyboard-config xorg-x11-xauth xorg-x11-xkb-utils -y
开启libvirt服务
[root@c7 opt]# systemctl start libvirtd.service
[root@c7 opt]# systemctl enable libvirtd.service
5、配置xshell(需要配合xming软件使用)
安装好xming不用管在后台挂起
打开xshell,执行以下步骤:
断开xshell会话,重新连接,输入命令:virt-manager,就可以自动弹出kvm管理软件 (前提是你的xming开启了)
[root@c7 ~]# virt-manager
用xshell也能连接
报错问题解决