一: 建立存储池
存储池(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 再挂载。