OSS的存储空间(Bucket)内部是扁平的,没有文件系统或文件夹等概念。如果您希望像使用本地文件夹和磁盘那样使用OSS,您可以通过云存储网关将OSS的Bucket作为文件系统挂载至ECS实例中使用。

前提条件

  • 已开通云存储网关服务,并授予访问OSS、ECS及VPC的权限。
  • 仅华东1(杭州)、华东2(上海)、华北1(青岛)、华北2(北京)、华北3(张家口)、华北5(呼和浩特)、华北6(乌兰察布)、华南1(深圳)、华南2(河源)、西南1(成都)、中国(香港)、新加坡、澳大利亚(悉尼)、马来西亚(吉隆坡)、印度尼西亚(雅加达)、日本(东京)、印度(孟买)、德国(法兰克福)、美国(硅谷)、美国(弗吉尼亚)地域支持使用云存储网关服务。
  • 已创建与目标Bucket同地域的专有网络VPC和交换机。具体步骤,请参见创建和管理专有网络创建和管理交换机
  • 已创建与OSS同地域的ECS实例。具体步骤,请参见创建ECS实例

注意事项

通过云存储网关访问未解冻的归档或冷归档类型文件时,文件会被自动解冻。归档类型文件解冻需要约1分钟;冷归档类型文件解冻需要1小时以上。基于使用协议不同,解冻时的访问情况如下:
  • NFS协议:访问文件时会触发解冻操作,并在文件完成解冻后继续访问操作。
  • SMB协议:访问文件时会触发解冻操作,并返回报错信息。您需要在文件解冻完成后再次访问。

步骤一:配置云存储网关

  1. 登录OSS管理控制台
  2. 单击Bucket列表,然后单击目标Bucket名称。
  3. 在左侧导航栏,选择文件管理 > ECS挂载OSS,然后单击配置云存储网关
  4. 网关基础信息面板,配置以下参数,然后单击下一步
    参数 说明
    型号 根据您挂载的Bucket的容量及访问需求带宽选择合适的网关规格。

    例如您Bucket内文件不超过1000万个,容量不超过64 TB,且读写带宽需求不超过1 Gbps时,可以选择基础型。关于网关规格的详细介绍,请参见文件网关

    专有网络 选择挂载Bucket的ECS实例所在的VPC。
    虚拟交换机 选择挂载Bucket的ECS实例所在的VPC下的交换机。
  5. 配置协议面板,配置以下参数,然后单击下一步
    参数 说明
    名称 填写云存储网关的名称。

    只能以大小写字母或者中文开头,且只能包含大小写字母、中文、数字或字符._-,最大支持60个字符。

    子目录 如果您需要通过云存储网关将Bucket下的某个子目录作为文件系统挂载至ECS实例中使用,请选中Bucket名称右侧的子目录选项,然后填写子目录名称。
    协议 选择文件网关使用的协议类型。
    • NFS:适用于Linux系统。
    • SMB:适用于Windows系统。
    共享名称 设置Bucket挂载后的网络共享名称。

    只能以大小写字母开头,且只能包含大小写字母、数字或字符._-。最大支持32个字符。

    用户映射 设置NFS客户端访问挂载文件夹时使用的用户身份。仅当协议类型NFS时配置。
    • none:所有用户都以自己登录NFS客户端的身份访问挂载文件夹。
    • root_squash:root用户以匿名用户身份nfsnobody访问挂载文件夹。
    • all_squashall_anonymous:所有用户都以匿名用户身份nfsnobody访问挂载文件夹。
    OSS通过云存储网关挂载到ECS实例后,所有用户对OSS文件都有可读、可写、可执行的权限,您可以根据以下需求设置用户映射
    • 如果您需要进行权限管理,先将用户映射设置为none,然后使用root用户进行权限管理。具体步骤,请参见设置文件访问权限
    • 如果您无需进行权限管理,可选择任意映射方式。
    反向同步 反向同步会从云上OSS Bucket同步元数据到网关的缓存盘,以保证云上和网关缓存的一致性。

    如果您选择反向同步,还需要设置反向同步时间间隔

    重要
    • 反向同步时间间隔最大为36000秒,最小为15秒。使用反向同步时,性能会有一定的损耗,不建议设置反向同步时间间隔小于300秒。
    • 反向同步功能会扫描Bucket中所有文件,并产生一定的API请求费用。计费详情,请参见请求费用
    缓存盘规格 包括高效云盘、SSD云盘、以及ESSD云盘(PL1)三种,请根据业务需求选择。
    缓存盘容量 设置数据缓存的容量大小,单位为GB,取值范围为[100, 32768]。

    云存储网关将使用指定大小的ECS存储空间缓存热数据,以保障数据访问的性能。

  6. 付费信息面板,选中《云存储网关服务协议》,然后单击完成
    默认创建按量付费的云存储网关。创建完成后,您可以将云存储网关的计费方式转为包年包月,享受更高的折扣优惠。具体步骤,请参见按量付费转包年包月

步骤二:挂载与访问Bucket

云存储网关购买完成后,您需要通过ECS实例挂载目标Bucket。以下步骤以NFS协议的云存储网关挂载Bucket为例,如果您需要使用SMB协议的云存储网关挂载Bucket,请参见访问SMB共享目录

  1. 在Bucket管理页面,选择文件管理 > ECS挂载OSS
  2. 在云存储网关的列表中,查看目标网关的服务器挂载点信息。
  3. 登录同地域Linux系统的ECS实例。
    登录方式,请参见通过密码认证登录Linux实例
  4. 使用NFS挂载命令挂载目标Bucket。
    例如Bucket服务器挂载点为172.16.0.2:/test,本地文件夹名为mnt/nfs/,则挂载命令为:
    mount.nfs 172.16.0.2:/test /mnt/nfs/
  5. 访问目标Bucket。
    您可以使用以下命令通过挂载后的文件夹访问目标Bucket。示例如下:
    • 列举Bucket根目录的文件,命令如下:
      ls mnt/nfs/
    • 将Bucket根目录下的example.txt文件下载到本地,命令如下:
      cp mnt/nfs/example.txt  example.txt

(可选)步骤三:设置文件访问权限

  1. 使用root身份登录NFS客户端。
  2. 设置文件访问权限。
    以授予nfsnobody用户(默认UID和GID为429496****)只读访问example.txt文件为例,步骤如下:
    1. example.txt文件所属组修改为nfsnobody组,命令如下:
      chgrp -R 429496**** example.txt
    2. 为nfsnobody组授予example.txt文件的只读权限,命令如下:
      chmod  444 example.txt
  3. 可选:修改用户映射。
    权限配置完成后,建议您将用户映射修改为root_squashall_squashall_anonymous,以限制root用户的权限。
    1. 登录云存储网关控制台
    2. 单击网关列表,然后单击目标网关名称。
    3. 单击共享,然后在共享列表页面单击操作列的设置
    4. NFS共享设置对话框,根据您的需求修改用户映射
    5. 单击确定

常见问题

通过云存储网关挂载OSS和使用ossfs有什么区别?

二者使用性能有差异,云存储网关挂载OSS时性能更好。ossfs工具的性能不适合高并发和大文件的上传下载处理,适合日常小文件的使用。关于ossfs的更多信息,请参见ossfs概述