一: 建立存儲池
存儲池(Storage pools)是放置虛擬機的存儲位置,可以是本地的,也可以是網絡存儲,具體的虛擬機實例放置在卷(Volume)上。
操作存儲卷的命令行是virsh
主要有以下操作
查看卷的信息
[root@centos6 ~]# virsh vol-info --pool kvm_images kvm01_images
名稱: kvm01_images
類型: 文件
容量: 16.00 GB
分配: 1.97 GB
或者直接使用存儲卷的絕對路徑
virsh vol-info /kvm/images/ kvm01_images
然后開始創建存儲池
1。 建立存儲池的目錄
mkdir /home/kvm_final/images
2。 為了安全性,更改目錄的所有者,並設置權限
chown root: root /home/kvm_final/images
chmod 700 /home/kvm_final/images
驗證一下
ls -a /home/kvm_final/images
3。 配置SELinux文件上下文
semanage fcontext -a -t virt_image_t /home/kvm_final/images
這個主要是打開SELinux設定,不然虛擬機無法訪問存儲文件
如果沒有semanage,那么安裝policycoreutils-python
yum install policycoreutils-python
1) 定義一個存儲池
virsh pool-define-as kvm_final --type dir --target /home/kvm_final/images
2) 查看創建的存儲池信息
virsh pool-list --all
3) 建立基於文件夾的存儲池
virsh pool-build kvm_final
4) 使存儲池生效
virsh pool-start kvm_final
5) 這時候,存儲池還不是自動運行,使用virsh pool-autostart
virsh pool-autostart kvm_final
6) 驗證存儲池
[root@KVM-A-05 /]# virsh pool-info kvm_final
Name: kvm_final
UUID: f8e9b1a9-7e30-6925-8d1c-14e2fc0e4f42
State: running
Persistent: yes
Autostart: yes
Capacity: 1.73 TB
Allocation: 127.57 GB
Available: 1.60 TB
創建了存儲池后,就可以創建一個卷,這個卷是用來做虛擬機的硬盤
1。創建卷
virsh vol-create-as kvm_final kvm.img 120G --format qcow2
2。查看存儲池里面的卷信息
[root@KVM-A-05 /]# virsh vol-list kvm_final
Name Path
-----------------------------------------
kvm.img /home/kvm_final/images/kvm.img
3。查看某個卷的信息
[root@KVM-A-05 /]# virsh vol-info kvm.img kvm_final
Name: kvm.img
Type: file
Capacity: 120.00 GB
Allocation: 136.00 KB
4。現在開始創建虛擬機,使用virt-install來創建
創建的虛擬機名字為guest2-rhel6.1 這個名字很重要,就是在KVM中的域名,可以做各種操作
cpu使用1個,內存化為512M,硬盤文件使用新創建的硬盤文件,格式為qcow2,大小為8G,使用ISO鏡像安裝,安裝的操作系統類型為linux,類別為rhel6。網絡掛載橋接網卡br0
[root@KVM-A-05 /]# virt-install --connect qemu:///system -n kvm -r 2048 -f /home/kvm_final/images/kvm.img -s 150 --vnc --vcpus=2 --network bridge=br0 -c /home/lz/CentOS-5.6-x86_64-bin-DVD-1of2.iso
Starting install...
Creating domain...
附KVM存儲池的管理
存儲池和存儲卷的管理
1.創建 KVM主機存儲池
1).創建基於文件夾(目錄)的存儲池
virsh pool-define-as vmware_pool --type dir --target /virhost/vmware#定義存儲池vmware_pool或
virsh pool-create-as --name vmware_pool --type dir --target /virhost/vmware
#創建存儲池vmware_pool,類型為文件目錄,/virhost/vmware,與pool-define-as結果一樣
2).創建基於文件系統的存儲池
virsh pool-define-as --name vmware_pool --type fs --source-dev /dev/vg_target/LogVol02 --source-format ext4 --target /virhost/vmware
或
virsh pool-create-as --name vmware_pool --type fs --source-dev /dev/vg_target/LogVol02 --source-format ext4 --target /virhost/vmware
3).查看存儲池信息
virsh pool-info vmware_pool #查看存儲域(池)
4).啟動存儲池
virsh pool-start vmware_pool #啟動存儲池
virsh pool-list
5)銷毀存儲域,取消存儲池
virsh pool-destroy vmware_pool #銷毀存儲池
virsh pool-list --all
virsh pool-undefine vmware_pool #取消存儲池的定義
virsh pool-list --all
2.創建了存儲池后,就可以創建一個卷,這個卷是用來做虛擬機的硬盤
virsh vol-create-as --pool vmware_pool --name node6.img --capacity 10G --allocation 1G --format qcow2#創建卷 node6.img,所在存儲池為vmware_pool,容量10G,初始分配1G,文件格式類型qcow2
virsh vol-info /virhost/vmware/node6.img #查看卷信息名稱: node6.img類型: 文件容量: 10.00 GB分配: 136.00 KB
3.在存儲卷上安裝虛擬主機
virt-install --connect qemu:///system \-n node7 \-r 512 \-f /virhost/vmware/node7.img \--vnc \--os-type=linux \--os-variant=rhel6 \--vcpus=1 \--network bridge=br0 \-c /mnt/rhel-server-6.0-x86_64-dvd.iso
二:鏡像掛載
ISO:
iso 格式的光盤鏡像可以說是最普遍和通用的了,處理起來非常方便,掛載命令:
( 假設鏡像文件名為 download,掛載點為 /mount-point ,下同)
mount -t iso9660 -o loop,user download.iso /mount-point
建立掛接點:
自動加載
MDF:
mdf 是 Win 下的虛擬光驅軟件 Alcohol 120% 的專有格式,你可以用 mdf2iso 把 mdf 文件轉換成 iso 格式再掛載,或者嘗試用下面的命令掛載:
mount download.mdf /mount-point -o loop=/dev/loop0
不過遺憾的是,有些分軌的 mdf 文件,這樣還是無能為力。
BIN (or BIN + CUE ):
可以用 cdemu 掛載,也可以用 bin2iso 轉換成 iso 再掛載,也可以 bchunk 轉換 bin+cue 到 iso 。
NRG:
nrg 格式的鏡像文件是 Nero 的專有格式,你可以用 nrg2iso 轉換成 iso 再掛載,或者嘗試下面的命令:
mount -o loop,offset=307200 download.nrg /mount-point
CCD:
ccd 是 CloneCD 的專有格式,你可以用 ccd2iso 轉換成 iso 再掛載。
