环境变量

介绍用于配置 RustFS 服务器、控制台、TLS、KMS、可观测性、扫描器、修复、存储类、凭证和事件目标的环境变量。

本页列出 rustfs 服务器二进制文件可识别的环境变量,涵盖已根据 RustFS 源代码验证且与运维相关的部分;部分内部调优选项有意省略。如果存在对应的命令行参数,每个变量也可以通过该参数提供(请参阅 CLI 参考)。

布尔值

布尔变量接受 true/false。显示为“未设置”的值没有默认值,对应功能会保持禁用或回退到内置行为。

核心服务器

变量默认值说明
RUSTFS_VOLUMES未设置(必填)存储卷或端点,以空格分隔。支持 {N...M} 省略号展开,例如 /data/rustfs{0...3}http://node{1...4}:9000/data/rustfs{0...3}。Docker 镜像默认为 /data
RUSTFS_ADDRESS:9000S3 API 监听器的绑定地址和端口(也承载内部节点 RPC)。
RUSTFS_SERVER_DOMAINS未设置用于虚拟主机风格 S3 请求的域名,以逗号分隔。例如设置 s3.example.com 后,bucket.s3.example.com 会解析到存储桶 bucket。未设置时,仅支持路径风格寻址。
RUSTFS_REGION未设置向 S3 客户端报告的区域。未设置时,服务器回退到 us-east-1
RUSTFS_LICENSE未设置许可证字符串。
RUSTFS_BUFFER_PROFILEGeneralPurpose自适应缓冲区大小的工作负载配置。可选值:GeneralPurposeAiTrainingDataAnalyticsWebWorkloadIndustrialIoTSecureStorage
RUSTFS_BUFFER_PROFILE_DISABLEfalse禁用自适应缓冲区大小并使用旧版固定大小缓冲区。
RUSTFS_HEALTH_ENDPOINT_ENABLEtrue注册无需身份验证的 /health/health/ready 探针端点。
RUSTFS_HEALTH_READINESS_CACHE_TTL_MS1000就绪探针结果的缓存 TTL,单位为毫秒。
RUSTFS_HEALTH_CLUSTER_TIMEOUT_MS2000集群健康探针(/minio/health/cluster)的超时时间,单位为毫秒。
RUSTFS_STARTUP_READINESS_MAX_WAIT_SECS120就绪探针报告“starting”的最长时间,超过后视为启动失败。

控制台

变量默认值说明
RUSTFS_CONSOLE_ENABLEtrue启用内嵌 Web 控制台(通过单独的监听器提供服务)。
RUSTFS_CONSOLE_ADDRESS:9001控制台监听器的绑定地址和端口。

CORS

变量默认值说明
RUSTFS_CORS_ALLOWED_ORIGINS允许从浏览器访问 S3 API 的来源,以逗号分隔。设置 * 可允许不携带凭证的通配来源。
RUSTFS_CONSOLE_CORS_ALLOWED_ORIGINS*允许从浏览器访问控制台的来源,以逗号分隔;设置 * 可允许所有来源。

有关配置和验证步骤,请参阅 CORS 配置

TLS 和 KMS

变量默认值说明
RUSTFS_TLS_PATH未设置包含 S3 API 和控制台所用 TLS 证书与密钥(rustfs_cert.pem / rustfs_key.pem)的目录。设置后启用 TLS。
RUSTFS_TLS_RELOAD_ENABLEfalse监视 TLS 目录并热重载证书。
RUSTFS_TLS_KEYLOGfalse将 TLS 会话密钥写入密钥日志文件以便调试。请勿在生产环境中启用。
RUSTFS_TRUST_SYSTEM_CAfalse对出站 TLS 连接同时信任操作系统 CA 存储。
RUSTFS_TRUST_LEAF_CERT_AS_CAfalse像信任 CA 一样信任叶证书(用于自签名配置)。
RUSTFS_SERVER_MTLS_ENABLEfalse要求服务器监听器提供客户端证书(双向 TLS)。
RUSTFS_MTLS_CLIENT_CERT未设置节点间 mTLS 连接提供的客户端证书。
RUSTFS_MTLS_CLIENT_KEY未设置节点间 mTLS 连接使用的客户端私钥。
RUSTFS_KMS_ENABLEfalse启用由 KMS 支持的服务端加密。
RUSTFS_KMS_BACKENDlocalKMS 后端:localvault / vault-kv2(Vault KV2 + Transit)或 vault-transit
RUSTFS_KMS_KEY_DIR未设置local 后端的密钥目录。
RUSTFS_KMS_LOCAL_MASTER_KEY未设置保护本地 KMS 密钥文件的主密钥。
RUSTFS_KMS_VAULT_ADDRESS未设置Vault 后端的 Vault 服务器地址。
RUSTFS_KMS_VAULT_TOKEN未设置Vault 后端的 Vault 令牌。
RUSTFS_KMS_VAULT_MOUNT_PATH未设置Vault 后端的 Vault 挂载路径。
RUSTFS_KMS_DEFAULT_KEY_ID未设置用于加密的默认 KMS 密钥 ID。
RUSTFS_KMS_ALLOW_INSECURE_DEV_DEFAULTSfalse允许仅用于开发的不安全 KMS 默认值。切勿在生产环境中启用。

可观测性

可观测性管道通过 OTLP/HTTP 导出链路、指标和日志。

变量默认值说明
RUSTFS_OBS_ENDPOINT用于链路、指标和日志的根 OTLP/HTTP 基础 URL,例如 http://otel-collector:4318。为空时,日志输出到 stdout 或本地文件。
RUSTFS_OBS_TRACE_ENDPOINT未设置链路端点的单信号覆盖值。
RUSTFS_OBS_METRIC_ENDPOINT未设置指标端点的单信号覆盖值。
RUSTFS_OBS_LOG_ENDPOINT未设置日志端点的单信号覆盖值。
RUSTFS_OBS_TRACES_EXPORT_ENABLEDtrue将链路导出到 OTLP 端点。
RUSTFS_OBS_METRICS_EXPORT_ENABLEDtrue将指标导出到 OTLP 端点。
RUSTFS_OBS_LOGS_EXPORT_ENABLEDtrue将日志导出到 OTLP 端点。
RUSTFS_OBS_USE_STDOUT未设置强制将遥测输出到 stdout。
RUSTFS_OBS_SAMPLE_RATIO未设置链路采样率(0.0–1.0)。
RUSTFS_OBS_METER_INTERVAL未设置指标导出间隔,单位为秒。
RUSTFS_OBS_SERVICE_NAME未设置遥测资源属性中报告的服务名称。
RUSTFS_OBS_ENVIRONMENT未设置部署环境标签(productiondevelopmentteststaging)。
RUSTFS_OBS_LOGGER_LEVEL未设置日志级别过滤器(例如 infodebug)。
RUSTFS_OBS_LOG_STDOUT_ENABLED未设置启用文件或 OTLP 日志记录时,同时将日志镜像到 stdout。
RUSTFS_OBS_LOG_DIRECTORY未设置本地日志目录。未设置表示日志输出到 stdout;URL 值会将日志发送到远程端点。
RUSTFS_OBS_LOG_FILENAMErustfs.log日志目录中的日志文件名。
RUSTFS_OBS_LOG_ROTATION_TIMEhourly基于时间的日志轮转:dailyhourlyminutely
RUSTFS_OBS_LOG_KEEP_FILES30保留的轮转日志文件数量。
RUSTFS_OBS_LOG_MAX_TOTAL_SIZE_BYTES2147483648清理前日志目录的总大小预算(2 GiB)。
RUSTFS_OBS_LOG_COMPRESS_OLD_FILEStrue压缩轮转日志文件(默认为 zstd,可通过 RUSTFS_OBS_LOG_COMPRESSION_ALGORITHM 控制)。

指标收集间隔遵循 RUSTFS_METRICS_<SCOPE>_INTERVAL_SEC 模式,作用域包括 DEFAULTSYSTEMCLUSTERBUCKETNODERESOURCEAUDITNOTIFICATIONBUCKET_REPLICATION_BANDWIDTH,例如 RUSTFS_METRICS_CLUSTER_INTERVAL_SEC=60

扫描和修复

变量默认值说明
RUSTFS_SCANNER_SPEEDdefault扫描器速度预设:fastestfastdefaultslowslowest。控制休眠系数、最长休眠时间和周期间隔。
RUSTFS_SCANNER_DELAY预设值覆盖扫描器休眠倍数(例如 30.0)。
RUSTFS_SCANNER_MAX_WAIT_SECS预设值覆盖扫描器最长休眠秒数。
RUSTFS_SCANNER_CYCLE预设值覆盖扫描周期的秒数(例如 3600)。
RUSTFS_SCANNER_START_DELAY_SECS未设置第一个扫描周期开始前的启动延迟秒数。
RUSTFS_SCANNER_CYCLE_MAX_DURATION_SECS0限制单个周期的运行秒数;0 表示禁用该预算。
RUSTFS_SCANNER_CYCLE_MAX_OBJECTS0限制每个周期处理的对象数;0 表示禁用该预算。
RUSTFS_SCANNER_CYCLE_MAX_DIRECTORIES0限制每个周期进入的目录数;0 表示禁用该预算。
RUSTFS_SCANNER_BITROT_CYCLE_SECS2592000定期深度(位衰减)扫描周期的秒数(30 天)。0/true/on 使每个周期都执行深度扫描;false/off 禁用深度扫描。
RUSTFS_SCANNER_IDLE_MODEtruetrue 时扫描器会自行限速;为 false 时全速运行。
RUSTFS_SCANNER_CACHE_SAVE_TIMEOUT_SECS30扫描器缓存保存超时秒数(最小值为 1)。
RUSTFS_SCANNER_MAX_CONCURRENT_SET_SCANS0限制并发纠删集扫描任务数;0 保留基于拓扑的并发数。
RUSTFS_SCANNER_MAX_CONCURRENT_DISK_SCANS0限制每个纠删集并发执行的磁盘存储桶遍历数;0 保留基于磁盘数量的并发数。
RUSTFS_SCANNER_YIELD_EVERY_N_OBJECTS128扫描器对象循环向异步运行时让出的频率;0 禁用额外让出。
RUSTFS_SCANNER_ALERT_EXCESS_VERSIONS100触发扫描器告警的对象版本数。
RUSTFS_SCANNER_ALERT_EXCESS_VERSION_SIZE1099511627776触发扫描器告警的累计版本字节数(1 TiB)。
RUSTFS_SCANNER_ALERT_EXCESS_FOLDERS65538触发扫描器告警的直接子文件夹数。
RUSTFS_HEAL_AUTO_HEAL_ENABLEtrue启用降级对象的自动后台修复。
RUSTFS_HEAL_QUEUE_SIZE10000待修复项队列容量。
RUSTFS_HEAL_INTERVAL_SECS10修复调度器运行间隔,单位为秒。
RUSTFS_HEAL_TASK_TIMEOUT_SECS300单个修复任务的超时时间,单位为秒。
RUSTFS_HEAL_MAX_CONCURRENT_HEALS4最大并发修复任务数。
RUSTFS_HEAL_MAX_CONCURRENT_PER_SET1每个纠删集的最大并发修复任务数。

存储和纠删码

变量默认值说明
RUSTFS_STORAGE_CLASS_STANDARD自动STANDARD 存储类的奇偶校验数,格式为 EC:n,例如 EC:4。未设置时,根据纠删集大小推导奇偶校验数。
RUSTFS_STORAGE_CLASS_RRSEC:1REDUCED_REDUNDANCY 存储类的奇偶校验数,格式为 EC:n
RUSTFS_STORAGE_CLASS_OPTIMIZEavailability选择奇偶校验数时的优化目标。
RUSTFS_STORAGE_CLASS_INLINE_BLOCK131072对象数据内联到元数据中的阈值(128 KiB)。
RUSTFS_ERASURE_SET_DRIVE_COUNT0强制设置每个纠删集的磁盘数;0 表示自动选择布局。
RUSTFS_DURABILITY_MODE未设置写入持久性模式:strictrelaxednone。设置为有效值时,优先于旧版磁盘同步开关。

凭证和内部设置

变量默认值说明
RUSTFS_ACCESS_KEYrustfsadmin根访问密钥。与 RUSTFS_ACCESS_KEY_FILE 互斥。
RUSTFS_SECRET_KEYrustfsadmin根私有密钥。与 RUSTFS_SECRET_KEY_FILE 互斥。
RUSTFS_ACCESS_KEY_FILE未设置包含访问密钥的文件路径(例如 Docker/Kubernetes Secret 挂载)。
RUSTFS_SECRET_KEY_FILE未设置包含私有密钥的文件路径。
RUSTFS_RPC_SECRET派生值用于验证节点间 RPC 的密钥。未设置时,从当前访问密钥与私有密钥对派生;如果凭证对全部使用默认值,多节点集群必须显式设置该变量。

内置默认凭证 rustfsadmin/rustfsadmin 仅用于首次启动。生产部署必须设置非默认凭证。

事件和审计目标

模块开关:

变量默认值说明
RUSTFS_NOTIFY_ENABLEfalse启用存储桶事件通知模块。
RUSTFS_AUDIT_ENABLEfalse启用审计日志模块。

目标配置基于模式:事件通知使用 RUSTFS_NOTIFY_<TARGET>_<KEY>,审计日志使用 RUSTFS_AUDIT_<TARGET>_<KEY>。两个系列均支持以下目标:WEBHOOKKAFKAMQTTMYSQLPOSTGRESNATSREDISAMQPPULSAR

Webhook 目标的子键如下(RUSTFS_AUDIT_WEBHOOK_* 下存在相同的键):

变量默认值说明
RUSTFS_NOTIFY_WEBHOOK_ENABLEfalse启用 Webhook 目标。
RUSTFS_NOTIFY_WEBHOOK_ENDPOINT未设置Webhook HTTP(S) 端点 URL。
RUSTFS_NOTIFY_WEBHOOK_AUTH_TOKEN未设置每次投递时发送的 Bearer 令牌。
RUSTFS_NOTIFY_WEBHOOK_QUEUE_DIR未设置持久投递队列的目录。
RUSTFS_NOTIFY_WEBHOOK_QUEUE_LIMIT未设置最大排队事件数。
RUSTFS_NOTIFY_WEBHOOK_CLIENT_CERT未设置连接端点时用于 mTLS 的客户端证书。
RUSTFS_NOTIFY_WEBHOOK_CLIENT_KEY未设置连接端点时用于 mTLS 的客户端私钥。
RUSTFS_NOTIFY_WEBHOOK_CLIENT_CA未设置用于验证端点的 CA 证书。
RUSTFS_NOTIFY_WEBHOOK_SKIP_TLS_VERIFY未设置跳过端点的 TLS 验证(不建议)。

其他目标采用相同结构并使用目标特定的键,例如 RUSTFS_NOTIFY_KAFKA_BROKERSRUSTFS_NOTIFY_KAFKA_TOPICRUSTFS_NOTIFY_MQTT_BROKERRUSTFS_NOTIFY_MQTT_TOPICRUSTFS_NOTIFY_MYSQL_DSN_STRINGRUSTFS_NOTIFY_NATS_ADDRESSRUSTFS_NOTIFY_REDIS_URLRUSTFS_NOTIFY_AMQP_URLRUSTFS_NOTIFY_PULSAR_BROKER

旧版兼容性

MINIO_* 变量映射

为便于迁移,RustFS 会在启动时将固定允许列表中的 MINIO_* 变量映射到对应的 RUSTFS_* 变量:

  • 如果仅设置带 MINIO_ 前缀的变量,则使用其值并记录弃用警告。
  • 如果同时设置 MINIO_*RUSTFS_* 且值不同,则以 RUSTFS_* 值为准并记录冲突。

映射的后缀包括 ACCESS_KEYSECRET_KEYACCESS_KEY_FILESECRET_KEY_FILEROOT_USERROOT_PASSWORDADDRESSCONSOLE_ADDRESSVOLUMESREGIONLICENSEERASURE_SET_DRIVE_COUNTSTORAGE_CLASS_STANDARDSTORAGE_CLASS_RRSSTORAGE_CLASS_OPTIMIZESTORAGE_CLASS_INLINE_BLOCKSCANNER_SPEEDSCANNER_CYCLECOMPRESS_ENABLECOMPRESS_EXTENSIONSCOMPRESS_MIME_TYPESDRIVE_ACTIVE_MONITORINGILM_EXPIRATION_WORKERSAPI_XFF_HEADERPOLICY_PLUGIN_URLPOLICY_PLUGIN_AUTH_TOKENIDENTITY_OPENID_* 键,以及所有以 NOTIFY_WEBHOOK_NOTIFY_MQTT_AUDIT_WEBHOOK_AUDIT_MQTT_ 开头的变量。例如,MINIO_ROOT_USER 映射到 RUSTFS_ROOT_USERMINIO_NOTIFY_WEBHOOK_ENDPOINT 映射到 RUSTFS_NOTIFY_WEBHOOK_ENDPOINT

已弃用别名

已弃用变量请改用
RUSTFS_ROOT_USERRUSTFS_ACCESS_KEY
RUSTFS_ROOT_PASSWORDRUSTFS_SECRET_KEY
RUSTFS_DATA_SCANNER_START_DELAY_SECSRUSTFS_SCANNER_START_DELAY_SECS

已弃用别名仍可使用,但会记录警告;两者同时设置时,始终以规范的 RUSTFS_* 名称为准。

本页目录