存储
OpenShift 上 Automation Suite 的块、文件和对象存储配置。
除了 Microsoft SQL Server 外,Automation Suite 集群还需要一个存储组件来存储文件。 Automation Suite 是否需要对象存储和块/文件存储,具体取决于您选择的服务类型。
每个 Automation Suite 组件的存储空间估计值
UiPath™ Platform 服务
以下服务需要存储组件。 仅当您选择在 Automation Suite 安装过程中或更高版本中启用它们时,才需要使用这些功能。
| 服务 | 存储类型 | 用途 | 估计 |
|---|---|---|---|
| Orchestrator | 对象存储 |
| 通常情况下,包大小为 5 Mb,存储桶(如有)小于 1 Mb。成熟的企业会部署大约 10 GB 的包。包、存储桶文件和视频录制通常是对此商店增长贡献最大的因素。 |
| Action Center | 对象存储 |
| 通常情况下,一个文档需要 0.15 Mb,要填写的表单会额外占用 0.15 Kb。 在成熟的企业中,总计可达到 4 GB。 |
| Test Manager | 对象存储 |
| 通常,所有文件和附件总计约为 5 GB。 |
| Insights | Blockstore |
| 启用需要 2 GB,存储占用空间会随着数量的增加而增加。 完善的 Enterprise规模部署还需要几个 GB 的所有仪表板。 大约 10GB 的存储空间就足够了。 |
| Integration Service | 对象存储 |
| 连接器的大小各不相同,但安装所有可用的连接器占用的内存消耗不会超过 100 MB。 触发器事件的数量因使用情况而异,但 5 GB 应已足够。 |
| Studio Web | 文件存储 |
|
|
| Apps | 文件存储 |
| 大约 5 GB,用于现有应用程序数据;每个复杂的应用程序大约需要 15 MB。用户上传的附件需要额外空间。 |
| AI Center | 对象存储/文件存储 |
| 典型的已建立安装将消耗 8 GB 的空间(安装五个包)和额外的 1 GB 的数据集。 管道可能会额外消耗 50GB 的块存储,但前提是处于主动运行状态。 |
| Document Understanding | 对象存储 |
| 在成熟部署中,12GB 用于 ML 模型,17GB 用于 OCR,50GB 用于存储的所有文档。 |
| Automation Suite 机器人 | 文件存储 |
| 通常情况下,成熟的企业会部署大约 10 GB 的包。 |
| Process Mining | 对象存储 |
| 最小占用空间仅用于存储 SQL 文件。 一开始,大约 1 GB 的存储空间就足够了。 |
| 上下文基础 | 对象存储,文件存储 |
|
|
| LLM 可观察性 | 对象存储 |
|
|
| Solutions (解决方案) | 对象存储 |
|
|
| Maestro | 对象存储 |
|
|
| Autopilot for Developers | 对象存储 |
|
|
对象存储
Automation Suite 支持以下对象存储:
- Azure Blob 存储
- AWS S3 存储
- 与 S3 兼容的对象存储。OpenShift 提供了 OpenShift Data Foundation,这是一个基于 Ceph 且与 S3 兼容的对象存储。要安装 OpenShift Data Foundation,请参阅 OpenShift Data Foundation 简介。
配置 OpenShift 数据基础
-
要在 OpenShift Data Foundation (ODF) 上创建对象存储桶,您必须为每个存储桶创建一个
ObjectBucketClaim,与您计划安装的每个产品相对应。重要提示:在早于 4.19 的 OpenShift 集群版本上使用 ODF 作为对象存储时,无法配置 CORS。此限制可能会导致服务无法正常使用 ODF 存储桶。为了确保兼容性,请在
input.json文件中设置"disable_presigned_url": true。如果您在应用此设置时遇到错误,请参阅“故障排除”部分。
以下示例显示了有效的ObjectBucketClaim :
仅当您在 OpenShift Data Foundation 中创建存储桶时,才需要我们在示例中提供的配置。
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: BUCKET_NAME
namespace: <uipath>
spec:
bucketName: BUCKET_NAME
storageClassName: openshift-storage.noobaa.io
apiVersion: objectbucket.io/v1alpha1
kind: ObjectBucketClaim
metadata:
name: BUCKET_NAME
namespace: <uipath>
spec:
bucketName: BUCKET_NAME
storageClassName: openshift-storage.noobaa.io
- 应用清单会在
<uipath>命名空间中创建一个名为BUCKET_NAME的密码。 密码包含该存储桶的access_key和secret_key。 要查询access_key和secret_key,请运行以下命令:oc get secret BUCKET_NAME -n <uipath> -o jsonpath={.data.AWS_ACCESS_KEY_ID} | base64 -d; echo oc get secret BUCKET_NAME -n <uipath> -o jsonpath={.data.AWS_SECRET_ACCESS_KEY} | base64 -d; echooc get secret BUCKET_NAME -n <uipath> -o jsonpath={.data.AWS_ACCESS_KEY_ID} | base64 -d; echo oc get secret BUCKET_NAME -n <uipath> -o jsonpath={.data.AWS_SECRET_ACCESS_KEY} | base64 -d; echo - 要查找用于访问存储桶的主机或 FQDN,请运行以下命令:
oc get routes s3 -o jsonpath={.spec.host} -n openshift-storage; echooc get routes s3 -o jsonpath={.spec.host} -n openshift-storage; echo
OFS 包括具有预定义 CPU 和内存限制的 NooBaa 部署。这些限制可能成为 Automation Suite 的瓶颈,并导致 S3 请求限制问题。要降低此风险,您必须为 NooBaa 部署配置 OPF 具有更高的 CPU 和内存限制。有关详细信息,请参阅“故障排除”部分。
配置 CORS 策略
此外,如果您在使用 Automation Suite 集群进行 S3 连接期间遇到任何与 CORS 相关的错误,则可能必须在存储帐户/存储桶级别启用以下 CORS 策略。
确保在以下 CORS 策略中将 {{fqdn}} 替换为 Automation Suite 集群的 FQDN。
以下示例显示了 JSON 格式的 CORS 策略:
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"POST",
"GET",
"HEAD",
"DELETE",
"PUT"
],
"AllowedOrigins": [
"https://{{fqdn}}"
],
"ExposeHeaders": [
"etag",
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2"
],
"MaxAgeSeconds": 3000
}
]
[
{
"AllowedHeaders": [
"*"
],
"AllowedMethods": [
"POST",
"GET",
"HEAD",
"DELETE",
"PUT"
],
"AllowedOrigins": [
"https://{{fqdn}}"
],
"ExposeHeaders": [
"etag",
"x-amz-server-side-encryption",
"x-amz-request-id",
"x-amz-id-2"
],
"MaxAgeSeconds": 3000
}
]
以下示例显示了 XML 格式的 CORS 策略:
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>{{fqdn}}</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
<ExposeHeader>x-amz-request-id</ExposeHeader>
<ExposeHeader>x-amz-id-2</ExposeHeader>
<ExposeHeader>etag</ExposeHeader>
</CORSRule>
</CORSConfiguration>
<CORSConfiguration>
<CORSRule>
<AllowedOrigin>{{fqdn}}</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<ExposeHeader>x-amz-server-side-encryption</ExposeHeader>
<ExposeHeader>x-amz-request-id</ExposeHeader>
<ExposeHeader>x-amz-id-2</ExposeHeader>
<ExposeHeader>etag</ExposeHeader>
</CORSRule>
</CORSConfiguration>
配置生命周期策略
您可以配置生命周期策略以自动删除较旧的日志对象并减少手动清理任务。Automation Suite 日志存储在平台存储桶的automation-suite-logs/文件夹中。UiPath 建议将这些日志保留 15 天。
OpenShift Data Foundation 支持 S3 生命周期策略。以下示例显示了使用 AWS CLI 的步骤:
-
创建名为
lifecycle.json文件并添加以下内容:{ "Rules": [ { "Filter": { "Prefix": "automation-suite-logs/" }, "Status": "Enabled", "Expiration": { "Days": 15 }, "ID": "DeleteOldLogs" } ] }{ "Rules": [ { "Filter": { "Prefix": "automation-suite-logs/" }, "Status": "Enabled", "Expiration": { "Days": 15 }, "ID": "DeleteOldLogs" } ] } -
运行以下命令以将
lifecycle.json应用于存储桶:aws --endpoint <MCG_S3_ENDPOINT_URL> s3api put-bucket-lifecycle-configuration \ --bucket <BUCKET_NAME> \ --lifecycle-configuration file://lifecycle.jsonaws --endpoint <MCG_S3_ENDPOINT_URL> s3api put-bucket-lifecycle-configuration \ --bucket <BUCKET_NAME> \ --lifecycle-configuration file://lifecycle.json将
<MCG_S3_ENDPOINT_URL>替换为多云对象网关的 S3 端点 URL,将<BUCKET_NAME>替换为平台存储桶的名称。
配置
要配置对象存储,请参阅外部对象存储配置。
如果您提供 make 权限,则 Automation Suite 安装程序支持创建容器/存储桶。 或者,您可以在安装之前配置所需的容器/存储桶并将其信息配置给安装程序。
存储要求
| 存储 | 要求 |
|---|---|
| 对象存储 | 500 GB |
对象存储的大小取决于已部署和正在运行的自动化的大小。因此,在安装过程最初提供准确的对象存储估计值可能具有挑战性。您可以从大小为 350 GB 到 500 GB 的对象存储开始。要了解对象存储的使用情况,请参阅每个 Automation Suite 组件的存储估计。
- 随着自动化的扩展,您可能需要考虑对象存储大小的增加。
- 如果您使用在 OpenShift Data Foundation 中创建的存储桶,则必须在
input.json文件中显式配置存储桶并提供每个产品的详细信息。有关如何在input.json文件中显式提供存储桶信息的详细信息,请参阅“特定于产品的配置”部分。
块存储
块存储必须具有配置有 Kubernetes 存储类的 SCSI 驱动程序。
下表提供了有关块存储、存储类和配置程序的详细信息:
| 云/Kubernetes | 存储 | 存储类 | 配置程序 |
|---|---|---|---|
| AWS | EBS 卷 | ebs-sc | ebs.csi.aws.com |
| Azure | Azure 管理磁盘 | managed-premium 高级 LRS 磁盘 | disk.csi.azure.com |
| OpenShift | OpenShift 数据基础知识 | ocs-storagecluster-ceph-rbd | openshift-storage.rbd.csi.ceph.com |
您并非必须使用本部分中提到的存储解决方案。 如果您使用其他存储解决方案,则必须使用存储供应商提供的相应StorageClass 。
配置
您可以按照Red Hat的官方指南在 OpenShift 集群中创建存储类。
您必须将为集群创建的存储类的名称传递给 input.json 文件中的 storage_class 参数。
- 在 OpenShift 中,会在安装 OpenShift Data Foundation 时自动安装 CSI 驱动程序并创建存储类。 如果未配置这些存储类,则必须在安装 Automation Suite 之前配置它们。
- 您必须将块存储的存储类设为默认存储类,如以下示例所示。
示例
以下示例显示了如何配置存储类以及如何在安装过程中将其提供给input.json文件:
| 配置 | input.json | StorageClass |
|---|---|---|
| Azure |
|
|
| AWS |
|
|
| OpenShift |
|
|
存储要求
| 配置 | 要求 |
|---|---|
| 块存储 | 50 GB |
块存储的大小取决于已部署和正在运行的自动化的大小。因此,在安装过程中最初提供准确的估计值可能具有挑战性。您可以从大小为 50 GB 的块存储开始。要了解块存储的使用情况,请参阅每个 Automation Suite 组件的存储估计。
随着自动化的扩展,您可能需要考虑块存储大小的增加。
文件存储
文件存储必须具有使用 Kubernetes 存储类配置的 SCSI 驱动程序。
不需要任何复制的组件需要文件存储。 但是,如果您没有文件系统,则可以将文件存储替换为块存储。
下表提供了文件存储、存储类和配置程序的详细信息:
| 云/Kubernetes | 存储 | 存储类 | 配置程序 |
|---|---|---|---|
| AWS | EFS | efs-sc | efs.csi.aws.com |
| Azure | Azure 文件 | azurefile-csi-premium | file.csi.azure.com |
| OpenShift | OpenShift 数据基础知识 | ocs-storagecluster-cephfs* | openshift-storage.cephfs.csi.ceph.com |
建议为 Studio 网页存储配置 ZRS(或复制),以确保高可用性。工作器节点磁盘应至少具有 2300 IOPS,并且应使用性能配置文件和SKU 配置文件配置存储集群,至少具有 5000 IOPS。
您并非必须使用本部分中提到的存储解决方案。 如果您使用其他存储解决方案,则必须使用存储供应商提供的相应StorageClass 。
配置
您可以按照Red Hat的官方指南在 OpenShift 集群中创建存储类。
您必须将为集群创建的存储类的名称传递给 input.json 文件中的 storage_class_single_replica 参数。
在 OpenShift 中,会在安装 OpenShift Data Foundation 时自动安装 CSI 驱动程序并创建存储类。 如果未配置存储类,则必须在安装 Automation Suite 之前配置。
示例
以下示例显示了如何配置存储类以及如何在安装过程中将其提供给 input.json :
| 配置 |
|
|
|---|---|---|
| Azure | | |
| Azure | | |
| AWS | | 将 |
| AWS | | 将 |
| OpenShift | | |
| OpenShift | | |
文件共享的存储类必须将目录和文件的必需权限设置为 700。
此外,在 Azure 中, UID 和 GID 必须设置为 1000,在 AWS 中, gidRangeStart 和 gidRangeEnd 必须分别设置为 1000 和 2000。
存储要求
- 文件存储空间:510 GB
文件存储的大小取决于已部署和正在运行的自动化的大小。因此,在安装过程中最初提供实际估计值可能具有挑战性。但是,大约 510 GB 的存储大小应该足以运行十个并发训练管道和 Automation Suite 机器人。要了解文件存储的使用情况,请参阅每个 Automation Suite 组件的存储估算。
随着自动化的扩展,您可能需要考虑文件存储大小的增加。