KVM虛擬化
KVM必須開啓虛擬化
環境搭建
網卡名分別是ens33和ens34
ens33 IP 192.168.20.110
ens34 IP 192.168.20.111
我在VMware裏裝了個centos7,把centos7當做宿主機使用
話不多說直接開始使用,詳細原理見百度百科
1.關閉selinux
vi /etc/selinux/config
SELINUX=disabled
2.關閉防火牆
systemctl stop firewalld
systemctl disable firewalld
3.開啓虛擬化
4.查看虛擬機實例是否支持硬件虛擬化技術
egrep '(vmx\|svm)' /proc/cpuinfo
如果有輸出則說明硬件支持虛擬化技術,vmx表示INTER系列CPU支持的類型,svm表示ADM系列CPU支持的類型
5.安裝qemu-kvm
yum install qemu-kvm qemu-img -y
6.安裝完之後,發現qemu-kvm工具並沒有加入到環境變量中去,可以連接到 /usr/sbin中去,方便後續的使用
ln -s /usr/libexec/qemu-kvm /usr/sbin/
7.同時還需要在windows操作機中安裝vncviewer來配合qemu-kvm使用
8.百度下載即可https://www.realvnc.com/en/connect/download/viewer/
安裝完之後是這樣的
9.瞭解qemu-kvm參數
\-h:顯示幫助手冊
\#qemu-system-x86\_64 -h:會顯示所有參數
10.cpu相關參數
\-cpu:指定cpu模型,默認的爲qemu64,可以通過“-cpu ?”查詢當前支持的cpu模型
\-smp:設置虛擬機的vcpu個數。後面還可以加cores threads socke.
11.內存相關參數
\-m:設置虛擬機內存大小,默認單位爲MB。
\-mem-path patch:指定從path路徑表示的臨時文件中爲guest分配內存。
\-mem-prealloc:啓動時即分配全部內存,而不是根據guest請求動態分配,與-mem-path參數配合使用。
\-balloon:開全內存balloon功能,俗稱內存氣球。
12.磁盤相關參數
\-hda、-hdb和cdrom等:設置虛擬機的IDE磁盤和光盤設置。
\-driver:配置驅動器。
\-boot:設置虛擬機的啓動選項
13.網絡相關參數
\-net nic:爲虛擬機創建一個nic網卡
\-net user:讓虛擬機使用不需要管理權限的用戶模式網絡(user mode network).
\-net tap:使用host的tap網絡接口來幫助guest建立網絡。
\-net none:不配置任何網絡設備。
14.圖形顯示參數
\-sdl:使用sdl方式顯示客戶機。
\-vnc:使用vnc方式顯示客戶機。
\-vga:設置虛擬機中的vga顯卡類型,默認爲“-vga cirrus”.
\-nographic:關閉qemu的圖形化界面輸出。
15.其他常用參數
\-noreboot:guest執行reboot操作時,系統關閉後退出qemu-kvm,而不會再啓動虛擬機。
\-no-shutdown:虛擬機shutdown後,系統關閉後,不退出qemu-kvm進程,保持這個進程存在,他的monitor仍然可以用。
\-loadvm:加載快照狀態,與monitor中的“loadvm”命令類似
\-nodefaults:不創建默認的設備。默認會創建一些顯卡、串口、控制檯等設備
\-readconfig:從文件中讀虛擬機設備的配置信息。
\-writeconfig:將虛擬機的配置信息寫到文件中。
\-nodedefconfig:不加載默認的配置文件。默認會加載/use/local/share/qemu下的文件。
\-no-user-config:不加載用戶自定義的配置文件。
\-usbdevice:使用usb設備
創建虛擬機實例
linux(以centos7.3 1611爲例)
-
查看鏡像的信息
qemu-img info CentOS-7-x86_64-Minimal-1611.iso
2.創建虛擬磁盤,指定鏡像的格式、名字、大小
qemu-img create -f qcow2 centos7.qcow2 20G
3. 製作鏡像,將系統安裝盤掛到 cdrom,安裝操作系統
qemu-kvm -m 2048 -boot d -cdrom CentOS-7-x86\_64-Minimal-1611.iso -drive
file=centos7.qcow2 -nographic -vnc :5
注意: CentOS-7-x86_64-Minimal-1611.iso centos7.qcow2
鏡像默認我都是放在root目錄下執行命令,可以放到指定目錄(可以指定絕對路徑)
-m 2048 分配2048M的內存
-boot d 從光盤啓動,d表示光盤,c表示硬盤,a,b表示軟盤,默認是硬盤啓動
-drive file=centos.qcow2 使用虛擬磁盤的文件
-nographic 關閉qemu的圖形化界面輸出
4.執行完之後是這樣的
5.現在用到vnc
viewer了,vnc的端口是從5900開始,我在命令中設置了-vnc:5,所以要連接5905,然後正常裝系統
6.輸入虛擬機地址192.168.20.110 以及 端口5905
7.雙擊打開
8.然後跟正常安裝系統一樣
9.裝完之後kill掉進程或者關機
qemu-kvm創建虛擬機時,已經配置了2個驅動設備,一個是硬盤設備,一個是光驅設備,只有移除光驅設備,系統才能使用磁盤設備啓動
10.啓動已製作的linux鏡像
qemu-kvm -m 2048 -smp 2 -drive file=centos7.qcow2,if=virtio,index=1 -nographic
-vnc :5
-smp 2 處理器的個數,也可以設置cores threds
sockets,即每個cpu的核心數以及cpu的線程數
if=virtio 指定硬盤設備所連接的接口類型
index=1 指定接口類型的標識號
這樣啓動的鏡像是無法與宿主機通網的,需要在宿主機中配置橋接模式
橋接網絡
搭建kvm虛擬機兩塊網卡都是橋接:網卡名分別是ens33和ens34
ens33 IP 192.168.20.110
ens34 IP 192.168.20.111
-
安裝包
yum install bridge-utils -y
-
在宿主機上創建一個網橋
-
把已有的全部刪除重新創建
-
brctl delbr virbr0 \#現將已有的刪除 brctl addbr virbr0 \#重新重建 否則報錯
-
將其綁定到一個可以正常工作的網絡接口上
brctl addif virbr0 ens34 \#綁定第二塊網卡 brctl show 查看一下是否添加成功,注意:virbr0只需要一個ens44 就可以了
6. 新建一個網卡腳本,使虛擬機網卡自動添加網橋
vi /etc/qemu-ifup
\#!/bin/bash
ip link set \$1 up
brctl addif virbr0 \$1
7.同時設置執行權限,開啓橋接網卡
chmod 777 /etc/qemu-ifup
ip link set virbr0 up
-
再次啓動製作的鏡像
qemu-kvm -m 2048 -smp 2 -drive file=centos7.qcow2,if=virtio,index=1 -net nic -net tap -nographic -vnc :5
-net nic 是必需的參數,表明這是一個網卡的配置
-net tap 通過物理的TAP網絡接口連接至vlan n
通過vnc viewer連接之後,虛擬機與宿主機可以互通
給虛擬機配置一個dhcp和ONBOOT=yes 並重啓網卡 ,測試ping 互通
9.同時宿主機中新增了一塊網卡tap0
10.如果重啓系統:stp no
問題解決:stp=no
brctl stp birbr0 on
brctl stp virbr0 on
windows(以win10爲例)
1.步驟與創建Linux鏡像大致相同,需要注意的是,windows鏡像需要配置驅動,下載地址
<https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/>
模擬只下載virtio-win.iso驅動 下載驅動建議去迅雷下載,速度非常快!!!
2.創建虛擬磁盤
qemu-img create -f qcow2 win10.qcow2 20G
注意:執行前一定要確認是否還有qemu-kvm
還在運行,否則創建windows鏡像報錯已存在5905端口
2.創建鏡像
qemu-kvm -m 2048 -boot d -cdrom win10.iso -drive file=virtio-win.iso,media=cdrom
-drive file=win10.qcow2,if=virtio,index=1 -usbdevice tablet -nographic -vnc :5
-usbdevice tablet 添加usb設備,鼠標
選擇驅動(我選擇光驅安裝驅動”-drive file=virtio-win.iso”)
3.這是使用操作機vnc連接
4.然後點擊現在安裝
5.祕鑰跳過
6.我安裝的是win10專業版
7.勾選接受許可條款 →下一步
8.點自定義:僅安裝windows(高級)
9.點擊 加載驅動程序 →確定
10.注意如果安裝win10系統一定 選擇win10→ 下一步
11.新建 → 應用 → 確定→ 下一步
12.立即重啓
13.這一步我沒有截圖,提示按任意鍵繼續
14.點擊以後再說
15.點擊使用快速設置 等待5~6分鐘(虛擬機非常卡)
16上步下一頁和跳過,輸入用戶密碼
17 .安裝完畢之後結束進程 可以收到關機,或者結束進程
結束進程腳本腳本
Vim end.sh
\#!/bin/bash
a=\`ps -aux \| grep qemu-kvm \| awk 'NR==1{print \$2}' \`
/usr/bin/kill -a \$a
Chmod +x end.sh
執行
Source end.sh
18.啓動製作的win10鏡像
qemu-kvm -m 2048 -smp 2 -drive file=win10.qcow2,if=virtio,index=1 -net nic -net
tap -usbdevice tablet -nographic -vnc :5
由於配置了橋接網絡,鏡像與宿主機可以互通
當技術還撐不起你的野心時,那就靜下心了學習吧!!!加油各位
是不是非常簡單,那就點一個贊吧!!!