IBM Cloud Docs
从文件共享快照恢复数据

从文件共享快照恢复数据

从快照恢复数据会创建一个新的、完全供应的共享。 可以从手动创建或备份策略创建的快照中恢复共享。 你可以通过控制台、CLI、API 或 Terraform 从快照创建共享。 使用快照创建的共享必须具有与快照相同的文件共享配置文件。 您还可以从文件共享快照中恢复单个文件。

只能在与快照原始共享相同的可用性区域内创建共享。 创建新共享时,它只包含指向原始共享的指针,数据复制过程随即开始。 复制数据时,共享处于_待处理_状态。 虽然新共享可以在挂载_等待_状态下进行读/写操作,但不允许进行一些操作,如创建副本或快照。 数据复制操作完成后,新共享将从父共享中分离出来,成为独立共享,从而完成初始化过程。 初始化过程完成后,共享将进入_稳定_状态,可以像其他共享一样使用。

创建新共享时,可以更改客户管理的加密密钥。 此过程会在密钥管理服务中用新密钥注册新共享。 新密钥用于加密新的“共享”。

限制

从快照还原共享时会受到以下限制。

  • 要还原共享,快照必须处于_稳定_和_可用的_状态。
  • 除非初始化完成,否则无法删除恢复共享的快照。
  • 如果快照受客户管理加密保护,且您未指定不同的根密钥 CRN,则恢复的共享将使用快照的加密密钥加密。 以后无法更改加密。 如果在初始化新共享时删除了父共享的加密密钥,就会中断初始化过程并导致失败。

在控制台中从快照恢复共享

您可以从 IBM Cloud 控制台的多个页面创建共享。

在控制台中从快照创建共享

从 File Storage for VPC 快照列表中,您可以创建 File Storage for VPC 共享。 新份额将添加到 File Storage for VPC 份额列表 中。

  1. 转到 File Storage for VPC 快照列表。 在 IBM Cloud 控制台中,单击导航菜单图标菜单图标 > 基础架构 VPC 图标 > 存储 > 文件存储共享

  2. 选择具有要用于创建另一个共享的数据的共享。

  3. 在“共享”详细信息页面的“快照”选项卡上,找到要使用的快照。 它必须处于 stable 状态。

  4. 从操作菜单操作图标 中,选择还原

  5. 在调配页面,将显示快照的详细信息。 某些文件共享配置(如区域和加密类型)从快照中继承,无法更改。

  6. 提供所需的共享详细信息。

    创建共享选项。
    字段 描述
    共享详细信息 定义新份额。
    名称 输入新共享的名称。
    资源组 使用默认值或从列表中选择。
    用户标记 指定 用户标签,以组织资源并供 备份策略 使用
    访问权管理标记 指定在 IAM 中创建的 访问管理标记,以帮助您管理对共享的访问。
    Profile 默认为 dp2。 新共享的配置文件必须与快照的配置文件一致。
    大小 输入配置文件允许的共享大小。 它必须大于或等于快照的大小。
    IOPS 选择共享配置文件允许范围内的 IOPS。
    安装目标 创建挂载目标是可选的,但如果要从虚拟服务器实例连接到文件共享,则需要有一个挂载目标。
    加密 从快照继承。
  7. 完成后,单击“创建”。 新股票已创建。

通过 CLI 从快照恢复共享

您可以通过 CLI 从快照创建 File Storage for VPC 共享。 创建共享后,可以创建挂载目标,然后将共享挂载到实例。

准备工作

在使用 CLI 之前,您必须安装 IBM Cloud CLI 和 VPC CLI 插件。 有关详细信息,请参阅 CLI 先决条件

  1. 登录到 IBM Cloud®。

    ibmcloud login --sso -a cloud.ibm.com
    

    此命令会返回 URL 并提示输入密码。 在浏览器中转至该 URL 并登录。 如果成功,您将获得一次性密码。 复制此密码并将其作为响应粘贴到提示上。 验证成功后,系统会提示您选择账户。 如果可以访问多个账户,请选择要登录的账户。 响应任何剩余提示以完成登录。

  2. 收集要用于还原共享的快照的相关信息。

    1. 您可以使用 CLI 列出特定共享的所有快照,并从输出中选择一个。
    2. 然后,使用 ibmcloud is share-snapshot SHARE SNAPSHOT 命令列出所选快照的详细信息。

通过 CLI 从快照创建共享

运行 ibmcloud is share-create 命令并指定 --snapshot 参数和快照的 ID 或 CRN。

$ ibmcloud is share-create --name my-file-share-from-snapshot --snapshot cli-share-snapshot --share my-file-share --zone us-south-1 --profile dp2 --size 100 --iops 2000  --user-tags env:test
Creating file share my-file-share-from-snapshot under account Test Account as user test.user@ibm.com...

ID                                 r134-c956e095-afb1-408c-a589-887e77afab20   
Name                               my-file-share-from-snapshot   
CRN                                crn:v1:staging:public:is:us-south-1:a/a1234567::share:r134-c956e095-afb1-408c-a589-887e77afab20   
Lifecycle state                    pending   
Access control mode                security_group   
Accessor binding role              none   
Allowed transit encryption modes   user_managed,none   
Zone                               us-south-1   
Profile                            dp2   
Size(GB)                           100   
IOPS                               2000  
User Tags                          env:test   
Encryption                         provider_managed   
Mount Targets                      ID                          Name      
                                   No mounted targets found.      

Resource group                     ID                                 Name      
                                   11caaa983d9c4beb82690daab08717e9   Default      

Created                            2024-12-17T11:21:57+05:30   
Replication role                   none   
Replication status                 none   
Replication status reasons         Status code   Status message      
                                   -             -   

下面的示例通过使用快照的 CRN 从快照创建共享。 如果您没有为新共享提供名称,系统会自动为您生成一个名称。 大小和 IOPS 值从快照中继承,您可以在创建共享后更改它们。

$ ibmcloud is share-create --profile dp2 --snapshot crn:v1:staging:public:is:us-south-1:a/a1234567::share-snapshot:r134-2ae87eb2-b26c-4126-ab34-e6e64f6f1773/r134-6ce54f3b-8971-4b5d-95a7-7dfa897ddfb3 --user-tags dev:tags
Creating file share  under account Test Account as user test.user@ibm.com...

ID                                 r134-5fb2d6aa-544d-4469-8e59-36e0fc21d0fa   
Name                               portion-unsafe-itinerary-oppressor   
CRN                                crn:v1:staging:public:is:us-south-1:a/a123456::share:r134-5fb2d6aa-544d-4469-8e59-36e0fc21d0fa   
Lifecycle state                    pending   
Access control mode                security_group   
Accessor binding role              none   
Allowed transit encryption modes   user_managed,none   
Zone                               us-south-1   
Profile                            dp2   
Size(GB)                           40   
IOPS                               100   
User Tags                          dev:tags   
Encryption                         provider_managed   
Mount Targets                      ID                          Name      
                                   No mounted targets found.      

Resource group                     ID                                 Name      
                                   11caaa983d9c4beb82690daab08717e9   Default      

Created                            2024-12-17T11:23:15+05:30   
Replication role                   none   
Replication status                 none   
Replication status reasons         Status code   Status message      
                                   -             -      

有关可用命令选项的更多信息,请参阅 ibmcloud is share-create.

使用 API 从快照恢复共享

您可以通过调用 VPC API 中的 /shares 方法,以编程方式还原共享。

开始之前,请收集要用于还原共享的快照的相关信息。

使用 API 从快照创建共享

要从快照还原共享,请提出 POST /shares 请求,并在 source_snapshot 属性中指定快照的 ID 或 CRN。 恢复的共享容量(以 GB 为单位)必须至少是快照的最小容量。

以下示例请求根据源快照 r006-e13ee54f-baa4-40d3-b35c-b9ec163972b4 创建了一个 100GB 的共享。

curl -X POST \
"$vpc_api_endpoint/v1/shares/?version=2024-12-10&generation=2" \
-H "Authorization: $iam_token" \
-H "Content-Type: application/json" \
-d '{
     "name": "my-share-from-snapshot",
     "capacity": 100,
     "iops": 2000,
     "source_snapshot:" {"id": "r006-e13ee54f-baa4-40d3-b35c-b9ec163972b4"},
     "profile": {"name": "dp2"},
     "zone": {"name": "us-south-1"},
     "encryption_key":{"crn":"crn:[...]"},
     "mount_targets": [
        {"virtual_network_interface": {"subnet": {"id": "2302-ea5fe79f-52c3-4f05-86ae-9540a10489f5"}},
        {"vpc": {"id": "7ec86020-1c6e-4889-b3f0-a15f2e50f87e"}}],
     "allowed_transit_encryption_modes": ["none","user_managed"],
     "resource_group": {},
     "user_tags": ["env:test"]
   }`

使用 Terraform 从快照恢复共享

要使用 Terraform,请下载 Terraform CLI 并配置 IBM Cloud 提供商插件。提供商插件。 更多信息,请参阅 Terraform 入门

VPC 基础设施服务使用特定的区域端点,默认情况下以 us-south 为目标。 如果您的 VPC 是在其他区域创建的,请确保在 provider.tf 文件的提供程序块中以相应区域为目标。

请参阅下面的示例,了解除默认 us-south 之外的目标区域。

provider "ibm" {
  region = "eu-de"
}

使用 Terraform 从快照创建共享

要从快照创建共享,请使用 ibm_is_share 资源。 下面的示例使用 dp2 配置文件从快照中创建共享。

resource "ibm_is_share" "storage" {
  name            = "restore-share-new"
  profile         = "dp2"
  zone            = "us-south-1"
  source_snapshot = "ibm_is_snapshot.example.crn"
}

有关参数和属性的更多信息,请参阅 ibm _ is_share。

从快照中恢复文件

要执行单个文件还原,可以使用本地操作系统功能。 您可以浏览共享的 NFS 挂载目标,打开隐藏的 /.snapshot 目录,访问共享的每个快照中包含的数据。 然后,就可以将选定的文件复制到不同的位置。

虽然快照目录是隐藏的,但如果使用 cd .snapshotls .snapshot/ 等命令直接访问该目录,则可以访问和查看该目录。 共享中的所有快照都以子目录的形式出现在隐藏的 /.snapshot 目录中,每个快照目录都以快照的指纹命名,你可以在控制台、CLI 或 API 中看到这些指纹。 请参阅以下示例。

[root@server .snapshot]# ls -lah
total 34K
drwxr-xr-x  3 root root  3 May 10 08:28 .
drwxr-xr-x 22 root root 56 May 10 08:28 ..
drwxr-xr-x  2 root root  2 May 10 08:28 c2c2439c-cbeb-4f12-8d9d-6059a3b85502

这些子目录代表拍摄快照时的共享状态。 子目录只读。 无法通过 NFS 方法删除这些快照中的数据。 同样,禁止创建新的子目录。 该视图只是为了方便执行单个文件恢复和数据的时间点检查。

后续步骤

您可以 创建 更多快照或 管理 现有快照。