BlueXIII's Blog

热爱技术,持续学习

0%

CentOS7安装KVM

参考文档

关闭selinux

1
2
setenforce 0
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config

停用防火墙

1
2
systemctl disable firewalld.service
systemctl stop firewalld.service

安装KVM

1
yum -y install qemu-kvm libvirt virt-install bridge-utils 

安装后需要重启系统

开启libvirtd服务

1
2
systemctl start libvirtd
systemctl enable libvirtd

创建虚拟机

1
2
3
4
5
6
7
8
9
10
11
virt-install \
--virt-type=kvm \
--name=centos01 \
--vcpus=2 \
--memory=2048 \
--location=/tmp/CentOS-7-x86_64-Minimal-1511.iso \
--disk path=/home/vms/centos01.qcow2,size=40,format=qcow2 \
--network bridge=br0 \
--graphics none \
--extra-args='console=ttyS0' \
--force

虚拟机管理

1
2
3
4
5
6
7
8
9
10
11
12
virsh list              # 查看在运行的虚拟机
virsh list --all # 查看所有虚拟机
virsh console centos72
virsh start centos72 # 虚拟机开启(启动):
virsh reboot centos72 # 虚拟机重新启动
virsh shutdown centos72 # 虚拟机关机
virsh destroy centos72 # 强制关机(强制断电)
virsh suspend centos72 # 暂停(挂起)KVM 虚拟机
virsh resume centos72 # 恢复被挂起的 KVM 虚拟机
virsh undefine centos72 # 该方法只删除配置文件,磁盘文件未删除
virsh autostart centos72 # 随物理机启动而启动(开机启动)
virsh autostart --disable centos72 # 取消标记为自动开始(取消开机启动)

相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
libvirt-client   # libvirt的客户端,最重要的功能之一就是在宿主机关机时可以通知虚拟机也关机  
gpxe-roms-qemu # 虚拟机 iPXE 的启动固件,支持虚拟机从网络启动
libvirt-python # libvirt 为 python 提供的 API
python-virtinst # 一套 Python 的虚拟机安装工具
qemu-kvm # KVM 在用户空间运行的程序
libvirt # 用于管理虚拟机,它提供了一套虚拟机操作 API
virt-manager # 基于 libvirt 的图像化虚拟机管理软件
virt-viewer # 显示虚拟机的控制台 Console
virt-top # 类似于 top 命令,查看虚拟机的资源使用情况
virt-what # 在虚拟机内部执行,查看虚拟机运行的虚拟化平台
qemu-img # 用于操作虚拟机硬盘镜像的创建、查看和格式转化
qemu-kvm: 主要包含KVM内核模块和基于KVM重构后的QEMU模拟器. KVM模块作为整个虚拟化环境的核心工作在系统空间, 负责CPU和内存的调度. QEMU作为模拟器工作在用户空间, 负责虚拟机I/O模拟.
依赖包 quemu-img: 主要用来QEMU磁盘镜像的管理, 如新建一块磁盘镜像给虚拟机.
libvirt: 提供Hypervisor和虚拟机管理的API.
libvirt-client: KVM客户端命令行管理工具virsh, 负责虚拟机的启动、停止和管理等.
libvirt-daemon: libvirtd守护进, 作为客户端管理工具跟Hypervisor和虚拟机之间的桥梁.
libvirt-daemon-driver-xxx: 从名字来看属于libvirtd服务的驱动文件, 作为libvirtd服务跟Hypervisor不同对象(如qemu模拟器、网络、存储等)间的接口.
bridge-utils: 网桥管理工具包, 负责桥接网络的创建、配置和管理等工作.
virt-install: 创建和克隆虚拟机的命令行工具包.
virt-manager: 图形界面的KVM管理工具.

图形界面

1
2
yum install virt-manager
virt-manager

配置桥接模式

停用NetworkManager

1
2
systemctl stop NetworkManager
systemctl disable NetworkManager

cd /etc/sysconfig/network-scripts
vi ifcfg-br0

1
2
3
4
5
6
7
8
DEVICE=br0
TYPE=Bridge
BOOTRPOTO=static
IPADDR=10.211.55.11
NETMASK=255.255.255.0
GATEWAY=10.211.55.1
DNS1=10.211.55.1
ONBOOT=yes

vi ifcfg-eth0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none
#IPADDR=10.211.55.11
#PREFIX=24
#GATEWAY=10.211.55.1
#DNS1=10.211.55.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=eth0
UUID=9beea3d9-92ac-4f7f-b5eb-c8341f308a7d
ONBOOT=yes
DEVICE=eth0
BRIDGE=br0