更新时间:2024-02-29 GMT+08:00

挂载并行文件系统

通过obsfs使用OBS服务,需要将OBS的并行文件系统挂载至您本地的文件系统上。挂载完成后,可以像操作本地目录一样操作OBS并行文件系统,比如保存某个文件至挂载目录,即上传对象至OBS。

约束与限制

  • obsfs只支持挂载OBS并行文件系统,不支持挂载对象存储桶
  • 本地挂载目录可以不为空,但是挂载后此目录下原有的内容将不可用,取消挂载后即可恢复。建议使用空目录作为挂载目录。
  • 挂载目录中的文件或文件夹不支持硬链接命令。
  • 创建的目录深度不超过45层。
  • 每次通过命令手动挂载的并行文件系统,在Linux重启后,都需要重新挂载。
  • 并行文件系统的容量请以实际使用情况为准。

    您也可以设置开机自动挂载并行文件系统,具体操作请参见开机自动挂载并行文件系统

  • 一个并行文件系统支持挂载到多台云服务器,但数据一致性需由您自行维护,避免出现多台云服务器同时对一个文件并发写入的情况。
  • 桶级的桶策略和IAM策略对obsfs挂载方式生效,目录级的桶策略和IAM策略对obsfs挂载方式访问不生效。

前提条件

  • 已成功获取obsfs,具体操作请参见下载并安装obsfs
  • 已初始化obsfs,具体操作请参见初始化obsfs
  • 本地挂载目录已存在。

    您也可以使用mkdir命令创建一个新目录用来挂载并行文件系统。比如创建一个mountpoint目录,命令为:

    mkdir mountpoint
  • 已校准当前系统时间。

    如果当前系统时间与存储服务器时间相差过大,会导致请求鉴权失败。

手动挂载并行文件系统

  1. 打开命令行终端。
  2. 使用cd命令进入obsfs所在目录。
  3. 按照以下格式执行挂载命令。

    ./obsfs 并行文件系统名 本地挂载目录 -o url=区域终端节点地址 -o passwd_file=密钥文件路径 -o big_writes -o max_write=131072 -o use_ino 其他挂载参数 
    • 并行文件系统名:输入待挂载的并行文件系统名称。

      支持将并行文件系统中特定目录挂载到本地。用户使用此种方式挂载,进入本地挂载目录后,仅能访问并行文件系统中的特定目录。挂载命令如下:

      ./obsfs 并行文件系统名:/目录名 本地挂载目录 -o url=区域终端节点地址 -o passwd_file=密钥文件路径 -o big_writes -o max_write=131072 -o use_ino 其他挂载参数

    • 本地挂载目录:输入待挂载目录的绝对路径或相对路径。
    • 区域终端节点地址:根据待挂载并行文件系统所在区域名称获取对应的终端节点地址。
    • 挂载参数

      挂载参数(除passwd_file、use_ino外)为可选项,根据需求选择合适的参数组合,格式为:-o 参数名称=参数值。在不需要设置参数值的情况下,直接使用-o 参数名称 即可。OBS支持的挂载参数及说明如表1所示。

      关于obsfs挂载时的参数设置,可执行./obsfs --help命令了解更多。

      表1 挂载参数说明

      参数名称

      参数值

      说明

      passwd_file

      类型:String

      取值:根据初始化obsfs配置的密钥文件路径进行设置。

      密钥文件路径,使用obsfs时将从此路径中获取AK和SK信息,以对用户身份进行验证。

      use_ino

      需要

      使用该选项,由obsfs分配inode编号。

      big_writes

      不需要

      配置后可更改写缓存最大值大小。

      max_write

      类型:int

      推荐取值:128KB

      仅配置big_writes的情况下才生效,默认写大小为4KB,推荐使用128KB。

      nonempty

      不需要

      允许挂载目录非空。

      allow_other

      不需要

      允许其他用户访问并行文件系统。

      max_background

      类型:int

      推荐取值:100

      可配置后台最大等待请求数。

      use_path_request_style

      不需要

      当采用路径式(使用legacy API 调用风格)访问OBS时,请使用该参数。

      说明:

      当url参数值为IP地址时,挂载命令必须携带此参数,否则会报域名解析错误。

      umask

      不需要

      配置文件权限的掩码,用户每次进入文件系统时,umask命令都被执行,并自动设置掩码显示新的权限。

      obsfslog

      不需要

      从配置文件加载日志配置参数,包括日志模式、级别等。使用此参数可以在不重启进程的情况下,更改日志级别。

      说明:

      配置文件路径固定为:/etc/obsfsconfig,如果要使用此参数,需要手动在本地创建此路径并参照以下示例及注释写入内容。

      配置文件内容示例:

      //日志模式。值为0,日志模式为前台显示。值为1,模式为生成日志文件,路径:/var/log/obsfs,以进程号命名。值为2,模式为日志写入系统日志。
      dbglogmode=1
      //日志级别。dbg、info、warn、err、crit。日志级别为dbg或info时,会打印业务详细信息,例如:桶名、文件名等。
      dbglevel=info

  4. 执行以下命令,检查挂载结果。

    df -h

    当界面显示如下类似回显信息时,表示OBS并行文件系统挂载成功。

    Filesystem       Size         Used       Avail      Use%      Mounted on
    obsfs            256T         0          256T       0%        /path/to/mountpoint

    并行文件系统的容量请以实际使用情况为准。

    如果没有显示以上类似回显信息,表示OBS并行文件系统挂载失败。此时可在执行的挂载命令后面添加以下参数,用以在回显中输出挂载过程以及详细调试日志:

    -d -d -f -o f2 -o curldbg

    然后再根据具体的错误信息进行问题定位,常见异常处理请参考挂载并行文件系统失败

命令示例

此处以挂载“filesystem001”并行文件系统、obsfs密钥文件路径为“/etc/passwd-obsfs”作为前提条件提供如下挂载命令示例,介绍挂载OBS并行文件系统时的一些参数配置。

  • 将并行文件系统“filesystem001”挂载至“/mnt/mount_path/”目录,并允许该目录为非空:
    ./obsfs filesystem001 /mnt/mount_path/ -o url=oss.eu-west-0.prod-cloud-ocb.orange-business.com -o passwd_file=/etc/passwd-obsfs -o big_writes -o max_write=131072 -o nonempty -o use_ino
  • 将并行文件系统“filesystem001”挂载至“/mnt/mount_path/”目录,并设置写缓存大小:
    ./obsfs filesystem001 /mnt/mount_path/ -o url=oss.eu-west-0.prod-cloud-ocb.orange-business.com -o passwd_file=/etc/passwd-obsfs -o big_writes -o max_write=131072 -o max_background=100 -o use_ino
  • 将并行文件系统“filesystem001”挂载至“/mnt/mount_path/”目录,并允许其他用户访问该目录:
    ./obsfs filesystem001 /mnt/mount_path/ -o url=oss.eu-west-0.prod-cloud-ocb.orange-business.com -o passwd_file=/etc/passwd-obsfs -o big_writes -o max_write=131072 -o max_background=100 -o use_ino

当url参数值为IP地址时,请在以上挂载示例中携带-o use_path_request_style参数,否则会报域名解析错误。

开机自动挂载并行文件系统

以下内容以CentOS 7操作系统为例,介绍如何配置开机自动挂载。

  1. 使用root用户登录Linux运行机。
  2. 执行以下命令,创建一个/home/startobsfs.sh脚本文件。

    vi /home/startobsfs.sh

  3. i进入编辑模式,将以下命令写入/home/startobsfs.sh脚本文件。

    #!/bin/bash
    cd obsfs所在的绝对路径
    ./obsfs 并行文件系统名 本地挂载目录 -o url=区域终端节点地址 -o passwd_file=密钥文件路径 -o big_writes -o max_write=131072 -o use_ino 挂载参数

    挂载命令参数说明请参见“手动挂载并行文件系统”部分的步骤3

  4. Esc键,输入:wq,保存并退出脚本文件。
  5. 执行以下命令,赋予root用户对脚本的可执行权限。

    chmod +x /home/startobsfs.sh

  6. 执行以下命令,赋予root用户对rc.local文件的执行权限。

    chmod +x /etc/rc.d/rc.local

    不同操作系统的rc.local文件位置不同,在CentOS 7中,该文件位置为/etc/rc.d/rc.local。

  7. 编辑/etc/rc.d/rc.local文件,将以下命令添加至文件末尾,保存并退出。

    bash /home/startobsfs.sh

    如果/etc/rc.d/rc.local中有退出的命令,例如“exit 0”,请将本步骤中的命令添加至退出命令之前。

  8. 重启后验证。

    在重启Linux后,执行以下命令,查看OBS并行文件系统是否挂载成功。

    df -h

    后续如果想取消开机自动挂载并行文件系统,删除rc.local文件中执行obsfs挂载命令的脚本文件即可。

后续操作

后续如果需要对已挂载的并行文件系统进行参数设置(新增、修改或删除),请先取消挂载后再重新挂载。关于取消挂载并行文件系统的具体操作,请参见取消挂载并行文件系统