1、查看cpu是否支持虚拟化
[root@localhost ~]# egrep ‘(vmx|svm)’ /proc/cpuinfo
2、启动kvm模块
[root@localhost ~]# modprobe kvm
[root@localhost ~]# lsmod |grep kvm
3、安装组件
[root@localhost ~]# yum install -y virt-* libvirt bridge-utils qemu-img qemu-kvm
4、启动libvirtd服务
[root@localhost ~]# service libvirtd start
5、配置网桥br0
将NetworkManager服务关闭,开机启动也关闭
[root@localhost ~]# chkconfig NetworkManager off
[root@localhost ~]# service NetworkManager stop
配置网桥
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
DEVICE=br0
BOOTPROTO=static
ONBOOT=yes
TYPE=Bridge
IPADDR=192.168.4.233
NETMASK=255.255.255.0
DNS2=114.114.114.114
GATEWAY=192.168.4.1
DNS1=8.8.8.8
DELAY=0
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
HWADDR=6c:0b:84:92:9f:e4
IPV6INIT=yes
MTU=1500
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
PEERDNS=yes
NM_CONTROLLED=no
BRIDGE=br0
重启网络服务
[root@localhost ~]# service network restart
查看桥接设备
[root@localhost ~]# brctl show
6、安装centos7
virt-install \
\--connect qemu:///system #连接默认本hypervisor
\--virt-type kvm #虚拟化类型为kvm
\--vcpus=1 #vcpu为1
\--name unbuntu16 #虚拟机名称
\--ram 512 #内存大小
\--cdrom /var/lib/libvirt/images/ubuntu-16.04.5-server-amd64.iso #指定使用cdrom光驱启动,指定镜像路径
\--disk path=/var/lib/libvirt/images/ubuuntu16.img,size=50,format=qcow2,bus=virtio #指定硬盘路径,大小,格式为qcow2,总线类型为virtio
\--network bridge=br0 #指定虚拟网络类型为网桥br0
\--os-type=linux #指定虚拟机操作系统类型为linux
// 示例 内存16G 硬盘300G
[root@localhost ~]# virt-install --name=jhapp --ram=16384 --vcpus=1 --os-type=linux --os-variant=rhel7 --location=/home/kvmiso/CentOS-7-x86_64-DVD-2009.iso --disk path=/home/kvmData/jhapp.img,size=300 --network bridge=br0 --nographics -x 'console=ttyS0'
// 示例 内存32G 硬盘500G
virt-install --name=rhdb --ram=32768 --vcpus=1 --os-type=linux --os-variant=rhel7 --location=/home/kvmiso/CentOS-7-x86_64-DVD-2009.iso --disk path=/home/kvmData/rhdb.img,size=500 --network bridge=br0 --nographics -x 'console=ttyS0'
开始安装后,正常的情况下会进入到这样一个界面
这是让你配置语言、时区、安装源、网络、密码等信息,就和我们在VMware里安装CentOS虚拟机是一样的,只不过这个是命令行形式,而VMware里是图形界面罢了。
首先设置语言,按数字1,回车进入以下界面:
例如我要选Chinese就按数字68并回车即可,回车之后会让你选择是中文简体还是繁体,也是按下相应的数字并回车即可:
配置完成之后又会再次回到配置界面,设置时区
设置root密码:
开始安装系统:
一切顺利,安装成功!
这时我们是处于一个虚拟终端的,如果要退出来虚拟机,应该说是切出来,按Ctrl + ]
即可。
切出虚拟机后,可以看到/kvm_data/目录下多了一个虚拟机的磁盘目录:
7、配置固定IP,可以局域网直接访问
[root@localhost ~]# ip addr
配置ip
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=xxxxxxxxxx
TYPE=Ethernet
UUID=xxxxxxxxx
ONBOOT=yes
IPADDR=192.168.xxx.xxx
NETMASK=255.255.255.0
GATEWAY=192.168.xxx.1
DNS1=114.114.114.114
DNS2=8.8.8.8
IPV6INIT=no
NM_CONTROLLED=no
BOOTPROTO=static
ARPCHECK=no
重启网卡服务
systemctl restart network
8、卸载虚机
#查看虚机
virsh list
#强制停止虚机
virsh destroy jhapp
#删除虚机
virsh undefine jhapp
#查出痕迹删除
locate jhapp
updatedb
无法取消定义
[root@localhost ~]# virsh undefine jhapp
错误:Refusing to undefine while domain managed save image exists
[root@localhost ~]# virsh undefine jhapp --managed-save
域 jhapp has been undefined
9、常用virsh命令
virsh list 列出当前宿主机上处于运行状态的虚拟机
virsh list --all 列出当前宿主机上所有的虚拟机
virsh start vm1 (虚拟机name) 开启某一台虚拟机
virsh shutdown vm1 (虚拟机name) 正常关闭一台虚拟机
virsh destroy vm1 强制关闭某一台虚拟机
virsh autostart vm1 开机自启动虚拟机vm1
virsh autostart --disable vm1 关闭开机自启动
virsh edit vm1 编辑某个虚拟机的配置文件
virsh pool-list 列出存储池
virsh console 连入虚拟机
#ctrl ] 退出console
virsh autostart 虚拟机名 #设置随宿主机开机自启动
virsh autostart --disable 虚拟机名 #取消随宿主机开机自启动
10、配置网卡混乱后出现错误,解决方法如下
编辑配置文件:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
将ONBOOT=no改成yes
保存退出,重启网卡
vm虚拟机克隆,系统MAC和UUID会重复,导致获取不到IP
报错:device eth0 does not seem to be present, delaying initialization
需要修改文件
1、vi /etc/sysconfig/network-scripts/ifcfg-eth0
ifcfg-eth0的配置文件里保存了以前的MAC地址,就把这一行删除掉在重启网卡
2、/etc/udev/rules.d/70-persistent-net.rules 删除后重启机器
因为这个文件绑定了网卡和mac地址,所以换了网卡以后MAC地址变了,所以不能正常启动,也可以直接编辑这个配置文件把里面的网卡和mac地址修改乘对应的,不过这样多麻烦,直接删除重启,它会自动生成个。