Topology镜像是基于OSG(Open Science Grid)Topology仓库构建的容器化解决方案,用于存储、管理和展示OSG生态系统中的关键注册信息,包括研究项目、虚拟组织(VO)、站点资源拓扑结构等。该镜像提供标准化的数据访问接口,支持直接读取YAML格式原始数据或通过XML接口查询过滤后的资源信息,旨在为OSG站点管理员、VO管理者及研究人员提供统一、便捷的资源信息检索与集成工具。
projects/:研究项目信息,每个项目对应<PROJECT>.yaml文件virtual-organizations/:虚拟组织信息,每个VO对应<VO>.yaml文件,另有REPORTING_GROUPS.yaml存储WLCG metric报告组信息topology/:站点资源拓扑信息,按设施(Facility)→站点(Site)→资源组(Resource Group)层级组织,文件路径格式为<FACILITY>/<SITE>/<RESOURCEGROUP>.yaml(如topology/University of Wisconsin/CHTC/CHTC.yaml)myosg.grid.iu.edu兼容的XML格式数据接口,支持资源查询与过滤oim.grid.iu.edu)和myosg.grid.iu.edu的规范假设镜像已发布至容器仓库(如Docker Hub或OSG私有仓库),可通过以下命令拉取:
bashdocker pull opensciencegrid/topology:latest
以下示例通过容器内Nginx服务暴露XML接口,将仓库数据挂载为卷:
bashdocker run -d \ --name osg-topology \ -p 8080:80 \ -v $(pwd)/topology-data:/app/topology \ # 挂载本地YAML数据目录(可选,默认使用镜像内置数据) -e XML_PORT=80 \ # XML服务端口(容器内) -e DATA_REFRESH_INTERVAL=24h \ # 数据自动刷新间隔(默认24小时) opensciencegrid/topology:latest
创建docker-compose.yml:
yamlversion: '3' services: topology-service: image: opensciencegrid/topology:latest container_name: osg-topology ports: - "8080:80" volumes: - ./topology-data:/app/topology # 本地数据卷(可选) environment: - XML_PORT=80 - DATA_REFRESH_INTERVAL=12h # 每12小时刷新数据 restart: unless-stopped
启动服务:
bashdocker-compose up -d
若挂载了本地数据卷,可通过容器内路径或宿主机挂载目录直接读取YAML文件:
bash# 从宿主机访问挂载的YAML数据 cat ./topology-data/virtual-organizations/ATLAS.yaml # 进入容器访问内置数据 docker exec -it osg-topology cat /app/topology/virtual-organizations/ATLAS.yaml
服务启动后,通过http://<宿主机IP>:8080访问XML接口,支持以下端点:
| 数据类型 | XML接口URL |
|---|---|
| 研究项目 | /miscproject/xml |
| 资源Downtime | /rgdowntime/xml |
| 资源拓扑 | /rgsummary/xml |
| 虚拟组织 | /vosummary/xml |
示例:查询活跃的生产资源(设施ID为***、***):
http://localhost:8080/rgsummary/xml?gridtype=on&gridtype_1=on&facility=on&facility_sel[]=***&facility_sel[]=***
| 参数名 | 说明 | 默认值 |
|---|---|---|
XML_PORT | 容器内XML服务监听端口 | 80 |
DATA_PATH | YAML数据存储路径(容器内) | /app/topology |
DATA_REFRESH_INTERVAL | 数据自动拉取/刷新间隔(如12h、30m) | 24h |
布尔过滤器:
| 参数组合 | 效果 |
|---|---|
active=on&active_value=0 | 仅显示非活跃资源 |
active=on&active_value=1 | 仅显示活跃资源 |
disable=on&disable_value=0 | 仅显示已禁用资源 |
disable=on&disable_value=1 | 仅显示启用资源 |
gridtype=on&gridtype_1=on | 仅显示生产资源 |
gridtype=on&gridtype_2=on | 仅显示非生产(ITB)资源 |
service_hidden_value=0 | 仅显示非隐藏服务(无需service_hidden=on) |
service_hidden_value=1 | 仅显示隐藏服务(无需service_hidden=on) |
has_wlcg=on | 仅显示含WLCG信息的资源 |
ID-based过滤器:
支持按设施、站点、资源组等ID筛选,格式为<ATTRIB>=on&<ATTRIB>_sel[]=<ID1>&<ATTRIB>_sel[]=<ID2>,其中<ATTRIB>可取值:facility(设施ID)、site(站点ID)、rg(资源组ID)、service(服务ID)等。
示例:筛选设施ID为***(Fermilab)和***(UW-Madison)的资源:
/rgsummary/xml?facility=on&facility_sel[]=***&facility_sel[]=***
布尔过滤器:
| 参数组合 | 效果 |
|---|---|
active=on&active_value=0 | 仅显示非活跃VO |
active=on&active_value=1 | 仅显示活跃VO |
disable=on&disable_value=0 | 仅显示已禁用VO |
disable=on&disable_value=1 | 仅显示启用VO |
oasis=on&oasis_value=0 | 仅显示不使用OASIS的VO |
oasis=on&oasis_value=1 | 仅显示使用OASIS的VO |
ID-based过滤器:
按VO ID筛选,格式:vo=on&vo_sel[]=<ID1>&vo_sel[]=<ID2>
示例:筛选VO ID为13(GLOW)、67(HCC)、38(IceCube):
/vosummary/xml?vo=on&vo_sel[]=13&vo_sel[]=67&vo_sel[]=38
若在使用过程中遇到问题或有疑问,请根据支持对象提交工单:
| 主要支持对象 | 工单提交渠道 |
|---|---|
| LHC虚拟组织(VO) | GGUS |
| 其他用户 | OSG Helpdesk |
或发送邮件至:***
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速