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

配置儲存後端

貢獻者 netapp-aruldeepa

ONTAP SAN 和 NAS 驅動程式集成

若要建立儲存後端,您需要建立 JSON 或 YAML 格式的設定檔。該文件需要指定您想要的儲存類型(NAS 或 SAN)、檔案系統、要從中取得儲存的 SVM 以及如何對其進行驗證。以下範例展示如何定義基於 NAS 的存儲,以及如何使用 AWS Secret 來儲存要使用的 SVM 的憑證:

YAML
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: backend-tbc-ontap-nas
  namespace: trident
spec:
  version: 1
  storageDriverName: ontap-nas
  backendName: tbc-ontap-nas
  svm: svm-name
  aws:
    fsxFilesystemID: fs-xxxxxxxxxx
  credentials:
    name: "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name"
    type: awsarn
JSON
{
  "apiVersion": "trident.netapp.io/v1",
  "kind": "TridentBackendConfig",
  "metadata": {
    "name": "backend-tbc-ontap-nas"
    "namespace": "trident"
  },
  "spec": {
    "version": 1,
    "storageDriverName": "ontap-nas",
    "backendName": "tbc-ontap-nas",
    "svm": "svm-name",
    "aws": {
      "fsxFilesystemID": "fs-xxxxxxxxxx"
    },
    "managementLIF": null,
    "credentials": {
      "name": "arn:aws:secretsmanager:us-west-2:xxxxxxxx:secret:secret-name",
      "type": "awsarn"
    }
  }
}

執行下列命令以建立和驗證Trident後端設定 (TBC):

  • 從 yaml 檔案建立 Trident 後端設定 (TBC),並執行下列命令:

    kubectl create -f backendconfig.yaml -n trident
    tridentbackendconfig.trident.netapp.io/backend-tbc-ontap-nas created
  • 驗證 Trident 後端設定 (TBC) 是否已成功建立:

    Kubectl get tbc -n trident
    NAME                         BACKEND NAME         BACKEND UUID                           PHASE   STATUS
    
    backend-tbc-ontap-nas        tbc-ontap-nas        933e0071-66ce-4324-b9ff-f96d916ac5e9   Bound   Success

FSx 適用於ONTAP驅動程式的詳細信息

您可以使用下列驅動程式將Trident與Amazon FSx for NetApp ONTAP整合:

  • `ontap-san`每個已設定的 PV 都是其自身Amazon FSx for NetApp ONTAP磁碟區中的一個 LUN。推薦用於塊存儲。

  • `ontap-nas`每個已配置的 PV 都是一個完整的Amazon FSx for NetApp ONTAP磁碟區。推薦用於NFS和SMB。

  • `ontap-san-economy`每個已設定的 PV 都是一個 LUN,每個Amazon FSx for NetApp ONTAP磁碟區可設定 LUN 的數量。

  • `ontap-nas-economy`每個已配置的 PV 都是一個 qtree,每個Amazon FSx for NetApp ONTAP磁碟區可以配置 qtree 的數量。

  • `ontap-nas-flexgroup`每個已配置的 PV 都是一個完整的Amazon FSx for NetApp ONTAP FlexGroup磁碟區。

有關司機詳情,請參閱"NAS驅動程式""SAN驅動程式"

設定檔建立完成後,執行以下命令將其建立在 EKS 中:

kubectl create -f configuration_file

若要驗證狀態,請執行以下命令:

kubectl get tbc -n trident
NAME                    BACKEND NAME            BACKEND UUID                           PHASE   STATUS
backend-fsx-ontap-nas   backend-fsx-ontap-nas   7a551921-997c-4c37-a1d1-f2f4c87fa629   Bound   Success

後端高級配置和範例

請參閱下表以了解後端配置選項:

範圍 描述 例子

version

始終為 1

storageDriverName

儲存驅動程式的名稱

ontap-nasontap-nas-economyontap-nas-flexgroupontap-sanontap-san-economy

backendName

自訂名稱或儲存後端

驅動程式名稱 + "_" + dataLIF

managementLIF

叢集或 SVM 管理 LIF 的 IP 位址可以指定完全限定網域名稱 (FQDN)。如果Trident安裝時使用了 IPv6 標誌,則可以設定為使用 IPv6 位址。 IPv6 位址必須用方括號定義,例如 [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]。如果您提供 `fsxFilesystemID`在 `aws`在欄位中,您無需提供 `managementLIF`因為Trident可以檢索 SVM `managementLIF`來自 AWS 的資訊。因此,您必須提供 SVM 下使用者的憑證(例如:vsadmin),且該使用者必須擁有下列權限: `vsadmin`角色。

"10.0.0.1", "[2001:1234:abcd::fefe]"

dataLIF

LIF協定的IP位址。 * ONTAP NAS 驅動程式*: NetApp建議指定 dataLIF。如果未提供, Trident將從 SVM 取得 dataLIF。您可以指定一個完全限定網域名稱 (FQDN) 用於 NFS 掛載操作,從而建立輪詢 DNS 以在多個 dataLIF 之間進行負載平衡。初始設定後可以更改。參考。 * ONTAP SAN 驅動程式*:不要為 iSCSI 指定。 Trident使用ONTAP選擇性 LUN 對應來發現建立多路徑會話所需的 iSCI LIF。如果明確定義了 dataLIF,則會產生警告。如果Trident安裝時使用了 IPv6 標誌,則可以設定為使用 IPv6 位址。 IPv6 位址必須用方括號定義,例如 [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]。

autoExportPolicy

啟用自動匯出策略建立和更新 [布林值]。使用 `autoExportPolicy`和 `autoExportCIDRs`選用功能包括: Trident可以自動管理出口策略。

false

autoExportCIDRs

用於過濾 Kubernetes 節點 IP 的 CIDR 列表 `autoExportPolicy`已啟用。使用 `autoExportPolicy`和 `autoExportCIDRs`選用功能包括: Trident可以自動管理出口策略。

"["0.0.0.0/0", "::/0"]"

labels

若要套用於磁碟區的任意 JSON 格式標籤集

“”

clientCertificate

用戶端憑證的 Base64 編碼值。用於基於憑證的身份驗證

“”

clientPrivateKey

客戶端私鑰的 Base64 編碼值。用於基於憑證的身份驗證

“”

trustedCACertificate

受信任 CA 憑證的 Base64 編碼值。選修的。用於基於憑證的身份驗證。

“”

username

連接到叢集或 SVM 的使用者名稱。用於基於憑證的身份驗證。例如,vsadmin。

password

連接叢集或SVM的密碼。用於基於憑證的身份驗證。

svm

使用的儲存虛擬機

如果指定了 SVM 管理 LIF,則派生出該 LIF。

storagePrefix

在 SVM 中配置新磁碟區時所使用的前綴。創建後無法修改。要更新此參數,您需要建立一個新的後端。

trident

limitAggregateUsage

*請勿指定用於Amazon FSx for NetApp ONTAP。 *提供的 `fsxadmin`和 `vsadmin`不包含檢索匯總使用情況和使用Trident限制它所需的權限。

請勿使用。

limitVolumeSize

如果請求的磁碟區大小大於此值,則配置失敗。此外,它還限制了其管理的 qtree 和 LUN 卷的最大大小,以及 `qtreesPerFlexvol`此選項允許自訂每個FlexVol volume的最大 qtree 數量。

(預設不強制執行)

lunsPerFlexvol

每個 Flexvol 卷的最大 LUN 數必須在 [50, 200] 範圍內。僅限SAN。

100

debugTraceFlags

故障排除時要使用的調試標誌。例如,{"api":false, "method":true} 請勿使用 `debugTraceFlags`除非您正在進行故障排除並且需要詳細的日誌轉儲。

無效的

nfsMountOptions

以逗號分隔的 NFS 掛載選項清單。 Kubernetes 持久性磁碟區的掛載選項通常在儲存類別中指定,但如果儲存類別中沒有指定掛載選項, Trident將回退到使用儲存後端設定檔中指定的掛載選項。如果在儲存類別或設定檔中未指定任何掛載選項, Trident將不會在關聯的持久性磁碟區上設定任何掛載選項。

“”

nasType

配置 NFS 或 SMB 磁碟區的建立。選項有 nfs, `smb`或空值。 *必須設定為 `smb`適用於 SMB 卷。 *設定為 null 則預設使用 NFS 磁碟區。

nfs

qtreesPerFlexvol

每個FlexVol volume的最大 Qtree 數量必須在 [50, 300] 範圍內

"200"

smbShare

您可以指定以下名稱之一:使用 Microsoft 管理主控台或ONTAP CLI 所建立的 SMB 共用的名稱,或允許Trident建立 SMB 共用的名稱。此參數是Amazon FSx for ONTAP後端所必需的。

smb-share

useREST

使用ONTAP REST API 的布林參數。設定為 `true`Trident將使用ONTAP REST API 與後端進行通訊。此功能需要ONTAP 9.11.1 及更高版本。此外,所使用的ONTAP登入角色必須具有存取權限。 `ontap`應用。預定義項滿足了這一點。 `vsadmin`和 `cluster-admin`角色。

false

aws

您可以在 AWS FSx for ONTAP的設定檔中指定以下內容: - fsxFilesystemID :指定 AWS FSx 檔案系統的 ID。 - apiRegion AWS API 區域名稱。 - apikey AWS API 金鑰。 - secretKey AWS 金鑰。



""
""
""

credentials

指定要儲存在 AWS Secrets Manager 中的 FSx SVM 憑證。 - name :包含 SVM 憑證的金鑰的 Amazon 資源名稱 (ARN)。 - type`設定為 `awsarn。請參閱"建立 AWS Secrets Manager 金鑰"了解更多。

用於配置磁碟區的後端配置選項

您可以使用下列選項控制預設配置。 `defaults`配置部分。例如,請參閱下面的設定範例。

範圍 描述 預設

spaceAllocation

LUN 的空間分配

true

spaceReserve

空間預留模式;「無」(細)或「大量」(粗)

none

snapshotPolicy

要使用的快照策略

none

qosPolicy

若要為建立的磁碟區指派的 QoS 策略群組。每個儲存池或後端選擇 qosPolicy 或 adaptiveQosPolicy 之一。將 QoS 策略群組與Trident結合使用需要ONTAP 9.8 或更高版本。您應該使用非共享的 QoS 策略群組,並確保該策略群組單獨套用至每個成員。共享的 QoS 策略群組強制規定所有工作負載的總吞吐量上限。

“”

adaptiveQosPolicy

若要為建立的磁碟區指派的自適應 QoS 策略群組。每個儲存池或後端選擇 qosPolicy 或 adaptiveQosPolicy 之一。 ontap-nas-economy 不支援此功能。

“”

snapshotReserve

為快照“0”預留的磁碟區百分比

如果 snapshotPolicy`是 `noneelse “”

splitOnClone

創建時將克隆體從其母體中分離出來

false

encryption

在新磁碟區啟用NetApp磁碟區加密 (NVE);預設為 false。若要使用此選項,必須在叢集上取得 NVE 許可並啟用 NVE。如果後端啟用了 NAE,則在Trident中配置的任何磁碟區都會啟用 NAE。更多信息,請參閱:"Trident如何與 NVE 和 NAE 協同工作"

false

luksEncryption

啟用LUKS加密。參考"使用 Linux 統一金鑰設定 (LUKS)"。僅限SAN。

“”

tieringPolicy

分層策略的使用 none

unixPermissions

新卷模式。 *SMB卷請留空。 *

“”

securityStyle

新磁碟區的安全樣式。 NFS 支持 `mixed`和 `unix`安全措施。中小企業支持 `mixed`和 `ntfs`安全措施。

NFS 預設值為 unix。 SMB 預設值為 ntfs

準備配置SMB卷

您可以使用以下方式設定 SMB 磁碟區: `ontap-nas`司機。在你完成之前ONTAP SAN 和 NAS 驅動程式集成請完成以下步驟。

開始之前

在使用以下方式設定 SMB 磁碟區之前: `ontap-nas`駕駛員,您必須具備以下條件。

  • 一個 Kubernetes 叢集,包含一個 Linux 控制器節點和至少一個執行 Windows Server 2019 的 Windows 工作節點。 Trident僅支援掛載到執行在 Windows 節點上的 pod 的 SMB 磁碟區。

  • 至少有一個包含您的 Active Directory 憑證的Trident金鑰。生成秘密 smbcreds

    kubectl create secret generic smbcreds --from-literal username=user --from-literal password='password'
  • 配置為 Windows 服務的 CSI 代理程式。要配置 csi-proxy,請參閱"GitHub:CSI代理"或者"GitHub:適用於 Windows 的 CSI 代理"適用於在 Windows 上執行的 Kubernetes 節點。

步驟
  1. 建立SMB共享。您可以透過以下兩種方式之一建立 SMB 管理共用:"Microsoft 管理控制台"共用資料夾管理單元或使用ONTAP CLI。使用ONTAP CLI 建立 SMB 共享:

    1. 如有必要,請建立共用的目錄路徑結構。

      這 `vserver cifs share create`此指令檢查在建立共用時 -path 選項中指定的路徑。如果指定的路徑不存在,則命令執行失敗。

    2. 建立與指定 SVM 關聯的 SMB 共用:

      vserver cifs share create -vserver vserver_name -share-name share_name -path path [-share-properties share_properties,...] [other_attributes] [-comment text]
    3. 確認共享已建立:

      vserver cifs share show -share-name share_name
      註 請參閱"建立 SMB 共享"了解詳細資訊。
  2. 建立後端時,必須配置以下內容以指定 SMB 磁碟區。有關所有 FSx for ONTAP後端設定選項,請參閱"FSx for ONTAP設定選項和範例"

    範圍 描述 例子

    smbShare

    您可以指定以下名稱之一:使用 Microsoft 管理主控台或ONTAP CLI 所建立的 SMB 共用的名稱,或允許Trident建立 SMB 共用的名稱。此參數是Amazon FSx for ONTAP後端所必需的。

    smb-share

    nasType

    *必須設定為 smb.*如果為空,則預設為空。 nfs

    smb

    securityStyle

    新磁碟區的安全樣式。 *必須設定為 `ntfs`或者 `mixed`適用於 SMB 卷。 *

    `ntfs`或者 `mixed`適用於 SMB 卷

    unixPermissions

    新卷模式。 *對於 SMB 卷,此項必須留空。 *

    “”