SNMP UCD dskTotalLow + dskTotalHigh

Я сделал snmpwalk для одного из моих Linux-боксов, и вот результат.

UCD-SNMP-MIB::dskTotalLow.1 = Gauge32: 276240608
UCD-SNMP-MIB::dskTotalLow.2 = Gauge32: 0
UCD-SNMP-MIB::dskTotalLow.3 = Gauge32: 0
UCD-SNMP-MIB::dskTotalLow.4 = Gauge32: 0
UCD-SNMP-MIB::dskTotalLow.5 = Gauge32: 74346640
UCD-SNMP-MIB::dskTotalLow.6 = Gauge32: 4031680
UCD-SNMP-MIB::dskTotalLow.7 = Gauge32: 1677158400
UCD-SNMP-MIB::dskTotalLow.8 = Gauge32: 1071652864
UCD-SNMP-MIB: :dskTotalLow.9 = Gauge32: 0
UCD-SNMP-MIB::dskTotalLow.10 = Gauge32: 0
UCD-SNMP-MIB::dskTotalHigh.1 = Gauge32: 0
UCD- SNMP-MIB::dskTotalHigh.2 = Gauge32: 0
UCD-SNMP-MIB::dskTotalHigh.3 = Gauge32: 0
UCD-SNMP-MIB::dskTotalHigh.4 = Gauge32: 0
UCD-SNMP-MIB::dskTotalHigh.5 = Gauge32: 0
UCD-SNMP-MIB::dskTotalHigh.6 = Gauge32: 0
UCD-SNMP-MIB::dskTotalHigh.7 = Gauge32 : 0
UCD-SNMP-MIB::dskTotalHigh.8 = Gauge32: 11
UCD-SNMP-MIB::dskTotalHigh.9 = Gauge32: 0
UCD-SNMP-MIB::dskTotalHigh .10 = Gauge32: 0

Общий размер диска с индексом 8 составляет около 45 ТБ. В документации UCD MIB

dskTotalLow: "Общий размер диска/раздела (кбайт). Вместе с dskTotalHigh составляет 64-битное число".
dskTotalHigh: "Общий размер диска/раздела (кБ). Вместе с dskTotalLow составляет 64-битное число."
Как получить общий размер из dskTotalLow и dskTotalHigh. Пожалуйста, помогите мне заранее.

Спасибо


person sudesh    schedule 28.05.2013    source источник


Ответы (1)


Для индекса 8 вы получаете верхнюю часть 0x0B (= 11), нижнюю часть 0x3FE0 2000 (= 1 071 652 864). Соединив их, мы получим 0x0B 3FE0 2000 (= 48 316 293 120). Это соответствует 45 ТБ.

Или, альтернативно, вы можете получить значение, вычислив

11 * 4,294,967,296 + 1,071,652,864 = 48,316,293,120

где 4,294,967,296 = 0x1 0000 0000

person Lex Li    schedule 29.05.2013