本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

組態選項與範例

貢獻者

瞭解如何透過ONTAP Astra Trident安裝來建立及使用支援NetApp的SAN驅動程式。本節提供後端組態範例、以及如何將後端對應至StorageClass的詳細資料。

後端組態選項

如需後端組態選項、請參閱下表:

參數 說明 預設

version

永遠為1

storageDriverName

儲存驅動程式名稱

「ONTAP-NAS」、「ONTAP-NAS-節約 型」、「ONTAP-NAS-flexgroup」、「ONTAP-SAN」、「ONTAP-san經濟型」

backendName

自訂名稱或儲存後端

驅動程式名稱+「_」+ dataLIF

managementLIF

叢集的IP位址或SVM管理LIF若要順暢MetroCluster 切換、您必須指定SVM管理LIF。此功能為*技術預覽*。

「10.0.0.1」、「[2001:1234:abcd:::fefo]」

dataLIF

傳輸協定LIF的IP位址。IPv6使用方括弧。設定後無法更新

除非另有說明、否則由SVM衍生

useCHAP

使用CHAP驗證iSCSI以供ONTAP 支援不支援的SAN驅動程式使用[布林值]

chapInitiatorSecret

CHAP啟動器密碼。必要條件 useCHAP=true

「」

labels

套用到磁碟區的任意JSON-格式化標籤集

「」

chapTargetInitiatorSecret

CHAP目標啟動器機密。必要條件 useCHAP=true

「」

chapUsername

傳入使用者名稱。必要條件 useCHAP=true

「」

chapTargetUsername

目標使用者名稱。必要條件 useCHAP=true

「」

clientCertificate

用戶端憑證的Base64編碼值。用於憑證型驗證

「」

clientPrivateKey

用戶端私密金鑰的Base64編碼值。用於憑證型驗證

「」

trustedCACertificate

受信任CA憑證的Base64編碼值。選用。用於憑證型驗證

「」

username

連線至叢集/ SVM的使用者名稱。用於認證型驗證

「」

password

連線至叢集/ SVM的密碼。用於認證型驗證

「」

svm

要使用的儲存虛擬機器

如果是SVM則衍生 managementLIF 已指定

igroupName

要使用之SAN磁碟區的igroup名稱

「Trident -<後端-UUID>」

storagePrefix

在SVM中配置新磁碟區時所使用的前置碼。設定後無法更新

「Trident」

limitAggregateUsage

如果使用率高於此百分比、則無法進行資源配置。*不適用於Amazon FSX for ONTAP Sfor Sfor *

「」(預設不強制執行)

limitVolumeSize

如果要求的磁碟區大小高於此值、則資源配置失敗。

「」(預設不強制執行)

lunsPerFlexvol

每FlexVol 個LUN的最大LUN數量、範圍必須在[50、200]

「100」

debugTraceFlags

疑難排解時要使用的偵錯旗標。範例:{"API":假、「方法」:true}

null

useREST

使用ONTAP Isrest API的布林參數。不支援MetroCluster 技術預覽

警告
<code>useREST</code>注意事項
  • useREST 以*技術預覽*的形式提供、建議用於測試環境、而非用於正式作業工作負載。設定為時 true、Astra Trident將使用ONTAP 靜止API與後端進行通訊。此功能需要ONTAP 使用更新版本的版本。此外ONTAP 、所使用的登入角色必須能夠存取 ontap 應用程式:這是預先定義的 vsadmincluster-admin 角色:

  • useREST 不支援MetroCluster 使用支援。

若要與ONTAP 此叢集通訊、您應該提供驗證參數。這可能是安全登入或安裝憑證的使用者名稱/密碼。

警告 如果您使用Amazon FSX for NetApp ONTAP Sendbackend、請勿指定 limitAggregateUsage 參數。。 fsxadminvsadmin Amazon FSX for NetApp ONTAP 的角色不包含擷取Aggregate使用量及透過Astra Trident加以限制所需的存取權限。
警告 請勿使用 debugTraceFlags 除非您正在疑難排解並需要詳細的記錄傾印。

適用於 ontap-san 驅動程式、預設為使用SVM的所有資料LIF IP、並使用iSCSI多重路徑。為的指定dataLIF的IP位址 ontap-san 驅動程式會強制他們停用多重路徑、並只使用指定的位址。

註 建立後端時、請記住這一點 dataLIFstoragePrefix 無法在建立後修改。若要更新這些參數、您需要建立新的後端。

igroupName 可設定為ONTAP 已在叢集上建立的igroup。如果未指定、Astra Trident會自動建立名為Trident的igroup -<後端UUID >。如果提供預先定義的igroupName、則如果要在環境之間共用SVM、NetApp建議使用每個Kubernetes叢集的igroup。這是Astra Trident自動維護IQN新增/刪除的必要條件。

後端也可以在建立後更新igroup:

  • 可以更新igroupName、以指向在Astra Trident以外的SVM上建立及管理的新igroup。

  • 可以省略igroupName。在此案例中、Astra Trident會自動建立及管理Trident -<backend-UUUUID> igroup。

在這兩種情況下、仍可繼續存取Volume附件。未來的Volume附件將使用更新的igroup。此更新不會中斷對後端磁碟區的存取。

您可以為指定完整網域名稱(FQDN) managementLIF 選項。

`managementLIF` 對於所有ONTAP 的版本、也可以將所有的版本設定為IPv6位址。請務必使用安裝Trident `--use-ipv6` 旗標。必須謹慎定義 `managementLIF` 方括弧內的IPv6位址。
警告 使用IPv6位址時、請務必確認 managementLIFdataLIF (如果包含在後端定義中)是在方括弧內定義、例如[28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]。如果 dataLIF 未提供、Astra Trident會從SVM擷取IPv6資料lifs。

若要讓ONTAP-SAN驅動程式使用CHAP、請設定 useCHAP 參數至 true 在後端定義中。然後Astra Trident會設定並使用雙向CHAP做為後端所指定SVM的預設驗證。請參閱 "請按這裡" 以瞭解其運作方式。

適用於 ontap-san-economy 驅動程式 limitVolumeSize 選項也會限制其管理的qtree和LUN磁碟區大小上限。

註 Astra Trident會在使用建立的所有磁碟區的「Comments」(註解)欄位中設定資源配置標籤 ontap-san 驅動程式:針對所建立的每個Volume、FlexVol 將會在顯示於其儲存資源池中的「Comments」(註解)欄位中填入所有標籤。儲存管理員可以定義每個儲存資源池的標籤、並將儲存資源池中建立的所有磁碟區分組。這是根據後端組態中提供的一組可自訂標籤、方便區分磁碟區的方法。

用於資源配置磁碟區的後端組態選項

您可以在組態的特定區段中、使用這些選項來控制預設配置每個Volume的方式。如需範例、請參閱下列組態範例。

參數 說明 預設

spaceAllocation

LUN的空間分配

「真的」

spaceReserve

空間保留模式;「無」(精簡)或「Volume」(完整)

「無」

snapshotPolicy

要使用的Snapshot原則

「無」

qosPolicy

要指派給所建立磁碟區的QoS原則群組。選擇每個儲存集區/後端的其中一個qosPolicy或adaptiveQosPolicy

「」

adaptiveQosPolicy

要指派給所建立磁碟區的調適性QoS原則群組。選擇每個儲存集區/後端的其中一個qosPolicy或adaptiveQosPolicy

「」

snapshotReserve

保留給快照「0」的磁碟區百分比

如果 snapshotPolicy 為「無」、否則為「」

splitOnClone

建立複本時、從其父複本分割複本

「假」

splitOnClone

建立複本時、從其父複本分割複本

「假」

encryption

在新磁碟區上啟用NetApp Volume Encryption(NVE);預設為 false。必須在叢集上授權並啟用NVE、才能使用此選項。如果在後端啟用NAE、則Astra Trident中配置的任何磁碟區都會啟用NAE。如需詳細資訊、請參閱: "Astra Trident如何與NVE和NAE搭配運作"

「假」

securityStyle

新磁碟區的安全樣式

「UNIX」

tieringPolicy

分層原則以使用「無」

ONTAP 9.5之前的SVM-DR組態為「純快照」

註 搭配Astra Trident使用QoS原則群組需要ONTAP 使用更新版本的版本。建議使用非共用的QoS原則群組、並確保原則群組會個別套用至每個組成群組。共享的QoS原則群組將強制所有工作負載的總處理量上限。

以下是已定義預設值的範例:

{
 "version": 1,
 "storageDriverName": "ontap-san",
 "managementLIF": "10.0.0.1",
 "dataLIF": "10.0.0.2",
 "svm": "trident_svm",
 "username": "admin",
 "password": "password",
 "labels": {"k8scluster": "dev2", "backend": "dev2-sanbackend"},
 "storagePrefix": "alternate-trident",
 "igroupName": "custom",
 "debugTraceFlags": {"api":false, "method":true},
 "defaults": {
     "spaceReserve": "volume",
     "qosPolicy": "standard",
     "spaceAllocation": "false",
     "snapshotPolicy": "default",
     "snapshotReserve": "10"
 }
}
註 針對使用建立的所有Volume ontap-san 驅動程式Astra Trident在FlexVol 支援LUN中繼資料的過程中、額外增加10%的容量。LUN的配置大小與使用者在PVc中要求的大小完全相同。Astra Trident在FlexVol 整個過程中增加10%的速度(顯示ONTAP 在畫面上可用的尺寸)。使用者現在可以取得所要求的可用容量。此變更也可防止LUN成為唯讀、除非可用空間已充分利用。這不適用於ONTAP-san經濟型。

用於定義的後端 snapshotReserve、Astra Trident會依照下列方式計算Volume大小:

Total volume size = [(PVC requested size) / (1 - (snapshotReserve percentage) / 100)] * 1.1

1.1是額外10%的Astra Trident加入FlexVol 到the支援LUN中繼資料的功能。適用於 snapshotReserve = 5%、而PVC要求= 5GiB、磁碟區總大小為5.79GiB、可用大小為5.5GiB。。 volume show 命令應顯示類似以下範例的結果:

顯示Volume show命令的輸出。

目前、只有調整大小、才能將新計算用於現有的Volume。

最低組態範例

下列範例顯示基本組態、讓大部分參數保留預設值。這是定義後端最簡單的方法。

註 如果您在NetApp ONTAP 支援Astra Trident的NetApp上使用Amazon FSX、建議您指定lifs的DNS名稱、而非IP位址。

ontap-san 具有憑證型驗證的驅動程式

這是最小的後端組態範例。 clientCertificateclientPrivateKey`和 `trustedCACertificate (選用、如果使用信任的CA)會填入 backend.json 並分別取得用戶端憑證、私密金鑰及信任CA憑證的基礎64編碼值。

{
    "version": 1,
    "storageDriverName": "ontap-san",
    "backendName": "DefaultSANBackend",
    "managementLIF": "10.0.0.1",
    "dataLIF": "10.0.0.3",
    "svm": "svm_iscsi",
    "useCHAP": true,
    "chapInitiatorSecret": "cl9qxIm36DKyawxy",
    "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz",
    "chapTargetUsername": "iJF4heBRT0TCwxyz",
    "chapUsername": "uh2aNCLSd6cNwxyz",
    "igroupName": "trident",
    "clientCertificate": "ZXR0ZXJwYXB...ICMgJ3BhcGVyc2",
    "clientPrivateKey": "vciwKIyAgZG...0cnksIGRlc2NyaX",
    "trustedCACertificate": "zcyBbaG...b3Igb3duIGNsYXNz"
}

ontap-san 使用雙向CHAP的驅動程式

這是最小的後端組態範例。此基本組態會建立 ontap-san 後端 useCHAP 設定為 true

{
    "version": 1,
    "storageDriverName": "ontap-san",
    "managementLIF": "10.0.0.1",
    "dataLIF": "10.0.0.3",
    "svm": "svm_iscsi",
    "labels": {"k8scluster": "test-cluster-1", "backend": "testcluster1-sanbackend"},
    "useCHAP": true,
    "chapInitiatorSecret": "cl9qxIm36DKyawxy",
    "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz",
    "chapTargetUsername": "iJF4heBRT0TCwxyz",
    "chapUsername": "uh2aNCLSd6cNwxyz",
    "igroupName": "trident",
    "username": "vsadmin",
    "password": "secret"
}

ontap-san-economy 驅動程式

{
    "version": 1,
    "storageDriverName": "ontap-san-economy",
    "managementLIF": "10.0.0.1",
    "svm": "svm_iscsi_eco",
    "useCHAP": true,
    "chapInitiatorSecret": "cl9qxIm36DKyawxy",
    "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz",
    "chapTargetUsername": "iJF4heBRT0TCwxyz",
    "chapUsername": "uh2aNCLSd6cNwxyz",
    "igroupName": "trident",
    "username": "vsadmin",
    "password": "secret"
}

虛擬儲存資源池的後端範例

在下圖所示的範例後端定義檔案中、會針對所有儲存資源池設定特定的預設值、例如 spaceReserve 無、 spaceAllocation 假、和 encryption 錯。虛擬儲存資源池是在儲存區段中定義。

在此範例中、有些儲存資源池會自行設定 spaceReservespaceAllocation`和 `encryption 值、部分集區會覆寫上述設定的預設值。

{
    "version": 1,
    "storageDriverName": "ontap-san",
    "managementLIF": "10.0.0.1",
    "dataLIF": "10.0.0.3",
    "svm": "svm_iscsi",
    "useCHAP": true,
    "chapInitiatorSecret": "cl9qxIm36DKyawxy",
    "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz",
    "chapTargetUsername": "iJF4heBRT0TCwxyz",
    "chapUsername": "uh2aNCLSd6cNwxyz",
    "igroupName": "trident",
    "username": "vsadmin",
    "password": "secret",

    "defaults": {
          "spaceAllocation": "false",
          "encryption": "false",
          "qosPolicy": "standard"
    },
    "labels":{"store": "san_store", "kubernetes-cluster": "prod-cluster-1"},
    "region": "us_east_1",
    "storage": [
        {
            "labels":{"protection":"gold", "creditpoints":"40000"},
            "zone":"us_east_1a",
            "defaults": {
                "spaceAllocation": "true",
                "encryption": "true",
                "adaptiveQosPolicy": "adaptive-extreme"
            }
        },
        {
            "labels":{"protection":"silver", "creditpoints":"20000"},
            "zone":"us_east_1b",
            "defaults": {
                "spaceAllocation": "false",
                "encryption": "true",
                "qosPolicy": "premium"
            }
        },
        {
            "labels":{"protection":"bronze", "creditpoints":"5000"},
            "zone":"us_east_1c",
            "defaults": {
                "spaceAllocation": "true",
                "encryption": "false"
            }
        }
    ]
}

以下是的iSCSI範例 ontap-san-economy 驅動程式:

{
    "version": 1,
    "storageDriverName": "ontap-san-economy",
    "managementLIF": "10.0.0.1",
    "svm": "svm_iscsi_eco",
    "useCHAP": true,
    "chapInitiatorSecret": "cl9qxIm36DKyawxy",
    "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz",
    "chapTargetUsername": "iJF4heBRT0TCwxyz",
    "chapUsername": "uh2aNCLSd6cNwxyz",
    "igroupName": "trident",
    "username": "vsadmin",
    "password": "secret",

    "defaults": {
          "spaceAllocation": "false",
          "encryption": "false"
    },
    "labels":{"store":"san_economy_store"},
    "region": "us_east_1",
    "storage": [
        {
            "labels":{"app":"oracledb", "cost":"30"},
            "zone":"us_east_1a",
            "defaults": {
                "spaceAllocation": "true",
                "encryption": "true"
            }
        },
        {
            "labels":{"app":"postgresdb", "cost":"20"},
            "zone":"us_east_1b",
            "defaults": {
                "spaceAllocation": "false",
                "encryption": "true"
            }
        },
        {
            "labels":{"app":"mysqldb", "cost":"10"},
            "zone":"us_east_1c",
            "defaults": {
                "spaceAllocation": "true",
                "encryption": "false"
            }
        }
    ]
}

將後端對應至StorageClass

下列StorageClass定義係指上述虛擬儲存資源池。使用 parameters.selector 欄位中、每個StorageClass會呼叫哪些虛擬資源池可用於裝載Volume。磁碟區將會在所選的虛擬資源池中定義各個層面。

  • 第一個StorageClass (protection-gold)將對應至中的第一個、第二個虛擬儲存資源池 ontap-nas-flexgroup 後端與中的第一個虛擬儲存資源池 ontap-san 後端:這是唯一提供金級保護的資源池。

  • 第二個StorageClass (protection-not-gold)將對應至中的第三、第四個虛擬儲存資源池 ontap-nas-flexgroup 中的後端和第二個、第三個虛擬儲存資源池 ontap-san 後端:這是唯一提供金級以外保護層級的資源池。

  • 第三個StorageClass (app-mysqldb)將對應至中的第四個虛擬儲存資源池 ontap-nas 中的後端和第三個虛擬儲存資源池 ontap-san-economy 後端:這些是唯一提供mysqldb類型應用程式儲存池組態的集區。

  • 第四個StorageClass (protection-silver-creditpoints-20k)將對應至中的第三個虛擬儲存資源池 ontap-nas-flexgroup 中的後端和第二個虛擬儲存資源池 ontap-san 後端:這些資源池是唯一能以20000個信用點數提供金級保護的資源池。

  • 第五個StorageClass (creditpoints-5k)將對應至中的第二個虛擬儲存資源池 ontap-nas-economy 中的後端和第三個虛擬儲存資源池 ontap-san 後端:這些是唯一提供5000個信用點數的資源池產品。

Astra Trident將決定選取哪個虛擬儲存資源池、並確保符合儲存需求。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: protection-gold
provisioner: netapp.io/trident
parameters:
  selector: "protection=gold"
  fsType: "ext4"
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: protection-not-gold
provisioner: netapp.io/trident
parameters:
  selector: "protection!=gold"
  fsType: "ext4"
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: app-mysqldb
provisioner: netapp.io/trident
parameters:
  selector: "app=mysqldb"
  fsType: "ext4"
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: protection-silver-creditpoints-20k
provisioner: netapp.io/trident
parameters:
  selector: "protection=silver; creditpoints=20000"
  fsType: "ext4"
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: creditpoints-5k
provisioner: netapp.io/trident
parameters:
  selector: "creditpoints=5000"
  fsType: "ext4"