1. 程式人生 > >kvm虛擬化環境搭建

kvm虛擬化環境搭建

pass hyper 資源 不能 mov ctrl+ 就是 peb 準備

由於要做畢設了,不得不要搭建Linux環境,自己做的課題是ELK日誌分析相關。因此要大幹一場,一下子計劃采用近10臺機器來做試驗,但由於我這裏只有三臺物理機,所以我就搞起了虛擬化kvm。在Linux裏面要安裝三臺Linux系統。滿足實驗的要求來。本次我們講解的環境全部都是在文本界面下安裝,沒有使用圖形桌面和VNC工具圖形展示。

1、首先是準備一臺物理機,安裝上去Linux操作系統,這裏使用centos7.5版本。在安裝kvm之前需要檢測系統CPU是否支持虛擬化

[root@chaofeng ~]# grep -Ei vmx|svm /proc/cpuinfo
flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf eagerfpu pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt aes xsave avx hypervisor lahf_lm epb tpr_shadow vnmi ept vpid xsaveopt dtherm ida arat pln pts

如果有過濾出vmx或svm關鍵字就代表支持虛擬化,vmx是Intel的CPU,svm是AMD的CPU

2、開始安裝kvm環境,此處需要epel的yum源,如果系統沒有安裝,可使用yum install -y epel-release來一鍵安裝或者安裝阿裏雲的epel源(點擊)也可以。

yum install -y kvm qemu-kvm python-virtinst libvirt libvirt-python virt-manager libguestfs-tools bridge-utils virt-install

此處稍微花費點時間。

3、安裝好之後,我們設置為開機啟動項

#systemctl enable libvirtd
#reboot

重啟過後檢測是否加載kvm模塊

[root@chaofeng boot]# lsmod | grep kvm
kvm_intel             183705  9 
kvm                   615914  1 kvm_intel
irqbypass              13503  7 kvm

查看kvm程序有沒有真正啟動。

[root@chaofeng network-scripts]# ps aux | grep libvirtd
root      
6242 0.0 0.7 1346152 11424 ? Ssl 06:46 0:01 /usr/sbin/libvirtd root 7910 0.0 0.0 112712 976 pts/4 S+ 07:53 0:00 grep --color=auto libvirtd

如果沒有的話,我們就使用systemctl start libvirtd來啟動程序。

4、配置網卡

我自己選擇的是橋接模式組件網絡,因為我需要連同各個不同物理機上的虛擬機才行。關於橋接模式與NAT模式的區別,大家可以自行百度查看。我這裏僅僅列出實現的方法。

在橋接模式中,三臺虛擬機使用的是同一個橋接網卡。

3.1、首先是復制一份物理網卡ens33的配置文件並命名為ens33

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-br0

3.2、修改ens33網卡配置文件

[root@chaofeng network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=ccecf4a6-b71e-43ec-bd26-78af2a3f6ba5
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.15.10
NETMASK=255.255.255.0
GATEWAY=192.168.15.2
DNS1=192.168.1.1
BRIDGE=br0

主要是增加最後一行內容

3.3、修改br0配置文件

[root@chaofeng network-scripts]# cat ifcfg-br0
TYPE=Bridge
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=br0
#UUID=ccecf4a6-b71e-43ec-bd26-78af2a3f6ba5
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.15.11
NETMASK=255.255.255.0
GATEWAY=192.168.15.2
DNS1=192.168.1.1

主要是修改上面的三處。我這裏是配置為靜態的IP,也可以配置為dhcp自動獲取ip地址。

然後重啟網卡。

systemctl  restat   network

3.4、然後查看一下網卡信息

[root@chaofeng network-scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
    link/ether 00:0c:29:ed:39:ac brd ff:ff:ff:ff:ff:ff
3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:0c:29:ed:39:ac brd ff:ff:ff:ff:ff:ff
    inet 192.168.15.11/24 brd 192.168.15.255 scope global noprefixroute br0
       valid_lft forever preferred_lft forever
    inet6 fe80::adfd:e8a9:917c:55/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:77:f5:af brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:77:f5:af brd ff:ff:ff:ff:ff:ff
6: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN group default qlen 1000
    link/ether fe:54:00:30:5f:1b brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fe30:5f1b/64 scope link 
       valid_lft forever preferred_lft forever
7: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN group default qlen 1000
    link/ether fe:54:00:92:a1:d8 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fe92:a1d8/64 scope link 
       valid_lft forever preferred_lft forever
8: vnet2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UNKNOWN group default qlen 1000
    link/ether fe:54:00:14:45:85 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fe14:4585/64 scope link 
       valid_lft forever preferred_lft forever

我們主要關註的是ens33網卡和br0橋接網卡。你會發現ens33原來的ip是不顯示的,這是因為br0網卡占用了,並且此時物理機上的Linux系統的ip是被br0覆蓋掉的,原先的ip地址不能再使用了。此時我們看到br0的ip地址就是這臺物理機ip地址,這不是虛擬機的地址,這點大家要明白。況且我還沒有開始創建虛擬機。

剩下的比如virbr0則表示nat的地址,這個我們暫時不管,我們也不使用這種網絡模式。下面的vnet也不清楚是什麽東西。

4、開始安裝虛擬機。

virt-install -name=elk01 --memory=2048,maxmemory=3072 --vcpus=2,maxvcpus=2 --os-type=linux --os-variant=rhel7 --location=/data/CentOS-7-x86_64-DVD-1708.iso --disk path=/data/elk01.img,size=10 --bridge=br0 --graphics=none --console=pty,target_type=serial --extra-args="console=tty0 console=ttyS0"

解釋說明一下:

--name 指定虛擬機的名稱
--memory 指定分配給虛擬機的內存資源大小
maxmemory 指定可調節的最大內存資源大小,因為KVM支持熱調整虛擬機的資源
--vcpus 指定分配給虛擬機的CPU核心數量
maxvcpus 指定可調節的最大CPU核心數量
--os-type 指定虛擬機安裝的操作系統類型
--os-variant 指定系統的發行版本
--location 指定ISO鏡像文件所在的路徑,支持使用網絡資源路徑,也就是說可以使用URL
--disk path 指定虛擬硬盤所存放的路徑及名稱,size 則是指定該硬盤的可用大小,單位是G
--bridge 指定使用哪一個橋接網卡,也就是說使用橋接的網絡模式
--graphics 指定是否開啟圖形
--console 定義終端的屬性,target_type 則是定義終端的類型
--extra-args 定義終端額外的參數

4.1、接下來要開始安裝了。

技術分享圖片

只要我們看到的中括號裏面的“!”號,都表示要進行設置。這些參數與我們在vmwear虛擬機裏面安裝都是一模一樣的,只不過這裏沒有圖形化,全部都是文本而已。當你選擇好一個之後,中括號裏面會變成“x”號,說明我們已經設置好這一項了。我一般都設置上圖中的1、2、3、5、8這五項內容。

依次選擇好之後,我們就可以按下“b”鍵開始安裝了。當看到下圖界面的時候,表示安裝成功了,

技術分享圖片

此時按下回車鍵,重啟虛擬機就可以使用了。

技術分享圖片

在虛擬機裏面,我們按下 ctrl+] 組合按鍵表示退出當前虛擬機,但這並不是關機虛擬機。

5、

kvm虛擬化環境搭建