kvm存儲池和存儲卷

1、kvm儲存模式vim

        KVM的存儲選項有多種,包括虛擬磁盤文件、基於文件系統的存儲和基於設備的存儲。後端

        

 

 

         1.虛擬磁盤文件bash

               當系統建立KVM虛擬機的時候,默認使用虛擬磁盤文件做爲後端存儲。安裝後,虛擬機 認爲在使用真實的磁盤,但實際上看到的是用於模擬硬盤的虛擬磁盤文件。服務器

               這一額外的文件 系統層會下降系統速度。 固然,基於磁盤鏡像的虛擬磁盤並不是全無益處,磁盤文件系統能夠很輕鬆地用於其它的 KVM虛擬化宿主機。網絡

               可是若是您但願優化KVM虛擬化性能,最好考慮其它的存儲方式。svg

          2.基於文件系統的KVM存儲性能

               在安裝KVM宿主機時,可選文件系統爲dir(directory)或fs(formatted block storage) 做爲初始KVM存儲格式。默認選項爲dir,用戶指定本地文件系統中的一個目錄用於建立磁盤 鏡像文件。 fs選項能夠容許用戶指定某個格式化文件系統的名稱,把它做爲專用的磁盤鏡像文件存 儲。優化

    兩種KVM存儲選項之間最主要的區別在於:fs文件系統不須要掛載到某個特定的分區。 兩種選項所指定的文件系統,均可以是本地文件系統或位於SAN上某個物理宿主機上的 網絡文件系統。後者具有必定的優點,由於SAN能夠很輕易地實現多個主機同時訪問,而本 地磁盤或文件系統則沒法實現。ui

    還有一種基於文件的磁盤存儲方式是netfs,用戶能夠指定一個網絡文件系統的名稱, 如Samba.用這種方式做爲KVM存儲很方便,由於這樣很容易訪問到位於其它服務器上的文件 系統,同時用戶也能夠經過多臺宿主機訪問磁盤文件。3d

    全部的這些基於文件的KVM存儲方式都有一個缺點:文件系統固有缺陷。由於虛擬機的 磁盤文件不能直接讀取或寫入KVM存儲設備,而是寫入宿主機OS之上的文件系統。

     這也就意 味着在訪問和寫入文件時中間增長了額外一層,這一般會下降性能。因此,若是您但願尋找 KVM虛擬化性能最優方案,最好考慮基於設備的存儲。

         3.基於設備的KVM存儲

              另一種KVM存儲的方式就是使用基於設備的方式。共支持四種不一樣的物理存儲:磁 盤、iSCSI、SCSI和lvm邏輯盤。磁盤方式指直接讀寫硬盤設備。iSCSI和SCSI方式可選,取 決於用戶採起SCSI或iSCSI地址把磁盤設備鏈接。

   這種KVM存儲方式的優點在於,磁盤的名稱 是固定的,而不須要取決於宿主機OS搜索到磁盤設備的順序。

   這種鏈接磁盤的方式也有缺點:靈活性不足。虛擬磁盤的大小很難改變,並且基於設備 的KVM存儲不支持快照。 若是要優化KVM存儲的靈活性,可使用LVM(Logical Volume Manager)。

          LVM的優點在 於可使用快照,而快照並非KVM虛擬化自帶的功能。

          LVM能夠把全部存儲放到一個卷組裏,從而輕鬆建立一個邏輯卷。該卷組是物理磁盤設 備的一個抽象,因此若是超出可用磁盤空間最大值,還能夠向卷組中添加新的設備,從而極 大簡化了增長存儲空間的過程,增長的空間在邏輯卷中直接可使用。

         使用LVM使得磁盤空 間分配更加靈活,並且增長和刪除存儲也更爲容易。

         最後,LVM不管是在單宿主機或多宿主機環境中均可以很好工做。在多宿主機環境中, 您能夠在SAN上建立邏輯卷。

         若是使用Cluster LVM,能夠很容易的配置成多個主機同時訪問 某個邏輯卷。

2、存儲池管理

          基本概念

          顯示池與卷的信息

          基於目錄的存儲池

          基於磁盤的存儲池

          基於分區的存儲池

          基於LVM的存儲池

         基於iSCSI的存儲池

         基於NFS的存儲池

     1) 存儲池的基本概念 存儲池是一個由libvirt管理的文件、目錄或存儲設備,提供給虛擬機使用。

          存儲池被 分爲存儲卷,這些存儲卷保存虛擬鏡像或鏈接到虛擬機做爲附加存儲。libvirt經過存儲池 的形式對存儲進行統一管理、簡化操做。

         對於虛擬機操做來講,存儲池和卷並非必需的。 支持如下類型存儲池:

          

 

 

  3、virsh中和存儲池相關的命令:

pool-autostart 自動啓動某個池
pool-build 創建池
pool-create-as 從一組變量中建立一個池
pool-create 從一個 XML 文件中建立一個池
pool-define-as 在一組變量中定義池
pool-define 在一個XML文件中定義(但不啓動)一個池或修改已有池
pool-delete 刪除池
pool-destroy 銷燬(刪除)池
pool-dumpxml 將池信息保存到XML文檔中
pool-edit 爲存儲池編輯 XML 配置
pool-info 查看存儲池信息
pool-list 列出池
pool-name 將池 UUID 轉換爲池名稱
pool-refresh 刷新池
pool-start 啓動一個(之前定義的)非活躍的池
pool-undefine 取消定義一個不活躍的池
pool-uuid 把一個池名稱轉換爲池 UUID

4、virsh中的和存儲卷相關命令

vol-clone 克隆卷。
vol-create-as 從一組變量中建立卷
vol-create 從一個 XML 文件建立一個卷
vol-create-from 生成卷,使用另外一個卷做爲輸入。
vol-delete 刪除卷
vol-download 將卷內容下載到文件中
vol-dumpxml 保存卷信息到XML文檔中
vol-info 查看存儲卷信息
vol-key 根據卷名或路徑返回卷的key
vol-list 列出卷
vol-name 根據給定卷key或者路徑返回卷名
vol-path 根據卷名或key返回卷路徑
vol-pool 爲給定密鑰或者路徑返回存儲池
vol-resize 從新定義卷大小
vol-upload 將文件內容上傳到卷中
vol-wipe 擦除卷

5、存儲卷命令

        1.查看系統中的存儲池

pool-list  --details  /或者 --all

  

 

      2.查看vm存儲池的信息

pool-info vm

  

 

      3.查看vm存儲池中的卷信息

vol-list vm

  

 

     4.建立基於目錄的存儲池 dir:Filesystem Directory

        1.經過virsh建立

pool-define-as test1 dir --target '/kvm-vm/dirpool/'    建立儲存池
pool-build  test1  構建池 test1
pool-start test1   池 test1 已啓動
pool-autostart  test1 池 test1 標記爲自動啓動

  

 

     5.建立基於分區的存儲池 fs:Pre-Formatted Block Device

        Libvirtd會自動掛載mount分區

         1.查看硬盤

lsblk

  

 

        2.作物理卷和卷組

pvcreate /dev/sdb
vgcreate  vgpool /dev/sdb
pvdisplay
vgs

  

 

        

 

    2.建立

pool-define-as  vgpool logical --source-name vgpool --target  /dev/vgpool      定義池 vgpool
pool-start vgpool       池 vgpool 已啓動
pool-autostart  vgpool 池 vgpool 標記爲自動啓動

  

   6.基於LVM的存儲池要求使用所有磁盤分區

      1.  安裝主鍵

 yum -y install rpcbind nfs-utils  客戶端和主端都要作

  2.啓動程序

主:
systemctl start rpcbind   主服務器只須要啓動這一個
systemctl enable rpcbind
從:
systemctl start rpcbind
systemctl enable rpcbind

systemctl start nfs-server.service
systemctl enable nfs-server.service

  鏈接nfs時要麼關閉防火牆 鏈接端口  要麼去nfs配置文件固定端口(nfs初始狀態端口隨機的)

    3.建立lvm

 pvcreate  /dev/sdb
vgcreate  nfsvg /dev/sdb
vgdisplay nfsvg
lvcreate  -n  nfslv1 -l 5119 nfsvg
lvs
mkfs.xfs /dev/nfsvg/nfslv1

  

   4.掛載lvm

mkdir /mnt/nfs
mount /dev/nfsvg/nfslv1  /mnt/nfs/   掛載位置
 vim /etc/fstab    設置開機自啓動

 

        

 

   添加權限

          vim /etc/exports  

        

   重啓 rpcbind、nfs-server.service 服務

  查看是否生效

exportfs -av
showmount -e 192.174.1.11   遠程驗證
mount -t nfs 192.174.1.11:/mnt/nfs /mnt/  遠程掛載上驗證

  

 

   5.建立儲存池

pool-define-as  nfspool netfs --source-host 192.174.1.11 --source-path /mnt/nfs --target /kvm-vm/nspool/     定義池
pool-build nfspool  構建池
pool-start nfspool  啓動池
pool-autostart  nfspool  設置自啓動池

  

 

 

 

 6、存儲卷管理

       1.儲存池概念

         存儲池被分割爲存儲卷(Storage Volume)

         存儲卷

                文件

                塊設備(如物理分區、LVM邏輯卷等)

                Libvirt管理的其餘類型存儲的抽象

         

 

         2.存儲卷管理

            建立

            克隆

            刪除

           移動

           修改大小

7、建立儲存卷

         1.查看存儲池VM中的卷

vol-list vm

   2.建立一個qcow2格式的卷

vol-create-as vgpool vspool.qcow2 8G --format qcow2

  3.創建基於LVM的卷

vol-create-as  vgpool vgvm1 8G
相關文章
相關標籤/搜索