【Centos7下Qemu+KVM搭建虚拟机环境】
说明:qemu-img 主要用来创建虚拟客户机所需的磁盘, create 表示创建,-f qcow2 表示创建一个格式为 qcow2 的磁盘, /var/lib/libvirt/images/centos7-1.qcow2 表示创建的磁盘名称及磁盘文件,文件路径可自定义你需要安装的盘符,20G 表示该磁盘可用大小。–disk path=/var/lib/libvirt/images/centos7
一、环境准备
1.检查是否支持KVM
这里如果是服务器环境的话,需要查看BIOS里是否打开了虚拟化,Intel X86平台里是叫Intel® VT fot directed I/O,将它置为enable
2. os内查看输出不为空代表已经enable了SRIOV
cat /proc/cpuinfo | egrep 'vmx|svm'
3.grub配置IOMMU vi /etc/default/grub
GRUB_CMDLINE_LINUX="crashkernel=rhgb quiet intel_iommu=on iommu=pt"
在GRUB_CMDLINE_LINUX后面追加
3.1更新gurb,这里要注意一下centos下更新的是如下目录, grub2-mkconfig -o /boot/efi/EFI/centos/grub.config,不然可能导致更新不生效,更新完之后重启服务器
grub2-mkconfig -o /boot/efi/EFI/centos/grub.config
4.关闭SELinux
setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=permissive/g" /etc/selinux/config
5.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
6.搭建桥接网络
6.1桥接工具安装
yum -y install bridge-utils
6.2 增加宿主机的br0网络配置
cat >/etc/sysconfig/network-scripts/ifcfg-br0<<EOF
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
DEVICE=br0
ONBOOT=yes
USERCTL=no
EOF
6.3编辑修改网络设备脚本文件,修改usb网卡设备配置,增加如下配置
vi /etc/sysconfig/network-scripts/ifcfg-enp3 # 这里是你自己的网卡名称
BRIDGE=br0
6.4.重启网络
systemctl restart network
6.5.校验桥接接口,并查看br0的IP地址
7.宿主机KVM安装
7.1安装KVM
yum -y install qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools virt-install
kvm相关安装包及其作用: qemu-kvm 主要的KVM程序包 python-virtinst 创建虚拟机所需要的命令行工具和程序库 virt-manager GUI虚拟机管理工具 virt-top 虚拟机统计命令 virt-viewer GUI连接程序,连接到已配置好的虚拟机 libvirt C语言工具包,提供libvirt服务 libvirt-client 为虚拟客户机提供的C语言工具包 virt-install 基于libvirt服务的虚拟机创建命令 bridge-utils 创建和管理桥接设备的工具
7.2 启动与开机自启动
systemctl enable libvirtd
systemctl start libvirtd
7.3.如果想在宿主机通过virsh console命令进入虚拟客户机,如下配置并重启机器
grubby --update-kernel=ALL --args="console=ttyS0"
reboot
8.通过 virt-install 来安装一个虚拟客户机
8.1.在kvm libvirt 中,有两个工具用来安装虚拟客户机,virt-manager 和 virt-install;前者是通过图形界面安装,后者则是通过命令行的形式进行安装虚拟客户机 。本节主要记录下通过 virt-install 安装客户机的步骤。后面再讲到通过virt-manager安装步骤
8.2.创建 guest 所需的磁盘
qemu-img create -f qcow2 /var/lib/libvirt/images/sriov.qcow2 20G
说明:qemu-img 主要用来创建虚拟客户机所需的磁盘, create 表示创建,-f qcow2 表示创建一个格式为 qcow2 的磁盘, /var/lib/libvirt/images/centos7-1.qcow2 表示创建的磁盘名称及磁盘文件,文件路径可自定义你需要安装的盘符,20G 表示该磁盘可用大小。
8.3.virt-install 安装虚拟客户机
virt-install --virt-type=kvm --name=sriov-2 --vcpus=1 --memory=1024 --location=/home/CentOS-7-x86_64-Everything-2009.iso --disk path=/var/lib/libvirt/images/centos7-1.qcow2,size=10,format=qcow2 --network bridge=br0 --graphics none --extra-args='console=ttyS0' --force
注意:.iso镜像文件一定放到/home 或者根目录重新创建目录,不然会因为权限报错,无法创建虚拟机。
命令说明:
virt-install
–virt-type=kvm \ 虚拟机类型
–name=centos7-1 \ 表示虚拟客户机名称
–vcpus=2 \ 表示给虚拟客户机分配的虚拟CPU数量
–memory=1024 \ 内存大小
–location=/home/CentOS-7-x86_64-Everything-2009.iso \ 指定客户机安装镜像文件路径
–disk path=/var/lib/libvirt/images/centos7-1.qcow2,size=15,format=qcow2 \ 客户端磁盘的位置及格式
–network bridge=br0 \ 客户端网卡配置(机器默认会有virbr0,这里的br0为上面步骤配置过的,也可以设置其他名称)
–graphics none \ 不用图像配置界面
–extra-args=‘console=ttyS0’ \ 表示使用 console ttyS0 进行管理
–force
上面创建虚拟机命令最终需要你配置系统基础设置,带 [!] 基本都是要配置的,按照顺序往下配置,按对用的数字以此进行设置。
基本设置如下:
语言保持不变
时区选择上海
安装源选择本地镜像
软件可以选择最小安装,最小安装的话需要进系统自己配置,可以按照自己需要的。
安装磁盘选择自动分别,且使用LVM逻辑卷管理
关闭Kdump,虚拟机关系不大
网络先不管,安装之后处理
Root 密码设置为 123456
不创建新用户
最后,按下b开始安装过程。
9.查看连接虚拟机
9.1.连接虚拟机 virsh list --all
9.2.连接虚拟机
virsh console sriov-1
退出命令:
ctrl + ]
9.3.虚拟机的其他管理
虚拟机的其他管理(在宿主机上)
virsh start centos7-1 # 虚拟机开启(启动):
virsh reboot centos7-1 # 虚拟机重新启动
virsh shutdown centos7-1 # 虚拟机关机
virsh destroy centos7-1 # 强制关机(强制断电)
virsh suspend centos7-1 # 暂停(挂起)KVM 虚拟机
virsh resume centos7-1 # 恢复被挂起的 KVM 虚拟机
virsh undefine centos7-1 # 该方法只删除配置文件,磁盘文件未删除
virsh autostart centos7-1 # 随物理机启动而启动(开机启动)
virsh autostart --disable centos7-1 # 取消标记为自动开始(取消开机启动)
9.4.虚拟机克隆
virsh shutdown centos-1
virt-clone -o centos-1 -n centos-2 -f /mnt/nvm1/centos.qcow2
-o 要克隆的原虚拟机名字
-n 克隆后新虚拟机的名字
-f 新虚拟机磁盘镜像文件的存储位置
9.5.虚拟机快照
virsh list --all //列出所有虚拟机
#virsh shutdown sriov-1 //关闭sriov-1虚拟机
#virsh snapshot-create-as sriov-1 sriov-1-s1 //为虚拟机sriov-1创建快照sriov-1-s1
virsh snapshot-list sriov-1 //列出虚拟机test1的所有快照
#virsh snapshot-info sriov-1 sriov-1-s1 //查看快照的详细信息
#virsh snapshot-delete sriov-1sriov-1-s1 //删除虚拟机sriov-1的快照sriov-1-s1
// 恢复快照
virsh shutdown centos7-5
virsh snapshot-revert centos7-5 centos7-5-s1
#virsh start centos7-5
更多推荐
所有评论(0)