KVM總結

虛擬化產品對比介紹

vmware
KVM rhel6_x64
xen [kernel-xen] rhel5

虛擬化技術:

仿真虛擬化 [對系統硬件沒有要求,性能最低]
半虛擬化 [虛擬機可以使用真機物理硬件,性能高,需要改內核]
全虛擬化 直接使用物理硬件,性能高
vmware 支持仿真虛擬化
xen 半虛 REHL5自帶xen, 安裝時需要安裝內核 rpm -ivh kernel-xen-xxx.rpm
kvm 全虛擬化 RHEL6 自帶kvm

簡介

KVM 即Kernel-based Virtual Machine 基於內核的虛擬機。
KVM,是一個開源的系統虛擬化模塊,自Linux 2.6.20之後集成在Linux的各個主要發行版本中。它使用Linux自身的調度器進行管理,所以相對於Xen,其核心源碼很少。KVM目前已成爲學術界的主流VMM(虛擬機監控器)之一。KVM的虛擬化需要硬件支持(如Intel VT技術或者AMD V技術)。是基於硬件的完全虛擬化。而Xen早期則是基於軟件模擬的Para-Virtualization。
KVM:是指基於 Linux 內核的虛擬機(Kernel-based Virtual Machine)。是第一個整合到 Linux 內核的虛擬化技術。在 KVM 模型中,每一個虛擬機都是一個由 Linux 調度程序管理的標準進程,你可以在用戶空間啓勱客戶機操作系統。
一個普通的 Linux 進程有兩種運行模式:內核和用戶。 KVM 增加了第三種模式:客戶模式(有自己的內核和用戶模式)
XEN :需要升級內核,只能支持和物理機系統一樣的操作系統。 xen虛擬上,可以運行windows
KVM:支持linux以外的其它系統。比如:windows

環境介紹

在這裏插入圖片描述
64位RHEL6以上系統支持KVM,32位不支持。CentOS7以上含有桌面程序系統可安裝。
查看自己的CPU是否支持全虛擬化虛擬化技術且是64位的

Intel:cat /proc/cpuinfo | grep --color vmx 
AMD :cat /proc/cpuinfo | grep --color svm 

看看flag有沒有上面的vmx或者是svm,有的話就是支持全虛擬化技術。有幾條代表有幾個CPU,可以使用top然後1進行查看。

KVM安裝

yum install qemu-kvm libvirt libguestfs-tools virt-install virt-manager libvirt-python -y 

qemu-kvm : kvm主程序, KVM虛擬化模塊
virt-manager: KVM圖形化管理工具
libvirt: 虛擬化服務
libguestfs-tools : 虛擬機的系統管理工具
virt-install : 安裝虛擬機的實用工具 。比如 virt-clone克隆工具就是這個包安裝的
libvirt-python : python調用libvirt虛擬化服務的api接口庫文件

rpm –qpi /mnt/Packages/libguestfsxxx  #查看對應包summary描述
[root@test63 ~]# systemctl start libvirtd  #開啓虛擬化服務 
[root@test63 ~]# systemctl enable libvirtd  #設置libvirtd服務開機啓動
[root@test63 ~]# systemctl is-enabled libvirtd  #查看是否開機啓動
[root@test63 ~]# lsmod | grep kvm  #確定正確加載kvm 模塊,檢查 KVM 模塊是否成功安裝
kvm_intel 170086 0 
kvm 566340 1 kvm_intel 
irqbypass 13503 1 kvm 

[root@test63 ~]# echo $LANG
en_US.UTF-8
[root@test63 ~]# LANG='zh_CN.UTF-8' #切換成中文界面
[root@test63 ~]# virt-manager #使用virt-manager 建立虛擬機

在這裏插入圖片描述

實戰1:配置KVM網絡橋接功能

網橋介紹: 我們經常所說的Bridge設備其實就是網橋設備,也就相當亍現在的二層交換機,用亍連接同一網段內的所有機器,所以我們的目的就是將網絡設備eth0添加到br0,此時br0就成爲了所謂的交換機設備,我們物理機的eth0也是連接在上面的。
添加橋接設備br0:相當於一個二層交換機
在這裏插入圖片描述

[root@test63 ~]# rpm -ivh /mnt/Packages/bridge-utils-1.2-9.el6.x86_64.rpm #安裝橋設備工具
[root@test63 ~]# cd /etc/sysconfig/network-scripts/ #把eth0綁到br0橋設備上
[root@test63 network-scripts]# cp ifcfg-ens33/tmp/ #備份一下eth0 
[root@test63 network-scripts]# vim ifcfg-ens33 #編輯配置文件爲以下內容 
TYPE=Ethernet 
PROXY_METHOD=none 
BROWSER_ONLY=no 
BOOTPROTO=none 
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=c713acec-674b-411d-9e61-646482a292ca 
DEVICE=ens33 
IPADDR=192.168.1.63   #這些內容接下來,需要刪除
NETMASK=255.255.255.0 #這些內容接下來,需要刪除
GATEWAY=192.168.1.1 #這些內容接下來,需要刪除
DNS1=202.106.46.151 #這些內容接下來,需要刪除
ONBOOT=yes 
IPV6_PRIVACY=no 
PEERDNS=no 
BRIDGE="br0" #在文件最後插入這一行

生成橋設備的配置文件

[root@test63 network-scripts]# vim ifcfg-br0 #創建ifcfg-br0 文件,並寫入以下內容
DEVICE="br0"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Bridge" #注:TYPE="Bridge" ,B要大寫
BOOTPROTO=none
IPADDR=192.168.1.63
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1 
[root@test63 network-scripts]# service network restart #重啓生效
[root@test63 network-scripts]# ifconfig #查看是否生效
[root@test63 network-scripts]# brctl show
bridge name    bridge id     STP enabled     interfaces
br    08000.000c290283db    no     ens33  #橋接配置
virbr  08000.525400183a62    yes    virbr0-nic #KVM自帶橋設備

創建一臺KVM虛擬機

創建一個分區,用於存放安裝好的Linux操作系統:

[root@test63 ~]# fdisk /dev/sdb #創建sdb1,大小20G 
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel 
Building a new DOS disklabel with disk identifier 0xe2316600. 
Changes will remain in memory only, until you decide to write them. 
After that, of course, the previous content won't be recoverable. 
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to 
switch off the mode (command 'c') and change display units to 
sectors (command 'u'). 
Command (m for help): n 
Command action 
e extended 
p primary partition (1-4) 
p 
Partition number (1-4): 1 
First cylinder (1-2610, default 1): 
Using default value 1 
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): 
Using default value 2610 
Command (m for help): w 
The partition table has been altered! 
Calling ioctl() to re-read partition table. 
Syncing disks. 

格式化,掛載使用

[root@test63 network-scripts]# mkfs.xfs /dev/sdb1  #格式化
[root@test63 network-scripts]#mount /dev/sdb1 /var/lib/libvirt/images/ #安裝虛擬機,默認存放的路徑: 注:準備系統鏡像:把centos7.4鏡像上傳到/var/lib/libvirt/images/目錄下。
[root@test63 ~]# virt-manager

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
點“完成”到此創建好一個新的KVM虛擬機了。
修改KVM 中BIOS引導順序
在這裏插入圖片描述

KVM虛擬機常用命令

[root@test63 ~]# virsh list #列出在運行的虛擬機 
[root@test63 ~]# virsh start centos7-71 #啓勱centos7-71虛擬機 
[root@test63 ~]# virsh shutdown centos7-71 #關閉centos7-71虛擬機 
[root@test63 ~]# virsh autostart centos7-71 #設置centos7-71虛擬機爲物理機開機後,自動啓動 
[root@test63 ~]# chkconfig --list libvirtd #服務也要開機啓動 
libvirtd 0:off 1:off 2:off 3:on 4:on 5:on 6:off 
[root@test63 ~]# vim /etc/fstab #記得設置開機自動掛載sdb1,不然後開機啓動不了虛擬機 
/dev/sdb1 /var/lib/libvirt/images xfs defaults

CentOS6系統上shutdown關不了虛擬機的問題

在安裝好的KVM的Linux虛擬機中安裝並啓動acpid服務,virsh shutdown命令使用發送acpi挃令來控制虛擬機的電源, 而kvm虛擬機最小化安裝的centos6系統時默認是沒有安裝acpi服務的,所以並不會處理shutdown發來的關機信號。 在centos7最小化安裝的linux系統上有安裝acpid服務。 只需要在虛擬機裏安裝和啓動acpid服務即可。

1.給KVM虛擬機配置個IP

[root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE="eth0" 
HWADDR="52:54:00:95:89:DE" 
IPADDR=192.168.1.71
NETMASK=255.255.255.0 
GATEWAY=192.168.1.1 
DNS1=192.168.1.1 
NM_CONTROLLED="yes" 
ONBOOT="yes" 
[root@localhost ~]# service network restart #啓勱網卡 

2.在test63上搭建一個基於http協議yum源服務

[root@test63 ~]# yum install httpd -y 
[root@test63 ~]# service httpd start 
[root@test63 ~]# mount /dev/cdrom /var/www/html/

3.配置kvm 虛擬機rhel6-71 的yum源

[root@test63 ~]# ssh 192.168.1.71 
[root@localhost ~ ]# cd /etc/yum.repos.d 
[root@localhost ~ ]# vi rhel6.repo # 寫入以下內容 
[rhel6] 
name= rhel6 
baseurl=http://192.168.1.63/ 
#baseurl=file:///mnt/ 
enabled=1 
gpgcheck=0 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 
[root@localhost ~ ]#rm -rf rhel-source.repo #刪除多餘的yum源配置文件 
[root@localhost ~ ]# setenforce 0 #關閉selinux 
[root@localhost ~ ]#iptables -F #關閉防火牆 

4.在kvm 虛擬機rhel6-71安裝 acpid服務

[root@localhost yum.repos.d]# yum install acpid -y 
[root@localhost yum.repos.d]# service acpid start //啓勱acpic服務, 
[root@localhost yum.repos.d]# chkconfig --list acpid 
acpid 0:off 1:off 2:on 3:on 4:on 5:on 6:off //安裝後默認會加入到開機啓勱的 

5.在test63 KVM真機上測試

[root@test63 ~]# virsh shutdown rhel6-71 #關閉rhel6-71虛擬機

KVM虛擬機克隆和快照

克隆前,centos7.0需要提前關機。
語法:virt-clone -o 原虛擬機 -n 新虛擬機 -f 新虛擬機鏡像存放路徑
選項:-o old -n new
虛擬機鏡像: 就是整個虛擬機文件。 不是操作系統光盤鏡像rhel6.5.iso
比如:KVM虛擬機的鏡像文件

[root@test63 ~]# mount /dev/sdb1 /var/lib/libvirt/images/
[root@test63 ~]# cd /var/lib/libvirt/images/
[root@test63 images]# ll -h
-rw------- 1 root root 9.1G 9月 21 23:33 centos7.0.qcow2 #這就是虛擬機鏡像文件,不是操作系統鏡像格式是rhel6.5.iso.
[root@test63 images]# df –h #使用了1.2G,實際鏡像佔用1.2G,並不是ll –h查看分配時的鏡像文件的9.1G

基於centos7.0克隆一臺虛擬機:test63-kvm2

[root@test63 ~]# cd /var/lib/libvirt/images/
[root@test63 images]# virt-clone -o centos7.0 -n test63-kvm2 -f /var/lib/libvirt/images/test63-kvm2.img
Allocating 'test63-kvm2' | 8.0 GB 03:34
Clone 'test63-kvm2' created successfully.
[root@test63 images]# ll -h
總用量 3.2G
-rw------- 1 root root 9.1G 9月 21 23:33 centos7.0.qcow2 (最大空間是8G,沒立即分配磁)
-rw------- 1 root root 1.2G 9月 23 18:03 test63-kvm2.img
[root@test63 images]# df -h
文件系統 容量 已用 可用 已用% 掛載點
/dev/sda3 10G 8.2G 1.9G 82% /
devtmpfs 2.9G 0 2.9G 0% /dev
tmpfs 2.9G 0 2.9G 0% /dev/shm
tmpfs 2.9G 9.1M 2.9G 1% /run
tmpfs 2.9G 0 2.9G 0% /sys/fs/cgroup
/dev/sr0 4.3G 4.3G 0 100% /mnt
/dev/sda1 197M 174M 24M 88% /boot
tmpfs 582M 40K 582M 1% /run/user/0
/dev/sdb1 20G 3.2G 17G 16% /var/lib/libvirt/images #查看克隆完後,使用磁盤情況。兩個鏡像一共使用了3.2G

注:虛擬機克隆完畢後,MAC地址也是需要修改,網卡配置文件也修改一下。

KVM虛擬機組成

一臺KVM虛擬機由兩部分組成:虛擬機配置文件和鏡像img,所以不能直接copy鏡像文件來克隆
查看虛擬機的配置文件

[root@test63 images]# cd /etc/libvirt/qemu 
[root@test63 ~]# ls /etc/libvirt/qemu 
networks centos7.0.xml test63-kvm2.xml
[root@test63 qemu]# cat centos7.0.xml #查看虛擬機配置文件內容

啓動test-kvm2測試一下
在這裏插入圖片描述
進入新克隆的機器:
ip addr show 查看IP和mac地址。系統中沒有ifconfig
在這裏插入圖片描述
ping g.cn #發現可以直接上網
在這裏插入圖片描述
查看克隆後test-kvm1的配置文件:

[root@test qemu]# vim /etc/libvirt/qemu/test-kvm2.xml 
<interface type='bridge'> 
<mac address='52:54:00:2b:fb:79'/> 

注: 發現虛擬機磁盤中的mac地址已經和克隆後的MAC地址一樣。 可以直接上網,不需要再另外刪除相關內容。 在centos6下,kvm還沒有這樣的功能。

在rhel6下kvm克隆後的操作

登錄新克隆的虛擬機刪除原來的mac和IP地址,讓新克隆的機器可以上網

[root@test ~]# rm -rf /etc/udev/rules.d/70-persistent-*
[root@test ~]#vim /etc/sysconfig/network-scripts/ifcfg-eth0 #寫入以下內容

注: 記得把 ONBOOT=“no” 改爲: ONBOOT=“yes”
注:把原配置文件中的MAC和UUID地址刪除,然後修改一個和原虛擬機不一樣的IP

[root@test ~]# reboot #重啓生效


方法2:
[root@test ~]# start_udev # 重新啓動udev服務,自動生成剛刪除的/etc/udev/rules.d/70-persistent-*文件,新生成的udev文件,會使用新系統的MAC地址。
[root@test ~]# service network restart

虛擬機常用鏡像格式對比

目前主要虛擬機的鏡像格式:raw,cow, qcow,qcow2,vmdk
1.raw格式鏡像
raw:老牌的鏡像格式,用一個字來說就是裸,也就是赤裸裸,你隨便dd一個file就模擬了一個raw格式的鏡像。由於裸的徹底,性能上來說的話還是不錯的。centos6 上KVM和XEN默認的格式還是這個格式。centos7以上默認是qcow2 。
裸的好處還有就是簡單,支持轉換成其它格式的虛擬機鏡像對裸露的它來說還是很簡單的(如果其它格式需要轉換,有時候還是需要它做爲中間格式),空間使用來看,這個很像磁盤,使用多少就是多少(du -h看到的大小就是使用大小)。
例:qcow2 轉爲 vmdk 方法是: qcow2 轉爲 raw ,然後把raw轉爲vmdk 。也可以直接qcow2 轉爲 vmdk
擴展:佳能相機上的高保真用的就是這種raw格式。RAW的原意就是“未經加工”。可以理解爲:RAW圖像就是CMOS或者CCD圖像感應器將捕捉到的光源信號轉化爲數字信號的原始數據。RAW理解爲“數字底片”
缺點:不支持snapshot快照。
2. cow、qcow、qcow2格式
cow格式:還沒有成熟,就被放棄了。後來被qcow格式所取代。
qcow格式:剛剛出現的時候有比較好的特性,但其性能和raw格式對比還是有很大的差距,目前已經被新版本的qcow2取代。
qcow2格式:現在比較主流的一種虛擬化鏡像格式,經過一代的優化,目前qcow2的性能上接近raw裸格式的性能
qcow2格式支持snapshot,可以在鏡像上做N多個快照,具有以下優點:
更小的存儲空間
支持創建image鏡像
支持多個snapshot,對歷史snapshot迚行管理
支持zlib的磁盤壓縮
支持AES的加密
3.vmdk格式
VMware的格式,整體性能最好,因爲原本VMware就是做虛擬化起家。從性能和功能上來說,vmdk應該算最出色的,由於vmdk結合了VMware的很多能力,目前來看,KVM和XEN使用這種格式的情況不是太多。但就VMware的企業級虛擬化Esxi來看,它的穩定性和各方面的能力都很好。

KVM虛擬機快照功能使用方法

快照的作用:1、熱備 2、災難恢復 3、回滾到歷中的某個狀態
快照的原理:生成快照,快照之後的操作存放到另一個新的空間。
kvm快照,分兩種:
方法1:使用lvm快照,如果分區是lvm,可以利用lvm迚行kvm的快照備份
方法2:使用qcow2格式的鏡像創建快照。

創建KVM快照

在centos6下,kvm虛擬機默認使用raw格式的鏡像格式,性能最好,速度最快,它的缺點就是不支持一些新的功能,如支持鏡像,zlib磁盤壓縮,AES加密等。 要使用快照功能,磁盤格式必須爲qcow2。
在centos6下,kvm虛擬機默認使用raw格式的鏡像格式,性能最好,速度最快,它的缺點就是不支持一些新的功能,如支持鏡像,zlib磁盤壓縮,AES加密等。要使用快照功能,磁盤格式必須爲qcow2。
查看磁盤格式

[root@test63 ~]# qemu-img info /var/lib/libvirt/images/test63-kvm2.img
image: /var/lib/libvirt/images/test63-kvm2.img
file format: qcow2
virtual size: 9.0G (9663676416 bytes)
disk size: 1.1G # 創建虛擬機時,選擇不要立即分配磁盤空間
cluster_size: 65536
Format specific information:
compat: 1.1

對test63-kvm2虛擬機關機創建快照
語法: virsh snapshot-create 虛擬機的名字

[root@test63 images]# virsh snapshot-create test63-kvm2
Domain snapshot 1440726046 created #注:創建快照時不需要關閉虛擬機,關機創建快照比較快,開機創建快照需要把內存中的內容寫到磁盤上,記錄虛擬機這一時刻的狀態。
[root@test63 images]# virsh shutdown test63-kvm2 #域 test63-kvm2 被關閉
[root@test63 images]# virsh snapshot-create test63-kvm2 #這時創建快照很快
已生成域快照 1513776621

創建快照時啓個名字
語法:virsh snapshot-create-as KVM虛擬機名 快照名

[root@test63 ~]# virsh list --all ##查看虛擬機名字
Id Name State
----------------------------------
- centos7.0 shut off
- test63-kvm2 shut off
[root@test63 ~]# virsh snapshot-create-as test63-kvm2 httpd
Domain snapshot httpd created
[root@test63 images]# virsh snapshot-list test63-kvm2 #查看虛擬機鏡像快照列表
名稱 生成時間 狀態
------------------------------------------------------------
1513776483 2017-12-20 21:28:03 +0800 running
1513776621 2017-12-20 21:30:21 +0800 shutoff
httpd 2017-12-20 21:32:09 +0800 shutoff
[root@test63 ~]# virsh snapshot-create-as test63-kvm2 安裝好httpd #快照也支持中文
Domain snapshot 安裝好httpd created
[root@test63 ~]# virsh snapshot-list test63-kvm2
Name Creation Time State
------------------------------------------------------------
1440741062 2015-08-28 13:51:02 +0800 shutoff
httpd 2015-08-28 13:58:26 +0800 shutoff
安裝好httpd 2015-08-28 14:00:15 +0800 shutoff
 [root@test63 images]# virsh snapshot-current test63-kvm2 #查看最近一次使用的快照版本
[root@test63 ~]# ll -h /var/lib/libvirt/qemu/snapshot/test63-kvm2/ #快照配置文件在/var/lib/libvirt/qemu/snapshot/虛擬機名稱下
總用量 24K
-rw------- 1 root root 4.8K 9月 23 18:32 1506162674.xml
-rw------- 1 root root 4.8K 9月 23 18:32 httpd.xml
-rw------- 1 root root 4.9K 9月 23 18:32 安裝好httpd.xml

補充:騰訊雲,阿里雲中快照要收費!因爲快照空間佔用虛擬機自身img的空間。

[root@test63 ~]# qemu-img info /var/lib/libvirt/images/test63-kvm2.img #查看快照佔用的大小
image: /var/lib/libvirt/images/test63-kvm2.img
file format: qcow2
virtual size: 9.0G (9663676416 bytes)
disk size: 3.1G
cluster_size: 65536
Snapshot list:
ID TAG VM SIZE DATE VM CLOCK
1 1506162674 0 2017-09-23 18:31:15 00:00:00.000
2 httpd 0 2017-09-23 18:32:04 00:00:00.000
3 安裝好httpd 0 2017-09-23 18:32:15 00:00:00.000
Format specific information:
compat: 1.1
lazy refcounts: true

恢復快照

[root@test63 snapshot]# virsh domstate test63-kvm2 #查看虛擬機狀態 #恢復虛擬機快照必須關閉虛擬機。注:阿里雲也需要關閉後再恢復快照
shut off
[root@test63 snapshot]# virsh snapshot-list test63-kvm2 #確認需要恢復的快照,這裏恢復到httpd
Name Creation Time State
------------------------------------------------------------
1448633311 2015-11-27 22:08:31 +0800 shutoff
httpd 2015-11-27 22:10:32 +0800 shutoff
[root@test63 snapshot]# virsh snapshot-revert test63-kvm2 httpd #執行恢復
[root@test63 snapshot]# virsh snapshot-current test63-kvm2 | more #確認恢復版本
<domainsnapshot>
<name>httpd</name>
<state>shutoff</state>
<parent>
<name>1448633311</name>
</parent>
<creationTime>1448633432</creationTime>

刪除快照

[root@test63 snapshot]# virsh snapshot-delete test63-kvm2 1448633311 
Domain snapshot 1448633311 deleted
[root@test63 snapshot]# virsh start test63-kvm2 #啓動恢復的快照虛擬機

開機狀態下創建快照

 [root@test63 ~]# virsh snapshot-create-as test63-kvm2 http-start 
Domain snapshot http-start created 
[root@test63 ~]# qemu-img info /var/lib/libvirt/images/test63-kvm2.img #查看開機創建的快照佔用的磁盤空間
image: /var/lib/libvirt/images/test63-kvm2.img 
file format: qcow2 
virtual size: 9.0G (9663676416 bytes) 
disk size: 3.1G 
cluster_size: 65536 
Snapshot list: 
ID TAG VM SIZE DATE VM CLOCK 
2 httpd 0 2017-09-23 18:32:04 00:00:00.000 
3 安裝好httpd 0 2017-09-23 18:32:15 00:00:00.000 
4 http-start 127M 2017-09-23 18:35:19 00:00:27.178 
注:127M,存儲虛擬機開機時的運行狀態,比如存內存中的數據。

virsh常用命令

# virsh list //查看已打開虛擬機列表
# virsh list --all //查看所有虛擬機列表
# virsh version //查看virsh版本號
# virsh start test63-kvm2 //啓動test63-kvm2虛擬機
# virsh shutdown test63-kvm2 //關機test63-kvm2虛擬機
# virsh dumpxml test63-kvm2 > test63-kvm2.xml //導出test63-kvm2虛擬機配置文件
[root@test63 images]# virsh dumpxml centos7.0 > centos7.0.xml
[root@test63 ~]# virsh undefine centos7.0 //取消centos7.0定義,域 centos7.0 已經被取消定義,相當於叉掉vmware中虛擬機標籤
# virsh destroy test63-kvm2 //強制關閉test63-kvm2虛擬機。正常關不了機時, 用這個。
[root@test63 ~]# virsh autostart centos7.0 //設置開機自啓勱node1。 
[root@kvm01 ~]# virsh autostart --disable vm1 #取消虛擬機隨宿主機開機自啓 
[root@kvm01 ~]# virsh suspend vm1 #掛起虛擬機 
[root@kvm01 ~]# virsh resume vm1 #恢復虛擬機 
[root@kvm01 ~]# virsh console vm1 #控制檯管理虛擬機

qcow2格式轉換成raw

[root@test63 ~]# virsh shutdown test63-kvm2 #關閉test63-kvm1,轉換格式
轉換磁盤格式 

qemu-img 的參數 -f 源鏡像的格式 -O 目標鏡像的格式

[root@test63 images]# qemu-img convert -f qcow2 -O raw /var/lib/libvirt/images/ test63-kvm2.img /var/lib/libvirt/images/test63-kvm2.raw # qcow2格式轉換成raw
[root@test63 images]# qemu-img info /var/lib/libvirt/images/test63-kvm2.raw #查看轉換後的格式,已經轉換成了raw 
image: /var/lib/libvirt/images/ test63-kvm2.raw 
file format: raw 

其他鏡像格式轉換方法

qemu-img convert -f vmdk -O qcow2 source-name.vmdk target-name.qcow2 #將vmdk轉換爲qcow2 
qemu-img convert -f qcow2 -O vmdk source-name.qcow2 target-name.vmdk #將qcow2轉換爲vmdk 

修改虛擬機配置文件,使用raw格式鏡像文件,來啓動虛擬機:
方法1:

[root@test63 ~]# virsh edit test63-kvm2 #修改配置文件 
改: 
<driver name='qemu' type='qcow2' cache='none'/> 
<source file='/var/lib/libvirt/images/test63-kvm2.img'/> 
爲: 
23 <driver name='qemu' type='raw' cache='none'/> 
24 <source file='/var/lib/libvirt/images/test63-kvm2.raw'/> 

方法2:
#注意vim直接編輯配置文件/etc/libvirt/qemu/test63-kvm2.xml不生效
修改後,需要重啓服務

[root@test63 ~]# /etc/init.d/libvirtd restart

阿里雲字符界面安裝KVM

環境準備

在這裏插入圖片描述

 [root@test63 ~]# mount /dev/sdb1 /var/lib/libvirt/images/
上傳F:\workstation2\image 一個鏡像CentOS-7.4-x86_64-DVD.iso到/var/lib/libvirt/images/下
[root@test63 ~]# yum install tigervnc #vnc遠程桌面客戶端,方便後期遠程連接正在安裝中的虛擬機的安裝界面
[root@test63 ~]# yum install virt-viewer -y #後面安裝虛擬機時,需要使用
[root@test63 images]# yum info virt-viewer
簡介:Virtual Machine Viewer  #虛擬機查看器
[root@test63 ~]# systemctl status libvirtd  #確認libvirtd服務開啓:

通過命令行安裝KVM虛擬機:
命令:virt-install
選項:man virt-install
常用選項:
-n NAME, --name=NAME 指定Guest 名字-r MEMORY, --ram=MEMORY 挃定內存大小
–vcpus=VCPUS 指定虛擬機的CPU 數量–disk指定虛擬機磁盤存儲文件的路徑, size=5指定虛擬磁盤的大小,單位是G;
例:–disk path=/var/lib/libvirt/images/centos-72.img,size=5
–accelerate KVM或KQEMU內核加速器,這個選項默認是添加的。另外,如果系統KVM和KQEMU加速器都支持,優先使用KVM加速器。
-c CDROM, --cdrom=CDROM 指定用於全虛擬化Guest 的虛擬光驅,–cdrom=後指定ISO 或CDROM 鏡像。
–network #指定虛擬機的網卡模式。如:–network bridge=br0 -x EXTRA, --extra-args=EXTRA用來給加載的kernel 和initrd 提供額外的內核命令行參數。比如無人值守安裝系統

使用virt-install安裝一個kvm虛擬機

爲了方便更快速,我們上傳一個鏡像CentOS-7.4-x86_64-DVD.iso到/var/lib/libvirt/images/下 
[root@test63 ~]# mount /dev/sdb1 /var/lib/libvirt/images/ #擴展:vmware遷移到kvm ,需要使用virt-v2v ,安裝: yum install virt-v2v
[root@test63 ~]# virsh list --all #查看已經有的虛擬機
[root@test63 ~]# virt-install --name centos-72 --ram 1024 --vcpus=1 --disk path=/var/lib/libvirt/images/centos-72.img,size=5 --accelerate --cdrom /var/lib/libvirt/images/CentOS-7.4-x86_64-DVD.iso --network bridge=br0 --graphics vnc #創建centos-72虛擬機
[root@test63 ~]# virt-viewer #現在測試遠程連接, 要求kvm宿主物理機,安裝了圖形界面
[root@test63 ~]# vncviewer 127.0.0.1 #或是這樣測試KVM

在這裏插入圖片描述

阿里雲主機補充

IOPS (Input/Output Operations Per Second),即每秒隨機進行讀寫(I/O)操作的次數,多用於數據庫等場合,衡量隨機訪問的性能。衡量吞吐量
買固態硬盤最重要的參數:1、容量2、IOPS3、緩存4、顆粒MLC / TLC
爲什麼阿里雲的SSD雲盤IOPS是1000,這麼低?
答: 原因是1T的SSD雲盤,需要給50臺雲主機用(一臺主機是20G) 。 如果不限速,只要一臺被黑後瘋狂寫數據,剩下49臺都卡了。
快照:自己設置快照策略,可以每天晚上3:00 給系統盤和數據盤做快照,一但被黑,可以立馬恢復。
注:查看硬盤ID,來確認快照屬於那個磁盤。
注:快照佔用你係統盤或數據盤空間嗎?
不佔用我,佔用的應該是阿里的,所以阿里後期找你收費。有些雲平臺,快照功能本身就是收費。
快照佔用空間大嗎?不大,關機狀態佔用幾M?0M。開機狀態,只保存內存中的數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章