- Мониторинг Intel raid с помощью raidcfg и Zabbix
- Цели статьи
- Введение
- Скрипт для внешних проверок raid массивов
- Шаблон для мониторинга за intel raid
- Заключение
- ИТ База знаний
- Полезно
- Навигация
- Серверные решения
- Телефония
- Корпоративные сети
- Курс по сетям
- Redis – что это и для чего?
- Разбираемся с Jenkins. Что это?
- Настройка и использование Docker Compose
- Chef — как готовить вашу сеть и никогда не пересаливать
- Руководство по SQL для начинающих на примере анализа вело-шеринга
- Ansible — управляй конфигурацией, попивая сок у себя в квартале
- Разбираемся с Docker: установка и использование
- Настройка RAID0 на Windows Server 2016
- Программный RAID1 (зеркало) для загрузочного GPT диска в Windows 10/ Server 2016
- Подготовка таблицы разделов для зеркала на 2 диске
- Преобразования дисков в динамические, создание зеркала
- Подготовка EFI раздела на втором диске в зеркале
- Копирование конфигурации EFI и BCD на второй диск
Мониторинг Intel raid с помощью raidcfg и Zabbix
У меня есть группа серверов с настроенным intel raid и установленными поверх Windows Hyper-V Server. Возникло больше желание с помощью zabbix наблюдать за состоянием массивов и предупреждать в случае проблем. Готового решения нигде не нашел, поэтому пораскинул мозгами и придумал свое, чем и хочу поделиться с вами.
Цели статьи
- Настроить передачу в zabbix состояния рейд массивов, настроенных с помощью встроенной в материнскую плату технологии intel raid.
- При настройке совершать минимум действий на целевых серверах, а максимум на zabbix сервере.
- Настроить триггеры и уведомления на случай, если состояние рейда отличается от рабочего Normal.
Введение
На серверах уже настроен мониторинг состояния SMART дисков. При использовании встроенного intel raid, состояние дисков с целевой системы нормально наблюдается. В принципе, мне этого хватало, но подумал, почему бы и состояние массивов не замониторить, ведь массив может развалиться и при нормальных показателях смарта дисков.
В первую очередь погуглил и не нашел практически ничего, что помогло бы настроить мониторинг интел рейдов в zabbix. На целевых системах установлена интеловская утилита raidcfg, с помощью которой можно посмотреть на состояние массивов и дисков. Например, с ключом /st получается вот такой вывод.
Красиво и наглядно, но для автоматизации не очень подходит. Лучше подойдет ключ /stv.
С такими данными уже можно работать. В целом, ничего сложного, нужно распарсить вывод любым удобным способом и передать на сервер мониторинга информацию о статуте рейд массива. Как можно с помощью батников парсить различные текстовые файлы я показывал на нескольких примерах в отдельной статье — Мониторинг значений из текстового файла в Zabbix.
В этот раз мне не захотелось такие костыли городить на каждом сервере. Я в итоге решил поступить по-другому. На zabbix сервере сделать скрипт для внешних проверок. Этот скрипт будет на целевом сервере с помощью zabbix_get забирать вывод команды raidcfg.exe /stv, запущенной через system.run. Дальше вывод команды в исходном виде поступает на zabbix сервер. Его можно парсить каким-то образом, но я решил этого не делать. Вывод и так короткий, много места не занимает. Проверка на наличие тревожных слов будет уже в триггере с помощью regexp.
Если у вас еще нет своего сервера для мониторинга, то рекомендую материалы на эту тему. Для тех, кто предпочитает систему CentOS:
То же самое на Debian 10, если предпочитаете его:
Скрипт для внешних проверок raid массивов
В директорию на zabbix сервере /usr/lib/zabbix/externalscripts кладем скрипт intelraid.sh для внешних проверок.
Скрипт, как вы видите, очень простой. Для того, чтобы он работал, вам обязательно нужно на каждом агенте разрешить выполнение внешних команд. По-умолчанию они отключены. Добавляем в агенте параметр:
И перезапускаем агент. Это все, что надо делать на целевых серверах. Теперь можно проверить работу скрипта. Для этого выбираете любой сервер и передаем его ip адрес в качестве параметра скрипту.
Если получаете результат работы утилиты raidcfg, значит все в порядке. Можно переходить в web интерфейс сервера мониторинга.
Шаблон для мониторинга за intel raid
Шаблон очень простой — один элемент и один триггер, поэтому экспорт шаблона делать не буду, лучше создать вручную, чтобы точно работало на всех версиях Zabbix. Вот элемент данных.
А вот триггер к нему.
Если в строке будет найдено одно из слов Failed|Disabled|Degraded|Rebuild|Updating|Critical, то он сработает. Я на практике не проверял работу триггера, так как не хотелось рейд ломать. А потестил следующим образом. Добавил в проверочную строку название одного из массивов, к примеру, Storage, который встречается не на всех серверах. В итоге, триггер сработал только там, где было такое название. Так что в теории, проверка должна работать корректно.
Теперь можно добавлять шаблон к необходимым хостам и ждать поступление данных. В Latest Data должны увидеть следующее содержимое итема.
Вот и все. Теперь все intel raid массивы подключены к мониторингу.
Заключение
Так быстро и просто решается прикладная задача по мониторингу с помощью Zabbix. Сел, прикинул и сразу сделал. Вариантов решения обычно несколько, выбирай на свой вкус. Можно было на клиенте распарсить вывод и передавать в Zabbix сразу состояние массива в одно слово. А можно было просто True/False или 1/0.
Я последнее время стараюсь максимально выполнять на сервере и минимально на клиенте, благо в заббиксе появилась куча средств для этого — пост обработка данных, зависимые элементы и т.д. Буду рад замечаниям и предложениям по теме в комментариях. Если вам интересен Zabbix, читайте мои остальные статьи по нему.
ИТ База знаний
Курс по Asterisk
Полезно
— Узнать IP — адрес компьютера в интернете
— Онлайн генератор устойчивых паролей
— Онлайн калькулятор подсетей
— Калькулятор инсталляции IP — АТС Asterisk
— Руководство администратора FreePBX на русском языке
— Руководство администратора Cisco UCM/CME на русском языке
— Руководство администратора по Linux/Unix
Навигация
Серверные решения
Телефония
FreePBX и Asterisk
Настройка программных телефонов
Корпоративные сети
Протоколы и стандарты
Популярное и похожее
Курс по сетям
Redis – что это и для чего?
Разбираемся с Jenkins. Что это?
Настройка и использование Docker Compose
Chef — как готовить вашу сеть и никогда не пересаливать
Руководство по SQL для начинающих на примере анализа вело-шеринга
Ansible — управляй конфигурацией, попивая сок у себя в квартале
Разбираемся с Docker: установка и использование
Еженедельный дайджест
Настройка RAID0 на Windows Server 2016
4 минуты чтения
Сегодня мы расскажем вам, как настроить программный RAID 0 в Windows Server 2016 Core. В интернете полно информации о настройке чередующегося тома (а именно так именуется RAID0) через графический интерфейс. Мы этим заниматься не будем. Мы создадим чередующийся том через консоль.
Обучайся в Merion Academy
Пройди курс по сетевым технологиям
Начать
Для примера возьмем, установленную на Hyper-V виртуальную машину Windows Server 2016 Core.
Предварительно нам необходимо создать два новых жестких диска, которые мы будем переводить в Raid0.
Не включаем виртуальную машину. Нажимаем правой кнопкой мыши на нашей машине. В раскрывшемся меню выбираем пункт Параметры:
В открывшемся окне кликаем по пункту Установка оборудования и выбираем пункт SCSi-контроллер.
Нажимаем Добавить и в следующем окне выбираем пункт Жесткий диск и нажимаем Добавить
В следующем окне из раскрывающегося списка Расположение выбираем номер, который не используется другими устройствами.
После этого, под пунктом Виртуальный жесткий диск нажимаем кнопку Создать
Откроется окно Приступая к работе. Здесь просто приветственное окно и нажимаем Далее.
В окне Выбор формата диска устанавливаете переключатель на нужный вам формат диска. Мы выбрали формат VHDX. Нажимаем Далее.
В окне Выбор типа диска устанавливаете переключатель в необходимый тип диска. На выбор три типа: Фиксированного размера, Динамически расширяемый, Разностный.
И опять нажимаем кнопку Далее и перед нами откроется окно выбора имени диска и его местоположения. Задайте диску имя и укажите место, где он будет располагаться.
Нажимаем Далее. Откроется окно Настройки диска. Здесь необходимо задать объем жесткого диска. Мы установили 40 Gb. Нажимаем кнопку Далее.
Откроется окно Завершение настройки виртуального жесткого диска. Нажимаем Готово и в последнем окне нажимаем ОК.
Аналогичным образом создается второй виртуальный жесткий диск. После того, как создали два диска, включаем нашу виртуальную машину. Входим под учетной записью Администратор’а.Вводим команду Diskpart:
Выбираем Диск 1 командой select disk 1:
Переводим его в режим online: Вводим команду online disk:
Делаем диск динамическим командой convert dynamic:
Может появиться ошибка, что диск защищен от записи. Эта проблема решается вводом команды
И повторно пытаемся сделать диск динамическим. Просматриваем заново наши диски командой list disk
Звездочки напротив диска означают, что диск динамический.
Аналогичные операции проводим и для диска 2. Все команды для диска 2 отображены на рисунке ниже.
Далее, не меняя диск, вводим команду: create volume stripe disk=1,2. Данная команда создает чередующийся том.
Для просмотра результатов выполнения команды вводим команду list volume.
Из рисунка выше видно, что создан новый том (ТОМ3), который является Raid 0 (ЧЕРЕДУЮЩИЙСЯ).
Теперь нам осталось присвоить литеру нашему новому тому.
Для этого вводим команду assign letter=Y и проверяем командой list volume.
Теперь нам надо отформатировать новый том, что бы можно было его использовать для сохранения информации.
Выходим из режима Diskpart командой exit
Для форматирования диска вводим команду следующего типа: format Y: /q /FS:NTFS. После чего система запросит подтверждения выполняемого действия и предупредит, что все данные будут уничтожены. Вводим yes. Начнется процесс форматирования.
P.S. Иногда возникает необходимость установить букву диска, которая уже присвоена другому, например приводу DVD дисков. Для изменения литеры необходимо выполнить ряд команд:
- Зайти в diskpart;
- Просмотреть тома командой list volume;
- Выделить нужный том, на котором необходимо сменить букву- select volume 0;
- Удалить присвоенную букву командой remove letter=Y;
- Присвоить новую букву- assign letter=V;
Программный RAID1 (зеркало) для загрузочного GPT диска в Windows 10/ Server 2016
В этой статье мы рассмотрим, как создать программное зеркало (RAID1) из двух GPT дисков в Windows Server 2016/Windows 10, установленных на UEFI системе. Мы рассмотрим полноценную конфигурацию BCD загрузчика, позволяющую обеспечить корректную загрузку Windows и защитить данные от выхода из строя любого диска.
Итак, у нас имеется простой компьютер UEFI-архитектуры без встроенного RAID контроллера с двумя идентичными дисками размерами по 50 Гб. Наша задача — установить на первый GPT диск ОС (Windows Server 2016, Windows 10 или бесплатного сервер Hyper-V), а затем собрать из двух дисков программное зеркало (RAID1 – Mirroring).
Запишите установочный образ Windows на DVD/ USB флешку, загрузите компьютер) с этого загрузочного устройства (в режиме UEFI, не Legacy) и запустите установку Windows Server 2016.
После установки, откройте консоли управления дисками (diskmgmt.msc), убедитесь, что на первом диске используется таблица разделов GPT (свойства диска -> вкладка Volumes -> Partition style –> GUID partition table), а второй диск пустой (неразмечен).
Подготовка таблицы разделов для зеркала на 2 диске
Откройте командную строку с правами администратора и выполните команду diskpart. Наберите:
Как вы видите, в системе имеется два диска:
- Disk 0 – диск с таблицей разделов GPT, на который установлена Windows
- Disk 1 – пустой неразмеченный диск
На всякий случай еще раз очистим второй диск и конвертируем его в GPT:
Введите список разделов на втором диске:
Если найдется хотя бы один раздел (в моем примере это Partition 1 – Reserved – Size 128 Mb), удалите его:
Delete partition override
Выведите список разделов на 1 диске (disk 0). Далее вам нужно создать такие же разделы на Disk 1.
Имеется 4 раздела:
- Recovery – 450 Мб, раздел восстановления со средой WinRE
- System – 99 Мб, EFI раздел (подробнее про структуру разделов на GPT дисках)
- Reserved 16 Мб, MSR раздел
- Primary – 49 Гб, основной раздел с Windows
Создаем такие же разделы на Disk 1:
Create partition primary size=450
format quick fs=ntfs label=»WinRE»
create partition efi size=99
create partition msr size=16
Преобразования дисков в динамические, создание зеркала
Теперь оба диска нужно преобразовать в динамические:
Создадим зеркало для системного диска (диск C:). Нужно выбрать раздел на первом диске и создать для него зеркало на 2 диске:
Select volume c
Add disk=1
Должно появится сообщение:
Откройте консоль управления дисками, и убедитесь, что запустилась синхронизуя раздела C на (Recynching). Дождитесь ее окончания (может занять до нескольких часов в значимости от размера раздела C: ).
При загрузке Windows теперь будет появляться меню Windows Boot Manager с предложение выбрать с какого диска загружаться. Если не выбрать диск вручную, система через 30 секунд попытается загрузиться с первого диска:
- Windows Server 2016
- Windows Server 2016 – secondary plex
Однако проблема в том, что сейчас у вас конфигурация загрузчика хранится только на 1 диске, и при его потере, вы не сможете загрузить ОС со второго без дополнительных действий. По сути вы защитили данные ( но не загрузчик Windows) только от сбоя второго диска.
Программный RAID Windows не получится использовать для создания нормального зеркала EFI раздела. Т.к. на EFI разделе хранятся файлы, необходимые для загрузки ОС, то при выходе их строя первого диска, вы не сможете загрузить компьютер со второго диска без ручного восстановления загрузчика EFI на нем в среде восстановления. Эти операции довольно сложно сделать неподготовленному администратору, а также потребует дополнительного времени (которого может не быть, если у вас за спиной стоит толпа разгневанных пользователей).
Далее мы покажем, как скопировать EFI раздел на второй диск и изменить конфигурацию загрузчика BCD, чтобы вы могли загрузить Windows как с первого, так и со второго диска.
Подготовка EFI раздела на втором диске в зеркале
Теперь нужно подготовить EFI раздел на втором диске в зеркале, чтобы компьютер мог использовать этот раздел для загрузки Windows. Назначим EFI разделу на Disk 1 букву S и отформатируем его в файловой системе FAT32:
format fs=FAT32 quick
Теперь назначим букву диска P: для EFI раздела на Disk 0:
select partition 2
Копирование конфигурации EFI и BCD на второй диск
Выведите текущую конфигурацию загрузчика BCD с помощью команды:
При создании зеркала, служба VDS автоматически добавила в конфигурацию BCD запись для второго зеркального диска (с меткой Windows Server 2016 – secondary plex).
Чтобы EFI в случае потери первого диска могут загружаться со второго диска, нужно изменить конфигурацию BCD.
Для этого нужно скопировать текущую конфигурацию Windows Boot Manager
bcdedit /copy
Теперь скопируйте полученный ID конфигурации и используйте его в следующей команде:
Если все правильно, должна появится строка The operation completed successfully.
Выведите текущую конфигурацию Windows Boot Manager (bcdedit /enum). Обратите внимает, что у загрузчика теперь два варианта загрузки EFI с разных дисков (default и resume object).
Теперь нужно сделать копию BCD хранилища на разделе EFI первого диска и скопировать файлы на второй диск:
P:
bcdedit /export P:\EFI\Microsoft\Boot\BCD2
robocopy p:\ s:\ /e /r:0
Осталось переименовать BCD хранилище на втором диске:
Rename s:\EFI\Microsoft\Boot\BCD2 BCD
И удалить копию на Disk 0:
Теперь при выходе из строя первого диска, вам нужно при загрузке компьютера выбрать устройство «Windows Boot Manager Cloned», а затем «Microsoft Windows Server 2016 — secondary plex».
При загрузке с отказавшим дисков, в диспетчере Disk Management вы увидите сообщение Failed Redndancy.
В этом случае вы должны заменить неисправный диск, удалить конфигурацию зеркала и пересоздать программный RAID с начала.