0.实验环境描述
系统为: CentOS Linux 7 (Core)
电脑 : 老旧笔记本 cpu intel 1017u x86
内存 : 8g
使用软件 :vmware ,kvm
1.依赖环境
1. 1 安装环境
yum -y install kvm qemu-kvm qemu-kvm-tools libvirt python-virtinst libvirt-python virt-manager libguestfs-tools bridge-utils virt-install
安装包
reboot
重启系统
systemctl start libvirtd.service
systemctl enable libvirtd.service
启动服务
2.网络配置
2.1网桥的创建与配置
cd /etc/sysconfig/network-scripts/
进入网卡的配置文件夹
cp ifcfg-eno16777736 ifcfg-br0
创建一个网桥的配置文件ifcfg-br0 网桥文件的内容
TYPE=Bridge
BOOTPROTO=dhcp #一定要写成dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=br0
DEVICE=br0
ONBOOT=yes
PEERDNS=no
PEERROUTES=yes
NM_CONTROLLED=no
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
Bridge=br02.2 修改网卡的配置
eno16777736 网卡文件内容
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
BRIDGE=br0
UUID=f43fa77d-da7b-4d84-b434-d059a4daf22b
DEVICE=eno16777736
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
systemctl restart network
配置好网络后,重启网络2.3 常见失败原因
- 无法重启网络 # 执行命令systemctl stop NetworkManager
3.安装虚拟机
3.1 创建一个磁盘文件
qemu-img create -f raw /var/lib/libvirt/images/test.raw 25G
创建一个磁盘文件,格式为raw,大小为25g另外一提,文件格式有以下三种:
- raw (类似于VMware的厚置备,文件大小由一开始确定,如上文的命令25g,读写性能最好,不支持快照)
- qed (废弃了)
- qcow2 (类似于VMware的精简置备,文件大小随着虚拟机使用量增加,性能逊色于raw,但是支持快照)
virt-install \
–virt-type=kvm \
–name=centos \ 虚拟机的名称
–vcpus=2 \ 分配的cpu的数目
–memory=2048 \ 分配的内存(md)
–location=/root/CentOS-7-x86_64-DVD-1511.iso \ 镜像的位置
–disk path=/var/lib/libvirt/images/test.raw,size=25 \ 磁盘文件的位置,大小
–network bridge=br0 \ 网桥
–extra-args=‘console=ttyS0’ \
–os-type=linux \
–force创建一个虚拟机
上图为成功的结果
4.常用命令的介绍
4.1 启动与停止虚拟机
virsh list -all # 查看在虚拟机
virsh dumpxml vm-name # 查看kvm虚拟机配置文件
virsh edit vm-name # 修改虚拟机的配置文件(部分选项修改以后start虚拟机就可以生效)
virsh start vm-name # 启动kvm虚拟机
virsh shutdown vm-name # 正常关机4.2 删除一个虚拟机
virsh destroy vm-name # 非正常关机,强制关闭虚拟机(相当于物理机直接拔掉电源)
virsh undefine vm-name # 删除vm的配置文件4.3 其他的一些命令
virsh define file-name.xml # 根据配置文件定义虚拟机
virsh suspend vm-name # 挂起,终止
virsh resumed vm-name # 恢复被挂起的虚拟机
virsh autostart vm-name # 开机自启动vm
virsh console <虚拟机名称> # 连接虚拟机 通过ctrl+] 退出