Skip to main content
NetApp virtualization solutions
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

了解如何將ONTAP儲存與 KVM 虛擬化環境集成

貢獻者 netapp-jsnyder kevin-hoke

透過使用 Libvirt 將ONTAP儲存與 KVM 虛擬化環境集成,提高效能、資料保護和營運效率。了解 ONTAP 的企業級儲存功能如何透過靈活的 NFS、iSCSI 和光纖通道協定支援 KVM 主機基礎架構和客戶虛擬機器儲存需求。

KVM 主機中的共享儲存減少了 VM 即時遷移的時間,並為整個環境中的備份和一致模板提供了更好的目標。 ONTAP儲存可以滿足 KVM 主機環境以及客戶文件、區塊和物件儲存需求。

KVM 主機需要將 FC、乙太網路或其他支援的介面連接到交換機,並與ONTAP邏輯介面進行通訊。始終檢查 "互通性矩陣工具"了解支援的配置。

進階ONTAP功能

共同特徵

  • 擴展集群

  • 安全性身份驗證和 RBAC 支持

  • 零信任多管理員支持

  • 安全多租戶

  • 使用SnapMirror複製資料。

  • 使用快照進行時間點複製。

  • 節省空間的克隆。

  • 儲存效率功能,如重複資料刪除、壓縮等。

  • Trident CSI 對 Kubernetes 的支持

  • Snaplock

  • 防篡改快照副本鎖定

  • 加密支援

  • FabricPool將冷資料分層到物件儲存。

  • BlueXP和Data Infrastructure Insights整合。

  • Microsoft 卸載資料傳輸 (ODX)

NAS

  • FlexGroup磁碟區是一個橫向擴充 NAS 容器,提供高效能以及負載分配和可擴充性。

  • FlexCache允許資料在全球分發,同時仍提供對資料的本地讀寫存取。

  • 多重協定支援使得相同的資料可以透過 SMB 和 NFS 存取。

  • NFS nConnect 允許每個 TCP 連線建立多個 TCP 會話,從而增加網路吞吐量。這增加了現代伺服器上可用的高速網路卡的使用率。

  • NFS 會話中繼提供了更高的資料傳輸速度、高可用性和容錯能力。

  • pNFS 用於優化資料路徑連接。

  • SMB 多通道提供了更高的資料傳輸速度、高可用性和容錯能力。

  • 與 Active Directory/LDAP 整合以取得檔案權限。

  • 透過 TLS 與 NFS 建立安全連線。

  • NFS Kerberos 支援。

  • 透過 RDMA 實現的 NFS。

  • Windows 與 Unix 身分之間的名稱對應。

  • 自主勒索軟體保護。

  • 文件系統分析。

SAN

  • 使用SnapMirror主動同步跨故障域擴展叢集。

  • ASA模型提供主動/主動多路徑和快速路徑故障轉移。

  • 支援FC、iSCSI、NVMe-oF協定。

  • 支援 iSCSI CHAP 相互認證。

  • 選擇性 LUN 對映和連接埠集。

帶有ONTAP存儲的 Libvirt

Libvirt 可用於管理利用NetApp ONTAP儲存其磁碟映像和資料的虛擬機器。透過這種集成,您可以在基於 Libvirt 的虛擬化環境中受益於 ONTAP 的高級儲存功能,例如資料保護、儲存效率和效能最佳化。以下是 Libvirt 與ONTAP互動的方式以及您可以執行的操作:

  1. 儲存池管理:

    • 將ONTAP儲存定義為 Libvirt 儲存池:您可以設定 Libvirt 儲存池以透過 NFS、iSCSI 或光纖通道等協定指向ONTAP磁碟區或 LUN。

    • Libvirt 管理池內的磁碟區:一旦定義了儲存池,Libvirt 就可以管理該池內與ONTAP LUN 或檔案相對應的磁碟區的建立、刪除、複製和快照。

      • 範例:NFS 儲存池:如果您的 Libvirt 主機從ONTAP掛載 NFS 共用,則可以在 Libvirt 中定義基於 NFS 的儲存池,它會將共用中的檔案列為可用於 VM 磁碟的磁碟區。

  2. 虛擬機器磁碟儲存:

    • 在ONTAP上儲存虛擬機器磁碟映像:您可以在由ONTAP儲存支援的 Libvirt 儲存池中建立虛擬機器磁碟映像(例如,qcow2、raw)。

    • 受益於 ONTAP 的儲存功能:當 VM 磁碟儲存在ONTAP磁碟區上時,它們會自動受益於 ONTAP 的資料保護(快照、 SnapMirror、 SnapVault)、儲存效率(重複資料刪除、壓縮)和效能功能。

  3. 資料保護:

    • 自動資料保護: ONTAP提供自動資料保護功能,包括快照和SnapMirror等功能,可透過將您寶貴的資料複製到其他ONTAP儲存(無論是在本地、遠端站點還是在雲端)來保護您的寶貴資料。

    • RPO 和 RTO:您可以使用 ONTAP 的資料保護功能來實現低復原點目標 (RPO) 和快速復原時間目標 (RTO)。

    • MetroCluster/ SnapMirror主動同步:為了實現自動零 RPO(恢復點目標)和站點到站點可用性,您可以使用ONTAP MetroCluster或 SMas,這使得能夠在站點之間建立延伸叢集。

  4. 性能和效率:

    • Virtio 驅動程式:在您的客戶虛擬機器中使用 Virtio 網路和磁碟裝置驅動程式來提高效能。這些驅動程式旨在與虛擬機器管理程式協作並提供半虛擬化優勢。

    • Virtio-SCSI:為了實現可擴充性和進階儲存功能,請使用 Virtio-SCSI,它能夠直接連接到 SCSI LUN 並處理大量設備。

    • 儲存效率:ONTAP 的儲存效率功能(例如重複資料刪除、壓縮和壓縮)可以幫助減少虛擬機器磁碟的儲存空間,從而節省成本。

  5. ONTAP Select整合:

    • KVM 上的ONTAP Select : ONTAP Select是 NetApp 的軟體定義儲存解決方案,可部署在 KVM 主機上,為基於 Libvirt 的虛擬機器提供靈活且可擴充的儲存平台。

    • ONTAP Select Deploy: ONTAP Select Deploy 是一種用於建立和管理ONTAP Select叢集的工具。它可以作為虛擬機器在 KVM 或 VMware ESXi 上運行。

本質上,將 Libvirt 與ONTAP結合使用,您可以將基於 Libvirt 的虛擬化的靈活性和可擴展性與ONTAP的企業級資料管理功能相結合,為您的虛擬化環境提供強大而高效的解決方案。

基於檔案的儲存池(使用 SMB 或 NFS)

dir 和 netfs 類型的儲存池適用於基於檔案的儲存。

儲存協定 目錄 檔案系統 淨流表 邏輯 磁碟 網路連線 iscsi直接 mpath

中小企業/CIFS

是的

是的

NFS

是的

是的

使用 netfs,libvirt 將掛載檔案系統,並且支援的掛載選項有限。使用 dir 儲存池,檔案系統的掛載需要在主機外部處理。可以使用 fstab 或自動掛載程式來實現此目的。要使用自動掛載程序,需要安裝 autofs 套件。 Autofs 對於按需掛載網路共用特別有用,與 fstab 中的靜態掛載相比,這可以提高系統效能和資源利用率。一段時間不活動後,它會自動卸載共享。

根據所使用的儲存協議,驗證主機上是否安裝了所需的套件。

儲存協定 Fedora Debian 吃豆人

中小企業/CIFS

samba 客戶端/cifs-utils

smbclient/cifs實用程式

smbclient/cifs實用程式

NFS

nfs實用程式

nfs-通用

nfs實用程式

NFS 因其在 Linux 中的原生支援和效能而成為一種流行的選擇,而 SMB 則是與 Microsoft 環境整合的可行選擇。在生產中使用之前,請務必檢查支援矩陣。

根據選擇的協議,請按照適當的步驟建立 SMB 共享或 NFS 導出。https://docs.netapp.com/us-en/ontap-system-manager-classic/smb-config/index.html["SMB 共享建立"] "NFS 導出創建"

在 fstab 或自動掛載器設定檔中包含掛載選項。例如,使用 autofs 時,我們在 /etc/auto.master 中包含以下行,以使用檔案 auto.kvmfs01 和 auto.kvmsmb01 進行直接映射

/- /etc/auto.kvmnfs01 --timeout=60 /- /etc/auto.kvmsmb01 --timeout=60 --ghost

在 /etc/auto.kvmnfs01 檔案中,我們有 /mnt/kvmnfs01 -trunkdiscovery,nconnect=4 172.21.35.11,172.21.36.11(100):/kvmnfs01

對於 smb,在 /etc/auto.kvmsmb01 中,我們有 /mnt/kvmsmb01 -fstype=cifs,credentials=/root/smbpass,multichannel,max_channels=8 ://kvmfs01.sddc.netapp.com/kvmsmb01

使用池類型為 dir 的 virsh 定義儲存池。

virsh pool-define-as --name kvmnfs01 --type dir --target /mnt/kvmnfs01
virsh pool-autostart kvmnfs01
virsh pool-start kvmnfs01

可以使用

virsh vol-list kvmnfs01

為了優化基於 NFS 掛載的 Libvirt 儲存池的效能,會話中繼、pNFS 和 nconnect 掛載選項這三個選項都可以發揮作用,但它們的有效性取決於您的特定需求和環境。以下分類可以幫助您選擇最佳方法:

  1. n連接:

    • 最適合:透過使用多個 TCP 連線對 NFS 掛載本身進行簡單、直接的最佳化。

    • 工作原理:nconnect 掛載選項可讓您指定 NFS 用戶端將與 NFS 端點(伺服器)建立的 TCP 連線數。這可以顯著提高受益於多個並發連接的工作負載的吞吐量。

    • 好處:

      • 易於配置:只需將 nconnect=<number_of_connections> 新增至您的 NFS 掛載選項即可。

      • 提高吞吐量:增加 NFS 流量的「管道寬度」。

      • 對各種工作負載有效:適用於通用虛擬機器工作負載。

    • 限制:

      • 客戶端/伺服器支援:需要客戶端(Linux 核心)和 NFS 伺服器(例如ONTAP)都支援 nconnect。

      • 飽和度:設定非常高的 nconnect 值可能會使您的網路線路飽和。

      • 每次掛載設定:nconnect 值是為初始掛載設定的,並且所有後續掛載到同一伺服器和版本都會繼承此值。

  2. 會話中繼:

    • 最適合:透過利用多個網路介面 (LIF) 到 NFS 伺服器來增強吞吐量並提供一定程度的彈性。

    • 工作原理:會話中繼允許 NFS 用戶端開啟與 NFS 伺服器上不同 LIF 的多個連接,從而有效地聚合多個網路路徑的頻寬。

    • 好處:

      • 提高資料傳輸速度:透過利用多條網路路徑。

      • 彈性:如果網路路徑發生故障,其他路徑仍然可以使用,儘管故障路徑上正在進行的操作可能會掛起,直到重新建立連線。

    • 限制:仍然是單一 NFS 會話:雖然它使用多個網路路徑,但它不會改變傳統 NFS 的基本單會話性質。

    • 配置複雜性:需要在ONTAP伺服器上設定中繼組和 LIF。網路設定:需要合適的網路基礎架構來支援多路徑。

    • 使用 nConnect 選項:只有第一個介面才會套用 nConnect 選項。其餘介面將具有單一連接。

  3. pNFS:

    • 最適合:高效能、橫向擴展工作負載,可從平行資料存取和儲存設備的直接 I/O 中受益。

    • 如何運作:pNFS 分離元資料和資料路徑,允許客戶端直接從儲存存取數據,從而可能繞過 NFS 伺服器進行資料存取。

    • 好處:

      • 提高可擴展性和效能:對於受益於並行 I/O 的特定工作負載(如 HPC 和 AI/ML)。

      • 直接數據存取:允許客戶端直接從儲存讀取/寫入數據,從而減少延遲並提高效能。

      • 使用 nConnect 選項:所有連線都會套用 nConnect 以最大化網路頻寬。

    • 限制:

      • 複雜性:pNFS 的設定和管理比傳統 NFS 或 nconnect 更複雜。

      • 特定於工作負載:並非所有工作負載都能從 pNFS 中受益匪淺。

      • 客戶端支援:需要客戶端支援pNFS。

建議:* 對於 NFS 上的通用 Libvirt 儲存池:從 nconnect 掛載選項開始。它相對容易實現,並且可以透過增加連接數量來提供良好的性能提升。 * 如果您需要更高的吞吐量和彈性:請考慮在 nconnect 之外或之外使用會話中繼。在 Libvirt 主機和ONTAP系統之間具有多個網路介面的環境中,這會非常有用。 * 對於受益於並行 I/O 的苛刻工作負載:如果您正在運行可以利用平行資料存取的 HPC 或 AI/ML 等工作負載,那麼 pNFS 可能是您的最佳選擇。然而,請做好應對設定和配置日益複雜的準備。始終使用不同的掛載選項和設定測試和監控您的 NFS 效能,以確定特定 Libvirt 儲存池和工作負載的最佳配置。

基於區塊的儲存池(帶有 iSCSI、FC 或 NVMe-oF)

目錄池類型通常在共用 LUN 或命名空間上的叢集檔案系統(如 OCFS2 或 GFS2)上使用。

根據所使用的儲存協定驗證主機是否安裝了必要的軟體包。

儲存協定 Fedora Debian 吃豆人

iSCSI

iscsi 啟動器實用程式、裝置映射器多路徑、ocfs2 工具/gfs2 實用程式

open-iscsi、多路徑工具、ocfs2 工具/gfs2 實用程式

open-iscsi、多路徑工具、ocfs2 工具/gfs2 實用程式

FC

裝置映射器多路徑,ocfs2 工具/gfs2 實用程式

多路徑工具、ocfs2 工具/gfs2 實用程式

多路徑工具、ocfs2 工具/gfs2 實用程式

NVMe-oF

nvme-cli、ocfs2-工具/gfs2-utils

nvme-cli、ocfs2-工具/gfs2-utils

nvme-cli、ocfs2-工具/gfs2-utils

收集主機iqn/wwpn/nqn。

# To view host iqn
cat /etc/iscsi/initiatorname.iscsi
# To view wwpn
systool -c fc_host -v
# or if you have ONTAP Linux Host Utility installed
sanlun fcp show adapter -v
# To view nqn
sudo nvme show-hostnqn

請參閱對應部分來建立 LUN 或命名空間。

確保 FC 分區或乙太網路設備配置為與ONTAP邏輯介面通訊。

對於 iSCSI,

# Register the target portal
iscsiadm -m discovery -t st -p 172.21.37.14
# Login to all interfaces
iscsiadm -m node -L all
# Ensure iSCSI service is enabled
sudo systemctl enable iscsi.service
# Verify the multipath device info
multipath -ll
# OCFS2 configuration we used.
o2cb add-cluster kvmcl01
o2cb add-node kvm02.sddc.netapp.com
o2cb cluster-status
mkfs.ocfs2 -L vmdata -N 4  --cluster-name=kvmcl01 --cluster-stack=o2cb -F /dev/mapper/3600a098038314c57312b58387638574f
mount -t ocfs2 /dev/mapper/3600a098038314c57312b58387638574f1 /mnt/kvmiscsi01/
mounted.ocfs2 -d
# For libvirt storage pool
virsh pool-define-as --name kvmiscsi01 --type dir --target /mnt/kvmiscsi01
virsh pool-autostart kvmiscsi01
virsh pool-start kvmiscsi01

對於 NVMe/TCP,我們使用

# Listing the NVMe discovery
cat /etc/nvme/discovery.conf
# Used for extracting default parameters for discovery
#
# Example:
# --transport=<trtype> --traddr=<traddr> --trsvcid=<trsvcid> --host-traddr=<host-traddr> --host-iface=<host-iface>
-t tcp -l 1800 -a 172.21.37.16
-t tcp -l 1800 -a 172.21.37.17
-t tcp -l 1800 -a 172.21.38.19
-t tcp -l 1800 -a 172.21.38.20
# Login to all interfaces
nvme connect-all
nvme list
# Verify the multipath device info
nvme show-topology
# OCFS2 configuration we used.
o2cb add-cluster kvmcl01
o2cb add-node kvm02.sddc.netapp.com
o2cb cluster-status
mkfs.ocfs2 -L vmdata1 -N 4  --cluster-name=kvmcl01 --cluster-stack=o2cb -F /dev/nvme2n1
mount -t ocfs2 /dev/nvme2n1 /mnt/kvmns01/
mounted.ocfs2 -d
# To change label
tunefs.ocfs2 -L tme /dev/nvme2n1
# For libvirt storage pool
virsh pool-define-as --name kvmns01 --type dir --target /mnt/kvmns01
virsh pool-autostart kvmns01
virsh pool-start kvmns01

對於 FC,

# Verify the multipath device info
multipath -ll
# OCFS2 configuration we used.
o2cb add-cluster kvmcl01
o2cb add-node kvm02.sddc.netapp.com
o2cb cluster-status
mkfs.ocfs2 -L vmdata2 -N 4  --cluster-name=kvmcl01 --cluster-stack=o2cb -F /dev/mapper/3600a098038314c57312b583876385751
mount -t ocfs2 /dev/mapper/3600a098038314c57312b583876385751 /mnt/kvmfc01/
mounted.ocfs2 -d
# For libvirt storage pool
virsh pool-define-as --name kvmfc01 --type dir --target /mnt/kvmfc01
virsh pool-autostart kvmfc01
virsh pool-start kvmfc01

注意:裝置掛載應包含在 /etc/fstab 中或使用自動掛載對映檔案。

Libvirt 管理叢集檔案系統上的虛擬磁碟(檔案)。它依賴叢集檔案系統(OCFS2 或 GFS2)來處理底層共用區塊存取和資料完整性。 OCFS2 或 GFS2 充當 Libvirt 主機和共用區塊儲存之間的抽象層,提供必要的鎖定和協調,以允許安全地並發存取儲存在該共用儲存上的虛擬磁碟映像。