CentOS7宿主机搭建kvm虚拟机的流程

时间:2022-12-24 12:36:07

CentOS7环境下搭建kvm虚拟机环境

本文主要介绍如何在CentOS7的宿主机环境中搭建kvm虚拟机,主要分为以下几个步骤:

  • 宿主机的网络配置
  • 宿主机的软件安装和配置
  • 虚拟机模板的安装
  • 虚拟机的克隆
  • 虚拟机的磁盘挂载

宿主机的网络配置

在这里我们选择虚拟机的网络模式为桥接,这样宿主机以外的其它同网段的节点可以直接访问虚拟机。这里只需要在宿主机上配置一个网桥就可以了。
网桥的配置很简单。
1. 查看当前宿主机网络配置所使用的网卡,选择需要桥接的网卡。转去宿主机的/etc/sysconfig/network-scripts目录下。
2. 假如当前配置的物理网卡为eth0,我们将eth0的ip地址桥接出去。cp -a ifcfg-eth0 ifcfg-br0
3. 将ifcfg-eth0文件中配置的ip地址、掩码、网关、DNS等信息统统删掉,并增加一行BRIDGE=br0
4. 将ifcfg-br0文件中的UUID IPV6的信息统统删掉,将TYPE修改为Bridge,NAME和DEVICE修改为br0. 修改完毕之后的内容示例如下。
5. 将网络服务重新启动或者将宿主机重新启动使得配置生效。使用ifconfig命令查看ip地址信息。

网桥配置内容示例

TYPE=Bridge
DEVICE=br0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.200
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=114.114.114.114

宿主机的软件安装和配置

在 软件安装的时候,如何可以连网的话安装非常方便,只需要执行下列命令就可以了
yum -y install qemu-kvm libvirt virt-install bridge-utils
对于不能连网的情况,可以设置iso镜像文件为yum源进行软件安装(这里需要注意的是对于软件源的repo文件,默认情况下是enabled=1,有些情况下需要的手动添加设置为enabled=0)。
安装完毕之后,检查模块是否已经加载
[root@centos7 ~]# lsmod | grep kvm
kvm_intel 170181 0
kvm 554609 1 kvm_intel
执行下列命令:
systemctl start libvirtd.service
systemctl enable libvirtd.service


虚拟机模板的安装

我们先创建一个虚拟机,比如命令如下,。

virt-install --name vm_CentOS7  --ram  5120  --disk path=/var/lib/libvirt/images/vm_CentOS7/system.img,size=16  
--vcpus 4  --graphics vnc 
--cdrom /tmp/CentOS-7.0-1406-x86_64-DVD.iso 
--os-variant none --netwrok bridge=br0

然后使用virtual Machine Manager进行操作系统安装。
安装完毕操作系统之后,我们进行软件的安装和配置


虚拟机的克隆

将一个虚拟机克隆完毕之后,就可以以此为模板进行克隆,其它虚拟机就不必在一一进行创建,安装操作系统等操作。虚拟机克隆操作的代码如下:

#!/usr/bin/env bash
set -eux
set -o pipefail

vm_path="/var/lib/libvirt/images/vm_os"
for (( i = 0; i <= 9; i ++ ))
do
    vm_dir=$vm_path/vm$i
    if [ ! -d $vm_dir ]; then
        mkdir -p $vm_dir
    fi
    virt-clone --connect qemu:///system --original vm00 --name vm$i --file $vm_dir/vm"$i"system.img
done

虚拟机的磁盘挂载

虚拟机挂载磁盘的命令是virsh attach-disk ,
卸载磁盘的命令是virsh detach-disk
同样,为了批量操作方便,我们写个脚本来进行处理

#!/usr/bin/env bash
set -eux
set -o pipefail

vm_path="/var/lib/libvirt/images/vm_disk"
for (( i = 0; i <= 9; i ++ ))
do
    vm_dir=$vm_path/vm$i
    if [ ! -d $vm_dir ]; then
        mkdir -p $vm_dir
    fi
    fallocate -l 15G $vm_dir/disk_15G.img
    virsh attach-disk vm$i --source $vm_dir/disk_15G.img  --target sdb --persistent
#virsh detach-disk --domain vm$i --target sdb --persistent
done

以上就是日常环境中创建虚拟机的流程。