PowerVC で RHEL 8.6 をデプロイした後にRMCが繋がらないエラーの解消


### はじめに

Power Systems で RHEL を動かす際に HMCと対象LPARの動的管理(DLPARなど)を行うには、RMC (Resource Monitoring and Control)が必要になります。

RMCを稼働させるには、対象の Linux に IBM Power Systems service and productivity tools というツールを導入することが必要となります。


[IBM Power Systems service and productivity tools](https://www.ibm.com/support/pages/service-and-productivity-tools)


---

### 発生した事象

service and productivity tools を対象のLinux VMに導入し、/etc/cloud/cloud.cfg の cloud_final_modules に reset_rmc を設定したにも関わらず、イメージ・キャプチャー、PowerVC から 対象イメージのデプロイを行っても、RMC が稼働していませんでした。


参考：[RedBooks] IBM PowerVC Version 2.0 Introduction and Configuration
https://www.redbooks.ibm.com/redbooks/pdfs/sg248477.pdf
p216 
> Note: Ensure that the cloud.cfg file has the reset_rmc module listed. If you do not
see the module listed, then make sure you update the OS to the latest version of
cloud-init.
In case the reset_rmc module is missing even after OS update, make sure you add
the module in cloud_final_modules section of the /etc/cloud/cloud.cfg as follows:
> *-* reset_rmc




----

### 環境

PowerVC 2.0.1
　RHEL 8.6 (PowerVC でデプロイした仮想マシン)


---

#### 確認1 RMCのリセットを実行 (->解消せず)


参考：https://aix4admins.blogspot.com/2012/01/rmc-resource-monitoring-and-control-rmc.html

上記のサイトを参照し、RMCのリセットを実行します。


- Stopping and starting RMC without erasing configuration:
 
```確認コマンド
# /usr/sbin/rsct/bin/rmcctrl -z   ## <--it stops the daemons
# /usr/sbin/rsct/bin/rmcctrl -A   ##  <--adds entry to /etc/inittab and it starts the daemons
# /usr/sbin/rsct/bin/rmcctrl -p    ## <--enables the daemons for remote client connections
```

以下実行ログです。

```
# /usr/sbin/rsct/bin/rmcctrl -z　        
# /usr/sbin/rsct/bin/rmcctrl -A          
0513-071 The ctrmc Subsystem has been added.
Enabling ctrmc.service for systemctl ...
0513-059 The ctrmc Subsystem has been started. Subsystem PID is 15071.
#  /usr/sbin/rsct/bin/rmcdomainstatus -s ctrmc  

Management Domain Status: Management Control Points
  O A  0xb498cfb2a8e623d0  0001  xxx.xx.xxx.xx


# /usr/sbin/rsct/bin/rmcctrl -p           

#  /usr/sbin/rsct/bin/rmcdomainstatus -s ctrmc

Management Domain Status: Management Control Points
  O A  0xb498cfb2a8e623d0  0001  xxx.xx.xxx.xx
```

ctrmc の再起動などが実行されていますが、RMCは非活動のままでした。


---

#### 確認2 RMCデータベースの再作成を実行 (-> 解消)


recfgct コマンドを使用して、RMCデータベースの再作成を実行しました。
参考：[recfgctコマンド](https://www.ibm.com/docs/ja/aix/7.2?topic=r-recfgct-command)



:information_source:  下記では /usr/sbin/rsct/install/bin/recfgct コマンドを実行していますが、rsctバージョンによっては、導入先が /opt/rsct/install/bin/recfgct である可能性があります。

<br>

- recfgct: deletes the RMC database, does a discovery, and recreates the RMC configuration


```
# /usr/sbin/rsct/install/bin/recfgct
Removed /etc/systemd/system/multi-user.target.wants/ctrmc.service.
Removed /etc/systemd/system/graphical.target.wants/ctrmc.service.
0513-071 The ctcas Subsystem has been added.
0513-071 The ctrmc Subsystem has been added.
Enabling ctrmc.service for systemctl ...
Created symlink /etc/systemd/system/multi-user.target.wants/ctrmc.service → /usr/lib/systemd/system/ctrmc.service.
Created symlink /etc/systemd/system/graphical.target.wants/ctrmc.service → /usr/lib/systemd/system/ctrmc.service.
0513-059 The ctrmc Subsystem has been started. Subsystem PID is 16448.
# echo $?
0
#
```

->　この実行後、すぐにRMCがActive状態になりました。

---

### lssrc, startsrc で rsct を確認、起動

RHEL ppc64le でもlssrc, startsrc, stopsrc を実行することが可能です。(IBM Power関連パッケージの導入が必要と思われます)


* IBM.MCP を確認し、HMCとの接続を確認。

```
# lsrsrc IBM.MCP
/opt/rsct/bin/lsrsrc-api: 2612-022 A session could not be established with the RMC daemon on "local_node".
```

lssrc -a を実行。rsct は稼働していません。

```
# lssrc -a
Subsystem         Group            PID     Status
 ctcas            rsct                     inoperative
 ctrmc            rsct                     inoperative
 IBM.MgmtDomainRM rsct_rm                  inoperative
 IBM.ERRM         rsct_rm                  inoperative
 IBM.AuditRM      rsct_rm                  inoperative
 IBM.SensorRM     rsct_rm                  inoperative
 IBM.HostRM       rsct_rm                  inoperative
 IBM.DRM          rsct_rm                  inoperative
 IBM.ServiceRM    rsct_rm                  inoperative
 ```


```
# startsrc -s ctrmc
0513-059 The ctrmc Subsystem has been started. Subsystem PID is 617630.
```

```
# lssrc -a
Subsystem         Group            PID     Status
 ctrmc            rsct             617630   active
 IBM.ServiceRM    rsct_rm          617779   active
 IBM.MgmtDomainRM rsct_rm          617780   active
 IBM.DRM          rsct_rm          617840   active
 IBM.HostRM       rsct_rm          617879   active
 ctcas            rsct                     inoperative
 IBM.ERRM         rsct_rm                  inoperative
 IBM.AuditRM      rsct_rm                  inoperative
 IBM.SensorRM     rsct_rm                  inoperative
```

* HMC接続確認

```
 lsrsrc IBM.MCP
Resource Persistent Attributes for IBM.MCP
resource 1:
	MNName            = "xxx.xx.xxx.xxx"
	NodeID            = 15173529171169048927
	KeyToken          = "xxxx.xxxx.xxxx.xxx.com"
	IPAddresses       = {"xxx.xx.xxx.xxx"}
	ConnectivityNames = {"xxx.xx.xxx.xx"}
	HMCName           = "7063CR2*78xxxD"
	HMCIPAddr         = "xx.xx.xxx.xx"
	HMCAddIPs         = "xxx.xxx.xx.xxx,x.xxx.xxx.xx"
	HMCAddIPv6s       = ""
	ActivePeerDomain  = ""
	NodeNameList      = {"test-node"}
 ```

-> HMCへの接続が確認できました。rsctを起動するのみでRMC通信が可能となる場合もあります。



### おわりに


/etc/cloud/cloud.cfg で設定する箇所が違うのかどうかという点を(いつか)確認できればと思います。