您的足迹:首页 > 技术文章 >CentOS 7部署KVM虚拟化环境(中)安装配置

CentOS 7部署KVM虚拟化环境(中)安装配置


我们曾如此渴望命运的波澜,到最后才发现:人生最曼妙的风景,竟是内心的淡定与从容。我们曾如此期盼外界的认可,到最后才知道:世界是自己的,与他人毫无关系。 —— 杨绛

(敬畏世纪人生总结下来的感悟)
环境准备

硬件准备

由于是在实验环境中部署KVM,所以对硬件资源的要求并不算特别高。
以下是本人的KVM主机硬件配置:

CPU: Intel Core i5(双核四线程)

MEM: 32GB

Disk: 1.5TB

以上配置跑6~8台虚拟机(1vCPU,2GB内存)压力不大,主要是环境中的CPU配置过低(伪4核),如果按照内存和硬盘的配置,跑个十来台完全没问题。

虚拟化支持

KVM虚拟化需要CPU的硬件虚拟化加速的支持,在本环境中为Intel的CPU,使用的Intel VT技术。(该功能在有些主机里面可能需要去BIOS里面开启)

软件准备

操作系统: CentOS 7.2

(CentOS已预装,本篇内容不涵盖CentOS的安装过程)

IP地址: 192.168.2.10

软件包: CentOS自带yum源

关闭防火墙

关闭SELinux 

开始安装

检查CPU虚拟化支持

# grep -E 'svm|vmx' /proc/cpuinfo
vmx 为Intel的CPU指令集
svm 为AMD的CPU指令集


安装软件包

# yum install qemu-kvm libvirt virt-install virt-manager 

在这条命令中我们安装了qemu-kvm,libvirt,virt-install,virt-manager这四个包,下面了解一下这4个包到底是干啥的。

qemu-kvm

该软件包主要包含KVM内核模块和基于KVM重构后的QEMU模拟器。KVM模块作为整个虚拟化环境的核心工作在系统空间,负责CPU和内存的调度。QEMU作为模拟器工作在用户空间,负责虚拟机I/O模拟。

依赖包qemu-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管理工具。

当然安装KVM的依赖包远不止这些,由于本人水平有限,所以仅挑了一些跟KVM架构有主要联系的软件包进行描述

基本配置

激活并启动libvirtd服务

# systemctl enable libvirtd 

# systemctl start libvirtd 


配置桥接网络

默认情况下所有虚拟机只能够在host内部互相通信,如果需要通过局域网访问虚拟机,需要创建一个桥接网络。

1.停止NetworkManager服务

# systemctl stop NetworkManager
该服务开启的情况下直接去修改网卡的配置文件会造成信息的不匹配而导致网卡激活不了。

2.修改以太网卡配置文件

(修改前先备份)
# cd /etc/sysconfig/network-scripts
# vi ifcfg-eno1

DEVICE=eno1  

BOOTPROTO=static  

ONBOOT=yes  

BRIDGE=br0  

HWADDR=b8:ae:ed:7d:9d:11  

NM_CONTROLLED=no

原有的以太网络不需要配置IP地址,指定桥接的网卡设备(如br0)即可。

3.修改桥接网卡配置文件

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

TYPE=Bridge  

HWADDR=b8:ae:ed:7d:9d:11  

BOOTPROTO=static  

DEVICE=br0  

ONBOOT=yes  

IPADDR=192.168.2.10   

NETMASK=255.255.255.0  

GATEWAY=192.168.2.1  

DNS1=202.103.24.68  

NM_CONTROLLED=no

桥接网卡的需要配置IP地址,当然也可以用DHCP。需要注意的是桥接网卡br0中DEVICE的名字一定要与以太网卡eno1中BRIDGE对应。


NM_CONTROLLED参数表示该网卡是否被NetworkManager服务管理,设置为no的话就是不接管,那么之前不用停止NetworkManager服务。(未经测试)

开启主机IP地址转发

# vi /etc/sysctl.conf
net.ipv4.ip_forward = 1
# sysctl -p 

(这里有个小疑问就是,如果是桥接网络是否依然需要开启IP转发?)

重启网络服务

# systemctl restart network
# systemctl restart NetworkManager 

验证安装

验证网络

# ip a

eno1:   mtu 1500 qdisc pfifo_fast master br0 state UP

br0:      mtu 1500 qdisc noqueue state UP 
            inet 192.168.2.10/24 brd 192.168.2.255 scope global br0

截取了部分输出,eno1和br0网卡都处于激活状态,eno1桥接到br0,br0被分配了静态IP地址。


验证内核模块

# lsmod |grep kvm

kvm
kvm_intel

以上输出说明内核模块加载成功,其中:

kvm作为核心模块,协同QEMU实现整个虚拟化环境的正常运行。

kvm_intel作为平台(Intel)独立模块,激活KVM环境的CPU硬件虚拟化支持。

尝试连接Hypervisor

# virsh connect --name qemu:///system

# virsh list

    Id    Name                    State
----------------------------------------

(由于没有创建虚拟机,所以没有条目显示)


创建虚拟机

# virt-manager
使用virt-manager图形化工具很容易对KVM进行管理,但因朋友说这种居然在Linux下还使用图形界面的做法实在太弱,本人也羞于在这里一步步演示了,相信只要接触过虚拟机的朋友都能够轻松上手。


自此整个KVM的虚拟化环境已经部署完成,如果不是本人废话比较多,可能码一堆不到20行的命令就行了…

本博客所有文章如无特别注明均为原创。作者:admin复制或转载请以超链接形式注明转自 站长部落
原文地址《CentOS 7部署KVM虚拟化环境(中)安装配置

相关推荐

发表评论

路人甲 表情
看不清楚?点图切换 Ctrl+Enter快速提交

网友评论(0)