新聞中心
分享centos 7.2下KVM虛擬化配置以及常用操作的步驟。

我們提供的服務(wù)有:成都做網(wǎng)站、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、天鎮(zhèn)ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的天鎮(zhèn)網(wǎng)站制作公司
1. 開始安裝kvm
a. 檢查你的系統(tǒng)是否支持虛擬化
grep -Ei 'vmx|svm' /proc/cpuinfo
如果有輸出內(nèi)容,則支持,其中intelcpu支持會有vmx,amd cpu支持會有svm
b. 通過yum安裝虛擬化的軟件包
| 1 2 | yum install -y kvmvirt-* libvirt bridge-utils qemu-img virt- install |
說明:
kvm:軟件包中含有KVM內(nèi)核模塊,它在默認(rèn)linux內(nèi)核中提供kvm管理程序
libvirts:安裝虛擬機管理工具,使用virsh等命令來管理和控制虛擬機。
bridge-utils:設(shè)置網(wǎng)絡(luò)網(wǎng)卡橋接。
virt-*:創(chuàng)建、克隆虛擬機命令,以及圖形化管理工具virt-manager
qemu-img:安裝qemu組件,使用qemu命令來創(chuàng)建磁盤等。
c. 檢查kvm模塊是否加載
lsmod |grep kvm
正常應(yīng)該是:
kvm_intel 55496 3
kvm 337772 1 kvm_intel
如果沒有,需要執(zhí)行
modprobe kvm-intel
還沒有就重啟一下試試
d. 配置網(wǎng)卡
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-br0
分別編輯eth0和br0
ifcfg-eth0改成如下:
DEVICE=eth0
HWADDR=00:0C:29:55:A7:0A
TYPE=Ethernet
UUID=2be47d79-2a68-4b65-a9ce-6a2df93759c6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
BRIDGE=br0
ifcfg-br0改成如下:
DEVICE=br0
#HWADDR=00:0C:29:55:A7:0A
TYPE=Bridge
#UUID=2be47d79-2a68-4b65-a9ce-6a2df93759c6
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=192.168.11.17
NETMASK=255.255.255.0
GATEWAY=192.168.11.1
DNS1=202.106.0.20
說明:我的虛擬機是橋接模式,所以設(shè)置br0的ip和我的真機同樣的網(wǎng)段,包括網(wǎng)關(guān)也是我路由器的ip,大家可以根據(jù)自己的環(huán)境去配置,目的是為了讓虛擬機可以上網(wǎng)。
/etc/init.d/network restart
查看網(wǎng)卡如下:
br0 Linkencap:Ethernet HWaddr 00:0C:29:55:A7:0A
inetaddr:192.168.11.17 Bcast:192.168.11.255 Mask:255.255.255.0
inet6addr: fe80::20c:29ff:fe55:a70a/64 Scope:Link
UPBROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RXpackets:141326 errors:0 dropped:0 overruns:0 frame:0
TXpackets:90931 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RXbytes:456024940 (434.8 MiB) TX bytes:10933593 (10.4 MiB)
eth0 Linkencap:Ethernet HWaddr 00:0C:29:55:A7:0A
inet6addr: fe80::20c:29ff:fe55:a70a/64 Scope:Link
UPBROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RXpackets:341978 errors:0 dropped:0 overruns:0 frame:0
TXpackets:90946 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RXbytes:468848861 (447.1 MiB) TX bytes:10934699 (10.4 MiB)
lo Linkencap:Local Loopback
inetaddr:127.0.0.1 Mask:255.0.0.0
inet6addr: ::1/128 Scope:Host
UPLOOPBACK RUNNING MTU:65536 Metric:1
RXpackets:0 errors:0 dropped:0 overruns:0 frame:0
TXpackets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RXbytes:0 (0.0 b) TX bytes:0 (0.0 b)
virbr0 Linkencap:Ethernet HWaddr 52:54:00:14:EF:D5
inetaddr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UPBROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RXpackets:0 errors:0 dropped:0 overruns:0 frame:0
TXpackets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RXbytes:0 (0.0 b) TX bytes:0 (0.0 b)
e. 啟動或重啟libvirtd服務(wù)和messagebus 服務(wù)
/etc/init.d/libvirtd start
/etc/init.d/messagebus restart
此時可以查看網(wǎng)絡(luò)接口列表
brctl show 結(jié)果如下:
bridge name bridgeid STPenabled interfaces
br0 8000.000c2955a70a no eth0
virbr0 8000.52540014efd5 yes virbr0-nic
2. 創(chuàng)建虛擬機
mkdir /data/ //創(chuàng)建一個存儲虛擬機虛擬磁盤的目錄,該目錄所在分區(qū)必須足夠大
virt-install \
--name aming1 \
--ram 512 \
--disk path=/data/aming1.img,size=30 \
--vcpus 1 \
--os-type linux \
--os-variant rhel6 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location'http://mirrors.163.com/centos/6.7/os/i386/' \
--extra-args 'console=ttyS0,115200n8 serial'
說明:
--name 指定虛擬機的名字
--ram 指定內(nèi)存分配多少
--disk path 指定虛擬磁盤放到哪里,size=30 指定磁盤大小為30G,這樣磁盤文件格式為raw,raw格式不能做快照,后面有說明,需要轉(zhuǎn)換為qcow2格式,如果要使用qcow2格式的虛擬磁盤,需要事先創(chuàng)建qcow2格式的虛擬磁盤。
示例:qemu-img create -f qcow2 -opreallocation=metadata /data/test02.img 10G;
--diskpath=/data/test02.img,format=qcow2,size=10,bus=virtio
--vcpus 指定分配cpu幾個
--os-type 指定系統(tǒng)類型為linux
--os-variant 指定系統(tǒng)版本
--network 指定網(wǎng)絡(luò)類型
--network network=default 指定位nat,默認(rèn)就是nat模式
--graphics 指定安裝通過哪種類型,可以是vnc,也可以沒有圖形,在這里我們沒有使用圖形直接使用文本方式
--console 指定控制臺類型
--location 指定安裝介質(zhì)地址,可以是網(wǎng)絡(luò)地址,也可以是本地的一個絕對路徑,(--location '/mnt/', 其中/mnt/下就是我們掛載的光盤鏡像mount /dev/cdrom /mnt)如果是絕對路徑,
已有本地鏡像可以
virt-install \
--name test02 \
--ram 512 \
--disk path=/data/kvm/test02.qcow2,format=qcow2,size=10,bus=virtio \
--vcpus 1 \
--os-type linux \
--os-variant rhel7 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location '/data/CentOS.iso' \
--extra-args 'console=ttyS0,115200n8 serial'
會出現(xiàn)文本方式的安裝界面,選擇時區(qū),安裝包的選擇(默認(rèn) Minial install)、root密碼設(shè)置,創(chuàng)建新用戶,以及網(wǎng)絡(luò)配置。在此沒看見有,注意設(shè)置一下DNS。
最后安裝完,reboot就進入剛剛創(chuàng)建的虛擬機了。要想退回到宿主機,ctrl ] 即可。
virsh list 可以列出當(dāng)前的子機列表。
virsh start test01 啟動test01
virsh console test01 可以進入指定的子機
3. 克隆虛擬機
virt-clone --original test01 --name template--file /data/clone1.img
如果子機test01還未關(guān)機,則需要先關(guān)機,否則會報錯:
ERROR 必須暫?;蛘哧P(guān)閉有要克隆設(shè)備的域。
關(guān)閉子機的方法是:
virsh shutdown test01
說明:默認(rèn),我們沒有辦法在宿主機直接shutdown自己,我們需要借助于子機上的acpid服務(wù)才可以,這個服務(wù)說白了就是讓宿主機可以去調(diào)用子機的電源關(guān)閉的接口。所以,子機上需要安裝并啟動acpid服務(wù)。
先登錄子機:
virsh console test01
登錄后,安裝acpid服務(wù):
yum install -y acpid
啟動:
/etc/init.d/acpid start
按ctrl ] 退出來
此時再執(zhí)行 virsh shutdowntest01 就可以啦。
克隆完后,virsh list all 就會發(fā)現(xiàn)clone1 這個子機,通過命令
virsh start clone1 可以開啟該子機。
4. virsh 常用操作
a. 開啟子機
virsh start test01
也可以在開啟的同時連上控制臺
virsh start test01 --console
b. 關(guān)閉子機
virsh shutdown test01 (這個需要借助子機上的acpid服務(wù))
另外一種方法是
virsh destroy test01
c. 讓子機隨宿主機開機自動啟動
virsh autostart test01
解除自動啟動
virsh autostart --disable test01
d. 列出子機
virsh list //只能列出啟動的子機
virsh list --all //可以把所有子機都列出來
e. 刪除子機
virsh destroy clone1
virsh undefine clone1
rm -f /data/clone1.img
f. 掛起子機
virsh suspend test01
h. 恢復(fù)子機
virsh resume test01
5. 快照管理
a. 創(chuàng)建快照
virsh snapshot-create test01 原命令出錯更換命令virsh snapshot-create-as test01會報錯:
unsupported configuration: internal snapshot fordisk vda unsupported for storage type raw
這是因為raw格式的鏡像不能做快照,所以需要先轉(zhuǎn)換一下格式
b. 磁盤鏡像轉(zhuǎn)換格式
先查看當(dāng)前子機磁盤鏡像格式
qemu-img info /data/test01.img
結(jié)果是:
image: /data/test01.img
file format: raw
virtual size: 30G (32212254720 bytes)
disk size: 1.6G
把raw格式轉(zhuǎn)換為qcow格式(其實是復(fù)制了一份):
qemu-img convert -f raw -O qcow2 /data/test01.img/data/test01.qcow2
qemu-img info /data/test01.qcow2 //再次查看格式,結(jié)果如下
image: /data/test01.qcow2
file format: qcow2
virtual size: 30G (32212254720 bytes)
disk size: 1.1G
cluster_size: 65536
現(xiàn)在我們還需要編輯子機配置文件,讓它使用新格式的虛擬磁盤鏡像文件
virsh edit test01 //這樣就進入了該子機的配置文件(/etc/libvirt/qemu/test01.xml),跟用vim編輯這個文件一樣的用法
需要修改的地方是:
改為:
c. 繼續(xù)創(chuàng)建快照
virsh snapshot-create test01 //這次成功了,提示如下
Domain snapshot 1437248443 created
列出快照:
virsh snapshot-list test01
查看當(dāng)前子機的快照版本:
virsh snapshot-current test01
test01子機的快照文件在 /var/lib/libvirt/qemu/snapshot/test01/ 目錄下
d. 恢復(fù)快照
首先需要關(guān)閉子機
virsh destroy test01
確認(rèn)子機是否關(guān)閉
virsh domstate test01
關(guān)閉
vish snapshot-list test01 //結(jié)果是
名稱 Creation Time 狀態(tài)
------------------------------------------------------------
1437248443 2015-07-19 03:40:43 +0800 shutoff
1437248847 2015-07-19 03:47:27 +0800 running
virsh snapshot-revert test01 1437248443
e. 刪除快照
virsh snapshot-delete test01 1437248847
6. 磁盤擴容
a. 對于raw格式的虛擬磁盤擴容
qemu-img info /data/kvm/test03.img //本身只有9G
1. image: /data/kvm/test03.img
2. file format: raw
3. virtual size: 9.0G (9663676416 bytes)
4. disk size: 1.1G
qemu-img resize /data/kvm/test03.img +2G
qemu-img info /data/kvm/test03.img //現(xiàn)在增加了2G
1. image: /data/kvm/test03.img
2. file format: raw
3. virtual size: 11G (11811160064 bytes)
4. disk size: 1.1G
5.
virsh destroy test03 //關(guān)閉test03虛擬機
virsh start test03 //開啟test03虛擬機
virsh console test03 //進入虛擬機
fdisk -l 查看已經(jīng)磁盤分區(qū)已經(jīng)增加
[root@localhost ~]# fdisk -l
但是磁盤掛載的空間并沒有增加
[root@localhost ~]# df -h
Filesystem Size Used Avail Use%Mounted on
/dev/mapper/VolGroup-lv_root
6.5G 579M 5.6G 10% /
tmpfs 250M 0 250M 0%/dev/shm
/dev/vda1 477M 26M 427M 6% /boot
因為新增加的空間還沒有劃分使用。所以要繼續(xù)分區(qū):
[root@localhost ~]# fdisk /dev/vda
1. WARNING: DOS-compatible mode is deprecated.It's strongly recommended to
2. switch off the mode (command 'c') and change display units to
3. sectors (command 'u').
4.
5. Command (m for help): p
6.
7. Disk /dev/vda: 11.8 GB, 11811160064 bytes
8. 16 heads, 63 sectors/track, 22885 cylinders
9. Units = cylinders of 1008 * 512 = 516096bytes
10.Sector size(logical/physical): 512 bytes / 512 bytes
11.I/O size(minimum/optimal): 512 bytes / 512 bytes
12.Diskidentifier: 0x000099f3
13.
14. Device Boot Start End Blocks Id System
15./dev/vda1 * 3 1018 512000 83 Linux
16.Partition 1does not end on cylinder boundary.
17./dev/vda2 1018 16645 7875584 8e Linux LVM
18.Partition 2does not end on cylinder boundary.
19.
20.Command (mfor help): n
21.Commandaction
22. e extended
23. p primary partition (1-4)
24.p
25.Partitionnumber (1-4): 3
26.Firstcylinder (1-22885, default 1):
27.Lastcylinder, +cylinders or +size{K,M,G} (16646-22885, default 22885):
28.Usingdefault value 22885
29.
30.Command (mfor help): p
31.
32.Disk/dev/vda: 11.8 GB, 11811160064 bytes
33.16 heads, 63sectors/track, 22885 cylinders
34.Units =cylinders of 1008 * 512 = 516096 bytes
35.Sector size(logical/physical): 512 bytes / 512 bytes
36.I/O size(minimum/optimal): 512 bytes / 512 bytes
37.Diskidentifier: 0x000099f3
38.
39. Device Boot Start End Blocks Id System
40./dev/vda1 * 3 1018 512000 83 Linux
41.Partition 1does not end on cylinder boundary.
42./dev/vda2 1018 16645 7875584 8e Linux LVM
43.Partition 2does not end on cylinder boundary.
44.
45.
46.Command (mfor help): w
47.Thepartition table has been altered!
48.
49.Callingioctl() to re-read partition table.
50.
51.WARNING:Re-reading the partition table failed with error 16: Device or resource busy.
52.The kernelstill uses the old table. The new table will be used at
53.the nextreboot or after you run partprobe(8) or kpartx(8)
54.Syncingdisks.
然后再把這個/dev/vda3 加入到lvm里面去:
ls /dev/vda3 如果沒有這個分區(qū),需要重啟一下。
[root@localhost ~]# pvcreate/dev/vda3
1.
[root@localhost ~]# pvs
1. PV VG Fmt Attr PSize PFree
2. /dev/vda2
3. /dev/vda3 lvm2 --- 3.00g 3.00g
[root@localhost ~]# vgextendVolGroup /dev/vda3
1. Volume group "VolGroup"successfully extended
[root@localhost ~]# vgs
1. VG #PV #LV #SNAttr VSize
2. VolGroup 2 2 0 wz--n- 10.50g
[root@localhost ~]# lvs
1. LV VG Attr LSize PoolOrigin Data% Meta% Move Log Cpy%Sync Convert
2. lv_root VolGroup-wi-ao---- 6.71g
http://www.dlmjj.cn/article/dpopocp.html


咨詢
建站咨詢
