挂载并行文件系统
通过obsfs使用OBS服务,需要将OBS的并行文件系统挂载至您本地的文件系统上。挂载完成后,可以像操作本地目录一样操作OBS并行文件系统,比如保存某个文件至挂载目录,即上传对象至OBS。
obsfs挂载到华为云服务器ECS上时占用OBS流量,不占用华为云服务器ECS的流量。
约束与限制
- obsfs只支持挂载OBS并行文件系统,不支持挂载对象存储桶。
- 本地挂载目录可以不为空,但是挂载后此目录下原有的内容将不可用,取消挂载后即可恢复。建议使用空目录作为挂载目录。
- 挂载目录中的文件或文件夹不支持硬链接命令。
- 创建的目录深度不超过45层。
- 每次通过命令手动挂载的并行文件系统,在Linux重启后,都需要重新挂载。
- 并行文件系统的容量请以实际使用情况为准。
您也可以设置开机自动挂载并行文件系统,具体操作请参见开机自动挂载并行文件系统。
- 一个并行文件系统支持挂载到多台云服务器,但数据一致性需由您自行维护,避免出现多台云服务器同时对一个文件并发写入的情况。
- 桶级的桶策略和IAM策略对obsfs挂载方式生效,目录级的桶策略和IAM策略对obsfs挂载方式访问不生效。
前提条件
- 已成功获取obsfs,具体操作请参见下载并安装obsfs。
- 已初始化obsfs,具体操作请参见初始化obsfs。
- 本地挂载目录已存在。
您也可以使用mkdir命令创建一个新目录用来挂载并行文件系统。比如创建一个mountpoint目录,命令为:
mkdir mountpoint
- 已校准当前系统时间。
如果当前系统时间与存储服务器时间相差过大,会导致请求鉴权失败。
手动挂载并行文件系统
- 打开命令行终端。
- 使用cd命令进入obsfs所在目录。
- 按照以下格式执行挂载命令。
./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配置后,挂载目录下文件权限会被覆盖为777 - umask
使用示例:-o umask=xxx设置umask为777:文件系统中所有文件权限为000 设置umask为000:文件系统中所有文件权限为777 设置umask为002:文件系统中所有文件权限为775
obsfslog
不需要
从配置文件加载日志配置参数,包括日志模式、级别等。使用此参数可以在不重启进程的情况下,更改日志级别。
说明:配置文件路径固定为:/etc/obsfsconfig,如果要使用此参数,需要手动在本地创建此路径并参照以下示例及注释写入内容。
配置文件内容示例:
//日志模式。值为0,日志模式为前台显示。值为1,模式为生成日志文件,路径:/var/log/obsfs,以进程号命名。值为2,模式为日志写入系统日志。 dbglogmode=1 //日志级别。dbg、info、warn、err、crit。日志级别为dbg或info时,会打印业务详细信息,例如:桶名、文件名等。 dbglevel=info
- 并行文件系统名:输入待挂载的并行文件系统名称。
- 执行以下命令,检查挂载结果。
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=obs.ap-southeast-1.myhuaweicloud.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=obs.ap-southeast-1.myhuaweicloud.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=obs.ap-southeast-1.myhuaweicloud.com -o passwd_file=/etc/passwd-obsfs -o big_writes -o max_write=131072 -o allow_other -o use_ino
当url参数值为IP地址时,请在以上挂载示例中携带-o use_path_request_style参数,否则会报域名解析错误。
开机自动挂载并行文件系统
以下内容以CentOS 7操作系统为例,介绍如何配置开机自动挂载。
- 使用root用户登录Linux运行机。
- 执行以下命令,创建一个/home/startobsfs.sh脚本文件。
vi /home/startobsfs.sh
- 按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。
- 按Esc键,输入:wq,保存并退出脚本文件。
- 执行以下命令,赋予root用户对脚本的可执行权限。
chmod +x /home/startobsfs.sh
- 执行以下命令,赋予root用户对rc.local文件的执行权限。
chmod +x /etc/rc.d/rc.local
不同操作系统的rc.local文件位置不同,在CentOS 7中,该文件位置为/etc/rc.d/rc.local。
- 编辑/etc/rc.d/rc.local文件,将以下命令添加至文件末尾,保存并退出。
bash /home/startobsfs.sh
如果/etc/rc.d/rc.local中有退出的命令,例如“exit 0”,请将本步骤中的命令添加至退出命令之前。
- 重启后验证。
在重启Linux后,执行以下命令,查看OBS并行文件系统是否挂载成功。
df -h
后续如果想取消开机自动挂载并行文件系统,删除rc.local文件中执行obsfs挂载命令的脚本文件即可。
后续操作
后续如果需要对已挂载的并行文件系统进行参数设置(新增、修改或删除),请先取消挂载后再重新挂载。关于取消挂载并行文件系统的具体操作,请参见取消挂载并行文件系统。