是否可以检查 AIX 5.3 中设备属性的当前值?

是否可以检查 AIX 5.3 中设备属性的当前值?

在 AIX 中,如果我想更改设备属性,我可以使用两种不同的方法:

  1. 更改属性重新配置设备。属性会立即改变。但如果使用了 devices (例如, fs mounted ),则无法使用此方式。

    # chdev -l hdisk6 -a hcheck_interval=20 Method error (/etc/methods/chgdisk): 0514-062 Cannot perform the requested function because the specified device is busy.

  2. 更改属性,但不重新配置设备。 仅在设备重新配置后(通常在重启后)才会更改属性

    # chdev -l hdisk6 -a hcheck_interval=20 -P hdisk6 changed

因此,必须有一种方法来检查合规性——“设备属性的当前值是多少?”

在 AIX 6.1 或更新版本中,我可以通过带有选项“-P”的命令 lsattr 进行检查(与“-E”不同,它显示存储在 ODM 中的值,该值可能与当前值不同)

# for dev in $(lsdev | awk '/^hdisk/ { print $1; }'); do echo $dev $(lsattr -Pl $dev -a
 hcheck_interval ) $(lsattr -El $dev -a hcheck_interval);done
hdisk0 hcheck_interval 20 Health Check Interval True hcheck_interval 20 Health Check Interval True
[...]
hdisk3 hcheck_interval 20 Health Check Interval True hcheck_interval 20 Health Check Interval True
hdisk4 hcheck_interval 0 Health Check Interval True hcheck_interval 0 Health Check Interval True
hdisk6 hcheck_interval 0 Health Check Interval True hcheck_interval 20 Health Check Interval True

在上面的例子中,我可以看到 hdisk4 和 hdisk6 以 hcheck_interval=0 运行(不符合要求),但 hdisk6 重新配置后(重启后)将以 hcheck_interval=20 运行(符合要求)

但在 AIX 5.3 或更早的版本中,lsattr 实用程序中没有“-P”选项。是否可以在 AIX 5.3 中检查设备属性的实际值?

更新

在 aix 6.1 或更新版本中,我也可以使用 kdb 检查当前值。但在 aix 5.3 中,我仍然无法检查当前值

# kdb
[...]
(0)> adevq
NAME            ADDR               STATE      ACTIVE_IO  ST.MCHNE.
hdisk2          0xF1000100379CA800 0x1        0x0        0x0
hdisk1          0xF1000100379CA000 0x1        0x0        0x0
hdisk0          0xF100010037A0C800 0x1        0x0        0x0
hdisk7          0xF100010FECE89800 0x1        0x0        0x0
hdisk8          0xF100010FECF5A800 0x1        0x0        0x0
hdisk6          0xF100010FED079800 0x1        0x0        0x0

(0)> adevq 0xF100010FED079800
[...]
    hcheck_t &hcheck = 0xF100010FED079890
[...]
(0)> ahcheck 0xF100010FED079890
struct health_check {
    struct watchdog &watch = 0xED079890
    uint mode = 0x2
    uint interval = 0x0
    uint cmd = 0x0
    struct device_queue *dev_ptr = 0xF100010FED079800
}

相关内容