You need to enable JavaScript to run this app.
导航
FSX 配置与挂载
最近更新时间:2025.01.16 14:22:38首次发布时间:2024.12.30 16:33:20

本文介绍挂载存储桶的注意事项、操作步骤等内容。

前提条件

已安装 FSX 客户端。具体操作,请参见安装 FSX

注意事项

仅支持挂载 TOS 扁平桶,暂不支持挂载 TOS 分层桶。

权限配置

挂载存储桶所需要的权限

使用 IAM 用户挂载存储桶,并执行相应操作时,需要拥有对应的权限,否则挂载会失败,具体权限说明如下:

  • 挂载存储桶时,需要拥有 ListBucket 和 HeadBucket 权限。
  • 读取挂载的桶内对象时,需要拥有 GetObject 权限。
  • 在挂载的桶写入文件时,需要拥有 PutObject 和 AbortMultipartUpload 权限。
  • 在挂载的桶删除文件时,需要拥有 DeleteObject 权限。

对于开启服务器端加密 (SSE-KMS)的桶,则在读取或写入对象时需要额外的 KMS 操作权限。使用 SSE-KMS 上传加密对象,您需要具备该密钥的 kms:GenerateDataKey 权限;若要下载 SSE-KMS 加密对象,您需要具备该密钥的 kms:Decrypt 权限。关于服务端加密的更多信息,请参见服务端加密概述
以下是一个最小权限策略举例:

{
        "Statement": [{
                "Effect": "Allow",
                "Action": [
                        "tos:GetObject",
                        "tos:PutObject",
                        "tos:DeleteObject",
                        "tos:AbortMultipartUpload",
                        "tos:ListBucket",
                        "tos:HeadBucket"
                ],
                "Resource": [
                        "*"
                ]
        }]
}

您还可以根据实际情况在以上权限策略的基础上增加更多动作,使得 IAM 用户拥有更多权限。关于 IAM 策略支持动作,请参见 IAM 策略概述
确认需要授予的权限策略后,您需要在 IAM 控制台使用权限策略创建自定义策略,然后授予 IAM 用户该策略,具体操作,请参见配置 IAM 策略添加授权

FSX 访问权限

默认情况,FSX 客户端进程的 UID 和 GID 拥有挂载的系统内所有的文件和目录权限,文件默认权限为 644,目录默认权限为 755,这些信息不支持通过 chownchmod 命令修改,您可以在挂载桶时通过 uidgidfile_modedir_mode 参数来修改默认值。
参数说明:

参数

是否必选

说明

uid

设置文件或目录属于某个用户时,需要填写的用户 uid。

gid

设置文件或目录属于某个用户组时,需要填写的用户 gid。

file_mode

用于设置文件的权限,默认取值为 644。

dir_mode

用于设置目录的权限,默认取值为 755。

配置示例:
允许所有用户访问,即权限为 777。

mount -t fsx /tos/<挂载的桶名>:/<桶内目录> <挂载点> -o region="<地域>",endpoint="<访问域名>",access_key_id="AK",secret_access_key="SK",no_writeback_cache,file_mode=777,dir_mode=777

挂载整个存储桶

  1. 进入 Linux 操作系统,执行以下命令,创建挂载点。

    mkdir /mnt/point
    
  2. 执行以下命令,挂载存储桶。

    mount -t fsx /tos/<挂载的桶名> <挂载点> -o region="<地域>",endpoint="<访问域名>",access_key_id="AK",secret_access_key="SK",no_writeback_cache
    

    示例如下:

    mount -t fsx /tos/bucketname /mnt/point -o region="cn-beijing",endpoint="http://tos-cn-beijing.volces.com",access_key_id="AKLTOGY3YjZiNzEyYjU3NDQ0MWIzYTEyOTUxMWMwNmI****",secret_access_key="WVdJMlpUSmlOak01WmpRMU5ESTRObUppT0RBNU5HSTBZakExWkRrd0****",no_writeback_cache
    

    参数说明如下:

    说明

    以下介绍使用 FSX 客户端挂载存储桶的基本参数,您还可以在挂载存储桶时设置预热、读缓存等参数,详细介绍,请参见 FSX 挂载参数说明

    参数

    是否必选

    说明

    region

    存储桶所在地域。

    no_writeback_cache

    不开启内核 page cache 回写功能,保证 write 请求是顺序写。

    endpoint

    TOS 的访问域名。如果没有指定协议,则默认使用 HTTPS 协议,完整格式为 https://{host}:{port}

    access_key_id

    在挂载命令中指定密钥信息,关于获取 Access Key ID 和 Secret Access Key 的具体操作,请参见 Access Key(密钥)管理

    说明

    • 请确保 Access Key ID 和 Secret Access Key 所属账号拥有存储桶的读写权限,如果权限不足,可能导致挂载点无法使用。
    • 在挂载命令中指定密钥信息和在挂载命令中指定包含鉴权信息的文件路径为二选一,您必须设置其中一项。
    • 仅使用临时访问凭证的情况下,需要设置 security_token 参数。

    secret_access_key

    security_token

    credential_filepath

    在挂载命令中指定包含鉴权信息的文件路径,文件扩展名必须为 json,格式如下:

    {
        "VOLC_ACCESSKEY": "<ak_string>",
        "VOLC_SECRETKEY": "<sk_string>",
        "VOLC_SECURITY_TOKEN": "<sts_string>"
    }
    

    credential_timeout_sec

    FSX 客户端动态配置鉴权文件的时间,单位:秒。

    说明

    credential_timeout_seccredential_filepath 参数需要搭配使用。

  3. 执行以下命令,查看存储桶挂载情况。

    df -h
    

    在返回内容中看到挂载点、挂载桶名,说明挂载成功。

    Filesystem                  Size   Used Avail Use% Mounted on
    BFA281845F:tos-fuse-test    8.0E      0  8.0E   0% /mnt/fuse_shm
    

挂载指定目录

  1. 进入 Linux 操作系统,执行以下命令,创建挂载点。

    mkdir /mnt/point
    
  2. 执行以下命令,挂载存储桶下某个目录。

    mount -t fsx /tos/<挂载的桶名>:/<桶内目录> <挂载点> -o region="<地域>",endpoint="<访问域名>",access_key_id="AK",secret_access_key="SK",no_writeback_cache
    

    示例如下:

    mount -t fsx /tos/bucketname:/dir /mnt/point -o region="cn-beijing",endpoint="http://tos-cn-beijing.volces.com",credential_filepath="/root/credential.json",credential_timeout_sec=100,no_writeback_cache
    

    参数说明如下:

    说明

    以下介绍使用 FSX 客户端挂载存储桶的基本参数,您还可以在挂载存储桶指定目录时设置预读、读缓存等参数,详细介绍,请参见 FSX 挂载参数说明

    参数

    是否必选

    说明

    region

    存储桶所在地域。

    no_writeback_cache

    不开启内核 page cache 回写功能,保证 write 请求是顺序写。

    endpoint

    TOS 的访问域名。如果没有指定协议,则默认使用 HTTPS 协议,完整格式为 https://{host}:{port}

    access_key_id

    在挂载命令中指定密钥信息,关于获取 Access Key ID 和 Secret Access Key 的具体操作,请参见 Access Key(密钥)管理

    说明

    • 请确保 Access Key ID 和 Secret Access Key 所属账号拥有存储桶的读写权限,如果权限不足,可能导致挂载点无法使用。
    • 在挂载命令中指定密钥信息和在挂载命令中指定包含鉴权信息的文件路径为二选一,您必须设置其中一项。
    • 仅使用临时访问凭证的情况下,需要设置 security_token 参数。

    secret_access_key

    security_token

    credential_filepath

    在挂载命令中指定包含鉴权信息的文件路径,文件扩展名必须为 json,格式如下:

    {
        "VOLC_ACCESSKEY": "<ak_string>",
        "VOLC_SECRETKEY": "<sk_string>",
        "VOLC_SECURITY_TOKEN": "<sts_string>"
    }
    

    credential_timeout_sec

    FSX 客户端动态配置鉴权文件的时间,单位:秒。

    说明

    credential_timeout_seccredential_filepath 参数需要搭配使用。

  3. 执行以下命令,查看存储桶挂载情况。

    df -h
    

    在返回内容中看到挂载点、挂载桶名,说明挂载成功。

    Filesystem                  Size   Used Avail Use% Mounted on
    BFA281845F:tos-fuse-test    8.0E      0  8.0E   0% /mnt/fuse_shm
    

查看日志

默认日志打印在/var/log/fsx 路径下:

  • 进入到 /var/log/fsx/fusedaemon/tos/fusedaemon ,可以查看 FSX 客户端日志。
  • 进入到 /var/log/fsx/fusedaemon/tos/tos-fuse ,可以查看 TOS 服务端交互日志。

为了查看服务运行过程中的详细信息,定位问题,您可能需要开启调试日志,此时可以使用以下命令:

  • 调整 FSX 客户端日志级别为调试级别

    cd /opt/fsx/bin && ./fusetool flags set --instance tos --flag v --value 20 --force
    
  • 调整 TOS 服务端交互日志级别为调试级别

    cd /opt/fsx/bin &&  ./fusetool flags set --instance tos --flag tosfuse_log_level --value 1  --force
    

卸载挂载点

执行 unmount <挂载目录> 命令,可以在 Linux 系统中卸载挂载点。