kvm虛擬化環境搭建
由於要做畢設了,不得不要搭建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 root6242 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虛擬化環境搭建