KVM虛擬化qemu-kvm(製作格式鏡像qcow2)

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爲例)

  1. 查看鏡像的信息

    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掉進程或者關機

[外鏈圖片轉存失敗(img-hcJbhUog-1565085407478)(media/7737bdb80e3c86cef32bbd9ba182eeb4.png)]

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 指定接口類型的標識號

[)(media/12c6d0fb470a6c340fd246999439adeb.png)]

這樣啓動的鏡像是無法與宿主機通網的,需要在宿主機中配置橋接模式

橋接網絡

搭建kvm虛擬機兩塊網卡都是橋接:網卡名分別是ens33和ens34

	ens33 IP 192.168.20.110
	
	ens34 IP 192.168.20.111
  1. 安裝包

    yum install bridge-utils -y
    
  2. 在宿主機上創建一個網橋

  3. 把已有的全部刪除重新創建

  4. ./media/image13.png

    brctl delbr virbr0 \#現將已有的刪除
    
    brctl addbr virbr0 \#重新重建 否則報錯
    
  5. 將其綁定到一個可以正常工作的網絡接口上

    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
  1. 再次啓動製作的鏡像

     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

[外鏈圖片轉存失敗(img-wiQiAxgR-1565085407482)(media/3ac852acd5baacf2d90c3249ac4b1e7c.png)]

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/>

[外鏈圖片轉存失敗(img-VBxh0UXA-1565085407482)(media/917949f4f92f68ffe6073f313fb2f59c.png)]

模擬只下載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”)

[外鏈圖片轉存失敗(img-GnRe3Ksv-1565085407483)(media/dfe10e8aef7f4fc253357b4d526850a0.png)]

3.這是使用操作機vnc連接

[外鏈圖片轉存失敗(img-RZcZKs7c-1565085407484)(media/63a14dbe0514ec3aafdbef1f310185ae.png)]

4.然後點擊現在安裝

5.祕鑰跳過

6.我安裝的是win10專業版

7.勾選接受許可條款 →下一步

8.點自定義:僅安裝windows(高級)

9.點擊 加載驅動程序 →確定

[外鏈圖片轉存失敗(img-Ekf9wHnt-1565085407484)(media/886697ee2247ae6c7107e52caecb1145.png)]

10.注意如果安裝win10系統一定 選擇win10→ 下一步

[外鏈圖片轉存失敗(img-omjOLD4B-1565085407485)(media/602d8876686e90deeb685364246423e7.png)]

11.新建 → 應用 → 確定→ 下一步

[外鏈圖片轉存失敗(img-FhxQGhrz-1565085407485)(media/c05eb7bac07aaa84310b4863f6fe2618.png)]

12.立即重啓

13.這一步我沒有截圖,提示按任意鍵繼續

14.點擊以後再說

[外鏈圖片轉存失敗(img-73GzjqBZ-1565085407486)(media/00fa8265065175b22b28b976a7a31b06.png)]

15.點擊使用快速設置 等待5~6分鐘(虛擬機非常卡)

[外鏈圖片轉存失敗(img-b3MECghS-1565085407486)(media/49a26f0c8723bec73ee755778dc75f8f.png)]

16上步下一頁和跳過,輸入用戶密碼

[外鏈圖片轉存失敗(img-U3Wo843z-1565085407487)(media/dae2d3a8537706f695f8efdf46bcd22b.png)]

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

[外鏈圖片轉存失敗(img-Dn49TwuQ-1565085407488)(media/1b45068ea5a0f2b638582d0a70edf866.png)]

由於配置了橋接網絡,鏡像與宿主機可以互通

	當技術還撐不起你的野心時,那就靜下心了學習吧!!!加油各位
	
	是不是非常簡單,那就點一個贊吧!!!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章