KVM專題(3)存儲

KVM存儲模式

基於文件系統的存儲

dir:目錄格式的存儲
fs:磁盤分區存儲
neyfs:網絡共享文件存儲

基於設備的存儲

**

KVM支持的虛擬磁盤類型

raw
    這並非是一種真正的磁盤格式,而是代表虛擬機所使用的原始鏡像
    他並不存儲元數據,因此可以作爲保證虛擬機兼容性的候選方案。不支持快照和壓縮等高級特性
    格式簡但,容易轉換成爲其它的格式。需要文件系統用的支持才能使用sparse file
cow : copy-on-write格式,曇花一現
qcow : QEMU早期的copy-on-write格式
qcow2
    按需分配磁盤空間,不管文件系統是否支持
    支持快照
    支持zlib的磁盤壓縮
    支持AES的加密
vmdk
    VMware環境當中默認使用的磁盤格式
vhd\vhdx
    微軟默認採用的文件格式

使用qemu-imgg管理虛擬磁盤

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可以以存儲池的形式對存儲進行統一管理、簡化操作
對於虛擬機操作來說,存儲池和卷並不是必須的

KVM專題(3)存儲
KVM專題(3)存儲

例如我們創建一個基於目錄的存儲池

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的存儲池

在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

KVM專題(3)存儲
KVM專題(3)存儲
KVM專題(3)存儲

存儲卷

KVM專題(3)存儲
**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文件**
KVM專題(3)存儲
virsh # attach-device vm1 /tmp/disk.xml --persistent
第二種添加方式
virsh# attach-disk vm1 /tmp/test00.qcow2 --target=vdc

其實我個人理解存儲池就是存放虛擬磁盤的目錄,而存儲卷則是目錄下面的虛擬磁盤文件

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