Назад | Перейти на главную страницу

Можно ли проверить текущее значение атрибута устройства в AIX 5.3?

В AIX, если я хочу изменить атрибут устройства, я могу использовать два разных способа:

  1. Изменить атрибут и перенастроить устройство. Атрибут будет изменен немедленно. Но если используются устройства (например, fs смонтированы), то этот способ использовать нельзя.

    # 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 или новее я могу проверить это с помощью команды lsattr с параметрами «-P» (в отличие от «-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
}