kvm 虚拟化
KVM (用于基于内核的虚拟机)是适用于x86硬件上的linux 的完整虚拟化解决方案,包含虚拟化扩展(Inter VT 或AMD-V)。它由一个可加载的内核模块kvm.ko 和一个处理器特定模块kvm-intel.ko或kvm--amd.ko组成
使用KVM,可以运行多个未经修改的linux或windows映像的虚拟机。每个虚拟机都有私有的虚拟化硬件:网卡,磁盘,图形适配器等
KVM是开源软件。自 2.6.20 起,KVM 的内核组件包含在主线 Linux 中。自 1.3 起,KVM 的用户空间组件包含在主线 QEMU 中
KVM虚拟化系统由三个主要组件组成:
-
linux模块
检查kvm模块是否已经加载:lsmod | grep kvm
如果未加载需要手动加载: modprobe kvm
modprobe kvm_intel
modeprobe kvm_amd
-
用户空间应用
-
访客Virtio驱动程序
centos 部署虚拟化kvm 所需软件:
yum install qemu-img qemu-kvm libvirt libvirt-python virt-install libvirt-client
管理已安装虚拟机 libvirt-client 提供virsh
安装虚拟机程序 virt-install
提供用户级的kvm模拟器,方便主机与客户机虚拟机之间通信 qemu-kvm
提供客户机磁盘管理 qemu-img
提供用于与 hypervisor 和主机系统进行交互的服务器和主机端的库,以及用于处理库调用、管理虚拟机和控制 hypervisor 的 libvirtd
守护进程 libvirt
它允许使用 Python 编程语言编写的应用程序可以使用 libvirt API 提供的接口。 libvirt-python
安装虚拟机
从iso镜像安装虚拟机
virt-install \
--name guest1 \
--memory 2048 \
--vcpus 2 \
--disk size=8 \
--cdrom /path/to/rhel7.iso \
--os-variant rhel7
从网络安装
virt-install \
--name guest1-rhel7 \
--memory 2048 \
--vcpus 2 \
--disk size=8 \
--location http://example.com/path/to/os \
--os-variant rhel7
PXE 安装虚拟机
virt-install \
--name guest1-rhel7 \
--memory 2048 \
--vcpus 2 \
--disk size=8 \
--network=bridge:br0 \
--pxe \
--os-variant rhel7
使用 kickstart 文件安装虚拟机
virt-install \
--name guest1-rhel7 \
--memory 2048 \
--vcpus 2 \
--disk size=8 \
--location http://example.com/path/to/os \
--os-variant rhel7 \
--initrd-inject /path/to/ks.cfg \
--extra-args="ks=file:/ks.cfg console=tty0 console=ttyS0,115200n8"