挂载卷是什么?

用户在运行生信工作流时,需要云端已经存在测序文件。

数据上云有两种途径,一种是直接上传数据到GeneDock,另外一种是用户的数据已经在云上,例如用户自己在云上管理数据或者测序工厂通过云端交付的数据。

为了方便用户对接不同来源的数据,GeneDock提供挂载卷功能,即通过挂载的方式使用云端存储。

如何使用挂载卷?

  • 创建挂载卷

创建挂载卷前,需要确认如下信息:

• 拥有GeneDock 账号
• 拥有阿里云OSS bucket 且该bucket的所在域与聚道域同域(阿里云华南1区–深圳域,华北2区–北京域)
• 阿里云账号创建子用户并拥有Access Secret ID 和 Access Secret Key
• 建议开通 操作审计(ActionTrail)

备注:目前仅支持 阿里云北京域和深圳域

如上述信息都确认完毕,即可创建挂载卷

步骤1-创建子用户

登录阿⾥里里云控制台,进入”RAM 访问控制”,点击”人员管理”->”用户”,”创建子用户”:

  1. 输入”登录名称“和“显示名称”(本文以 “sub-volume”为例)。
  2. 选择”编程访问”。
  3. 点击”确定”。

步骤2-新建自定义策略

登录阿里云管理控制台,进入 “RAM 访问控制”,“权限管理”->”权限策略管理”, “新建权限策略”

  1. 填入策略名称(本文以”genedock-data-transfer”为例)

  2. 编辑备注内容 (本文以”genedock-data 数据传输”为例)

  3. ”配置模式” 选择 “脚本编辑”。

  4. 按照下列脚本内容填写

case1:挂载整个 bucket,以 bucket 名 “test-bucket”为例 (推荐使用这种方法)

{
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "oss:GetObject",
                "oss:PutObject",
                "oss:ListParts",
                "oss:AbortMultipartUpload",
                "oss:ListObjects"
            ],
            "Resource": [
                "acs:oss:*:*:test-bucket",
                "acs:oss:*:*:test-bucket/*"
            ]
        }
    ],
    "Version": "1"
}

case2: 挂载 bucket 的子目录,以 bucket 名test-bucket,前缀为data/为例,

{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "oss:GetObject",
                "oss:PutObject",
                "oss:ListParts",
                "oss:AbortMultipartUpload",
                "oss:ListObjects"
            ],
            "Resource": [
                "acs:oss:*:*: test-bucket/data/*"
            ],
            "Condition": {}
        },
        {
            "Effect": "Allow",
            "Action": [
                "oss:ListObjects"
            ],
            "Resource": [
                "acs:oss:*:*: test-bucket "
            ],
            "Condition": {
                "StringLike": {
                    "oss:Prefix": [
                        "",
                        "data/*"
                    ]
                },
                "StringEquals": {
                    "oss:Delimiter": "/"
                }
            }
        }
    ]
}

本文以 case1: 挂载整个 bucket 为例

  1. 点击”确定”

步骤3-新建RAM角色

登录阿里云管理控制台,进入 “RAM访问控制”,“RAM角色管理”,点击 “新建RAM角色”

  1. 默认”阿里云账号”和”当前云账号”
  2. 输入”RAM角色名称”,例如 volume
  3. 输入备注信息,点击 “确定”

步骤4-给RAM角色添加权限

登录阿里云管理控制台,进入 “RAM访问控制”,“RAM角色管理”

  1. 选中刚创建的RAM角色名称 ”volume“,点击 “添加权限”
  2. 选择 “自定义授权策略”,选中步骤2新建的自定义策略,例如”genedock-data-transfer”
  3. 点击”确定”

步骤5-创建STST权限策略

登录阿里云管理控制台,进入 “RAM访问控制”,“RAM角色管理”

  1. 点击上面角色名称,进入角色详情面板。复制 ARN 信息。例如,点击“volume”,ARN信息格式为acs:ram::156330542349:role/volume(该编号以实际内容为准)
  2. 返回”权限策略管理”面板,点击”新建权限策略”,策略命名为”sts-volume“。
  3. 填入如下策略信息:
{
    "Statement": [
        {
            "Action": "sts:AssumeRole",
            "Effect": "Allow",
            "Resource": "acs:ram::156330542349:role/volume"
        }
    ],
    "Version": "1"
}

注:"acs:ram:: 156330542349:role/volume" 为第1步生产的ARN编号,请按照实际情况填写编号。

  1. 点击”确定”

步骤6- 授权sts策略和bucket策略

登录阿里云管理控制台,进入 “RAM访问控制”->”人员管理”->”用户”,

  1. 选中新增用户,例如sub-test,点击添加权限
  2. “选择权限”->”自定义权限策略”,选择添加步骤2的bucket策略和步骤5的STS策略,例如选择之前创建的 “sts-volume” 和”genedock-data-transfer” 策略

  3. 点击”确定”

通过上述的操作,请核对是否已经获取如下信息:

  • 阿里云 子用户 AK
  • bucket的名称和bucket前缀
  • role_arn编码(步骤5)

如果已经ok,请继续后续操作,否则请回查上述的步骤。

步骤7-设置跨域权限

通过web上传数据到挂载点的时候,系统会验证挂载云盘的跨域访问权限,需要如下设置:

步骤8-创建挂载卷

  1. 确认GeneDock用户的Access ID 和 Access Key

Access ID 和 Access Key 需要在 www.genedock.com 登录后,点击“进入后台”、“设置”、 “AccessKey”页面获取)。

  1. 创建挂载卷

注意:提前在”数据”模块创建好挂载目录,例如 /data-vol/

  1. 查看挂载卷列表

  1. 同步数据

进入挂载点目录,点击 “刷新” 按钮,即可看到数据已经同步到了 /home/admin/data/ 目录了,如下图

后续云盘存储如有更新,可以点击 “刷新” 同步文件。

注意事项

  • 功能限制

    • 目前GeneDock 平台只支持 阿里云的北京域和深圳域的数据挂载,且不能跨域挂载,即北京域的存储数据只能挂载到GeneDock的北京域。
    • 为了保护用户数据安全,用户如要删除挂载数据,必须在文件的源存储上进行操作
  • 时效性说明

    • GeneDock 每天定时同步用户的挂载数据,如用户着急使用数据,建议手动同步
    • 挂载卷数据同步是增量同步,如第一次同步时,挂载的云端存储文件较多,文件同步过程容易超时,如同步失败请反馈给聚道技术支持人员协助同步。