操作系统版本:CentOS Linux release 7.5.1804 (Core)
内核版本:3.10.0-862.el7.x86_64
1、安装
安装以下软件。
yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install vnc -y
2、启动服务
启动kvm服务。
service libvirtd start
3、配置宿主机网卡,创建br桥
cd /etc/sysconfig/network-scripts/ 此处假设宿主机网卡名称为ifcfg-enp1s0。复制创建br0配置文件。
cp ifcfg-enp1s0 ifcfg-br0
配置br0桥。
vim ifcfg-br0
配置内容如下:
TYPE=Bridge
BOOTPROTO=static
BROWSER_ONLY=no
DEFROUTE=yes
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.43.205
NETMASK=255.255.255.0
GATEWAY=192.168.43.1
DNS1=114.114.114.114
解析如下:
TYPE=Bridge:说明网卡模式为桥接模式
BOOTPROTO=static:使用静态ip配置
IPADDR=192.168.43.205:ip地址
NETMASK=255.255.255.0:子网掩码
GATEWAY=192.168.43.1:网关
DNS1=114.114.114.114:设置dns
配置ifcfg-enp1s0网卡。
vim ifcfg-enp1s0
配置内容如下:
TYPE=Ethernet
DEVICE=enp1s0
ONBOOT=yes
BRIDGE=br0
解析:
TYPE=Ethernet:网卡类型为以太网卡
BRIDGE=br0:指明桥接网卡名称
重启网卡服务。
service network restart
4、创建虚拟机。
4.1、创建硬盘,此处使用qcow2作为硬盘格式。
qemu-img create -f qcow2 /data/vitual-img/kvm-mysql-18.18.100.4-data.img 500G 解析:
create -f qcow2:创建磁盘并指定硬盘文件系统格式
/data/vitual-img/kvm-mysql-18.18.100.4-data.img:指定硬盘文件存储目录
500G:指定硬盘大小
4.2、创建虚拟机
virt-install --name kvm-liushaoqiang-192.168.40.91 --ram --vcpus= --cdrom /data/iso/CentOS--x86_64-Minimal-.iso --disk path=/data/vitual-img/kvm-liushaoqiang-192.168.40.91-system.img,format=qcow2,bus=virtio --bridge=br0 --vnc --vncport= --vnclisten=0.0.0.0 解析:
--name kvm-liushaoqiang-192.168.40.91:指定创建虚拟机的名称
--ram :指定虚拟机内存,默认按MB计算
--vcpus=:指定虚拟机cpu核心数量
--cdrom /data/iso/CentOS--x86_64-Minimal-.iso:指定启动文件,以cdrom iso镜像启动
--disk path=/data/vitual-img/kvm-liushaoqiang-192.168.40.91-system.img,size=,format=qcow2,bus=virtio:指定磁盘位置,格式为qcow2,虚拟化方式为virtio(半虚拟化方式)
--bridge=br0:指定网络模式为桥接,桥接网卡为br0
--vnc --vncport= --vnclisten=0.0.0.0:指定虚拟机远程vnc地址以及端口
执行完以上命令后,即可使用vnc连接宿主机的地址以及vncport进行虚拟机的安装。此处列出操作系统安装步骤。
5、kvm常用命令
以下命令均在虚拟机的宿主机上执行。
5.1、强制关闭虚拟机
virsh destroy kvm-mysql-18.18.100.4 解析:
kvm-mysql-18.18.100.4:虚拟机名称,不是虚拟机的hostname。
5.2、彻底删除虚拟机
virsh undefine kvm-mysql-18.18.100.4
5.3、关闭虚拟机
virsh shutdown kvm-mysql-18.18.100.4 备注:需要在虚拟机上安装acpid,同时启动该服务。否则无法使用virsh shutdown远程关闭虚拟机。
5.4、启动虚拟机
virsh start kvm-mysql-18.18.100.4
5.5、查看虚拟机列表
virsh list --all 解析:
list:不加--all无法查看该宿主机上所有虚拟机,只能列出当前处于运行状态的虚拟机
--all:列出该宿主机上所有虚拟机
5.6、虚拟机新增磁盘
virsh attach-disk --domain kvm-mysql-18.18.100.4 --source /data/vitual-img/kvm-mysql-18.18.100.4-data.img --target sda --cache none 解析:
--domain kvm-mysql-18.18.100.4:指定虚拟机名称
--source /data/vitual-img/kvm-mysql-18.18.100.4-data.img:指定要挂载的磁盘目录以及所在位置
--target sda:指明该磁盘挂载的虚拟机之后,在虚拟机上的磁盘位置
--cache none:无缓存 备注:
、只有raw模式的磁盘才可直接挂载,qcow2格式的磁盘需要远程映射才可挂载。
、系统重启,使用该命令挂载磁盘会丢失。
5.7、虚拟机卸载磁盘
virsh detach-disk kvm-mysql-18.18.100.4 --target sda 解析:
kvm-mysql-18.18.100.4:指定虚拟机名称
--target sda:指明虚拟机上磁盘挂载点
5.8、查看img磁盘信息
qemu-img info kvm-mysql-18.18.100.4-data.img
5.9、在虚拟机关闭状态下,将文件复制到虚拟机内部
virt-copy-in -d kvm-mysql-18.18.100.4 change_ip.sh /etc/rc.d 解析:
-d kvm-mysql-18.18.100.4:指定虚拟机名称
change_ip.sh:在宿主机上的文件名称,建议使用绝对地址
/etc/rc.d:虚拟机内部目录