5.2. 通过 S3 导出存储¶
Acronis Cyber Infrastructure 让您可以采用类似 S3 基于对象的存储形式将簇磁盘空间导出给客户。
Acronis Cyber Infrastructure 实现为类似 Amazon S3 的 API,这是最常见的对象存储 API 之一。最终用户可以像使用 Amazon S3 一样使用 Acronis Cyber Infrastructure。可以将常规应用程序用于 S3,然后在将数据从 Amazon S3 迁移至 Acronis Cyber Infrastructure 后继续使用它。
对象存储是一种存储体系结构,它支持将数据作为对象(就像键值存储)而不是文件系统中的文件或块存储中的块进行管理。除了数据之外,每个对象都有描述它的元数据以及允许在存储中找到该对象的唯一标识符。对象存储经过优化,可用于存储数十亿个对象,尤其适用于应用程序存储、静态 Web 内容托管、在线存储服务、大数据和备份。所有这些用途都可以通过对象存储来实现,这要归功于其极高可扩展性、数据可用性和一致性的结合。
相较于其他类型的存储,对象存储的主要区别在于对象的某些部分无法修改,因此如果对象发生更改,则会生成该对象的新版本。这种方法对于保持数据可用性和一致性非常重要。首先,整体上更改对象可以消除冲突问题。即,具有最新时间戳的对象视为当前版本,就是这样。结果是,对象始终保持一致,即它们的状态是相关且适当的。
对象存储的另一个功能是最终一致性。最终一致性并不能保证读操作将在写操作完成后返回新状态。读者可能会观察到旧状态一段不确定时间,直到写操作传播至所有副本。这对于存储可用性非常重要,原因在于:地理上遥远的数据中心可能无法同步执行数据更新(例如,由于网络问题)以及更新本身也可能速度缓慢(由于等待距离遥远的所有数据副本的确认可能需要花费数百毫秒的时间)。因此,最终一致性有助于以读者所观察到的可能旧状态为代价,来隐藏写操作的通信延迟。但是,许多使用案例可以轻松容忍它。
5.2.1. S3 存储基础架构概述¶
对象存储基础架构由以下实体组成:对象服务器 (OS)、名称服务器 (NS)、S3 网关 (GW) 和块级后端。
这些实体作为服务在 Acronis Cyber Infrastructure 节点上运行。每个服务都应部署在多个 Acronis Cyber Infrastructure 节点上以实现高可用性。

对象服务器存储从 S3 网关接收到的实际对象数据。数据打包到特殊容器中,以实现高性能。容器是冗余的,可以在配置对象存储时指定冗余模式。对象服务器也会将其自己的数据存储在具有内置高可用性的块存储中。
名称服务器会存储从 S3 网关接受到的对象元数据。元数据包括对象名称、大小、ACL(访问控制列表)、位置、所有者等。名称服务器 (NS) 也会将其自己的数据存储在具有内置高可用性的块存储中。
S3 网关是对象存储服务和最终用户之间的数据代理。它接收并处理 Amazon S3 协议请求以及 S3 用户身份验证和 ACL 检查。S3 网关将 NGINX Web 服务器用于外部连接,并且没有自己的数据(即无状态)。
块级后端是具有服务和数据的高可用性的块存储。由于所有对象存储服务都在主机上运行,因此对象存储不需要虚拟环境(也不需要许可)。
5.2.2. 计划 S3 簇¶
在创建 S3 簇之前,请执行以下操作:
定义存储簇的哪些节点将运行 S3 存储访问点服务。建议让 Acronis Cyber Infrastructure 中可用的所有节点都运行这些服务。
配置网络,以实现以下目的:
S3 簇的所有组件都通过 S3 专用网络相互通信。S3 簇的所有节点都必须连接至 S3 专用网络。Acronis Cyber Infrastructure 内部网络可用于实现此目的。
运行 S3 网关的节点必须有权访问公用网络。
S3 网关的公用网络必须由外部 DNS 负载平衡器进行平衡。
有关网络配置的更多详细信息,请参阅 Installation Guide。
S3 簇的所有组件都应在多个节点上运行,以实现高可用性。S3 簇中的名称服务器和对象服务器组件会自动进行平衡并在 S3 节点之间迁移。S3 网关不会自动进行迁移;它们的高可用性基于 DNS 记录。添加或删除 S3 网关时,您需要手动维护 DNS 记录。
5.2.4. 创建 S3 簇¶
要在群集节点上设置对象存储服务,请执行以下操作:
在基础架构 > 网络屏幕上,确保将 OSTOR 专用和 S3 公用流量类型添加至网络。
在左侧菜单中,依次单击存储服务 > S3。
选择一个或多个节点,然后在右侧菜单中单击创建 S3 簇。要创建高可用性的 S3 簇,请选择至少三个节点。此外,建议在创建 S3 簇之前为管理节点启用 HA。有关更多详细信息,请参阅 启用高可用性。
确保在下拉列表中选择了正确的网络接口。
如果需要,请单击齿轮图标,并在网络配置屏幕上配置节点的网络接口。
单击继续。
在卷参数选项卡上,选择所需的层、故障域和数据冗余模式。有关详细信息,请参阅 Understanding Storage Tiers、Understanding Failure Domains 和 Understanding Data Redundancy。
对于复制,可以以后在 S3 > 概述 > 设置面板上更改冗余方案。对于擦除编码,更改冗余方案已遭禁用,因为这可能会降低簇性能。原因是重新编码会长时间占用大量簇资源。如果仍要更改冗余方案,请联系技术支持。
单击继续。
为将由最终用户用于访问对象存储的 S3 端点指定外部(公共可解析)DNS 名称。例如,
s3.example.com
。单击继续。重要
根据在管理面板中建议的示例配置 DNS 服务器。
在下拉列表中,选择 S3 端点协议:HTTP、HTTPS 或两者。
建议仅将 HTTPS 用于生产部署。
如果已选择 HTTPS,请执行以下操作之一:
选中生成自签名证书,以获取用于 HTTPS 评估目的的自签名证书。
注意以下内容:
S3 地理复制需要来自受信任机构的证书。它不使用自签名证书。
要通过浏览器访问 S3 簇中的数据,请将自签名证书添加至浏览器的例外。
获取用于端点底层域的密钥和受信任通配符 SSL 证书。例如,端点
s3.storage.example.com
需要通配符证书用于*.s3.storage.example.com
(替代主题名称s3.storage.example.com
)。如果您获得的 SSL 证书来自中间证书颁发机构 (CA),则应具有最终用户证书以及包含根证书和中间证书的 CA 捆绑包。为了能够使用这些证书,需要先将它们合并到一个链中。证书链包括最终用户证书、中间 CA 的证书以及受信任根 CA 的证书。在这种情况下,仅当链中的每个证书均已正确发行且有效时,SSL 证书才受信任。
例如,如果您拥有最终用户证书、两个中间 CA 证书和一个根 CA 证书,请创建一个新的证书文件,然后按以下顺序向其中添加所有证书:
# End-user certificate issued by the intermediate CA 1 -----BEGIN CERTIFICATE----- MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1X<...> -----END CERTIFICATE----- # Intermediate CA 1 certificate issued by the intermediate CA 2 -----BEGIN CERTIFICATE----- MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9ON9<...> -----END CERTIFICATE----- # Intermediate CA 2 certificate issued by the root CA -----BEGIN CERTIFICATE----- MIIC8jCCAdqgAwIBAgICZngwDQYJKoZIhvcN<...> -----END CERTIFICATE----- # Root CA certificate -----BEGIN CERTIFICATE----- MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqG<...> -----END CERTIFICATE-----
上传准备好的证书,然后(根据其类型)执行以下操作之一:
指定密码(PKCS#12 文件);
上传 SSL 密钥。
可以以后在 S3 > 概述 > 协议设置面板上更改冗余模式。单击继续。
如果需要,单击配置 Acronis Notary,然后依次指定 Notary DNS 名称和 Notary 用户密钥。
单击完成,以创建 S3 簇。
在完成创建 S3 簇后,请打开 S3 概述屏幕以查看簇状态、主机名、已用磁盘容量、用户数、I/O 活动和 S3 服务的状态。
要检查 S3 簇是否已成功部署并可供用户访问,请通过浏览器访问 https://<S3_DNS_name> 或 http://<S3_DNS_name>。您应该收到以下 XML 响应:
<Error>
<Code>AccessDenied</Code>
<Message/>
</Error>
要开始使用 S3 存储,还需要创建至少一个 S3 用户。
5.2.5. 管理 S3 用户¶
S3 用户的概念是对象存储以及对象和存储桶(用于存储对象的容器)的基本概念之一。Amazon S3 协议使用基于访问控制列表 (ACL) 的权限模型,其中为每个存储桶和每个对象指派了一个 ACL,该 ACL 列出了有权访问给定资源的所有用户以及此访问的类型(读取、写入、读取 ACL、写入 ACL)。用户列表包括在创建时指派给每个对象和存储桶的实体所有者。相较于其他用户,实体所有者具有额外的权限。例如,存储桶所有者是唯一可以删除该存储桶的人。
在 Acronis Cyber Infrastructure 中实施的用户模型和访问策略遵循 Amazon S3 用户模型和访问策略。
Acronis Cyber Infrastructure 中的用户管理场景主要基于 Amazon Web Services 用户管理,包括以下操作:创建、查询和删除用户以及生成和撤消用户访问密钥对。
5.2.5.2. 管理 S3 访问密钥对¶
每个 S3 用户都有一个或两个用于访问 S3 云的密钥对(访问密钥和安全密钥)。可以将访问密钥视为登录名,而将安全密钥视为密码。(有关 S3 密钥对的详细信息,请参阅 Amazon 文档。)访问密钥生成并本地存储在 S3 名称服务器上的存储簇中。每个用户最多可以有两个密钥对。建议定期吊销旧的访问密钥对并生成新的访问密钥对。
要查看、添加或吊销 S3 用户的 S3 访问密钥对,请执行以下操作:
在列表中选择一个用户,然后单击密钥。
现有密钥将显示在密钥面板中。
要吊销密钥,请单击吊销。
要添加新密钥,请单击生成访问密钥。
要访问存储桶,用户需要以下信息:
管理面板 IP 地址、
配置过程中指定的 S3 簇的 DNS 名称、
S3 访问密钥 ID、
S3 安全访问密钥、
SSL 证书(如果在配置过程中选择了 HTTPS 协议)。
可以在托管 S3 网关服务的任何节点上的
/etc/nginx/ssl/
目录中找到该证书文件。
要在使用用户凭据的情况下使用所生成的密钥自动登录到 S3,请选择一个用户,然后单击浏览。
要使用 SSL 证书浏览,请确保该证书有效,或者如果它是自签名证书,则将其添加至浏览器的例外。
5.2.6. 管理 S3 存储桶¶
类似 Amazon S3 存储中的所有对象都存储在称为“存储桶”的容器中。存储桶按给定对象存储中唯一的名称寻址,因此该对象存储的 S3 用户无法创建名称与同一对象存储中其他存储桶相同的存储桶。存储桶可用于:
分组对象并将其与其他存储桶中的对象隔离、
为其中的对象提供 ACL 管理机制、
设置每个存储桶的访问策略,例如存储桶中的版本控制。
在当前版本的 Acronis Cyber Infrastructure 中,可以为对象存储桶启用和禁用 Acronis Notary,然后在存储服务 > S3 > 存储桶屏幕上对它们所使用的空间进行监控。无法从 Acronis Cyber Infrastructure 管理面板创建和管理对象存储桶。但是,可以通过 Acronis Cyber Infrastructure 用户面板或使用第三方应用程序进行操作。例如,以下所列应用程序让您可以执行以下操作:
CyberDuck:创建和管理存储桶及其内容。
MountainDuck:将对象存储加载为磁盘驱动器以及管理存储桶及其内容。
Backup Exec:将存储桶存储在对象存储中。
5.2.6.1. 列出 S3 存储桶内容¶
可以使用 Web 浏览器列出存储桶内容。为此,请访问由创建 S3 簇时指定的 S3 端点的外部 DNS 名称和存储桶名称组成的 URL。例如,mys3storage.example.com/mybucket
或 mybucket.mys3storage.example.com
(具体取决于 DNS 配置)。
也可以复制指向存储桶内容的链接,方法是在 CyberDuck 中右键单击该链接,然后选择复制 URL。
5.2.6.2. 在 S3 存储桶中管理 Acronis Notary¶
Acronis Cyber Infrastructure 提供与 Acronis Notary 服务的集成以利用区块链公证,并确保对象存储簇中保存数据的不变性。要在用户存储桶中使用 Acronis Notary,需要在 S3 簇中对它进行设置并为其启用上述存储桶。
要设置 Acronis Notary,请执行以下操作:
从销售联系人处获取用于公证服务的 DNS 名称和用户密钥。
在存储服务 > S3 屏幕上,单击 Notary 设置。
在 Notary 设置屏幕上,在相应字段中指定 DNS 名称和用户密钥,然后单击完成。
要为存储桶启用或禁用区块链公证,请在存储服务 > S3 > 存储桶屏幕上选择一个存储桶,然后分别单击启用 Notary 或禁用 Notary。
默认情况下,已为新存储桶禁用公证。
在为存储桶启用公证后,将仅为新上传的文件自动创建证书。以前上传的文件保持处于未公证状态。在某个文件经过公证后,即使以后禁用公证,该文件也将保持处于已公证状态。
5.2.7. 在 Acronis Cyber Infrastructure 中使用 S3 的最佳实践¶
本部分提供了有关如何最佳使用 Acronis Cyber Infrastructure 的 S3 功能的建议。
5.2.7.1. S3 存储桶和密钥命名策略¶
建议使用遵循 DNS 命名约定的存储桶名称:
长度可以为 3 至 63 个字符
必须以小写字母或数字开头和结尾
可以包含小写字母、数字、句点 (.)、连字符 (-) 和下划线 (_)
可以是由句点分隔的一系列有效名称部分(如前所述)
一个对象密钥可以是一串任何 UTF-8 编码字符,最大长度为 1024 个字节。
5.2.7.2. 提高 PUT 操作的性能¶
对象存储支持每个 PUT 请求上传最大 5 GB 的对象(通过分段上传 5 TB)。通过将大型对象分割为多个部分并使用分段上传 API 并发上传它们(从而在多个 OS 服务之间分配负载),可以提高上传性能。
建议针对大于 5 MB 的对象使用分段上传。
5.2.8. 在数据中心之间复制 S3 数据¶
Acronis Cyber Infrastructure 可以存储 S3 簇数据的副本,并让它们在地理上分布的多个数据中心中与 S3 簇基于 Acronis Cyber Infrastructure 保持最新。地理复制减少了本地 S3 用户访问远程 S3 簇中数据或远程 S3 用户访问本地 S3 簇中数据的响应时间,因为他们不需要 Internet 连接。
地理复制预定在任何数据被修改后就更新副本。地理复制性能取决于 Internet 连接速度、冗余模式和簇性能。
如果您有多个具有足够可用空间的数据中心,建议在这些数据中心中驻留的 S3 簇之间设置地理复制。
重要
每个簇都必须具有由全球证书颁发机构签名的自己的 SSL 证书。
要在 S3 簇之间设置地理复制,请在数据中心之间交换标记,如下所示:
在远程数据中心的管理面板中,打开存储服务 > S3 > 地理复制屏幕。
在主 S3 簇的部分中,单击标记,然后在获取标记面板上复制该标记。
在本地数据中心的管理面板中,打开存储服务 > S3 > 地理复制屏幕,然后单击添加数据中心。
输入复制的标记,然后单击完成。
以相同方法配置远程 S3 簇。
5.2.9. 监控 S3 访问点¶
S3 监控屏幕使您可以检查每个 S3 组件的可用性以及 NS 和 OS 服务(高度可用)的性能。
如果您发现某些 NS 或 OS 服务处于脱机状态,这意味着 S3 访问点工作不正常。在这种情况下,请联系技术支持或参阅 Administrator’s Command Line Guide。S3 网关可用性不高,但 DNS 负载均衡应足以在该网关发生故障时避免出现停机。
性能图表表示 OS/NS 服务正在执行的操作数。
5.2.10. 从 S3 簇中释放节点¶
在释放某个节点之前,请确保簇中具有足够的节点来运行剩余的名称和对象服务器以及网关。
警告
在删除 S3 簇中最后一个节点后,该簇即被销毁,并且所有数据也会被删除。
要从 S3 簇中释放节点,请执行以下操作:
在存储服务 > S3 > 节点屏幕上,选中要释放的节点的相应框。
单击释放。
5.2.11. 支持的 Amazon S3 功能¶
除了基本的 Amazon S3 操作(如 GET、PUT、COPY、DELETE)之外,Amazon S3 协议的 Acronis Cyber Infrastructure 实现还支持以下功能:
多段上传
访问控制列表 (ACL)
版本控制
已签名 URL
对象锁定
地理复制
通过 Acronis Notary 进行区块链公证
进一步列出了所有受支持的 Amazon S3 操作、标头和身份验证方案。
5.2.11.1. 支持的 Amazon S3 REST 操作¶
Amazon S3 协议的 Acronis Cyber Infrastructure 实现当前支持以下 Amazon S3 REST 操作:
支持的服务操作:GET 服务。
支持的存储桶操作:
DELETE/HEAD/PUT 存储桶
GET 存储桶(列出对象)
GET/PUT 存储桶 ACL
GET 存储桶位置(返回
US East
)GET 存储桶对象版本
GET/PUT 存储桶版本控制
列出多段上传
支持的对象操作:
DELETE/GET/HEAD/POST/PUT 对象
删除多个对象
PUT 对象 - 复制
GET/PUT 对象 ACL
删除多个对象
中止多段上传
完成多段上传
初始化多段上传
列出各部分
上传部分
注解
有关 Amazon S3 REST 操作的详细信息,请参阅 Amazon S3 REST API 文档。
5.2.11.2. 支持的 Amazon 请求标头¶
Amazon S3 协议的 Acronis Cyber Infrastructure 实现当前支持以下 Amazon S3 REST 请求标头:
授权
Content-Length
Content-Type
Content-MD5
日期
主机
x-amz-content-sha256
x-amz-date
x-amz-security-token
x-amz-object-lock-retain-until-date
x-amz-object-lock-mode
x-amz-object-lock-legal-hold
x-amz-bypass-governance-retention
x-amz-bucket-object-lock-enabled
以下 Amazon S3 REST 请求标头将被忽略:
Expect
x-amz-security-token
注解
有关 Amazon S3 REST 请求标头的详细信息,请参阅 Amazon S3 REST API 文档。
5.2.11.3. 支持的 Amazon 响应标头¶
Amazon S3 协议的 Acronis Cyber Infrastructure 实现当前支持以下 Amazon S3 REST 响应标头:
Content-Length
Content-Type
连接
日期
ETag
x-amz-delete-marker
x-amz-request-id
x-amz-version-id
x-amz-object-lock-retain-until-date
x-amz-object-lock-mode
x-amz-object-lock-legal-hold
不使用以下 Amazon S3 REST 响应标头:
服务器
x-amz-id-2
注解
有关 Amazon S3 REST 响应标头的详细信息,请参阅 Amazon S3 REST API 文档。
5.2.11.4. 支持的 Amazon 错误响应标头¶
Amazon S3 协议的 Acronis Cyber Infrastructure 实现当前支持以下 Amazon S3 REST 错误响应标头:
代码
Error
消息
RequestId
资源
以下 Amazon S3 REST 错误响应标头不受支持:
RequestId(未使用)
资源
注解
有关 Amazon S3 REST 响应标头的详细信息,请参阅 Amazon S3 REST API 文档。
5.2.11.5. 支持的身份验证方案¶
Amazon S3 协议的 Acronis Cyber Infrastructure 实现支持以下身份验证方案:
Amazon S3 协议的 Acronis Cyber Infrastructure 实现支持以下身份验证方法:
以下身份验证方法不受支持: