rucio/rucio-serverRucio是一个软件框架,提供使用自定义策略组织、管理和访问大量科学数据的功能。数据可分布在全球不同位置和异构数据中心,将不同的存储和网络技术整合为单一联邦实体。Rucio提供分布式数据恢复、自适应复制等高级功能,且高度可扩展、模块化和可扩展。该框架最初为高能物理实验ATLAS开发,目前持续扩展以支持LHC实验及其他多样化的科学社区。
适用于需要管理大规模科学数据的场景,特别是:
启动一个使用SQLite的简单服务器(自动生成配置):
bashdocker run \ --name=rucio-server \ -p 80:80 \ rucio/rucio-server
检查服务器是否运行:
bashcurl http://localhost/ping
该命令应返回容器中使用的Rucio版本。注意:其他curl请求可能无法工作,因为此镜像需配合已初始化的数据库后端使用,需配置指向正确的数据库。
Rucio配置管理有两种方式:使用环境变量或挂载完整的rucio.cfg文件。
使用环境变量配置数据库连接
通过RUCIO_CFG_DATABASE_DEFAULT环境变量设置数据库连接字符串。例如,连接运行在mysql.db的MySQL数据库:
bashdocker run \ --name=rucio-server \ -e RUCIO_CFG_DATABASE_DEFAULT="mysql://rucio:***/rucio" \ -p 80:80 \ rucio/rucio-server
挂载配置文件
直接挂载完整的rucio.cfg到容器中(将替代自动生成的配置)。例如,主机系统/tmp/rucio.cfg挂载到容器:
bashdocker run \ --name=rucio-server \ -v /tmp/rucio.cfg:/opt/rucio/etc/rucio.cfg \ -p 80:80 \ rucio/rucio-server
启用SSL
需设置RUCIO_ENABLE_SSL变量,并挂载主机证书、密钥和CA证书作为卷:
bashdocker run \ --name=rucio-server \ -v /tmp/ca.pem:/etc/grid-security/ca.pem \ -v /tmp/hostcert.pem:/etc/grid-security/hostcert.pem \ -v /tmp/hostkey.pem:/etc/grid-security/hostkey.pem \ -v /tmp/rucio.cfg:/opt/rucio/etc/rucio.cfg \ -p 443:443 \ -e RUCIO_ENABLE_SSL=True \ rucio/rucio-server
日志配置
默认Apache Web服务器输出直接写入stdout和stderr。如需输出到单独文件,使用RUCIO_ENABLE_LOGS变量,并挂载日志存储目录:
bashdocker run \ --name=rucio-server \ -v /tmp/rucio.cfg:/opt/rucio/etc/rucio.cfg \ -v /tmp/logs:/var/log/httpd \ -p 80:80 \ -e RUCIO_ENABLE_LOGFILE=True \ rucio/rucio-server
通过docker run的-e参数传递环境变量可配置Rucio服务器,以下是可用变量及其说明:
RUCIO_SERVER_TYPEapi、auth、trace、allapiRUCIO_ENABLE_SSL/etc/grid-security,并暴露端口443RUCIO_CA_PATHSSLCACertificatePath和SSLCARevocationPath路径RUCIO_CA_REVOCATION_CHECKSSLCARevocationCheckchainRUCIO_DEFINE_ALIASESTrue时,需在/opt/rucio/etc/aliases.conf提供别名文件RUCIO_ENABLE_LOGFILETrue时,日志写入/var/log/httpd下的access_log和error_log;否则输出到stdout/stderrRUCIO_LOG_LEVELinfoRUCIO_LOG_FORMAT%h\t%t\t%{X-Rucio-Forwarded-For}i\t%T\t%D\t\"%{X-Rucio-Auth-Token}i\"\t%{X-Rucio-RequestId}i\t%{X-Rucio-Client-Ref}i\t\"%r\"\t%>s\t%bRUCIO_HOSTNAMERUCIO_HTTPD_ENCODED_SLASHESAllowEncodedSlashes,允许URL中包含编码的路径分隔符(如%2F)RUCIO_SERVER_ADMINRUCIO_WSGI_DAEMON_PROCESSESRUCIO_WSGI_DAEMON_THREADSRUCIO_HTTPD_MPM_MODEeventRUCIO_CFG配置参数环境变量可用于设置自动生成的rucio.cfg的值,命名规则为RUCIO_CFG前缀加上配置文件中的节名和键名(如database节的default键对应RUCIO_CFG_DATABASE_DEFAULT)。可用环境变量包括:
RUCIO_CFG_COMMON_LOGDIRRUCIO_CFG_COMMON_LOGLEVELRUCIO_CFG_COMMON_MAILTEMPLATEDIRRUCIO_CFG_COMMON_MULTI_VORUCIO_CFG_CREDENTIALS_GCSRUCIO_CFG_CREDENTIALS_SIGNATURE_LIFETIMERUCIO_CFG_DATABASE_DEFAULTRUCIO_CFG_DATABASE_ECHORUCIO_CFG_DATABASE_MAX_OVERFLOWRUCIO_CFG_DATABASE_POOL_RECYCLERUCIO_CFG_DATABASE_POOL_RESET_ON_RETURNRUCIO_CFG_DATABASE_POOL_SIZERUCIO_CFG_DATABASE_POOL_TIMEOUTRUCIO_CFG_DATABASE_POWUSERACCOUNTRUCIO_CFG_DATABASE_POWUSERPASSWORDRUCIO_CFG_DATABASE_SCHEMARUCIO_CFG_MONITOR_CARBON_PORTRUCIO_CFG_MONITOR_CARBON_SERVERRUCIO_CFG_MONITOR_USER_SCOPERUCIO_CFG_NONGRID_TRACE_BROKERSRUCIO_CFG_NONGRID_TRACE_PASSWORDRUCIO_CFG_NONGRID_TRACE_PORTRUCIO_CFG_NONGRID_TRACE_TOPICRUCIO_CFG_NONGRID_TRACE_TRACEDIRRUCIO_CFG_NONGRID_TRACE_USERNAMERUCIO_CFG_OIDC_ADMIN_ISSUERRUCIO_CFG_OIDC_EXPECTED_AUDIENCERUCIO_CFG_OIDC_IDPSECRETSRUCIO_CFG_POLICY_LFN2PFN_ALGORITHM_DEFAULTRUCIO_CFG_POLICY_LFN2PFN_MODULERUCIO_CFG_POLICY_PACKAGERUCIO_CFG_POLICY_PERMISSIONRUCIO_CFG_POLICY_SCHEMARUCIO_CFG_POLICY_SUPPORTRUCIO_CFG_POLICY_SUPPORT_RUCIORUCIO_CFG_TRACE_BROKERSRUCIO_CFG_TRACE_PASSWORDRUCIO_CFG_TRACE_PORTRUCIO_CFG_TRACE_TOPICRUCIO_CFG_TRACE_TRACEDIRRUCIO_CFG_TRACE_USERNAMERUCIO_CFG_WEBUI_AUTH_ISSUERRUCIO_CFG_WEBUI_AUTH_TYPERUCIO_CFG_WEBUI_USERCERT如需支持,请联系邮件列表***,或加入Slack支持频道。
manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务