首頁 > 軟體

CentOS 7下搭建KVM虛擬機器環境

2020-06-16 16:34:56

本文主要介紹如何在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

以上就是日常環境中建立虛擬機器的流程。


IT145.com E-mail:sddin#qq.com