SFCB - CIM
VMware는 Open Source CIMOM(Common Information Model Object Manager)을 fork 해서, SFCB(Small Footprint CIM Broker)를 구현
CIMOM은 Client의 Request를 전달받아 처리하고, 이를 각각의 Provider에게 전달하는 역할
CIM은 DMTF(Distributed Management Task Force)에 의해서 정의된 Open Framework으로 VMware가 Hardware Device와 Service를 관리하기 위해 사용
이를 위해서 CIM에서는 관리 Data와 이 Data에 대한 작업을 처리하기 위해 필요한 여러 Mechanism을 표준화(Semantic) >> object-oriented management information model
CIM은 Relational Database와 유사하게
Data Table 대신, Object가 있고,
SQL Query 대신, Assocation이 있음
모든 Object는 DMTF 기반 CIM 표준의 Specification에 있는 Object를 사용
CIM Provider는 CIMOM에 의해서 Provider에게 전달된 Client의 Request를 받아서 처리하는 역할
Provider 개발 시, registration file과 MOF 포함
개발한 Provider 설치 시, registration file은 모든 Object를 CIMOM에 등록
CIM Provider에는 Static과 Dynamic 두 가지 종류
Dynamic Provider가 일반적으로 Hardware를 관리하기 위해 구현되는 Provider(language는 C로구만 구현 가능, C++은 지원하지 않음)
CIMOM과 CIM Provider 사이에 Data는 CMPI encoding 표준을 이용 >> CIMOM이 CIM-XML(text-based encoding format)을 CMPI로 변환할 수도 있고, CMPI를 CIM-XML로 변환할 수도 있음
CIM-XML은 CIM request/response object를 DTD(Data Type Definition)를 이용한 XML format에 맞게 encoding하는 protocol
ESXi가 지원하는 개발 가능한 Host Extensibility Model
- Common Information Model (CIM) plug-ins
- ESXCLI plug-ins
- Host Profile plug-ins
- Userworld tools
Setting the CIM Log Level
1. Set the log level. # esxcli system wbem set -l [debug|info|warning|error] 2. Stop sfcbd. # esxcli system wbem set -e false 3. Restart sfcbd. # esxcli system wbem set -e true |
SFCB 정보 조회
# esxcli system wbem get Enabled: true WS-Management Service: true Enable HTTPS: true Authorization Model: password Port: 5989 HTTP Procs: 2 HTTPS Procs: 4 Provider Procs: 16 Keepalive Timeout: 1 Keepalive Max Requests: 10 Provider Sample Interval: 30 Provider Timeout Interval: 120 HTTP Max Content Length: 1048576 Max Message Length: 40000000 Thread Stack Size: 1048576 Provider Resource Pool Override: SSL Cipher List: !aNULL:kECDH+AESGCM:ECDH+AESGCM:RSA+AESGCM:kECDH+AES:ECDH+AES:RSA+AES Threadpool Size: 5 Readonly: false Log Level: debug Service Location Protocol PID: 2100438 WS-Management PID: 2100919 CIM Object Manager PID: 2101200 Enabled SSL Protocols: Enabled System SSL Protocols: tlsv1.2 Enabled Running SSL Protocols: tlsv1.2 # pidof sfcbd 2101200 2101155 2101068 2100874 2100871 2100870 2100867 2100866 # pidof openwsmand 2100919 |
CIM 조회 테스트
# enum_instances cim_unitarycomputersystem | head -10 OMC_UnitaryComputerSystem.CreationClassName="OMC_UnitaryComputerSystem",Name="4c4c4544-0044-5910-8048-c3c04f4d3833" Name = 4c4c4544-0044-5910-8048-c3c04f4d3833 CreationClassName = OMC_UnitaryComputerSystem ResetCapability = 2 RequestedState = 5 OtherDedicatedDescriptions = { System Virtualization, } NameFormat = HWA EnabledState = 2 EnabledDefault = 2 |
SFCB Provider 조회
# esxcli system wbem provider list Name Enabled Loaded ---------------- ------- ------ sfcb_base true true vmw_base true true vmw_hdr true true vmw_iodmProvider true true vmw_kmodule true true vmw_omc true true vmw_pci true true |
Provider 등록 파일 목록
[root@localhost:/var/lib/sfcb/registration] ls -al total 72 drwxr-xr-x 1 root root 512 Aug 7 15:31 . drwxr-xr-x 1 root root 512 Aug 7 15:31 .. -rw-rw-rw- 1 root root 72 Aug 7 15:31 loaded -rw-r----- 1 root root 1 Aug 7 15:31 maxwait drwxr-xr-x 1 root root 512 Aug 7 15:28 repository -r--r--r-- 1 root root 4626 Feb 17 2021 sfcb_base-providerRegister -r--r--r-- 1 root root 6235 Feb 17 2021 vmw_base-providerRegister -r--r--r-- 1 root root 388 Feb 17 2021 vmw_hdr-providerRegister -r--r--r-- 1 root root 4220 Feb 17 2021 vmw_iodmProvider-providerRegister -r--r--r-- 1 root root 164 Feb 17 2021 vmw_kmodule-providerRegister -r--r--r-- 1 root root 15404 Feb 17 2021 vmw_omc-providerRegister -r--r--r-- 1 root root 1565 Feb 17 2021 vmw_pci-providerRegister |
SFCB 환경 파일
# cat /etc/sfcb/sfcb.cfg # Do not modify this header. # VMware ESXi 7.0.2 disabledProviders: providerSampleInterval:30 doBasicAuth:true sslClientCertificate:ignore provProcs:16 sslCipherList:!aNULL:kECDH+AESGCM:ECDH+AESGCM:RSA+AESGCM:kECDH+AES:ECDH+AES:RSA+AES httpsProcs:4 httpProcs:2 maxMsgLen:40000000 readOnly:false enableHttps:true wsman:true threadStackSize:1048576 enabled:true threadPoolSize:5 httpsPort:5989 providerTimeoutInterval:120 keepaliveTimeout:1 loglevel:debug httpMaxContentLength:1048576 keepaliveMaxRequest:10 |