З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА ! Пожалуйста, уважайте чужой труд.
Автор: Панфилов Алексей (lehis (at) subnets.ru)
Сети, настройка оборудования, сетевые сервисы.
|
|||||||||
Subnets.ru Регистрация IP и Автономных систем mega-net.ru |
З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА ! Пожалуйста, уважайте чужой труд.
Автор: Панфилов Алексей (lehis (at) subnets.ru)
Приехали на инсталл очередные серверы:
Оба c RAID-контроллерами LSI SAS 1064E :
mpt0@pci0:1:0:0: card=0x03061014 chip=0x00561000 rev=0x02 hdr=0x00
vendor = 'LSI Logic (Was: Symbios Logic, NCR)'
device = 'SAS 3000 series, 4-port with 1064E -StorPort'
class = mass storage
subclass = SCSI
На IBM используются обычные SATA диски, а на Intel — SCSI, организованные в RAID-1 (зеркало), который FreeBSD видит как устройство da0.
И все бы ничего, но syslog на одном из серверов (после физического удаления и последуюшего возвращения на место одного из хардов) выдал в messages вот такую инфу:
Oct 21 22:16:28 bill kernel: mpt0:vol0(mpt0:0:0): RAID-1 - Degraded
Oct 21 22:16:28 bill kernel: mpt0:vol0(mpt0:0:0): Status ( Enabled Re-Syncing )
Oct 21 22:16:28 bill kernel: mpt0:vol0(mpt0:0:0): Low Priority Re-Sync
Oct 21 22:16:28 bill kernel: mpt0:vol0(mpt0:0:0): 170387769 of 285155328 blocks remaining
Oct 21 22:16:59 bill kernel: mpt0: mpt_cam_event: 0x14
Oct 21 22:17:43 bill kernel: mpt0: mpt_cam_event: 0x14
Oct 21 22:19:43 bill last message repeated 3 times
Резонно возник вопрос: «А как посмотреть текущее состояние RAID?».
А вот тут-то меня поджидал бааальшой облом, т.к. «решения в лоб» ничего не знают про его состояние:
[intel:~] camcontrol periphlist da0
pass0: generation: 4 index: 1 status: MORE
da0: generation: 4 index: 2 status: LAST
[intel:~] camcontrol inquiry da0
pass0: <Intel Logical Volume 0001> Fixed Direct Access SCSI-2 device
300.000MB/s transfers , Command Queueing Enabled
и утилиты из портов (make search key=' LSI ' | more
) ничего не знают про 1064E.
В гугле же нашлось два решения:
1. Анализировать состояние переменной sysctl dev.mpt.0.nonoptimal_volumes
:
если значение не равно нулю, то есть проблемы с состоянием RAID.
2. Собрать из сорцов mptutil (сохраненная в архиве копия сорцов). Сборка, как ни странно, прошла «на ура»: просто даем «make«. После сборки mptutil запустилась — уже хорошо:
[intel:~] mptutil
usage: mptutil [-u unit] <command> ...
Commands include:
show adapter - display controller information
show config - display RAID configuration
show drives - list physical drives
show events - display event log
show volumes - list logical volumes
fail <drive> - fail a physical drive
online <drive> - bring an offline physical drive online
offline <drive> - mark a physical drive offline
name <volume> <name>
volume status <volume> - display volume status
clear - clear volume configuration
create <type> [-vq] [-s stripe] <drive>[,<drive>[,...]]
delete <volume>
add <drive> [volume] - add a hot spare
remove <drive> - remove a hot spare
Пробуем получить состояние массива:
[intel:~] mptutil show volumes
mpt0 Volumes:
Id Size Level Stripe State Write-Cache Name
da0 ( 136G) RAID-1 OPTIMAL Disabled
То, что нужно!
Дальнейшее использование информации о состоянии RAID-массива ограничено только вашей фантазией.
З.Ы. Сборка и работоспособность mptutil тестировалась на FreeBSD 7.0 и 7.2 — везде полет нормальный.
З.Ы.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !
Автор: Панфилов Алексей (lehis (at) subnets.ru)