SDC容器设计用于在受支持的操作系统节点上运行,这些节点由OpenShift或Kubernetes管理。容器内置SDC软件包和工具,用于在受支持节点上部署和管理SDC服务。
支持的主机发行版:RedHat Enterprise Linux CoreOS (RHCOS)、RedHat Enterprise Linux 7.9、RedHat Enterprise Linux 8.4、RedHat Enterprise Linux 8.6
支持的SDC版本:v3.5.1及以上
支持的OpenShift版本:v4.3及以上(K8s版本1.16及以上,RHCOS版本4.3及以上)
SDC容器也可在独立的受支持操作系统节点上通过podman(受支持节点中可用的类docker工具)执行。在此情况下,需直接管理容器,而在OpenShift/K8s环境中则通过守护进程集(DeamonSets)管理。
SDC容器有三种运行模式:配置模式、监控模式和命令模式。配置模式与监控模式通过MODE环境变量确定,命令模式则在向容器传递命令时触发。
在配置模式下,容器将执行配置命令并退出,状态码0表示成功,非0表示错误。支持的配置操作:
运行过程中,容器按顺序执行操作:检测主机平台、检测主机上的SDC服务状态、解析环境变量,然后确定要执行的操作。
在监控模式下,容器作为"活动"容器运行,执行被动监控任务,如日志(dmesg)和指标(网络、CPU、RAM指标)收集。指标收集通过diag_coll服务工作进程完成,与常规设置类似。日志和指标输出存储在/storage映射中。
当主机发行版不受支持时,监控模式下的容器将运行但不执行任何操作。
执行命令时,SDC容器不执行任何配置或监控步骤,仅执行提供的命令。此模式适用于使用SDC支持工具(如get_info脚本、sdbg、drv_cfg)执行操作的场景。
shdocker run -e <环境变量> \ --privileged \ --network=host \ --pid=host \ --rm \ -it \ -v <映射> \ $(REGISTRY)$(IMAGE):$(IMAGE_TAG) \ <命令>
-e:设置环境变量。可设置多个变量,每个变量前需加-e。详见环境变量部分。--privileged:容器以特权模式运行,以便能够加载和卸载SDC内核模块。--network=host:容器可访问主机网络,主要与监控模式下的指标收集相关。--pid=host:容器可访问主机进程,主要与监控模式下的指标收集相关。--rm:容器完成请求的操作后,实例终止并返回退出码。-it:必须指定以运行交互式进程(如shell),详见docker 文档。-v:主机目录与容器的映射。可添加多个映射,每个映射前需加-v。详见映射部分。REGISTRY:SDC容器仓库。IMAGE:SDC容器名称。IMAGE_TAG:SDC容器标签。<命令>:在SDC容器内执行的命令。提供命令时,容器以"命令模式"运行。注意:每个环境变量必须为大写
注意:具有默认值的变量为可选
环境变量
MDM
描述
用于提供MDM集群配置。需要至少包含一个可访问IP且具有活动MDM服务的单个MDM集群。不需要MDM密码,但设置后,SDC容器将在SDC级别启用SDC认证(例如执行set_mdm_password命令)。
格式
sh<IPs字符串> PASSWORD:<密码字符串> <IPs字符串>:MDM集群IP,多个IP用逗号分隔 <password字符串>:MDM集群密码 多个集群用"&"分隔 示例: 单个MDM集群,无密码: 127.0.0.1,127.0.0.2,127.0.0.3 单个MDM集群,带密码: 127.0.0.1,127.0.0.1,127.0.0.1 PASSWORD:AQAAAAAAAAAG+zslCAmjN/FiUBZmy3Iq7dAYNNAK1AY 多个MDM集群,第一个集群3个IP无密码,第二个集群1个IP带密码: 127.0.0.1,127.0.0.2,127.0.0.3&127.0.0.1 PASSWORD:AQAAAAAAAAAG+zslCAmjN/FiUBZmy3Iq7dAYNNAK1AY
默认值
无
环境变量
REPO_ADDRESS
描述
Scini内核模块FTP端点字符串。使用安全FTP(SFTP)连接时,SDC容器需要额外的变量和映射。详见MODULE_SIGCHECK、AUTO_FETCH_PUBLIC_KEYS变量和映射部分的/config映射。
格式
sh<端点字符串>
默认值
[***]
环境变量
REPO_USER
描述
Scini内核模块FTP端点的用户名凭证字符串。
格式
sh<用户名字符串>
默认值
QNzgdxXix
环境变量
REPO_PASSWORD
描述
Scini内核模块FTP端点的密码凭证字符串。
格式
sh<密码字符串>
默认值
Aw3wFAwAq3
环境变量
MODULE_SIGCHECK
描述
是否检查获取的模块签名。
格式
sh<布尔值>
默认值
1
环境变量
AUTO_FETCH_PUBLIC_KEYS
描述
是否自动获取新公钥。
格式
sh<布尔值>
默认值
0
环境变量
SYNC_PATTERN
描述
批量检索的同步模式(正则表达式)。
格式
sh<模式字符串>
默认值
.*
环境变量
INI_GUID
描述
设置时,SDC容器将为SDC(INI)服务设置提供的GUID。提供的值必须是有效的GUID。
格式
sh<GUID字符串>
默认值
""
环境变量
NODENAME
描述
主机名。用于跨重启持久生成SDC(INI)GUID。如果提供了INI_GUID,此参数将被忽略。
格式
sh<字符串>
默认值
""
环境变量
UNINSTALL
描述
布尔变量,设置后,SDC容器忽略所有其他SDC服务配置变量,从主机删除所有SDC相关文件。卸载需额外提供NODENAME或INI_GUID标志。
格式
sh<布尔值>
默认值
0
环境变量
HOST_DRV_CFG_PATH
描述
主机上drv_cfg工具的路径。必须与/host-drv-cfg-path映射同步。
格式
sh<字符串>
默认值
/var/emc/scaleio
环境变量
MODE
描述
SDC容器的执行模式。
格式
sh<模式字符串> 支持的模式:'config'(配置)、'monitoring'(监控)
默认值
config
环境变量
HOST_NET
描述
SDC容器是否可访问主机网络,容器运行命令中需提供--network=host参数。
格式
sh<布尔值>
默认值
0
环境变量
HOST_PID
描述
SDC容器是否可访问主机进程,容器运行命令中需提供--pid=host参数。
格式
sh<布尔值>
默认值
0
/rules.d:udev规则映射,可设置为主机的/etc/udev/rules.d目录。/dev:直接映射(1:1),使容器能够在主机上创建scini设备。/config/*:可选,将SDC服务所需的所有配置文件映射到此路径。例如SFTP(安全FTP)连接所需的密钥。| 映射文件 | 描述 |
|---|---|
| /config/user_private_rsa_key | 用户的RSA私钥文件 |
| /config/user_public_rsa_key | 仓库主机公钥 |
| /config/emc_public_gpg_key | EMC公钥签名密钥,当MODULE_SIGCHECK为1时需要 |
/storage:容器的持久存储目录,用于驱动缓存、SDC服务配置文件、SDC日志等。/host-os-release:容器用于确定主机OS发行版的文件,可设置为主机的/etc/os-release文件。/host-drv-cfg-path:主机上放置udev规则所需的drv_cfg工具的目录,可设置为/var/emc/scaleio。需与HOST_DRV_CFG_PATH同步。配置模式运行命令示例
shdocker run -e MDM="127.0.0.1" \ --privileged \ --rm \ -it \ -v /dev:/dev \ -v /etc/os-release:/host-os-release \ -v /var/emc/sdc-storage:/storage \ powerflex/sdc:3.6.112
监控模式运行命令示例
shdocker run -e MDM="127.0.0.1" \ -e MODE="monitoring" \ -e HOST_PID=1 \ -e HOST_NET=1 \ --privileged \ --network=host \ --pid=host \ --rm \ -d \ --name sdc \ -v /dev:/dev \ -v /etc/os-release:/host-os-release \ -v /var/emc/sdc-storage:/storage \ powerflex/sdc:3.6.112
注意:要在前台运行SDC容器,将-d替换为-it。
命令模式运行示例(使用drv_cfg工具查询SDC版本)
shdocker run --privileged \ --rm \ -it \ -v /dev:/dev \ -v /etc/os-release:/host-os-release \ -v /var/emc/sdc-storage:/storage \ powerflex/sdc:3.6.112 \ drv_cfg --query_version
配置操作中,容器会在主机上加载和卸载SDC scini内核模块。因此,运行命令中需提供--privileged参数。
配置操作中,容器会在主机文件系统上部署scini udev规则和drv_cfg工具。这是为了允许节点原生运行drv_cfg工具和执行udev规则。
注意:此情况特殊,通常需在SDC容器上下文中通过命令模式运行drv_cfg工具。
监控模式下,SDC容器会收集主机日志和指标(RAM、CPU、网络)。为收集这些指标,容器依赖主机的网络和PID映射,运行命令中需包含--network=host --pid=host标志,且需根据映射设置HOST_PID和HOST_NET环境变量。
要获取调试文件,需运行SDC容器中打包的get_info.sh脚本。此脚本会创建包含所有相关数据的getInfoDump.tgz文件。
从监控模式下的活动SDC容器获取getInfoDump.tgz文件到本地的示例
shdocker exec sdc bash -c "get_info.sh <<< echo user &> /dev/null; cat /tmp/scaleio-getinfo/getInfoDump.tgz" > getInfoDump.tgz
SDC容器内置所有标准SDC调试工具(如sdbg、drv_cfg等),可在容器上下文中按常规方式使用。
运行带bash命令的容器以实时交互使用SDC工具的示例
shdocker run --rm -it --privileged <容器仓库URL> bash
注意:对于监控模式下的活动SDC容器,应使用docker exec命令连接容器。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 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 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429