IBM Cloud Docs
从其他帐户共享和安装文件共享

从其他帐户共享和安装文件共享

作为一个管理多个账户的存储管理员,你可以跨账户共享 NFS 文件系统,这样你的应用程序所依赖的数据就可以在不同的系统中使用。 您还可以与 IBM watsonx 服务共享 File Storage for VPC。

跨帐户服务到服务授权 用于在共享所有者和存取器帐户之间建立信任。 此外,必须将相应的 IAM 平台和服务角色分配给用户,以便他们可以执行其任务。 要在与源共享相同的帐户中创建存取器共享,用户必须具有 共享代理编辑者 角色。 要在不同于原始共享的账户内创建访问者共享,用户必须具有共享远程账户访问者编辑器角色。 有关更多信息,请参阅 IAM 角色和操作

在设置授权并分配角色后,您可以创建与源共享绑定的存取器共享。 存取器共享从源共享继承静态和传输中的概要文件,大小和加密类型。 源共享的帐户可以查看可安装共享 NFS 共享的帐户的标识。

作为存取器,您无法编辑源共享的属性,也无法删除源共享。 存取器可以通过创建存取器共享和访问器共享的安装目标来安装共享。 然后,您就可以访问和使用原始共享的数据,包括可能存在的快照。

对于具有全 VPC 访问模式的文件共享,不支持与其他账户或服务共享文件共享。

传输加密策略

共享所有者有权在存取器访问文件共享数据时强制使用传输中的加密。 共享所有者可以将允许的传输加密方式设置为允许 user_managed 和/或 none。 当原始共享的 allowed transit encryption modes 设置为 user_managed 时,共享访问者账户必须使用 user_managed 中转加密创建其所有挂载目标。 如果存取器帐户具有多个安装目标,那么这些安装目标在传输中必须具有相同类型的加密。

在此功能部件发布之前 (2024 年 6 月 18 日) 创建的文件共享具有基于其现有安装目标的允许传输加密类型。 在此日期之后,您必须在创建文件共享时指定允许的传输加密类型。 为一个文件共享创建的所有安装目标都必须具有相同的传输加密类型。

在控制台中创建访问者共享

在 IBM Cloud 控制台中,可以创建具有或不具有安装目标的存取器共享。 但是,当您要在虚拟服务器实例上安装共享时,需要创建安装目标。

在控制台中创建访问者共享

  1. IBM Cloud 控制台,单击 导航菜单 图标 菜单图标 > 基础架构 VPC 图标 > 存储 > 文件共享。 将显示文件共享的列表。

  2. 在“VPC 的文件共享”页面上,单击 创建 > 创建存取器共享

  3. 输入以下信息。

    创建文件共享的值
    字段
    访问者共享名称 为访问者共享指定一个有意义的名称。 文件共享名称最多可以是 63 个小写字母数字字符,并且包含连字符 (-),并且必须以小写字母开头。 如果需要,您日后可以编辑该名称。
    远程共享 CRN 输入源文件共享的 CRN。
  4. 返回到 File Storage for VPC 页面,其中有一条消息指示文件共享正在供应。 事务完成时,共享状态将更改为 活动

从 CLI 创建存取器共享

准备工作

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

从 CLI 创建没有安装目标的存取器共享

您可以使用 ibmcloud is share-create 命令通过源共享的 CRN 在所选区域中供应文件共享。

ibmcloud is share-create --name my-accessor-share --origin-share CRN
$ ibmcloud is share-create --name my-accessor-share --origin-share crn:v1:bluemix:public:is:us-south-2:a/7654321::share:r006-d73v40a6-e08f-4d07-99e1-d28cbf2188ed
Creating file share my-file-share under account Test Account as user test.user@ibm.com...

ID                               r006-b696742a-92ee-4f6a-bfd7-921d6ddf8fa6   
Name                             my-accessor-share   
CRN                              crn:v1:bluemix:public:is:us-south-2:a/1234567::share:r006-b696742a-92ee-4f6a-bfd7-921d6ddf8fa6   
Lifecycle state                  stable   
Access control mode              security_group
Accessor binding role            accessor
Allowed transit encryption modes user_managed,none
Origin share                     CRN                                                                                             Name            Remote account  Remote region
                                 crn:v1:bluemix:public:is:us-south-2:a/7654321::share:r006-d73v40a6-e08f-4d07-99e1-d28cbf2188ed  my-origin-share a7654321        -
Zone                             us-south-2   
Profile                          dp2   
Size(GB)                         1000   
IOPS                             1000   
Encryption                       provider_managed   
Mount Targets                    ID                          Name      
                                 No mounted targets found.      

Resource group                   ID                                 Name      
                                 db8e8d865a83e0aae03f25a492c5b39e   Default      

Created                          2024-06-25T22:15:15+00:00   
Replication role                 none   
Replication status               none   
Replication status reasons       Status code   Status message      
                                 -             -   
Snapshot count                   0
Snapshot size                    0
User tags                                                                         

存取器共享从其原始共享继承以下特征: 概要文件,大小,静态和传输中的加密类型。 如果尝试将此命令与属性 --origin-share 与其他属性 (例如 --iops--profile--replica-share) 配合使用,那么请求将失败。

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

从 CLI 为存取器共享创建安装目标

要为文件共享创建安装目标,请运行 share-mount-target-create 命令。 在开始之前,请收集一些必要的信息。

创建安装目标时,必须指定它所针对的文件共享。 您可以使用文件共享的名称或标识。 您还必须指定 VPC 及其标识或名称。 VPC 对于每个安装目标都必须是唯一的。 您还必须指定将用于管理对共享的访问权的安全访问组。 与挂载目标相关联的安全组必须允许从要挂载共享的所有服务器 NFS 端口对 TCP 协议进行入站访问。

最后,必须为为安装目标创建 虚拟网络接口 所需的选项指定值。 使用相应的 CLI 命令列出可用的 子网子网中的保留 IP 地址安全组 以获取所需的信息。

以下示例为具有安全组访问方式的文件共享创建具有虚拟网络接口的安装目标。

$ ibmcloud is share-mount-target-create my-accessor-share --subnet my-subnet --name my-cli-share-mount-target-1 --vni-name my-share-vni-1  --vni-sgs my-sg --resource-group-name Default --vpc my-vpc
Mounting target for share r006-b696742a-92ee-4f6a-bfd7-921d6ddf8fa6 under account Test Account as user test.user@ibm.com...

ID                          r006-dd497561-c7c9-4dfb-af0a-c84eeee78b61   
Name                        my-cli-share-mount-target-1   
VPC                         ID                                          Name      
                            r006-6e8fb140-5668-45b8-b98a-d5cb0e0bf39b   my-vpc      

Access control mode         security_group
Resource type               share_mount_target   
Virtual network interface   ID                                          Name      
                            r006-13c070d8-d038-49c6-95f5-e8503c5595e3   my-share-vni-1      

Lifecycle state             pending   
Mount path                  -   
Transit Encryption          none  
Snapshot count              0
Snapshot size               0
User tags       

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

从 CLI 创建与安装目标的存取器共享

您可以使用 ibmcloud is share-create 命令在一个步骤中创建与一个或多个安装目标共享的存取器。 您需要提供区域名称以及源共享的 CRN。 存取器共享从源共享继承静态和传输中的概要文件,大小和加密类型。 您还可以指定名称,用户标记,甚至初始所有者 UID。 要创建安装目标,需要提供 JSON 格式的安装目标信息。

以下示例显示如何创建与安装目标的存取器共享。

$ ibmcloud is share-create --name my-new-accessor-share --origin-share crn:v1:bluemix:public:is:us-south-2:a/7654321::share:r006-d73v40a6-e08f-4d07-99e1-d28cbf2188ed --mount-targets '
>[{"name":"my-new-mount-target","virtual_network_interface": {"name":"my-vni","subnet": {"id":"r006-298acd6c-e71e-4204-a04f-fe4a4dd89805"}}}]'
Creating file share my-new-file-share under account Test Account as user test.user@ibm.com...

ID                               r006-925214bc-ded5-4626-9d8e-bc4e2e579232   
Name                             my-new-accessor-share   
CRN                              crn:v1:bluemix:public:is:us-south-2:a/a1234567::share:r006-925214bc-ded5-4626-9d8e-bc4e2e579232   
Lifecycle state                  pending   
Access control mode              security_group
Accessor binding role            accessor
Allowed transit encryption modes user_managed,none
Origin share                     CRN                                                                                             Name            Remote account  Remote region
                                 crn:v1:bluemix:public:is:us-south-2:a/7654321::share:r006-d73v40a6-e08f-4d07-99e1-d28cbf2188ed  my-origin-share a7654321        -

Zone                             us-south-2   
Profile                          dp2   
Size(GB)                         500   
IOPS                             2000   
User Tags                        env:dev   
Encryption                       provider_managed   
Mount Targets                    ID                                          Name      
                                 r006-ad313f6b-ccb5-4941-a5f7-0c953f1043df   my-new-mount-target      

Resource group                   ID                                 Name      
                                 db8e8d865a83e0aae03f25a492c5b39e   Default      

Created                         2024-06-25T00:30:11+00:00   
Replication role                none   
Replication status              none   
Replication status reasons      Status code   Status message      
                                -             -     
Snapshot count                  0
Snapshot size                   0                         

创建与 API 的存取器共享

您可以通过直接调用 REST API 来创建文件共享和安装目标。

准备工作

设置 API 环境 定义 IAM 令牌、API 端点和 API 版本的变量。 有关指示信息,请参阅设置 API 和 CLI 环境

创建与 API 的存取器共享

发出 POST /shares 请求以创建文件共享。

以下示例显示了使用源共享的 CRN 创建存取器共享的请求。 存取器共享从其原始共享继承以下特征: 概要文件,区域,大小,IOPS,静态和传输中的加密类型。 initial_owneraccess_control_modeencryption_key 的值也继承自 origin_share。

curl -X POST \
"$vpc_api_endpoint/v1/shares?version=2024-06-25&generation=2"\
  -H "Authorization: Bearer $iam_token" \
  -d '{
  "name": "my-accessor-share",
  "user_tags": ["string"],
  "origin_share": {"crn": "crn:v1:bluemix:public:is:us-south-1:a/a1234567::share:0fe9e5d8-0a4d-4818-96ec-e99708644a58"}
}

成功回复的示例如下

  {
  "access_control_mode": "security-group",
  "allowed_transit_encryption_modes": ["none", "user-managed"],
  "created_at": "2024-05-06T23:31:59Z",
  "crn": "crn:[...]",
  "encryption": "provider_managed",
  "href": "https://us-south.iaas.cloud.ibm.com/v1/shares/ff859972-8c39-4528-91df-eb9160eae918",
  "id": "ff859972-8c39-4528-91df-eb9160eae918",
  "iops": 48000,
  "lifecycle_state": "stable",
  "name": "my-accessor-share",
  "profile": {
    "href": "https://us-south.iaas.cloud.ibm.com/v1/share/profiles/dp2",
    "name": "dp2",
    "resource_type": "share_profile"
    },
  "replication_role": "none",
  "replication_status": "none",
  "replication_status_reasons": [],
  "resource_group": {
    "crn": "crn:[...]",
    "href": "https://resource-controller.cloud.ibm.com/v2/resource_groups/6b45d0aa-e0a6-478b-a5d9-bb45b106676d",
    "id": "6b45d0aa-e0a6-478b-a5d9-bb45b106676d",
    "name": "Default"
    },
  "resource_type": "share",
  "size": 4800,
  "snapshot_count": 10,
  "snapshot_size": 10,
  "user_tags": ["string"],
  "zone": {
    "href": "https://us-south.iaas.cloud.ibm.com/v1/regions/us-south/zones/us-south-1",
    "name": "us-south-1"}
  }

使用 API 为文件共享创建安装目标

如果共享的访问控制方式为 security_group,那么必须使用 虚拟网络接口 创建安装目标。 当共享的允许传输加密方式为 user-managed 时,安装目标的 transit_encryption 值也必须为 user-managed

发出 POST /shares/{share_id}/mount_targets 请求并指定安装目标网络接口的子网和安全组。 与挂载目标相关联的安全组必须允许从要挂载共享的所有服务器 NFS 端口对 TCP 协议进行入站访问。

此示例将安装目标添加到现有存取器共享 (由标识标识标识),并提供子网和安全组以创建网络接口。

 curl -X POST "$vpc_api_endpoint/v1/shares/f1ab81ef-dd30-459a-85e0-9094164978b1/mount_targets/?version=2023-07=18&generation=2"\
 -d '{
     "virtual_network_interface": {
        "subnet": {"id": "1a0b3d75-8a62-4c78-9263-f9bcd25a8759"},
        "security_groups": [{"id": "b2599112-7027-480e-ad1b-fd917d2fcb84"}]
     },
     "transit_encryption": "user_managed"
}'

使用 Terraform 创建文件共享和安装目标

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

VPC 基础架构服务使用特定区域端点,缺省情况下该端点以 us-south 为目标。 如果在另一个区域中创建了 VPC,请确保将 provider.tf 文件中的提供程序块中的相应区域作为目标。

请参阅以下以非缺省 us-south 的区域为目标的示例。

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

使用 Terraform 创建存取器共享

要创建存取器共享,请使用 ibm_is_share 资源。 存取器共享从其原始共享继承以下特征: 概要文件,大小,静态和传输中的加密类型。

resource "ibm_is_share" "example-origin" {
  allowed_transit_encryption_modes = ["user_managed", "none"]
  access_control_mode = "security_group"
  name    = "my-share"
  size    = 200
  profile = "dp2"
  zone    = "au-syd-2"
}
resource "ibm_is_share" "example-accessor" {
  origin_share {
    crn   = ibm_is_share.example-origin.crn
  }     
  name  = "my-accessor-share-1"
}

使用 Terraform 创建安装目标

要为文件共享创建安装目标,请使用 is_share_mount_target 资源。 以下示例创建具有 security_group 访问控制方式的安装目标。 首先,指定创建挂载目标的共享。 然后,指定安装目标的名称,并通过提供 IP 地址和名称来定义新的虚拟网络接口。 您还必须指定要用于管理对与安装目标关联的文件共享的访问权的安全组。 与挂载目标相关联的安全组必须允许从要挂载共享的所有服务器 NFS 端口对 TCP 协议进行入站访问。 属性 auto_delete = true 表示如果删除安装目标,那么将删除虚拟网络接口。

resource "ibm_is_share_mount_target" "target-with-vni" {
     share=ibm_is_share.is_share.ID
     name = <share_target_name>
     virtual_network_interface {
     name = <virtual_network_interface_name>
     primary_ip {
         address = “10.240.64.5”
         auto_delete = true
         name = <reserved_ip_name>
     }
     resource_group = <resource_group_id>
     security_groups = [<security_group_ids>]
     transit_encryption = user_managed
   }
}

有关自变量和属性的更多信息,请参阅 ibm_is_share_mount_target

使用安全组访问方式创建与安装目标的存取器共享

您无需分别创建文件共享和挂载目标。 要与允许在 VPC 中进行基于安全组的认证的安装目标创建文件共享,请使用 ibm_is_share 资源。 存取器共享从其原始共享继承以下特征: 概要文件,大小,静态和传输中的加密类型。 将访问控制方式指定为 security_group,并通过为其提供名称,虚拟网络接口的详细信息 (例如,名称,子网或 IP 地址) 来定义安装目标。 此外,指定要用于控制对文件共享的访问权的安全组。 与挂载目标相关联的安全组必须允许从要挂载共享的所有服务器 NFS 端口对 TCP 协议进行入站访问。

resource "ibm_is_share" "share4" {
   zone    = "us-south-2"
   name    = "my-share4"
   origin_share {
    id    = ibm_is_share.example-origin.id
  }
   access_control_mode = "security_group"
   mount_target {
       name = "target"
       virtual_network_interface {
       primary_ip {
               address = 10.240.64.5
               auto_delete = true
               name = "<reserved_ip_name>
       }
      resource_group = <resource_group_id>
      security_groups = [<security_group_ids>]
      transit_encryption = none
      }
   }
}

有关自变量和属性的更多信息,请参阅 ibm_is_share

后续步骤

安装文件共享。 安装是一个过程,服务器的操作系统通过该过程使存储设备上的文件和目录可供用户通过服务器的文件系统进行访问。 有关更多信息,请参阅以下主题:

不支持创建 Accessor 共享快照。 但是,如果原始共享有快照,则可以访问 .snapshot 目录中的这些快照。 有关更多信息,请参阅 从快照恢复文件