在将 HPC 环境迁移到云时,必须定义并实施一个有效的存储策略,以满足性能、可伸缩性和成本要求。 有效的存储策略可确保 HPC 工作负载高效、安全、可靠地访问和处理数据。 这种方法包括考虑不同类型的存储解决方案,以满足各种需求,例如长期数据存档、高性能暂存空间以及用于协作工作的共享存储。
适当的数据管理做法(如生命周期策略和访问控制)有助于维护数据的完整性和安全性。 此外,还需要高效的数据移动技术来处理大规模数据传输,并自动执行 ETL 流程以简化工作流。 以下是在云中设置存储的关键步骤和注意事项:
定义存储需求
存储类型:
- 长期存储:使用 Azure Blob 存储进行数据存档。 Azure Blob 存储提供了一种经济高效的解决方案,用于存储大量不经常访问但出于合规性或历史目的而必须保留的数据。 它提供了不同的访问层级(热层、冷层和存档层),可以根据数据的访问频率来优化成本。
共享存储:将 Azure 文件存储或 Blob 上的 NFS 用于用户主目录和共享数据。 Azure 文件存储在云中提供完全托管的文件共享,可通过行业标准 SMB 协议进行访问,使多个用户和应用程序可以轻松共享数据。
Blob 上的 NFS 允许对 Azure Blob 存储进行 POSIX 兼容的共享访问,从而实现与现有 HPC 工作流和应用程序的无缝集成。
数据管理:
- 实现数据生命周期策略:为了管理热层、冷层和存档层之间的数据移动,可以实施数据生命周期策略,根据使用模式自动将数据移动到最合适的存储层。 这种方法可确保将经常访问的数据保留在高性能存储中,同时将很少访问的数据移动到更具成本效益的存档存储,从而帮助优化存储成本。
- 设置访问控制:使用 Azure Active Directory (AD) 和基于角色的访问控制 (RBAC) 为存储资源设置精细的访问控制。 Azure AD 提供身份和访问管理功能,而 RBAC 允许根据用户和组的角色为其分配特定权限。 此策略可确保只有经过授权的用户才能访问敏感数据,从而提高安全性和合规性。
数据移动:
- Azure Data Box:使用 Azure Data Box 进行大规模脱机数据传输。 Azure Data Box 是一种安全的加固型设备,可让你快速、安全地将大量数据传输到 Azure,最大限度地减少与基于网络的数据传输相关的时间和成本。
- Azure 数据工厂:使用 Azure 数据工厂来协调和自动化数据移动和转换。 Azure 数据工厂提供了完全托管的 ETL 服务,可用于在本地和云存储解决方案之间移动数据、计划数据工作流,并根据需要转换数据。
- AzCopy:使用 AzCopy 进行命令行数据传输。 AzCopy 是一个命令行实用工具,可在本地存储与 Azure Blob 存储、Azure 文件存储和 Azure 表存储之间提供高性能、可靠的数据传输。 它既支持同步传输模式,也支持异步传输模式,因此适用于各种数据移动场景。
工具和服务
Azure Blob 存储:
- 使用 Azure Blob 存储实现经济高效的长期数据存档。
- 实现数据生命周期策略,以在访问层级(热层、冷层、存档层)之间自动移动数据。
- 设置访问控制并与数据分析服务集成,实现高效的数据管理。
Azure 文件:
- 使用 Azure 文件存储获取完全托管的文件共享,这些文件共享可通过 SMB 协议访问。
- 配置 Azure AD 和 RBAC,以实现安全访问管理和合规性。
- 通过异地冗余存储选项确保高可用性,以防止区域性故障。
HPC 存储的最佳做法
定义明确的存储要求:
- 确定不同工作负载的特定存储需求,例如高性能暂存空间、长期存档和共享存储。
- 根据性能、可伸缩性和成本要求选择适当的存储解决方案(例如 Azure Blob 存储)。
实现数据生命周期管理:
- 设置自动化生命周期策略来管理不同存储层(热层、冷层、存档层)之间的数据移动,以优化成本和性能。
- 定期查看和调整生命周期策略,确保数据存储在最具成本效益且性能合适的层中。
确保数据安全性和合规性:
- 使用 Azure Active Directory (AD) 和基于角色的访问控制 (RBAC) 对存储资源强制实施精细访问控制。
- 对静态数据和传输中的数据进行加密,以满足安全性和合规性要求。
优化数据移动:
- 利用 Azure Data Box 等工具进行大规模脱机数据传输,使用 AzCopy 或 rsync 等工具进行高效联机数据传输。
- 监视和优化数据传输过程,以最大程度地减少停机时间,并确保迁移过程中的数据完整性。
监视和管理存储性能:
- 持续监视存储性能和使用指标,以识别并解决瓶颈。
- 使用 Azure Monitor 和 Azure 指标深入了解存储性能和容量利用率,并进行必要的调整以满足工作负载需求。
这些最佳做法可确保 HPC 存储策略有效、成本效益高,并且能够满足工作负载的性能和可伸缩性要求。
存储设置和部署的示例步骤
本部分提供有关在云中为 HPC 设置各种存储解决方案的详细说明。 它介绍了在 Azure Blob 和 Azure 文件存储上部署和配置 NFS,包括如何部署这些服务并在 HPC 节点上配置装入点。
在 Azure Blob 上实现 NFS:
-
创建 Azure 存储帐户:
- 导航到 Azure 门户并创建新的存储帐户。
- 在创建过程中通过选择“文件共享”下的适当选项来启用 NFS v3 支持。
-
配置 NFS 客户端:
在每个 HPC 节点上,安装 NFS 客户端包(如果尚不存在)。
通过向
/etc/fstab文件中添加条目或使用mount命令来配置 NFS 客户端,以装载 Azure Blob 存储。例:
sudo mount -t nfs <STORAGE_ACCOUNT_URL>:/<FILE_SHARE_NAME> /mnt/blob
-
创建 Azure 存储帐户:
设置 Azure 文件存储:
部署 Azure 文件共享:
- 导航到 Azure 门户并搜索“Azure 存储帐户”。
- 通过指定资源组、位置和性能层(标准或高级)等参数,创建新的存储帐户(如果尚不存在)。
- 在存储帐户中,导航到“文件共享”部分,并通过指定名称和配额(大小)创建新的文件共享。
配置装入点:
创建文件共享后,从 Azure 门户获取所需的装载信息。
在每个 HPC 节点上,为所使用的协议 (SMB) 安装所需的客户端包(如果尚不存在)。
使用装载信息来配置装入点,一种方法是向
/etc/fstab文件添加条目,另一种方法是直接使用mount命令。SMB 示例:
sudo mount -t cifs //<STORAGE_ACCOUNT_NAME>.file.core.chinacloudapi.cn/<FILE_SHARE_NAME> /mnt/azurefiles -o vers=3.0,username=<STORAGE_ACCOUNT_NAME>,password=<STORAGE_ACCOUNT_KEY>,dir_mode=0777,file_mode=0777,sec=ntlmssp