共享并挂载来自另一个账户的文件共享

通过使用支持跨账户授权的访问者共享,在多个账户间共享 File Storage for VPC,从而实现多账户数据访问。

您还可以将您的 File Storage for VPC 与 IBM watsonx 服务。

跨账户的服务间授权 用于在共享所有者账户与访问者账户之间建立信任关系。 此外,必须为用户分配适当的 IAM 平台和服务角色,以便他们能够执行相关任务。 要在与源共享位于同一账户内创建访问共享,用户必须拥有 “共享代理”和 “编辑者”角色。 要在与源共享不同的账户中创建访问者共享,用户必须拥有 “共享远程账户访问者”和 “编辑者”角色。 有关更多信息,请参阅 IAM 角色和操作

在设置好授权并分配好角色后,您可以创建一个与源共享绑定的访问共享。 访问共享会从源共享继承配置文件、大小以及静态和传输过程中的加密类型。 源共享的账户可以查看哪些账户的ID有权挂载该 NFS 共享。

创建访问共享时,它会通过访问绑定与源共享建立关联。 访问器绑定是归源共享拥有的子资源,只有源共享的管理员才能检索或删除它们。

作为访问者,您无法编辑源共享的属性,也无法删除源共享。 作为访问器,您可以通过创建一个访问器共享以及指向该访问器共享的挂载目标来挂载该共享。 然后,您可以访问并使用源共享中的数据,包括其中可能存在的快照。

对于采用已弃用的 全VPC访问模式的文件共享,不支持与其他帐户或服务共享该文件共享。

传输加密策略

共享所有者可以通过设置允许的传输加密模式,来控制数据在传输过程中的加密方式。 如果未填写此字段,系统将使用所选共享配置文件中定义的默认允许加密模式。 访问者创建挂载目标时,必须选择一种与共享允许的加密模式之一相匹配的加密模式。 例如,如果选择了 IPsec,则该共享的所有挂载目标都必须使用 IPsec,以确保一致性。

对于分区文件共享,共享所有者可以从以下传输加密模式中进行选择:IPsec、无加密或两者兼有。

  • 如果强制启用 IPsec,则所有访问器挂载目标都必须使用 IPsec。
  • 如果未强制执行,则不允许传输过程中的加密。
  • 如果两者都允许,访问者账户可以选择使用其中哪一个。

选择可用性 对于区域文件共享,共享所有者可以从以下传输加密模式中进行选择:stunnel、无或两者兼有。

  • 如果强制使用 stunnel,则所有访问器挂载目标都必须使用 stunnel。
  • 如果未强制执行,则不允许传输过程中的加密。
  • 如果两者都允许,访问者账户可以选择使用其中哪一个。

在跨账户访问功能发布(2024年6月18日)之前创建的文件共享,其允许的传输加密类型取决于其现有的挂载目标。 在此日期之后,您在创建文件共享时必须指定允许的传输加密类型。 为一个文件共享创建的所有挂载目标必须具有相同的传输加密类型。

在控制台中创建访问共享

在 IBM Cloud 控制台中,您可以创建一个访问共享,该共享可以包含挂载目标,也可以不包含挂载目标。 不过,当您要在虚拟服务器实例上挂载该共享时,需要创建一个挂载目标。

在控制台中创建一个无挂载目标的访问共享

  1. IBM Cloud 控制台中,单击导航菜单 图标 > 基础设施 VPC 图标 > 存储 > 文件存储共享。 显示了一份文件共享列表。

  2. 在“VPC 的文件存储共享”页面上,单击 “创建” > “创建访问者共享”

  3. 请输入以下信息。

创建文件共享的参数
字段
访问者共享名称 请为您的访问共享指定一个有意义的名称。 文件共享名称最长可包含 63 个小写字母和数字,可包含连字符 (-),且必须以小写字母开头。 如果需要,您日后可以编辑该名称。
远程共享 CRN 输入源文件共享的 CRN。
  1. 单击创建

  2. 您将返回“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 ipsec,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
User Tags                        -
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
Source snapshot                  -
Allowed Access Protocols         nfs4
Availability Mode                zonal
Bandwidth(Mbps)                  1
Storage Generation               1

访问共享从其源共享继承了以下特性:配置文件、大小,以及静止状态和传输过程中的加密类型。 如果尝试将该命令与属性 --origin-share 结合其他属性(例如 --iops--profile--bandwidth--replica-share )一起使用,请求将失败。

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

通过命令行界面(CLI)为访问共享创建挂载目标

在运行 share-mount-target-create 命令为文件共享创建挂载目标之前,请先收集以下信息。

创建挂载目标时,必须指定其对应的文件共享。 您可以使用文件共享的名称或 ID。 您还必须指定 VPC,可以使用其 ID 或名称。 每个挂载目标的 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-912b5ac5-4ed1-4b2a-8f09-5fd8d79f6042   my-vpc
Access control mode         security_group
Resource type               share_mount_target
Virtual network interface   ID                                          Name             Protocol State Filtering Mode
                            0727-709ccc60-0c43-45cb-87b6-7ea1e37ef423   my-share-vni-1   auto
Lifecycle state             stable
Mount path                  10.240.64.5:/2be3efe6_6dff_46ea_9cec_b397f3141faf
Transit Encryption          none
Created                     2024-09-16T21:27:09+00:00

有关命令选项的更多信息,请参阅 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 ipsec,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
Source snapshot                  -
Allowed Access Protocols         nfs4
Availability Mode                zonal
Bandwidth(Mbps)                  1
Storage Generation               1

使用 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", "ipsec"],
  "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,则必须使用 虚拟网络接口 创建挂载目标。 当共享的允许传输加密模式为 ipsec 时,挂载目标的 transit_encryption 值也必须为 ipsec

发送一个 POST /shares/{share_id}/mount_targets 请求,并为挂载目标网络接口指定子网和安全组。 您为挂载目标关联的安全组必须允许来自所有需要挂载该共享的服务器,通过 NFS 端口对 TCP 协议的入站访问。

此示例向一个现有访问共享(通过 ID 进行标识)添加一个挂载目标,并提供子网和安全组以创建网络接口。

 curl -X POST "$vpc_api_endpoint/v1/shares/r006-201487a2-cf35-4b2a-a4fe-f480803e1e80/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 文件的 provider 代码块中指定相应的区域。

请参阅以下示例,了解如何将目标地区设置为默认地区 us-south 以外的其他地区。

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

使用 Terraform 创建访问共享

要创建访问共享,请使用 ibm_is_share 资源。 访问共享从其源共享继承了以下特性:配置文件、大小,以及静止状态和传输过程中的加密类型。

resource "ibm_is_share" "example-origin" {
  allowed_transit_encryption_modes = ["ipsec", "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 创建挂载目标

要为文件共享创建挂载目标,请使用 ibm_is_share_mount_target 资源。 以下示例创建了一个采用 security_group 访问控制模式的挂载目标。 首先,指定要为其创建挂载目标的共享。 然后,您需要指定挂载目标的名称,并通过提供 IP 地址和名称来定义新的虚拟网络接口。 您还必须指定要用于管理挂载目标关联的文件共享访问权限的安全组。 您为挂载目标关联的安全组必须允许来自所有需要挂载该共享的服务器,通过 NFS 端口对 TCP 协议的入站访问。 auto_delete = true 属性表示,如果挂载目标被删除,则虚拟网络接口也将被删除。

resource "ibm_is_share_mount_target" "zonal-mount-target-with-vni" {
     access_protocol    = "nfs4"
     name               = "my-zonal-mount-target"
     share              = ibm_is_share.is_share.ID
     security_groups    = [<security_group_ids>]
     transit_encryption = "ipsec"
     virtual_network_interface {
       name             = "my-example-vni"
       primary_ip {
          address       = “10.240.64.5”
          auto_delete   = true
          name          = "my-example-pip"
         }
     }
   }

上一个示例启用了区域文件共享的传输中加密功能。 若要通过传输加密保护区域共享中的数据,请将 transit_encryption 参数设置为 stunnel

有关这些参数和属性的更多信息,请参阅 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 {
       access_protocol    = "nfs4"
       name               = "my-mount-target"
       security_groups    = [<security_group_ids>]
       transit_encryption = "ipsec"
       virtual_network_interface {
           primary_ip {
              address     = "10.240.64.5"
              auto_delete = true
              name        = "my-example-pip"
           }
    }
   }
}

有关参数和属性的更多信息,请参阅 ibm_is_share

后续步骤

挂载文件共享。 挂载是指服务器操作系统将存储设备上的文件和目录通过服务器的文件系统提供给用户访问的过程。 有关更多信息,请参阅以下主题:

不支持对 Accessor 共享创建快照。 不过,如果源共享包含快照,您可以在 .snapshot 目录中访问这些快照。 如需了解更多信息,请参阅“从快照中恢复文件”。