SFCB CIMOM 配置

SFCB 是 CIM 服务器的“轻量级”实现,但也是可以灵活配置的。有若干选项可控制其行为。您有三种基本方式可用来控制 SFCB 服务器:

环境变量

有若干环境变量会直接影响 SFCB 的行为。您必须用 rcsfcb restart 重启动 SFCB 守护程序使更改生效。

SFCB_PAUSE_PROVIDER

指定提供程序的名称。SFCB 服务器会在第一次装载提供程序后暂停。然后您就可以将运行时调试程序加到提供程序的进程中,以便调试。

SFCB_PAUSE_CODEC

指定 SFCB 编解码器的名称。SFCB 服务器将在第一次装载编解码器后暂停。然后您就可以将运行时调试程序加到进程中。

SFCB_TRACE

为 SFCB 指定调试消息的级别。有效值有 0(无调试消息)、1(关键调试消息)和 4(全部调试消息)。默认值是 1。

SFCB_TRACE_FILE

默认情况下,SFCB 将其调试消息输出到标准错误输出 (STDERR)。设置该值会将调试消息写入指定的文件。

SBLIM_TRACE

为 SBLIM 提供程序指定调试消息级别。有效值有 0(无调试消息)、1(关键调试消息)和 4(全部调试消息)。

SBLIM_TRACE_FILE

默认情况下,SBLIM 提供程序将把跟踪消息输出到 STDERR。设置该值会将调试消息写入指定的文件。

命令行选项

SFCB 守护程序 sfcbd 有若干命令行选项,可以打开或关闭特定运行时功能。SFCB 守护程序启动时输入这些选项。

-c, --config-file=FILE

SFCB 守护程序启动时,默认会从 /etc/sfcb/sfcb.cfg 读取其配置。您可以用该选项指定备用配置文件。

-d, --daemon

强制 sfcbd 及其子进程在后台运行。

-s, --collect-stats

打开运行时统计数字收集。各种 sfcbd 运行时统计数字都会写入当前工作目录下的 sfcbStat 文件。默认情况下,不收集统计数字。

-l, --syslog-level=LOGLEVEL

指定系统日志的详细程度级别。LOGLEVEL 可以是 LOG_INFO、LOG_DEBUG 或 LOG_ERR(默认)。

-t, --trace-components=NUM

激活组件级跟踪消息,其中 NUM 是进行 OR 运算的位掩码整数,它定义要跟踪哪个组件。您指定 -t ? 后,它会列出所有组件及其相关整数位掩码:

tux@mercury:~> sfcbd -t ?
---   Traceable Components:     Int       Hex
--- 	       providerMgr:          1	0x0000001
--- 	       providerDrv:          2	0x0000002
--- 	        cimxmlProc:          4	0x0000004
--- 	        httpDaemon:          8	0x0000008
--- 	           upCalls:         16	0x0000010
--- 	          encCalls:         32	0x0000020
--- 	   ProviderInstMgr:         64	0x0000040
--- 	  providerAssocMgr:        128	0x0000080
--- 	         providers:        256	0x0000100
--- 	       indProvider:        512	0x0000200
--- 	  internalProvider:       1024	0x0000400
--- 	        objectImpl:       2048	0x0000800
--- 	             xmlIn:       4096	0x0001000
--- 	            xmlOut:       8192	0x0002000
--- 	           sockets:      16384	0x0004000
--- 	         memoryMgr:      32768	0x0008000
--- 	          msgQueue:      65536	0x0010000
--- 	        xmlParsing:     131072	0x0020000
--- 	    responseTiming:     262144	0x0040000
--- 	         dbpdaemon:     524288	0x0080000
--- 	               slp:    1048576	0x0100000

能反映 sfcbd 的内部功能,但不会产生过多消息的有用值是 -t 2019

SFCB 配置文件

SFCB 启动后从配置文件 /etc/sfcb/sfcb.cfg 读取其运行时配置。该行为在启动时可以用 -c 选项覆盖。

配置文件包含选项:对,一行一对。当对此文件执行更改时,如果文本编辑器保存文件的格式是所使用环境的本机格式,则可以使用此文本编辑器更改文件。

由井号 (#) 注释的选项的所有设置都使用默认设置。

可看到以下选项:

httpPort

目的

指定 sfcbd 用于侦听接收自 CIM 客户端的 HTTP(非安全)请求的本地端口值。默认值是 5988

语法

httpPort: 端口号

enableHttp

目的

指定 SFCB 是否接受 HTTP 客户端的连接。默认为 false

语法

enableHttp: 选项

选项

描述

true

启用 HTTP 连接。

false

禁用 HTTP 连接。

httpProcs

目的

指定在阻止新进来的 HTTP 请求之前,HTTP 客户端连接的最大并行数。默认值是 8

语法

httpProcs: 最大连接数

httpsPort

目的

指定 sfcbd 侦听来自 CIM 客户端的 HTTPS 请求的本地端口值。默认值是 5989

语法

httpsPort: 端口号

enableHttps

目的

指定 SFCB 是否接受 HTTPS 客户端连接。默认值是 true

语法

enableHttps: 选项

选项

描述

true

启用 HTTPS 连接。

false

禁用 HTTPS 连接。

httpsProcs

目的

指定在阻止新进来的 HTTPS 请求之前,HTTPS 客户端连接的最大并行数。默认为 8

语法

httpsProcs: 最大连接数

enableInterOp

目的

指定 SFCB 是否为指示支持提供 interop 名称空间。 默认值是 true

语法

enableInterOp: 选项

选项

描述

true

启用 interop 名称空间。

false

禁用 interop 名称空间。

provProcs

目的

指定并发提供程序进程的最大数。 达到这点之后,如果有新进来的请求要求装载新提供程序,则现有提供程序之一将自动卸载。默认值是 32

语法

provProcs: 最大进程数

doBasicAuth

目的

根据客户端用户标识符打开或关闭它接受请求之前所做的基本身份验证。默认值是 true,表示不执行客户端身份验证。

语法

doBasicAuth: 选项

选项

描述

true

启用基本身份验证。

false

禁用基本身份验证。

basicAuthLib

目的

指定本地库名称。SFCB 服务器将装载该库以验证客户端用户标识符。默认值是 sfcBasicPAMAuthentication

语法

provProcs: 最大进程数

useChunking

目的

该选项启用或禁用 HTTP/HTTPS分块。 如果启用,服务器将以小形式将大量响应数据返回客户端,而不是缓存数据并以一个大块全部发回。默认值是 true

语法

useChunking: 选项

选项

描述

true

启用 HTTP/HTTPS 数据分块。

false

禁用 HTTP/HTTPS 数据分块。

keepaliveTimeout

目的

指定一个连接上的 SFCB HTTP 进程在两次请求之间最多等待多少秒就终止。将它设置为 0 将禁用 HTTP keep-alive。默认值是 0

语法

keepaliveTimeout:

keepaliveMaxRequest

目的

指定一个连接上连续请求的最大数。将它设置为 0 将禁用 HTTP keep-alive。默认值是 10

语法

keepaliveMaxRequest: 连接数

registrationDir

目的

指定注册目录,它包含提供程序的注册数据、分阶段区域和静态安装源。默认值是 /var/lib/sfcb/registration

语法

registrationDir: 目录

providerDirs

目的

指定 SFCB 搜索提供程序库的目录的空格分隔列表。默认值是 /usr/lib64 /usr/lib64 /usr/lib64/cmpi

语法

providerDirs: 目录

providerSampleInterval

目的

指定提供程序管理器间隔多少秒检查空闲的提供程序。默认值是 30

语法

providerSampleInterval:

providerTimeoutInterval

目的

指定提供程序管理器经过多少秒的间隔就卸载空闲的提供程序。默认值是 60

语法

providerTimeoutInterval:

providerAutoGroup

目的

如果提供程序注册文件未指定任何其他组,而该选项设置为 true,则同一共享库内的所有提供程序都将在同一进程中执行。

语法

providerAutoGroup: 选项

选项

描述

true

启用提供程序分组。

false

禁用提供程序分组。

sslCertificateFilePath

目的

指定包含服务器证书的文件的名称。该文件必须是 PEM (保密邮件,RFC 1421 和 RFC 1424)格式。只有当 enableHttps 设置为 true 时才需要该文件。默认值是 /etc/sfcb/server.pem

语法

sslCertificateFilePath: 路径

sslKeyFilePath

目的

指定包含服务器证书私用密钥的文件的名称。该文件必须是 PEM 格式且不能有通行密码的保护。该文件仅当 enableHttps 设置为 true 时才需要。默认值是 /etc/sfcb/file.pem

语法

sslKeyFilePath: 路径

sslClientTrustStore

目的

指定包含客户端的 CA 或自我签名证书的文件的名称。该文件必须是 PEM 格式,只有当 sslClientCertificate 设置为 acceptrequire 时才需要。默认值是 /etc/sfcb/client.pem

语法

sslClientTrustStore: 路径

sslClientCertificate

目的

指定 SFCB 处理基于客户端证书的身份验证的方式。如果设置为 ignore,将不会从客户端请求证书。 如果设置为 accept,它会从客户端请求证书,但即使客户端没有证书也不会失败。如果设置为 require,会在客户端不存在证书时拒绝客户端连接。默认值是 ignore

语法

sslClientCertificate: 选项

选项

描述

ignore

禁止请求客户端证书。

accept

禁止请求客户端证书。

如果证书不存在,不会失败。

require

拒绝无有效证书的客户端连接。

certificateAuthLib

目的

指定用于请求基于客户端证书的用户身份验证的本地库名称。只有当 sslClientCertificate 未设置成 ignore 时才这样请求。默认值是 sfcCertificateAuthentication

语法

certificateAuthLib: 文件

traceLevel

目的

指定 SFCB 的跟踪级别您可以通过设置环境变量 SFCB_TRACE_LEVEL 覆盖它。默认值是 0

语法

traceLevel: 级别数

traceMask

目的

指定 SFCB 的跟踪掩码。您可以用命令行选项 --trace-components 覆盖它。默认值是 0

语法

traceMask: 掩码

tracefile

目的

为 SFCB 指定跟踪文件。您可以通过设置环境变量 SFCB_TRACE_FILE 覆盖它。默认值是 stderr(标准错误输出)。

语法

traceFile: 输出