㈠ 如何在kvm伺服器上創建虛擬機
創建虛擬機鏡像
要在一台host上跑起一個虛擬機一般需要兩個步驟:
第一步:創建虛擬機鏡像
qemu-img
create
-f
raw
/images/vm1.raw
8G
qmeu-img創建的鏡像是一個稀疏文件,也就是說剛創建出來的文件並沒有8G,它會隨著數據的增多慢慢增加,直到8G
第二步:啟動虛擬機
kvm
/imges/vm1.raw
運行結果:
因為鏡像裡面沒有任何內容,所以提示找不到可引導設備。
使用qemu-img管理鏡像
qemu-img基本命令
上節介紹了使用qemu-img創建鏡像,這一節將會介紹qemu-img在鏡像管理上的強大功能。
qemu-img有很多命令,包括下面常用的,當然qemu-img
-h你懂得。
info
查看鏡像的信息
create
創建鏡像
check
檢查鏡像
convert
轉化鏡像的格式,(raw,qcow
……)
snapshot
管理鏡像的快照
rebase
在已有的鏡像的基礎上創建新的鏡像
resize
增加或減小鏡像大小
創建鏡像
qemu-img
create
-f
<fmt>
-o
<options>
<fname>
<size>
舉例:
qemu-img
create
-f
raw
-o
size=4G
/images/vm2.raw
hzgatt@hzgatt:~/images$
ll
total
0-rw-r--r--
1
hzgatt
hzgatt
4.0G
6月
29
14:11
vm2.raw
hzgatt@hzgatt:~/images$
ll
-s
total
00
-rw-r--r--
1
hzgatt
hzgatt
4.0G
6月
29
14:11
vm2.raw
hzgatt@hzgatt:~/images$
qemu-img
info
vm2.raw
image:
vm2.raw
file
format:
raw
virtual
size:
4.0G
(4294967296
bytes)
disk
size:
0
雖然ls中看到文件的大小是4G,但是實際上磁碟大小是0。這就是稀疏文件
轉化
將一個鏡像文件轉化為另外一種格式,qemu-img支持的格式可以看qemu-img
-h最後一行。
Supported
formats:
vvfat
vpc
vmdk
vdi
sheepdog
rbd
raw
host_cdrom
host_floppy
host_device
file
qed
qcow2
qcow
parallels
nbd
dmg
tftp
ftps
ftp
https
http
cow
cloop
bochs
blkverify
blkdebug
轉化命令:
qemu-img
convert
-c
-f
fmt
-O
out_fmt
-o
options
fname
out_fname
-c:採用壓縮,只有qcow和qcow2才支持
-f:源鏡像的格式,它會自動檢測,所以省略之
-O
目標鏡像的格式
-o
其他選先
fname:源文件
out_fname:轉化後的文件
看例子:
hzgatt@hzgatt:~/images$
qemu-img
convert
-c
-O
qcow2
vm2.raw
vm2.qcow2
hzgatt@hzgatt:~/images$
ll
-s
total
136K
0
-rw-r--r--
1
hzgatt
hzgatt
5.0G
6月
29
13:55
vm1.raw
136K
-rw-r--r--
1
hzgatt
hzgatt
193K
6月
29
14:22
vm2.qcow2
0
-rw-r--r--
1
hzgatt
hzgatt
4.0G
6月
29
14:11
vm2.raw
hzgatt@hzgatt:~/images$
qemu-img
info
vm2.qcow2
image:
vm2.qcow2
file
format:
qcow2
virtual
size:
4.0G
(4294967296
bytes)
disk
size:
136K
cluster_size:
65536
如果想看要轉化的格式支持的-o選項有哪些,可以在命令末尾加上
-o
?
hzgatt@hzgatt:~/images$
qemu-img
convert
-c
-O
qcow2
vm2.raw
vm2.qcow2
-o
?
Supported
options:
size
Virtual
disk
size
backing_file
File
name
of
a
base
image
backing_fmt
Image
format
of
the
base
image
encryption
Encrypt
the
image
cluster_size
qcow2
cluster
size
preallocation
Preallocation
mode
(allowed
values:
off,
metadata)
增加減少鏡像大小
注意:只有raw格式的鏡像才可以改變大小
hzgatt@hzgatt:~/images$
qemu-img
resize
vm2.raw
+2GB
hzgatt@hzgatt:~/images$
ll
-s
total
136K
0
-rw-r--r--
1
hzgatt
hzgatt
5.0G
6月
29
13:55
vm1.raw
136K
-rw-r--r--
1
hzgatt
hzgatt
193K
6月
29
14:22
vm2.qcow2
0
-rw-r--r--
1
hzgatt
hzgatt
6.0G
6月
29
14:28
vm2.raw
hzgatt@hzgatt:~/images$
qemu-img
info
vm2.raw
image:
vm2.raw
file
format:
raw
virtual
size:
6.0G
(6442450944
bytes)
disk
size:
0
㈡ KVM:virt-install創建虛擬機
grep -E 'vmx|svm' /proc/cpuinfo
#-E grep的擴展模式
#當前cpu是否支持硬體虛擬化
lsmod | grep kvm
#檢查是否載入kvm模塊,kvm只是一個linux模塊,在kvm安裝完成後整個linux系統會變成一個hypervisor(虛擬機管理層)。而qemu和virt、virsh相當於是兩個家族,qemu只支持命令行模式(創建、刪除、管理等操作),virt-install創建虛擬機,virsh只能管理虛擬機(無法創建),virt-manager提供web界面。
總結來說,libvirt家族和qemu家族都可以實現對虛擬機的生命周期管理,同一個目的不一樣的工具而已。
mkdir /home/vm
將CentOS-7-x86_64-Minimal-1810.iso上傳到此目錄下
virt-install -n centos3 -r 256 --disk /home/vm/ccc.img,format=qcow2,size=2 --network bridge=br0 --os-variant=rhel7.6 --cdrom /home/vm/CentOS-7-x86_64-Minimal-1810.iso --vnc --vncport=6666 --vnclisten=0.0.0.0
-n 虛擬機名字
-r 內存(默認單位MB)
--disk 制定磁碟(可以提前使用qemu-img創建,也可以在此處創建)
*使用qemu-img創建磁碟 qemu-img create -f qcow2 aaa.img 10G
--network 指定虛擬機使用的網路,這里使用br0,需要提前准備好此橋設備
--cdrom 指定鏡像文件
--vnc 設置vnc,指定vnc監聽埠和監聽地址
#上述命令輸入完成後直接回車即可
彈出上述告警框不用理會
此時查看宿主機打開埠,出現我們監聽的6666埠
使用vnc客戶端新建連接,ip地址填宿主機地址,埠6666,名稱就是虛擬機名稱
顏色級別設置成rgb222,然後點擊OK
雙擊連接圖標,進入安裝界面
注意:
1、在執行virt-install時一定要仔細,別漏了任何一個參數。我就是少了--vnc這個參數導致vnc怎麼也連不上
2、宿主機要跑虛擬機,確保cpu、內存資源足夠,否則安裝會出問題
㈢ 創建基於SRIOV的KVM虛擬機
本文來自微信公眾號「ICT大融合」。
一、利用 iso 創建虛機
1. 安裝環境:
適用於centos/redhat.
2. 安裝准備:
yum -y install kvm
yum -y install qemu-kvmpython-virtinst libvirt libvirt-python virt-manager libguestfs-toolsbridge-utils virt-install
systemctl startlibvirtd.service
systemctl enablelibvirtd.service
3. 構建虛擬網路:
brctl addbr br0
brctl addif br0 ens6np0
註:ens6np0是netreonome CX-25G智能網卡,
[root@test4 vms]# ethtool -i ens6np0
driver: nfp
version: rev-2020.01.13.0820.a3cf8e9 (o-
firmware-version: 0.0.3.5 0.30 sriov-2.1.16.1nic
expansion-rom-version:
bus-info: 0000:02:00.0
4. 安裝虛擬機
mkdir -p /home/vms/
virt-install --virt-type=kvm --name=centos88 --vcpus=2--memory=4096 --location=/home/CentOS-7-x86_64-DVD-1908.iso --diskpath=/home/vms/centos88.qcow2,size=40,format=qcow2 --network bridge=br0--graphics none --extra-args='console=ttyS0' –force
註:
安裝鏡像iso一定放在/home/或其他可訪問目錄,否則提示沒有操作許可權。
然後一路按照提示,設置相應參數,直到虛擬機構建完成。
安裝完成之後,用virshlish查看虛擬機狀態。
[root@test4 vms]# virsh list
Id Name State
----------------------------------------------------
2 centos88 running
以上是虛擬機的網卡是基於virtio並接入主機的bridge,用ps可以看到相應進程。
[root@test4 ~]# ps -e |grep kvm
15484 ? 00:00:38 qemu-kvm
15491 ? 00:00:00 kvm-pit/15484
18406 ? 00:00:14 qemu-kvm
18413 ? 00:00:00 kvm-pit/18406
[root@test4 ~]# ps -e |grep vhost
15486 ? 00:00:00 vhost-15484
18408 ? 00:00:00 vhost-18406
二、用通過鏡像創建基於 SRIOV 虛擬機。
1. 創建vf :
echo 2 > /sys/class/net/ens6np0/device/sriov_numvfs
可以用如下命令查看,
lspci -kd 19ee:
lspci | grep -i ethernet
注意:19ee是netreonome的PCI vendor ID號。
2. 創建虛擬機鏡像文件:
cp centos88.qcow2 centos7.200.qcow2
chown qemu:qemu centos7.200.qcow2
cp centos88.xml centos7.200.xml
3. 修改配置文件
vi centos7.200.xml
其中,uuid採用uuidgen 命令生成。
選項Interface進行修改,Mac地址隨便改一個,不重復就行。關鍵是修改vf的PCI地址,用lspci獲取。
virsh define centos7.200.xml
4. 創建磁碟:
qemu-img create /home/vms/centos200.img 40G
5. 啟動虛機:
virsh start centos200
三、常見命令
virsh基本命令:
virsh list # 查看在運行的虛擬機
virsh mpxml vm-name # 查看kvm虛擬機配置文件
virsh start vm-name # 啟動kvm虛擬機
virsh shutdown vm-name # 正常關機
virsh destroy vm-name # 非正常關機,強制關閉虛擬機(相當於物理機直接拔掉電源)
virsh undefine vm-name # 刪除vm的配置文件
ls /etc/libvirt/qemu
# 查看刪除結果,Centos-6.6的配置文件被刪除,但磁碟文件不會被刪除
virsh define file-name.xml # 根據配置文件定義虛擬機
virsh suspend vm-name # 掛起,終止
virsh resumed vm-name # 恢復被掛起的虛擬機
virsh autostart vm-name # 開機自啟動vm
virsh console <虛擬機名稱> # 連接虛擬機
virt-install參數:
–name指定虛擬機名稱
–memory分配內存大小。
–vcpus分配CPU核心數,最大與實體機CPU核心數相同
–disk指定虛擬機鏡像,size指定分配大小單位為G。
–network網路類型,此處用的是默認,一般用的應該是bridge橋接。
–accelerate加速
–cdrom指定安裝鏡像iso
–vnc啟用VNC遠程管理,一般安裝系統都要啟用。
–vncport指定VNC監控埠,默認埠為5900,埠不能重復。
–vnclisten指定VNC綁定IP,默認綁定127.0.0.1,這里改為0.0.0.0。
–os-type=linux,windows
–os-variant=rhel6
--name 指定虛擬機名稱
--ram 虛擬機內存大小,以 MB 為單位
--vcpus 分配CPU核心數,最大與實體機CPU核心數相同
–-vnc 啟用VNC遠程管理,一般安裝系統都要啟用。
–-vncport 指定VNC監控埠,默認埠為5900,埠不能重復。
–-vnclisten 指定VNC綁定IP,默認綁定127.0.0.1,這里改為0.0.0.0。
--network 虛擬機網路配置
#其中子選項,bridge=br0 指定橋接網卡的名稱。
–os-type=linux,windows
–os-variant=rhel7.2
--disk 指定虛擬機的磁碟存儲位置
#size,初始磁碟大小,以 GB 為單位。
--location 指定安裝介質路徑,如光碟鏡像的文件路徑。
--graphics 圖形化顯示配置
#全新安裝虛擬機過程中可能會有很多交互操作,比如設置語言,初始化 root 密碼等等。
--extra-args 根據不同的安裝方式設置不同的額外選項
㈣ 安卓開啟kvm
創建KVM虛擬機_安卓kvm虛擬機可以用兩種方法創建kvm虛擬機,一種是virt-manager管理工具創建,一種是命令行的方式。1.命令行方式創建kvm虛擬機。先創建qcow2格式的鏡像文件,大小為20G。qemu-imgcreate-fqcow2/data/kvm/images/centos7.6×86.qcow20G輸入命令進行虛擬機的安裝:virt-install–name=centos7.6×86–vcpus=2–ram=2048–diskpath=/data/kvm/imag