Skip to main content
Astra Trident
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

为 AWS 后端配置 CVS

贡献者

了解如何使用提供的示例配置将适用于 AWS 的 NetApp Cloud Volumes Service ( CVS )配置为 Astra Trident 安装的后端。

备注 Cloud Volumes Service for AWS 不支持小于 100 GB 的卷。如果请求的卷较小, Trident 会自动创建 100 GB 的卷。
您需要的内容

以配置和使用 "适用于 AWS 的 Cloud Volumes Service" 后端,您需要满足以下要求:

  • 配置了 NetApp CVS 的 AWS 帐户

  • CVS 帐户的 API 区域, URL 和密钥

后端配置选项

有关后端配置选项,请参见下表:

参数 Description Default

ve版本

始终为 1

storageDriverName

存储驱动程序的名称

"AWS-CVS"

backendName

自定义名称或存储后端

驱动程序名称 + "_" + API 密钥的一部分

区域

CVS 帐户区域。您可以在 CVS Web 门户中的帐户设置 /API 访问中找到此值。

apiURL

CVS 帐户 API URL 。您可以在 CVS Web 门户中的帐户设置 /API 访问中找到此值。

apiKey

CVS 帐户 API 密钥。您可以在 CVS Web 门户中的帐户设置 /API 访问中找到此值。

secreKey

CVS 帐户密钥。您可以在 CVS Web 门户中的帐户设置 /API 访问中找到此值。

代理 URL

代理服务器需要连接到 CVS 帐户时的代理 URL 。代理服务器可以是 HTTP 代理,也可以是 HTTPS 代理。对于 HTTPS 代理,将跳过证书验证,以允许在代理服务器中使用自签名证书。不支持启用了身份验证的代理服务器。

nfsMountOptions

精细控制 NFS 挂载选项。

"nfsvers=3"

limitVolumeSize

如果请求的卷大小超过此值,则配置失败

"" (默认情况下不强制实施)

s服务级别

新卷的 CVS 服务级别。这些值包括 "standard" , "premer" 和 "Extreme " 。

标准

debugTraceFlags

故障排除时要使用的调试标志。示例, ` \ { "api" : false , "method : true" }` 。除非您正在进行故障排除并需要详细的日志转储,否则请勿使用此功能。

备注 每个 区域 的 "apiURL"` 都是唯一的。 例如, us-west-2 `apiRegion 具有 https://cv.us-west-2.netapp.com:8080/v1/ apiURL 。同样, us-east-1 apiRegion 也具有 https://cds-aws-bundles.netapp.com:8080/v1/ apiURL 。请务必查看 CVS 信息板,了解后端配置的正确 apiRegionapiURL 参数。

每个后端都会在一个 AWS 区域中配置卷。要在其他区域创建卷,您可以定义其他后端。

您可以通过在配置文件的特殊部分中指定以下选项来控制默认配置每个卷的方式。请参见以下配置示例。

参数 Description Default

exportRule

新卷的导出规则

"0.0.0.0/0

snapshotDir

控制 ` .snapshot` 目录的可访问性

false

sSnapshot 预留

为快照预留的卷百分比

"" (接受 CVS 默认值为 0 )

s大小

新卷的大小

"100 克 "

exportRule 值必须是以 CIDR 表示法表示的 IPv4 地址或 IPv4 子网任意组合的逗号分隔列表。

备注 对于在 CVS AWS 后端创建的所有卷, Astra Trident 会在配置存储池时将存储池上的所有标签复制到该存储卷。存储管理员可以为每个存储池定义标签,并对存储池中创建的所有卷进行分组。这样,您就可以根据后端配置中提供的一组可自定义标签来方便地区分卷了。

示例 1 :最低配置

这是绝对的最低后端配置。

如果您刚刚开始使用 CVS AWS 并尝试执行相关操作,则此配置是理想的选择,但实际上您希望为所配置的卷提供更多范围界定。

{
    "version": 1,
    "storageDriverName": "aws-cvs",
    "apiRegion": "us-east-1",
    "apiURL": "https://cds-aws-bundles.netapp.com:8080/v1",
    "apiKey": "znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE",
    "secretKey": "rR0rUmWXfNioN1KhtHisiSAnoTherboGuskey6pU"
}

示例 2 :单服务级别配置

此示例显示了一个后端文件,该文件对 AWS us-east-1 区域中由 Astra Trident 创建的所有存储应用相同的方面。此示例还显示了后端文件中使用的 proxyURL

{
    "version": 1,
    "storageDriverName": "aws-cvs",
    "backendName": "cvs-aws-us-east",
    "apiRegion": "us-east-1",
    "apiURL": "https://cds-aws-bundles.netapp.com:8080/v1",
    "apiKey": "znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE",
    "secretKey": "rR0rUmWXfNioN1KhtHisiSAnoTherboGuskey6pU",
    "proxyURL": "http://proxy-server-hostname/",
    "nfsMountOptions": "vers=3,proto=tcp,timeo=600",
    "limitVolumeSize": "50Gi",
    "serviceLevel": "premium",
    "defaults": {
        "snapshotDir": "true",
        "snapshotReserve": "5",
        "exportRule": "10.0.0.0/24,10.0.1.0/24,10.0.2.100",
        "size": "200Gi"
    }
}

示例 3 :虚拟存储池配置

此示例显示了使用虚拟存储池配置的后端定义文件以及引用这些池的 StorageClasses 。

在下面显示的示例后端定义文件中,为所有存储池设置了特定的默认值,这些默认值会将 snapshotReserve 设置为 5% ,并将 exportRule 设置为 0.0.0.0/0 。虚拟存储池在 s存储 部分中进行定义。在此示例中,每个存储池都会设置自己的 serviceLevel ,而某些池会覆盖默认值。

{
    "version": 1,
    "storageDriverName": "aws-cvs",
    "apiRegion": "us-east-1",
    "apiURL": "https://cds-aws-bundles.netapp.com:8080/v1",
    "apiKey": "EnterYourAPIKeyHere***********************",
    "secretKey": "EnterYourSecretKeyHere******************",
    "nfsMountOptions": "vers=3,proto=tcp,timeo=600",

    "defaults": {
        "snapshotReserve": "5",
        "exportRule": "0.0.0.0/0"
    },

    "labels": {
        "cloud": "aws"
    },
    "region": "us-east-1",

    "storage": [
        {
            "labels": {
                "performance": "extreme",
                "protection": "extra"
            },
            "serviceLevel": "extreme",
            "defaults": {
                "snapshotDir": "true",
                "snapshotReserve": "10",
                "exportRule": "10.0.0.0/24"
            }
        },
        {
            "labels": {
                "performance": "extreme",
                "protection": "standard"
            },
            "serviceLevel": "extreme"
        },
        {
            "labels": {
                "performance": "premium",
                "protection": "extra"
            },
            "serviceLevel": "premium",
            "defaults": {
                "snapshotDir": "true",
                "snapshotReserve": "10"
            }
        },

        {
            "labels": {
                "performance": "premium",
                "protection": "standard"
            },
            "serviceLevel": "premium"
        },

        {
            "labels": {
                "performance": "standard"
            },
            "serviceLevel": "standard"
        }
    ]
}

以下 StorageClass 定义引用了上述存储池。通过使用 parameters.selector 字段,您可以为每个 StorageClass 指定用于托管卷的虚拟池。卷将在选定池中定义各个方面。

第一个 StorageClass (cvs-ext-protection )映射到第一个虚拟存储池。这是唯一一个可提供极高性能且 Snapshot 预留为 10% 的池。最后一个 StorageClass (cvs-extra protection )调用提供 10% 快照预留的任何存储池。Astra Trident 决定选择哪个虚拟存储池,并确保满足快照预留要求。

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-extreme-extra-protection
provisioner: netapp.io/trident
parameters:
  selector: "performance=extreme; protection=extra"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-extreme-standard-protection
provisioner: netapp.io/trident
parameters:
  selector: "performance=extreme; protection=standard"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-premium-extra-protection
provisioner: netapp.io/trident
parameters:
  selector: "performance=premium; protection=extra"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-premium
provisioner: netapp.io/trident
parameters:
  selector: "performance=premium; protection=standard"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-standard
provisioner: netapp.io/trident
parameters:
  selector: "performance=standard"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-extra-protection
provisioner: netapp.io/trident
parameters:
  selector: "protection=extra"
allowVolumeExpansion: true

下一步是什么?

创建后端配置文件后,运行以下命令:

tridentctl create backend -f <backend-file>

如果后端创建失败,则后端配置出现问题。您可以运行以下命令来查看日志以确定发生原因:

tridentctl logs

确定并更正配置文件中的问题后,您可以再次运行 create 命令。