Applying VIOS Rules Post-Install

Edit: Do you make changes to the defaults?

Originally posted May 29, 2018 on AIXchange

Awhile back my colleague Eric Hopkins was installing VIO server 2.2.6.21 when he noticed something new: a reminder to apply rules post-installation:

Virtual I/O Server (VIOS) rules management consists of two rules files. The default rules file contains the critical recommended device rules for VIOS best practice, and the current rules file captures the current VIOS system settings based on the default rules. To deploy the recommended default device settings on a newly installed VIOS, run the rules –o deploy –d command and then restart the system. The default rules are contained in an XML profile, and you cannot modify the default rules.

You can customize rules on VIOS, by using the current rules. The initial current rules are captured from the system by using default rules as a template and then saving them in an XML profile. You can modify the current rules or add new rules. The new rules must be supported on the VIOS level. You can apply the changed current rules to VIOS, for currently discovered and newly discovered device types and instances. You can use the rules command to manage VIOS rules files.

This is what was displayed after logging in following his 2.2.6.21 install: 

================================================

IBM Virtual I/O Server

                      login: padmin

[compat]: 3004-610 You are required to change your password.

        Please choose a new one.

padmin’s New password:

Enter the new password again:

Indicate by selecting the appropriate response below whether you

accept or decline the software maintenance terms and conditions.

Accept (a) |  Decline (d) |  View Terms (v) > a

$ license -accept

  Current system settings are different from the best practice recommendations for a VIOS.

  To view the differences between system and the recommended settings, run the following:

  $rules -o diff -s -d

  To deploy the VIOS recommended default settings, run the following:

  $rules -o deploy -d

  $shutdown -restart

$ rules -o diff -s -d

devParam.disk.fcp.mpioosdisk:reserve_policy device=disk/fcp/mpioosdisk             single_path | no_reserve

devParam.disk.fcp.mpioapdisk:reserve_policy device=disk/fcp/mpioapdisk             single_path | no_reserve

devParam.disk.fcp.nonmpiodisk:reserve_policy device=disk/fcp/nonmpiodisk           single_path | no_reserve

devParam.disk.fcp.aixmpiods8k:reserve_policy device=disk/fcp/aixmpiods8k           single_path | no_reserve

devParam.disk.sas.mpioapdisk:reserve_policy device=disk/sas/mpioapdisk             single_path | no_reserve

devParam.PCM.friend.fcpother:algorithm device=PCM/friend/fcpother                   fail_over | round_robin

devParam.PCM.friend.iscsiother:algorithm device=PCM/friend/iscsiother               fail_over | round_robin

devParam.PCM.friend.otherapdisk:algorithm device=PCM/friend/otherapdisk             fail_over | round_robin

devParam.PCM.friend.sasother:algorithm device=PCM/friend/sasother                   fail_over | round_robin

devParam.PCM.friend.aixmpiods8k:algorithm device=PCM/friend/aixmpiods8k             fail_over | round_robin

devParam.adapter.pseudo.ibm_ech:hash_mode device=adapter/pseudo/ibm_ech              default | src_dst_port

devParam.adapter.pciex.df1000fe:num_cmd_elems device=adapter/pciex/df1000fe                      200 | 1966

devParam.adapter.pciex.df1000fe:max_xfer_size device=adapter/pciex/df1000fe             0x100000 | 0x400000

devParam.adapter.pci.df1023fd:num_cmd_elems device=adapter/pci/df1023fd                          200 | 1966

devParam.adapter.pci.df1023fd:max_xfer_size device=adapter/pci/df1023fd                     0x100000 | 0x400000

devParam.adapter.pciex.771032257710650:num_cmd_elems device=adapter/pciex/771032257710650            500 | 2048

devParam.adapter.pciex.771032257710650:max_xfer_size device=adapter/pciex/771032257710650   0x100000 | 0x400000

devParam.adapter.pciex.77103224:num_cmd_elems device=adapter/pciex/77103224                          200 | 1024

devParam.adapter.pciex.77103224:max_xfer_size device=adapter/pciex/77103224                 0x100000 | 0x400000

devParam.adapter.pciex.df1000f1df1024f:max_xfer_size device=adapter/pciex/df1000f1df1024f   0x100000 | 0x400000

devParam.adapter.pciex.df1000f1df1024f:num_cmd_elems device=adapter/pciex/df1000f1df1024f            500 | 4014

devParam.adapter.pciex.df1000f114108a0:max_xfer_size device=adapter/pciex/df1000f114108a0   0x100000 | 0x400000

devParam.adapter.pciex.df1000f114108a0:num_cmd_elems device=adapter/pciex/df1000f114108a0            500 | 4014

devParam.adapter.pciex.df1000f11410010:num_cmd_elems device=adapter/pciex/df1000f11410010            500 | 4014

devParam.adapter.pciex.df1000f11410010:max_xfer_size device=adapter/pciex/df1000f11410010   0x100000 | 0x400000

devParam.adapter.pciex.771032257710760:max_xfer_size device=adapter/pciex/771032257710760   0x100000 | 0x400000

devParam.adapter.pciex.771032257710760:num_cmd_elems device=adapter/pciex/771032257710760            500 | 2048

devParam.adapter.pciex.771032257710750:max_xfer_size device=adapter/pciex/771032257710750   0x100000 | 0x400000

devParam.adapter.pciex.771032257710750:num_cmd_elems device=adapter/pciex/771032257710750            500 | 2048

devParam.adapter.pciex.771032257710680:max_xfer_size device=adapter/pciex/771032257710680   0x100000 | 0x400000

devParam.adapter.pciex.771032257710680:num_cmd_elems device=adapter/pciex/771032257710680            500 | 2048

devParam.adapter.pciex.771032257710660:max_xfer_size device=adapter/pciex/771032257710660   0x100000 | 0x400000

devParam.adapter.pciex.771032257710660:num_cmd_elems device=adapter/pciex/771032257710660            500 | 2048

devParam.adapter.pciex.7710018077107f0:max_xfer_size device=adapter/pciex/7710018077107f0   0x100000 | 0x400000

devParam.adapter.pciex.7710018077107f0:num_cmd_elems device=adapter/pciex/7710018077107f0            500 | 2048

devParam.adapter.pciex.771001801410af0:max_xfer_size device=adapter/pciex/771001801410af0   0x100000 | 0x400000

devParam.adapter.pciex.771001801410af0:num_cmd_elems device=adapter/pciex/771001801410af0            500 | 2048

devParam.adapter.pciex.df1000e21410f10:max_xfer_size device=adapter/pciex/df1000e21410f10   0x100000 | 0x400000

devParam.adapter.pciex.df1000e21410f10:num_cmd_elems device=adapter/pciex/df1000e21410f10            500 | 4096

devParam.adapter.pciex.df1060e21410100:max_xfer_size device=adapter/pciex/df1060e21410100   0x100000 | 0x400000

devParam.adapter.pciex.df1060e21410100:num_cmd_elems device=adapter/pciex/df1060e21410100            500 | 4096

devParam.adapter.pciex.df1060e21410520:max_xfer_size device=adapter/pciex/df1060e21410520   0x100000 | 0x400000

devParam.adapter.pciex.df1060e21410520:num_cmd_elems device=adapter/pciex/df1060e21410520            500 | 4096

devParam.adapter.pciex.df1000e2df1002e:max_xfer_size device=adapter/pciex/df1000e2df1002e   0x100000 | 0x400000

devParam.adapter.pciex.df1000e2df1002e:num_cmd_elems device=adapter/pciex/df1000e2df1002e            500 | 4096

devParam.adapter.pciex.df1000e214105e0:max_xfer_size device=adapter/pciex/df1000e214105e0   0x100000 | 0x400000

devParam.adapter.pciex.df1000e214105e0:num_cmd_elems device=adapter/pciex/df1000e214105e0            500 | 4096

devParam.adapter.pciex.df1060e214105f0:max_xfer_size device=adapter/pciex/df1060e214105f0   0x100000 | 0x400000

devParam.adapter.pciex.df1060e214105f0:num_cmd_elems device=adapter/pciex/df1060e214105f0            500 | 4096

devParam.adapter.pciex.df1060e21410370:max_xfer_size device=adapter/pciex/df1060e21410370   0x100000 | 0x400000

devParam.adapter.pciex.df1060e21410370:num_cmd_elems device=adapter/pciex/df1060e21410370            500 | 4096

devParam.adapter.pciex.df1060e214103a0:max_xfer_size device=adapter/pciex/df1060e214103a0   0x100000 | 0x400000

devParam.adapter.pciex.df1060e214103a0:num_cmd_elems device=adapter/pciex/df1060e214103a0            500 | 4096

devParam.adapter.pciex.df1000e2df1082e:max_xfer_size device=adapter/pciex/df1000e2df1082e   0x100000 | 0x400000

devParam.adapter.pciex.df1000e2df1082e:num_cmd_elems device=adapter/pciex/df1000e2df1082e            500 | 4096

devParam.adapter.pciex.df1060e214103e0:max_xfer_size device=adapter/pciex/df1060e214103e0   0x100000 | 0x400000

devParam.adapter.pciex.df1060e214103e0:num_cmd_elems device=adapter/pciex/df1060e214103e0            500 | 4096

devParam.adapter.pciex.df1060e21410410:max_xfer_size device=adapter/pciex/df1060e21410410   0x100000 | 0x400000

devParam.adapter.pciex.df1060e21410410:num_cmd_elems device=adapter/pciex/df1060e21410410            500 | 4096

devParam.adapter.pci.df1080f9:max_xfer_size device=adapter/pci/df1080f9                     0x100000 | 0x400000

devParam.adapter.pci.df1080f9:num_cmd_elems device=adapter/pci/df1080f9                              200 | 2048

devParam.adapter.pci.df1000fd:max_xfer_size device=adapter/pci/df1000fd                     0x100000 | 0x400000

devParam.adapter.pci.df1000fd:num_cmd_elems device=adapter/pci/df1000fd                              200 | 1966

devParam.adapter.pci.df1000fa:max_xfer_size device=adapter/pci/df1000fa                     0x100000 | 0x400000

devParam.adapter.pci.df1000fa:num_cmd_elems device=adapter/pci/df1000fa                              200 | 2048

devParam.adapter.pci.df1000f9:max_xfer_size device=adapter/pci/df1000f9                     0x100000 | 0x400000

devParam.adapter.pci.df1000f9:num_cmd_elems device=adapter/pci/df1000f9                              200 | 2048

devParam.adapter.pci.df1000f7:max_xfer_size device=adapter/pci/df1000f7                     0x100000 | 0x400000

devParam.adapter.pci.df1000f7:num_cmd_elems device=adapter/pci/df1000f7                              200 | 1024

devParam.adapter.pci.77102224:max_xfer_size device=adapter/pci/77102224                     0x100000 | 0x400000

devParam.adapter.pci.77102224:num_cmd_elems device=adapter/pci/77102224                              200 | 1024

devParam.driver.iocb.efscsi:dyntrk device=driver/iocb/efscsi                                           no | yes

devParam.driver.iocb.efscsi:fc_err_recov device=driver/iocb/efscsi                     delayed_fail | fast_fail

devParam.driver.qliocb.qlfscsi:dyntrk device=driver/qliocb/qlfscsi                                     no | yes

devParam.driver.qliocb.qlfscsi:fc_err_recov device=driver/qliocb/qlfscsi               delayed_fail | fast_fail

devParam.driver.qiocb.qfscsi:dyntrk device=driver/qiocb/qfscsi                                         no | yes

devParam.driver.qiocb.qfscsi:fc_err_recov device=driver/qiocb/qfscsi                   delayed_fail | fast_fail

devParam.adapter.vdevice.IBM,l-lan:max_buf_tiny device=adapter/vdevice/IBM,l-lan                    2048 | 4096

devParam.adapter.vdevice.IBM,l-lan:min_buf_tiny device=adapter/vdevice/IBM,l-lan                     512 | 4096

devParam.adapter.vdevice.IBM,l-lan:max_buf_small device=adapter/vdevice/IBM,l-lan                   2048 | 4096

devParam.adapter.vdevice.IBM,l-lan:min_buf_small device=adapter/vdevice/IBM,l-lan                    512 | 4096

devParam.adapter.pciex.77103225141004f:max_xfer_size device=adapter/pciex/77103225141004f   0x100000 | 0x400000

devParam.adapter.pciex.77103225141004f:num_cmd_elems device=adapter/pciex/77103225141004f           1024 | 2048

devParam.adapter.pciex.7710322514101e0:max_xfer_size device=adapter/pciex/7710322514101e0   0x100000 | 0x400000

devParam.adapter.pciex.7710322514101e0:num_cmd_elems device=adapter/pciex/7710322514101e0            500 | 2048

devParam.adapter.pciex.df1000e31410140:max_xfer_size device=adapter/pciex/df1000e31410140   0x100000 | 0x400000

devParam.adapter.pciex.df1000e31410140:num_cmd_elems device=adapter/pciex/df1000e31410140           1024 | 4096

devParam.adapter.pciex.df1000e31410150:max_xfer_size device=adapter/pciex/df1000e31410150   0x100000 | 0x400000

devParam.adapter.pciex.df1000e31410150:num_cmd_elems device=adapter/pciex/df1000e31410150           1024 | 6144

Have you run into this during new VIOS deployments? What you think? Personally, I appreciate the prompt to fix things right away at installation. It’s good to get these tasks out of way as opposed to having to remember to take care of them later in the process.