云服务器内容精选

  • 下载obsfs软件包 obsfs下载地址如表1所示。 表1 obsfs下载地址 Linux发行版 下载地址 CentOS 7 https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsfs/current/obsfs_CentOS7.6_amd64.tar.gz sha256:625ef26e050f339812e91b655a41c7723163feccbe8ea427be10a512be34102f 软件包完整性验证方法 Ubuntu 16 https://obs-community.obs.cn-north-1.myhuaweicloud.com/obsfs/current/obsfs_Ubuntu16.04_amd64.tar.gz sha256:05c9ed58707734e98febb8534d8397727a5e99ce6df194a73f0bf26d0df35d8b 软件包完整性验证方法 下载时确认操作系统版本,安装的obsfs仅支持对应的Linux发行版本。 obsfs软件包仅支持openssl1.0.0及以下版本。 obsfs软件包下载地址下方的SHA256码用于验证软件包的完整性。验证方法如下: 对已下载的obsfs软件包生成SHA256码(以CentOS 7版本为例): sha256sum obsfs_CentOS7.6_amd64.tar.gz 对比生成的SHA256码和对应obsfs软件包下载地址下方的SHA256码。如果一致,则表示下载过程不存在丢包或对软件包的篡改。
  • 配置运行环境 obsfs的运行环境依赖openssl-devel、fuse、fuse-devel等软件包,运行obsfs之前,您需要通过命令配置其依赖环境。 obsfs支持使用的libfuse版本为2.9.7,2.9.8或2.9.9。如果当前您的libfuse是其他版本,请参考libfuse安装指导进行安装。 您可以通过操作系统自有的查看命令查看libfuse版本,也可以通过以下命令查找libfuse.so以获得当前已安装版本。 find / -name libfuse.so* CentOS 7 yum install -y openssl-devel fuse fuse-devel Ubuntu 16 apt-get install -y libfuse-dev libcurl4-openssl-dev
  • 安装obsfs 在一台Windows计算机上,根据您Linux运行机的版本,下载到对应的obsfs软件包。 如果您在Linux系统中使用如下命令进行下载,请忽略步骤2。 wget obsfs下载地址 通过常见的跨平台传输工具(比如WinSCP),将软件包传输至您的Linux运行机。 在Linux运行机上,执行以下解压命令。 tar -xzvf obsfs软件包绝对路径/obsfs_xxx.tar.gz 您也可以使用以下命令,将软件包解压至指定目录。 tar -xzvf obsfs软件包绝对路径/obsfs_xxx.tar.gz -C 指定目录 切换到root用户,进入obsfs解压目录,执行以下命令安装obsfs。 bash install_obsfs.sh 请务必使用root用户进行安装,否则某些功能将无法正常使用。 您在执行安装命令后,crontab会添加一条定时任务,用于obsfs日志压缩转储,转储位置为/var/log/obsfs/。 crontab中的添加样例: */10 * * * * [ -f /opt/dfv/obsfs/obsfs_log_rotate.sh ] && bash /opt/dfv/obsfs/obsfs_log_rotate.sh
  • 开机自动挂载并行文件系统 以下内容以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挂载命令的脚本文件即可。
  • 手动挂载并行文件系统 打开命令行终端。 使用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 然后再根据具体的错误信息进行问题定位,常见异常处理请参考挂载并行文件系统失败。
  • 约束与限制 obsfs只支持挂载OBS并行文件系统,不支持挂载对象存储桶。 本地挂载目录可以不为空,但是挂载后此目录下原有的内容将不可用,取消挂载后即可恢复。建议使用空目录作为挂载目录。 挂载目录中的文件或文件夹不支持硬链接命令。 创建的目录深度不超过45层。 每次通过命令手动挂载的并行文件系统,在Linux重启后,都需要重新挂载。 并行文件系统的容量请以实际使用情况为准。 您也可以设置开机自动挂载并行文件系统,具体操作请参见开机自动挂载并行文件系统。 一个并行文件系统支持挂载到多台云服务器,但数据一致性需由您自行维护,避免出现多台云服务器同时对一个文件并发写入的情况。 桶级的桶策略和IAM策略对obsfs挂载方式生效,目录级的桶策略和IAM策略对obsfs挂载方式访问不生效。
  • 命令示例 此处以挂载一个华北-北京一区域的“filesystem001”并行文件系统、obsfs密钥文件路径为“/etc/passwd-obsfs”作为前提条件提供如下挂载命令示例,介绍挂载OBS并行文件系统时的一些参数配置。 将并行文件系统“filesystem001”挂载至“/mnt/mount_path/”目录,并允许该目录为非空: ./obsfs filesystem001 /mnt/mount_path/ -o url=obs.cn-north-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.cn-north-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.cn-north-1.myhuaweicloud.com -o passwd_file=/etc/passwd-obsfs -o big_writes -o max_write=131072 -o allow_other -o use_ino
  • 现象三:挂载并行文件系统时出现“The request signature we calculated does not match the signature you provided. Check your key and signing method.”类似错误 问题定位: 鉴权失败,访问密钥(AK和SK)配置不正确。 解决办法: 检查密钥文件中的AK和SK信息是否配置正确。检查方法可参照初始化obsfs章节中的步骤3。
  • 现象十:挂载并行文件系统时出现“device not found”类似错误 问题定位: 没有启动fuse组件导致报错失败。 在docker容器场景下,没有--privileged参数导致无法挂载。 解决办法: 系统缺少fuse组件,可以执行find / -name libfuse.so*命令查看是否有安装此组件,没有安装请安装fuse组件,详见配置运行环境。 在docker容器场景下,需要在docker run命令添加--privileged参数,没有--privileged会导致无法挂载。
  • 约束与限制 本地挂载目录可以不为空,但是挂载后此目录下原有的内容将不可用,取消挂载后即可恢复。建议使用空目录作为挂载目录。 obsfs只支持挂载OBS并行文件系统,不支持挂载对象存储桶。 obsfs挂载OBS并行文件系统后,不支持作为ftp目录使用。 挂载至本地系统的并行文件系统不能提供与本地文件系统完全相同的性能或功能,使用时需要注意以下细节: 挂载目录中的文件或文件夹不支持硬链接命令。 创建的目录深度不超过45层。 因使用FUSE框架存在内核态与用户态切换,不适合高并发场景。 ls、stat等linux命令需要远程访问OBS服务器,所以性能较差。 一个并行文件系统支持挂载到多台云服务器,但数据一致性需由您自行维护,避免出现多台云服务器同时对一个文件并发写入的情况。 桶级的桶策略和IAM策略对obsfs挂载方式生效,目录级的桶策略和IAM策略对obsfs挂载方式访问不生效。
  • 返回结果说明 类型 说明 GetResult 参数解释: SDK公共结果对象。 表6 GetResult 参数名称 参数类型 描述 status int 参数解释: HTTP状态码。 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 默认取值: 无 reason str 参数解释: HTTP文本描述。 默认取值: 无 errorCode str 参数解释: OBS服务端错误码,当status参数小于300时为空。 默认取值: 无 errorMessage str 参数解释: OBS服务端错误描述,当status参数小于300时为空。 默认取值: 无 requestId str 参数解释: OBS服务端返回的请求ID。 默认取值: 无 indicator str 参数解释: OBS服务端返回的错误定位码。 默认取值: 无 hostId str 参数解释: 请求的服务端ID,当status参数小于300时为空。 默认取值: 无 resource str 参数解释: 发生错误时相关的桶或对象,当status参数小于300时为空。 默认取值: 无 header list 参数解释: 响应消息头列表,由多个元组构成。每个元组均包含两个元素,代表响应头的键值对。 默认取值: 无 body object 参数解释: 操作成功后的结果数据,当status大于300时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无
  • 请求参数说明 参数名称 参数类型 是否必选 描述 bucketName str 必选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 logstatus Logging 可选 参数解释: 日志配置信息。详见Logging。 默认取值: 无 表1 Logging 参数名称 参数类型 是否必选 描述 targetBucket str 可选 参数解释: 日志存储桶的桶名,该桶用于存放日志文件。 约束限制: 需要和开启日志功能的桶在同一个region中。 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无 targetPrefix str 可选 参数解释: 日志文件对象的对象名前缀,设置后日志文件对象将携带统一前缀存储在日志存储桶中。 取值范围: 长度大于0且不超过1024的字符串。 默认取值: 无 targetGrants list of Grant 可选 参数解释: 被授权用户的权限信息列表,定义哪些用户可以针对日志文件进行哪些访问操作,详见Grant。 默认取值: 无 agency str 如果是设置桶日志配置则必选 参数解释: 目标桶(存放日志文件的桶)的所有者通过统一身份认证服务(IAM)创建对OBS云服务委托的名称。 可以选择账号下已有的IAM委托,也可以创建一个新的委托。创建委托参见创建IAM委托。 约束限制: 默认情况下,在为委托配置权限时只需设置日志存储桶的上传对象(PutObject)权限。如果日志存储桶开启了默认加密功能,还需要委托同时具有日志存储桶所在区域的KMS Administrator权限。 默认取值: 无 表2 Grant 参数名称 参数类型 是否必选 描述 grantee Grantee 必选 参数解释: 被授权用户信息详见Grantee。 permission str 必选 参数解释: 被授予的权限。 取值范围: 授权策略的取值范围详见权限。 默认取值: 无 delivered bool 可选 参数解释: 桶的ACL是否向桶内对象传递。作用于桶内所有对象。 取值范围: True:是,桶ACL向桶内对象传递。 False:否,桶ACL不向桶内对象传递,仅作用于桶。 默认取值: False 表3 Grantee 参数名称 参数类型 是否必选 描述 grantee_id str 如果group为空则必选。 参数解释: 被授权用户的账号ID,即domain_id。 取值范围: 如何获取账号ID请参见获取账号ID。 默认取值: 无 grantee_name str 可选 参数解释: 被授权的用户名。 约束限制: 不支持中文。 只能以字母开头。长度为6-32个字符。 只能包含英文字母、数字或特殊字符(-_)。 默认取值: 无 group str 如果grantee_id为空则必选。 参数解释: 被授权的用户组。 取值范围: 授权用户组取值范围详见用户组。 默认取值: 无 grantee_id与grantee_name配套使用,且与group互斥,即被授权用户可以是一个具体用户(通过grantee_id标识)或者是一个用户组。 表4 Permission 常量值 说明 READ 读权限。 如果有桶的读权限,则可以获取该桶内对象列表、桶内多段任务、桶的元数据、桶的多版本。 如果有对象的读权限,则可以获取该对象内容和元数据。 WRITE 写权限。 如果有桶的写权限,则可以上传、覆盖和删除该桶内任何对象和段。 此权限在对象上不适用。 READ_ACP 读取ACL配置的权限。 如果有读ACP的权限,则可以获取对应的桶或对象的权限控制列表(ACL)。 桶或对象的所有者永远拥有读对应桶或对象ACP的权限。 WRITE_ACP 修改ACL配置的权限。 如果有写ACP的权限,则可以更新对应桶或对象的权限控制列表(ACL)。 桶或对象的所有者永远拥有写对应桶或对象的ACP的权限。 拥有了写ACP的权限,由于可以更改权限控制策略,实际上意味着拥有了完全访问的权限。 FULL_CONTROL 完全控制权限,包括对桶或对象的读写权限,以及对桶或对象ACL配置的读写权限。 如果有桶的完全控制权限意味着拥有READ、WRITE、READ_ACP和WRITE_ACP的权限。 如果有对象的完全控制权限意味着拥有READ、READ_ACP和WRITE_ACP的权限。 表5 Group 常量值 说明 ALL_USERS 所有用户。 AUTHENTICATED_USERS 授权用户,已废弃。 LOG_DELIVERY 日志投递组,已废弃。
  • 功能说明 调用设置桶日志管理配置接口,您可以为指定桶打开桶日志功能,并配置日志存放的目标桶。创建桶时,默认是不生成桶的日志的,调用Python SDK的设置桶日志管理配置接口时,接口会自动为您打开桶日志配置。桶日志功能开启后,桶的每次操作将会产生一条日志,并将多条日志打包成一个日志文件。日志文件存放位置需要在开启桶日志功能时指定,可以存放到开启日志功能的桶中,也可以存放到其他您有权限的桶中,但需要和开启日志功能的桶在同一个region中。您还可以根据需要配置日志文件的访问权限,以及日志文件的文件名前缀。
  • 接口约束 由于日志文件是OBS产生,并且由OBS上传到存放日志的桶中,因此OBS需要获得委托授权,用于上传生成的日志文件,所以在配置桶日志管理前,需要先到统一身份认证服务生成一个对OBS服务的委托,委托配置权限只需设置目标桶的上传对象权限。如何创建委托请参考创建云服务委托。 您必须是桶拥有者或拥有设置桶日志管理配置的权限,才能设置桶日志管理配置。建议使用IAM或桶策略进行授权,如果使用IAM则需授予obs:bucket:PutBucketLogging权限,如果使用桶策略则需授予PutBucketLogging权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、自定义创建桶策略。 OBS支持的Region与Endpoint的对应关系,详细信息请参见地区与终端节点。
  • 返回结果说明 类型 说明 GetResult 参数解释: SDK公共结果对象。 表8 GetResult 参数名称 参数类型 描述 status int 参数解释: HTTP状态码。 取值范围: 状态码是一组从2xx(成功)到4xx或5xx(错误)的数字代码,状态码表示了请求响应的状态。完整的状态码列表请参见状态码。 默认取值: 无 reason str 参数解释: HTTP文本描述。 默认取值: 无 errorCode str 参数解释: OBS服务端错误码,当status参数小于300时为空。 默认取值: 无 errorMessage str 参数解释: OBS服务端错误描述,当status参数小于300时为空。 默认取值: 无 requestId str 参数解释: OBS服务端返回的请求ID。 默认取值: 无 indicator str 参数解释: OBS服务端返回的错误定位码。 默认取值: 无 hostId str 参数解释: 请求的服务端ID,当status参数小于300时为空。 默认取值: 无 resource str 参数解释: 发生错误时相关的桶或对象,当status参数小于300时为空。 默认取值: 无 header list 参数解释: 响应消息头列表,由多个元组构成。每个元组均包含两个元素,代表响应头的键值对。 默认取值: 无 body object 参数解释: 操作成功后的结果数据,当status大于300时为空。该值根据调用接口的不同而不同,参见“桶相关接口”章节和“对象相关接口”章节的详细描述。 默认取值: 无