您好,登錄后才能下訂單哦!
dir:目錄格式的存儲
fs:磁盤分區存儲
neyfs:網絡共享文件存儲
Disk:物理硬盤存儲
Iscsi:iSCSITarget后端存儲
logical:邏輯卷的存儲
KVM支持的虛擬磁盤類型
raw
這并非是一種真正的磁盤格式,而是代表虛擬機所使用的原始鏡像
他并不存儲元數據,因此可以作為保證虛擬機兼容性的候選方案。不支持快照和壓縮等高級特性
格式簡但,容易轉換成為其它的格式。需要文件系統用的支持才能使用sparse file
cow : copy-on-write格式,曇花一現
qcow : QEMU早期的copy-on-write格式
qcow2
按需分配磁盤空間,不管文件系統是否支持
支持快照
支持zlib的磁盤壓縮
支持AES的加密
vmdk
VMware環境當中默認使用的磁盤格式
vhd\vhdx
微軟默認采用的文件格式
qemu-img是一個功能強制性磁盤鏡像管理工具
check 檢查完整性
create 創建鏡像
commit 提交更該
compare 比較
convert 轉換
info 獲得信息
snopshot 快照管理
resize 調整大小
例如:
創建一塊raw格式1g大小的虛擬磁盤
qemu-img create t1.img 1g //默認磁盤會存放在當前目錄下
創建一塊qcow2格式10g大小的虛擬磁盤
qemu-img create t2.img -f qcow2 10g
查看t2.img虛擬磁盤的具體信息
qemu-img info t2.img
檢測t1.img磁盤的運行狀態
qemu-img check t1.img
調整oa-disk.qcow2虛擬磁盤的大小,增加5個g
qemu-img resize oa-disk.qcow2 +5G //注意磁盤擴容完畢之后需要在虛擬機的操作系統層面進行文件系統的創建
為oa-disk.qcow2創建快照
qemu-img snapshot -a s1 oa-disk.qcow2
查看剛剛創建的快照
qemu-img snapshot -l oa-disk.qcow2
回滾快照
qemu-img snapshot -a s1 oa-disk.qcow2
當我們把這些虛擬磁盤文件創建出來就可以添加到虛擬機中,稱為虛擬機中的一塊磁盤使用
使用一個具體的示例來演示:
qemu-img create -f qcow2 vm1-disk1.qcow2 10G
virt-install \
--name=vm1 \
--disk path=/tmp/vm1-disk1.qcow2 \ //指定安裝到的磁盤文件路徑
--vcpus=1 --ram=1024 \ //設置虛擬內存大小
--cdrom=/tmp/CentOS-7-x86_64-DVD-1708.iso \ //指定啟動文件
也可以是 --location /tmp/CentOS-7-x86_64-DVD-1708.iso
--network network=default \
--graphics vnc,listen=0.0.0.0 \
--os-type=linux \
--os-variant=Centos7.0
后備差異虛擬硬盤
在實際生產環境中可以將一個backing_file基礎鏡像作為父鏡像,然后讓多個虛擬機使用同一個父鏡像,這樣只需要為虛擬機提供一個基礎鏡像即可
對于父鏡像來說,可以是raw或者是qcow2文件格式,但是使用父鏡像的虛擬機來說必須使用qcow2
準備模板
qemu-img create -f qcow2 \
> -o backing_file=vm1-disk1.qcow2 \ //磁盤鏡像為安裝過操作系統的鏡像
> oa-disk.qcow2 //關聯基礎磁盤跟父磁盤鏡像
創建虛擬機
virt-install --import \
> --name=oa \
> --vcpus=1 \
> --ram=1024\
> --disk path=/tmp/oa-disk.qcow2 \
> --network network=default \
> --graphics vnc,listen=0.0.0.0
注意當使用指定磁盤創建虛擬機之后,虛擬機磁盤文件屬主屬組變成qemu
如果我們此時移除或者是更改父鏡像磁盤(基礎鏡像)則虛擬機無法啟動
存儲池的基本概念
Libvirt可以以存儲池的形式對存儲進行統一管理、簡化操作
對于虛擬機操作來說,存儲池和卷并不是必須的
mkdir /guest_images //創建目錄
chown root:root /guest_images/ //更改目錄屬主屬組
chmod 700 /guest_images/ //更改權限
virsh pool-define-as guest_images dir --target "/guest_images" //創建存儲池
首先新建一塊磁盤分區,然后使用virsh命令創建存儲池
virsh pool-define-as guest_images2_fs --source-dev "/dev/sdb1" --target "/guest_test(掛載點)"
virsh pool-start guest_images2_fs //啟動存儲池
新添加一塊磁盤并且將磁盤格式更改成gpt格式
準備xml文件
<pool type='disk'>
<name>guest_images3_fs</name>
<source>
<device path='/dev/sdc'/>
<format type='gpt'/>
</source>
<target>
<path>/dev</path>
</target>
</pool>
保存退出
virsh pool-define /tmp/guest_images_disk.xml //使用xml文件創建存儲池
virsh pool-start guest_images3_fs :啟動存儲池
在iscsi Target服務器上面安裝target服務,并配置
/backstores/block> create block1 dev=/dev/sdb1 //基于磁盤劃分
/backstores/fileio> create fikeio1 /tmp/foo1.img 50M // 基于文件劃分
/iscsi> create iqn.2019-02.org.linuxplus.srv1:tomtest //創建target
/iscsi/iqn.20...est/tpg1/luns> create /backstores/block/block1 //創建LUNS
create /backstores/fileio/fikeio1
create iqn.1994-05.com.redhat:tomkvm1 //創建acl
在iscsi客戶端進行配置
iscsiadm --mode discovery --type sendtargets --portal 192.168.153.8
iscsiadm -d2 -m node --login
注意要將iscsi客戶端/etc/iscsi/initiatorname.iscsi文件中的信息改成對應的iqn信息InitiatorName=iqn.1994-05.com.redhat:tomkvm1
**vol-create-as default test1.qcow2 1G --format qcow2 在默認目錄下創建一個名為test1.qcow2存儲卷
存儲卷的管理
在virsh交互模式下進行
刪除:
vol-delete lv-name vg-name
vol-delete test1.qcow2 default
將磁盤直接劃分成邏輯卷
attach-disk
通過參數添加新的磁盤設備
virsh attach-disk --domain VM1 --source=/vm/t1.img --target=vdb --cache=none
先給虛擬機創建一個虛擬磁盤
創建虛擬磁盤的三種方法:
可以使用dd命令:
qemu-img工具來做
qemu-img create -f qcow2 test00.qcow2 2g
第三種方式:
virsh vol-create-as vm test00.qocw2 2g --format qcow2
創建xml文件**
virsh # attach-device vm1 /tmp/disk.xml --persistent
第二種添加方式
virsh# attach-disk vm1 /tmp/test00.qcow2 --target=vdc
其實我個人理解存儲池就是存放虛擬磁盤的目錄,而存儲卷則是目錄下面的虛擬磁盤文件
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。