Centos7 搭建KVM並創建Linux Windows虛擬機


一、安裝KVM

查看系統版本

cat /etc/redhat-release

關閉防火牆及selinux

systemctl disable firewalld.service
查看防火牆狀態   
systemctl status firewalld
查看開機是否啟動防火牆服務
systemctl is-enabled firewalld

1. 驗證CPU是否支持KVM

如果結果中有vmx(Intel)或svm(AMD)字樣,就說明CPU支持的。

egrep '(vmx|svm)' /proc/cpuinfo

2,關閉SELinux

將 /etc/selinux/config 中的 SELinux=enforcing 修改為 SELinux=disabled

sed -i 's/SELinux=enforcing/SELinux=disabled/' /etc/selinux/config

3. 最小安裝的CentOS安裝一些最基本的包

(可選項,因為我是剛安裝好的CentOS,所以為了下面方便點,先把一些必要的工具安裝下)

yum install epel-release net-tools vim unzip zip wget ftp -y

4. 安裝KVM及其依賴項

yum install qemu-kvm libvirt virt-install bridge-utils -y

5. 驗證安裝結果,下圖說明已經成功安裝了

lsmod | grep kvm

圖片

6. 開啟kvm服務,並且設置其開機自動啟動

systemctl start libvirtd
systemctl enable libvirtd

7. 查看狀態操作結果

systemctl status libvirtd

8. 配置kvm 網絡

簡單介紹下kvm的網絡模式分為4種

本文檔采用的是橋接模式,下期會說下NAT模式

1. 隔離模式:虛擬機之間組建網絡,該模式無法與宿主機通信,無法與其他網絡通信,相當於虛擬機只是連接到一台交換機上。

  1. 路由模式:相當於虛擬機連接到一台路由器上,由路由器(物理網卡),統一轉發,但是不會改變源地址。
  2. NAT模式:在路由模式中,會出現虛擬機可以訪問其他主機,但是其他主機的報文無法到達虛擬機,而NAT模式則將源地址轉換為路由器(物理網卡)地址,這樣其他主機也知道報文來自那個主機,在docker環境中經常被使用。
  3. 橋接模式:在宿主機中創建一張虛擬網卡作為宿主機的網卡,而物理網卡則作為交換機。

1. 隔離模式:

圖片

2. 路由及NAT模式:

圖片

  1. 橋接模式:

圖片

接下來操作網卡橋接

先將 /etc/sysconfig/network-scripts/ 目錄下的網卡配置文件備份一份

cp -r /etc/sysconfig/network-scripts/ /data/networkbak/

a. 創建 netifcfg-br0 文件

(創建的br0文件的IP地址要和物理網卡的IP地址一致,命令 ipconfig查看物理網卡將不會顯示IP)

內容如下:

[root@bogon ~]# vi /etc/sysconfig/network-scripts/ifcfg-br0
TYPE=Bridge
BOOTPROTO=none
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=no
NAME=br0
DEVICE=br0
ONBOOT=yes
IPADDR=192.168.1.130
NETMASK=255.255.255.0
GATEWAY=192.168.1.254
DNS1=192.168.1.254
DNS2=114.114.114.114

b. 修改物理網卡eno1

vi /etc/sysconfig/network-scripts/ifcfg-eno1
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="static"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="YES"
NAME="eno1"
UUID="bb40d726-8d67-4187-90c3-eb61e1b42d61"
DEVICE="eno1"
ONBOOT="yes"
IPADDR="192.168.1.130"
NETAMSK=255.255.255.0
GATEWAY="192.168.1.1"
DNS1="221.6.4.66"
IPV6_PRIVACY="no"
BRIDGE=br0

c. 重啟網絡服務

systemctl restart networ

驗證操作結果

若是橋接成功即可看到多了一塊網卡br0

[root@kvm network-scripts]# systemctl restart network
[root@kvm network-scripts]# ip a
1: lo: <loopback,up,lower_up> mtu 65536 qdisc noqueue state UNKNOWN
    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
2: eno1: <broadcast,multicast,up,lower_up> mtu 1500 qdisc pfifo_fast master br0 state UP qlen 1000
    link/ether 00:0c:29:7b:9f:8c brd ff:ff:ff:ff:ff:ff
5: br0: <broadcast,multicast,up,lower_up> mtu 1500 qdisc noqueue state UP
    link/ether 00:0c:29:7b:9f:8c brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.130/24 brd 192.168.1.255  scope global br0
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;valid_lft&nbsp;forever&nbsp;preferred_lft&nbsp;forever

二、安裝linux虛擬機

1.安裝linux虛擬機的准備工作

linux 鏡像(文檔中選的鏡像是centos 7.2)

kvm 已經搭建完成並啟動

vnc 客戶端 (獲取方法會寫在文章末尾處)

創建鏡像存放目錄

mkdir /home/iso

創建vm文件存放路徑

mkdir&nbsp;/data/kvm

2. 准備操作系統安裝鏡像文件

在本文中將使用和宿主環境一樣的CentOS7.2,把該文件放到 /home/iso 目錄下

方法很多種,這里不詳細說明

3.使用 virt-install 創建linux虛擬機

[root@bogon data]# virt-install --name njvm01 --boot network,cdrom,menu=on --ram 6411 --vcpus=1 --os-variant=rhel6 --accelerate --cdrom=/mnt/udisk/CentOS-7-x86_64-DVD-1708.iso --disk path=/data/kvm-bak/vm01.img,size=200,bus=virtio --bridge=br0,model=virtio --autostart --vnc --vncport=5910 --vnclisten=0.0.0.0
WARNING  無法連接到圖形控制台:沒有安裝 virt-viewer。請安裝 'virt-viewer' 軟件包。WARNING  沒有控制台用於啟動客戶機,默認為 --wait -1
開始安裝......
正在分配 'vm01.img'                                   | 200 GB  00:00:00
ERROR    internal error: process exited while connecting to monitor: 2018-01-31T06:20:00.727909Z qemu-kvm: -drive file=/mnt/udisk/CentOS-7-x86_64-DVD-1708.iso,format=raw,if=none,id=drive-ide0-0-0,readonly=on: could not open disk image /mnt/udisk/CentOS-7-x86_64-DVD-1708.iso: Could not open '/mnt/udisk/CentOS-7-x86_64-DVD-1708.iso': Permission denied
正在刪除磁盤 'vm01.img'                             |    0 B  00:00:00
域安裝失敗,您可以運行下列命令重啟您的域:'virsh start virsh --connect qemu:///system start njvm05'
否則請重新開始安裝。

不要理會里面提示的錯誤,接着往下走

4. 打開防火牆上的5910端口

防火牆若關閉請忽略

firewall-cmd&nbsp;&nbsp;--add-port=5910/tcp&nbsp;--permanent
firewall-cmd --reload

5. 查看虛擬機狀態

Virsh list --all
virsh&nbsp;start&nbsp;njvm01

6.開啟虛擬機  然后打開VNC

使用VNC輸入宿主機IP地址 加上端口號 輸入虛擬機名字  打開

然后就可以開始安裝 這里不詳細介紹

圖片

三、安裝windows虛擬機

在kvm中,安裝windows需要使用virtio驅動,這個驅動是安裝windows中必須要的,否則就會找不到硬盤,我們先下載驅動。

1.宿主機安裝所需驅動

wget https://fedorapeople.org/groups/virt/virtio-win/virtio-win.repo -O /etc/yum.repos.d/virtio-win.repo
yum install -y virtion-win

2.使用 virt-install 創建linux虛擬機

virt-install&nbsp;--name=win2k12&nbsp;&nbsp;--ram=8192&nbsp;--vcpus=2&nbsp;--os-type=windows&nbsp;--os-variant=win2k12&nbsp;&nbsp;--disk&nbsp;path=/home/kvm/data/win2k12.img,size=200&nbsp;--accelerate&nbsp;--cdrom&nbsp;/home/kvm/iso/cn_windows_server_2012_r2_x64_dvd_2707961.iso&nbsp;--vnc&nbsp;--vncport=5911&nbsp;--vnclisten=0.0.0.0&nbsp;--network&nbsp;bridge=br0,model=virtio&nbsp;--noautoconsole&nbsp;

3.開啟虛擬機vnc 鏈接

圖片

安裝過程不細說 說下容易出錯的地方

若在安裝的時提示找不到硬盤

解決方法,掛載win鏡像

virsh change-media win2k12vm01  hdb /usr/share/virtio-win/virtio-win.iso

圖片

圖片

圖片

圖片

***重點***

掛載軟驅 (硬盤驅動 網卡驅動等)

注釋:網卡驅動要在系統中裝好之后掛載 不然裝系統的時候會提示找不到光盤鏡像

在宿主機中執行命令

virsh change-media win2k12  hdb /usr/share/virtio-win/virtio-win.iso

VMTools工具安裝完成后,使用如下命令卸載掉掛載的VMTools工具:

a.如果是Linux虛擬機,執行如下命令卸載VMTools工具:

virsh change-media 【虛擬機ID】 --eject 【vmtools-linux.iso文件全路徑】

b.如果是Windows虛擬機,執行如下命令卸載VMTools工具:

virsh change-media 【虛擬機ID】 --eject 【vmtools-windows.iso文件全路徑】

用掛載的方式只是自己摸索出來的,或者有更好的方法可以留言交流


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM