Проверка raid массива на ошибки
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
в бухгалтерии стоит старенький depo сервер, на нем крутится терминальная служба и 1с, в одной из баз исчезли некоторые данные из справочников. 1с ники кричат, что системный сбой и типа скорее всего диск посыпался. на морде есть индикация, но она не отображает работу рейда. башенное исполнение, какой контролер не знаю, надо перезагружать, корзины нет.А посмотреть в Диспетчере Устройств?
Возможно что CrystalDiskInfo сможет показать состояние SMART винчестеров, входящих в ваш RAID: при контроллерах Intel он это уже несколько лет позволяет.
Ну а утилита контроля и обслуживания RAID (или у вас такая не установлена?) позволяет хотя бы качественно оценить состояние дисков, а также произвести анализ и исправление ошибок, связанных с проблемами самого RAID (у них бывают собственные проблемы, не зависящие от входящих в них дисков и их состояния).
SCSI и RAID контроллеры: Intel Embedded Server RAID Technology II
Дисковые устройства: Intel MegaSR SCSI Disk Device Intel MegaSR SCSI Disk Device
RAID Virtual Device
PCI-устройство: Intel 631xESB/6321ESB - SATA RAID Controller
4 диска, но видно только 2
Физические данные устройства ATA: Barracuda 7200.12 320418 320 ГБ
Тип устройства: SAS
Интерфейс: SATA-II
SMART не виден в CrystalDiskInfo и подобных утилитах, использовал Hirens.BootCD.15.2
Victoria пишет:
Подскажите где утилиту взять о которой вы говорите, я так понял есть утилита контроля RAID, она же позволяет и состояние дисков посмотреть, а так же есть утилиты состояния дисков от самих производителей.
Видимо у вас там два RAID-1 по два диска. И вы видите не физические диски, а фиктивные, которыми и являются RAID (видимо те самые два "Intel MegaSR SCSI Disk Device" – и пускай вас не смущают слова SCSI и SAS).
По поводу утилит – посмотреть Поиском, например запросом (скопировал в запрос вашу информацию без изменений, лишь добавив "utility"): Inte 631xESB/6321ESB - SATA RAID Controller utility. Я знаю, что такая обязана быть – но не знаю, как она звучит конкретно; скорее всего Raid Web Console – и она уже должна бы стоять на вашем сервере, ежели там фабричная установка.
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
в бухгалтерии стоит старенький depo сервер, на нем крутится терминальная служба и 1с, в одной из баз исчезли некоторые данные из справочников. 1с ники кричат, что системный сбой и типа скорее всего диск посыпался. на морде есть индикация, но она не отображает работу рейда. башенное исполнение, какой контролер не знаю, надо перезагружать, корзины нет.А посмотреть в Диспетчере Устройств?
Возможно что CrystalDiskInfo сможет показать состояние SMART винчестеров, входящих в ваш RAID: при контроллерах Intel он это уже несколько лет позволяет.
Ну а утилита контроля и обслуживания RAID (или у вас такая не установлена?) позволяет хотя бы качественно оценить состояние дисков, а также произвести анализ и исправление ошибок, связанных с проблемами самого RAID (у них бывают собственные проблемы, не зависящие от входящих в них дисков и их состояния).
SCSI и RAID контроллеры: Intel Embedded Server RAID Technology II
Дисковые устройства: Intel MegaSR SCSI Disk Device Intel MegaSR SCSI Disk Device
RAID Virtual Device
PCI-устройство: Intel 631xESB/6321ESB - SATA RAID Controller
4 диска, но видно только 2
Физические данные устройства ATA: Barracuda 7200.12 320418 320 ГБ
Тип устройства: SAS
Интерфейс: SATA-II
SMART не виден в CrystalDiskInfo и подобных утилитах, использовал Hirens.BootCD.15.2
Victoria пишет:
Подскажите где утилиту взять о которой вы говорите, я так понял есть утилита контроля RAID, она же позволяет и состояние дисков посмотреть, а так же есть утилиты состояния дисков от самих производителей.
Видимо у вас там два RAID-1 по два диска. И вы видите не физические диски, а фиктивные, которыми и являются RAID (видимо те самые два "Intel MegaSR SCSI Disk Device" – и пускай вас не смущают слова SCSI и SAS).
По поводу утилит – посмотреть Поиском, например запросом (скопировал в запрос вашу информацию без изменений, лишь добавив "utility"): Inte 631xESB/6321ESB - SATA RAID Controller utility. Я знаю, что такая обязана быть – но не знаю, как она звучит конкретно; скорее всего Raid Web Console – и она уже должна бы стоять на вашем сервере, ежели там фабричная установка.
Рассмотрим порядок действий проверки дисков выделенного сервера, с которого пришла ошибка SMART, выявления и замены неисправного диска в массиве Raid-1.
- Вводим команду для проверки состояния raid
- Если в выводе в квадратных скобках стоит знак _ (например [U_]) — диск требуется заменить (он выпал из рейда).
в данном примере всё с raid всё в порядке. Если бы было так: [U_], то диск sdb неисправен, если так: [_U], то sda (смотрим порядок в md-устройствах, например: md2 : active raid1 sda3[2] sdb3[3])
- Если raid в порядке, то нужно проверить каждый диск отдельно следующей командой:
[X] меняем на a или b в зависимости от диска, список дисков можно посмотреть командой:
ls -l /dev/ | grep sd
Оцениваем состояние диска по параметрам и выявляем неисправный, смотрим:
- количество перераспределенных секторов (Reallocated Sector)
- количество часов работы
- наличие ошибок смарт (сделайте коротки и расширенный тест SMART)
- нагрузка на диск в atop
- и другие параметры, определение неисправного диска по параметрам SMART, это тема отдельной статьи, поищите подробную информацию в интернете.
- Узнаём серийный номер неисправного диска командой:
smartctl -a /dev/sd[X]
- Перед заменой диска крайне желательно необходимо сделать резервную копию данных
- Отключаем поврежденный диск от рейда. Для этого нужно пометить разделы диска как сбойные и изъять их из массива, для этого воспользуемся командой:
mdadm /dev/md0 -f /dev/sdb1 &&mdadm /dev/md0 -r /dev/sdb1
В зависимости от количества разделов выполняем соответственно для разных разделов:
mdadm /dev/md1 -f /dev/sdb2 &&mdadm /dev/md1 -r /dev/sdb2
mdadm /dev/md2 -f /dev/sdb3 &&mdadm /dev/md2 -r /dev/sdb3
Далее команда на удаление из RAID
mdadm /dev/md0 --remove /dev/sdb1
mdadm /dev/md1 --remove /dev/sdb2
mdadm /dev/md2 --remove /dev/sdb3
- Отправляем в дата-центр запрос на замену, к запросу также прикладываем модель и серийный номер исправного диска, узнать их можно командой:
- После замены диска новый диск нужно разбить, в зависимости от типа разбиения диска (MBR или GPT).
Для проверки типа разбиения надо выполнить следующую команду:
на не замененном диске
После этого выполнить команду:
sfdisk -d /dev/sda | sfdisk /dev/sdb
(для MBR), и
sgdisk -R /dev/sdb /dev/sda
(структура разделов в этой команде копируется из /dev/sda в /dev/sdb)
sgdisk -G /dev/sdb
(для GPT)
mdadm /dev/md0 -a /dev/sdb1
mdadm /dev/md1 -a /dev/sdb2
mdadm /dev/md2 -a /dev/sdb3
При обсуждении процесса восстановления данных с RAID мы полагали, что знаем его параметры. Однако бывают случаи, когда параметры воссоздаваемого RAID неизвестны. Как их определить? Параметры RAID, которые были установлены по умолчанию, можно узнать у производителя дискового массива, однако в процессе его эксплуатации они могли быть изменены. Может R-Studio помочь в этом случае? Да, для этого следует проанализировать данные компонент RAID при помощи встроенного Текстового/шестнадцатиричного редактора. В данной статье будет рассмотрен этот процесс на примере простого NTFS RAID 5.
Итак, попробуем найти неизвестные параметры простого тома RAID 5
Пусть нам известны следующие параметры RAID:
1. Число дисков: Три
2. Файловая Система: NTFS (созданная в Windows XP/2003, далее используется стандартная Главная Загрузочная Запись (стартовый блок MBR))
3. Тип: Обычный том
Необходимо определить:
1. Порядок диска
2. Размер блока
3. Порядок блока
4. Смещение диска
Диски, образующие RAID, являются созанными в R-Studio файлами-образами:
Disk1.arc
Disk2.arc
Disk3.arc
Кликните по изображению чтобы его увеличить
Файлы-образы компонент RAID, открытые в R-Studio
Обратите внимание: несмотря на то, что R-Studio нашла объект Disk1 на Disk2.arc, это вовсе не означает, что именно он является первым диском RAID.
Определение Главной Загрузочной Записи
Во-первых следует определить MBR, чтобы найти смещение RAID
1. Последовательно откройте все три файла-образа в Текстовом/шестнадцатиричном редакторе.
2. Не включайте режим Разрешить Запись (enable write), чтобы избежать случайного повреждения данных на редактируемых объектах!
3. Запишите сигнатуру диска Windows для каждого объекта, чтобы в дальнейшем знать, какое окно редактора какому объекту соответствует.
4. Выполните поиск стартового блока MBR. Для этого в диалоговом окне Search (Поиск) введите 33 C0 8E D0 BC (в большинстве случаев это стандартный стартовый блок MBR) в поле HEX; после этого установите радиокнопку From start position (С начальной позиции) и введите 0 в поле Search in offset (Искать в смещении).
5. Нажмите OK (Да) чтобы начать поиск.
Данные диалогового окна Search (Поиск) для начала поиска Главной Загрузочной Записи (MBR)
Результаты поиска:
Кликните по изображению чтобы его увеличить
Disk1.arc, открытый в Текстовом/шестнадцатиричном редакторе.
Кликните по изображению чтобы его увеличить
Disk2.arc, открытый в Текстовом/шестнадцатиричном редакторе. Найден шаблон MBR.
Кликните по изображению чтобы его увеличить
Disk3.arc, открытый в Текстовом/шестнадцатиричном редакторе. Найден шаблон MBR.
Из рисунков следует, что шаблон MBR найден в Текстовом/шестнадцатиричном редакторе по адресу 00 на Disk2.arc и Disk3.arc (на Disk1.arc мы видим одни нули). Это означает, что смещение равно 0 и Disk1.arc не может быть первым диском в RAID.
При помощи редактора были корректно распознаны шаблоны на Disk2 и Disk3, являющиеся кодом главного инициализирующего загрузчика (master bootstrap loader code). В нашем случае два диска содержат одинаковые данные MBR в одном месте.
NДалее необходимо определить загрузочный сектор NTFS.
Посмотрим значение поля Sectors preceding partition (Сектора предшествующие разделу) в панели Templates (Шаблоны)
Кликните по изображению чтобы его увеличить
Панель Templates (Шаблоны) для Disk2 и Disk3
В нашем случае сектор предшествующий разделу - это сектор 16,065.
Если данная величина больше 63, то мы должны разделить ее на N-1, где N - число дисков (в нашем случае N = 3), в результате чего мы получаем значение 8,032. Это приблизительная позиция, с которой следует начать поиск загрузочного сектора NTFS. Начинать поиск надо с этой позиции, чтобы не найти загрузочных секторов прежних NTFS разделов.
Перейдите в поле Sectors (Секторы) в Редакторе, чтобы произвести поиск шаблона загрузочного сектора NTFS.
Кликните по изображению чтобы его увеличить
Поле поиска Sectors (Секторы) в Тестовом/шестнадцатиричном редакторе
В диалоговом окне Search (Поиск) введите EB 52 90 4E 54 46 53 20 20 20 20 (загрузочный сектор NTFS всегда начинается с этих байтов) в поле HEX, установите радиокнопку From current position (С текущей позиции) и введите 0 в поле Search at offset (Искать в смещении).
Кликните по изображению чтобы его увеличить
Данные диалогового окна Search (Поиск) для начала поиска загрузочного сектора NTFS
Данный шаблон найден в Редакторе в секторе 8064 на Disk2 и Disk3.
Теперь выберем шаблон Boot sector NTFS (Загрузочный сектор NTFS) в панели Templates (Шаблоны).
Кликните по изображению чтобы его увеличить
Disk2.arc, открытый в Текстовом/шестнадцатиричном редакторе. Найден шаблон загрузочного сектора NTFS. Тот же шаблон найден на Disk3.arc.
Мы нашли следующие параметры
Bytes per sector (Байтов в секторе): 512
Sectors per cluster (Секторов в кластере): 8
Logical Cluster Number for the file $MFT (Логический Номер Кластера для файла $MFT): 786432
Ранее найденные параметры:
Смещение RAID: 0
Далее нам нужно определить MFT (главную файловую таблицу) на диске:
1. Попробуем найти примерное смещение MFT с начала RAID:
Смещение MFT с начала раздела в секторах = Логический Номер Кластера файла $MFT * Секторов в кластере+смещение RAID = 786,432*8+0 = 6,291,456
Если смещение RAID не 0, то его необходимо прибавить к результату вышеприведенного уравнения.
Начало MFT на первом диске = Смещение MFT с начала раздела в секторах/(N-1) = 6,291,456/2 = 3,145,728
2. Начнем поиск точного начала MFT с позиции примерно на 2000 секторов меньше данной величины. Например, с сектора 3,140,000.
В диалоговом окне Search (Поиск) введите "FILE" в поле ANSI, установите радиокнопку From current position (С текущей позиции) и ведите 0 в поле Search at offset (Искать в смещении).
Кликните по изображению чтобы его увеличить
Шаблон найден в секторе 10,241,463 на Disk2 и в секторе 3,153,792 на Disk3.
Кликните по изображению чтобы его увеличить
Первый сектор файловой записи на Disk3. Начало блока данных.
Важно отметить следующее: сигнатура FILE заканчивается значением 0, что означает, что индекс файловой записи не был перезаписан значением fixup. Если бы она заканчивалась значением * (FILE*), то в дальнейшем нам пришлось бы изменить наш поиск.
Шаблон $.M.F.T. (HEX 24 00 4D 00 46 00 54) показывает, что это корректное начало MFT.
Так как сектор 3,153,792 ближе к найденному нами примерному смещению MFT 3,145,728, чем к сектору 10,241,463, то это позволяет допустить, что Disk3 является первым диском RAID.
Далее нам надо учесть, что файловая запись в MFT занимает два сектора и при успешной записи данных на RAID 5 один блок данных записывается на один диск, потом следующий блок данных на следующий диск, далее блок четности на третий диск. Пример такой схемы приведен в следующей таблице .
Первый диск RAID | Второй диск RAID | Третий диск RAID |
PD | 1 | 2 |
3 | PD | 4 |
5 | 6 | PD |
(Данная таблица приведена как пример, в общем случае порядок блока может быть произвольным.)
В нашем случае это означает, что индекс файловой записи в MFT будет увеличиваться на единицу с каждым блоком данных. Далее MFT будет располагаться на следующем диске, где индекс файловой записи будет увеличиваться на единицу с каждым соответствующим блоком данных, далее на третьем диске, содержащим блок четности. И так далее.
Так что для нахождения размера блока мы посмотрим на индекс файловой записи на данном блоке и найдем место, в котором он перестают увеличиваться на единицу. Это место будет означать конец блока данных. После этого просмотрим другие диски и найдем тот диск и место, где индекс файловой записи в MFT опять начинает увеличиваться на единицу. Далее аналогично просмотрим следующий диск и т.д.
Такой поиск может быть выполнен путем прокручивания текста в Редакторе через два сектора.
На Disk 3 блок данных заканчивается в секторе 3,153,919 с индексом файловой записи 3F 00.
Кликните по изображению чтобы его увеличить
Последняя файловая запись на Disk3. Блок данных заканчивается в следующем секторе (3,153,919).
Посмотрев на другие диски мы увидим, что данная MFT продолжается на Disk 1 в секторе 3,153,792 с индексом файловой записи 40 00 и заканчивается в секторе: 3,153,919 с индексом файловой записи 7F 00. И так далее.
Кликните по изображению чтобы его увеличить
Файловая запись продолжается на Disk1. Начало блока данных.
Кликните по изображению чтобы его увеличить
Последняя файловая запись на Disk1. Блок данных заканчивается в следующем секторе (3,153,919)
Окончательный результат представлен в следующей таблице:
Disk1 | Disk2 | Disk3 |
Сектор: 3,153,792 Запись: 40 00 Сектор: 3,153,918 Запись: 7F 00 Сектор: 3,153,919 Конец stripe блока | Сектор: 3,153,792 Нет записей Сектор: 3,153,918 Нет записей Сектор: 3,153,919 Конец stripe блока | Сектор: 3,153,792 Запись: 00 00 Сектор: 3,153,918 Запись: 3F 00 Сектор: 3,153,919 Конец stripe блока |
Сектор: 3,153,920 Запись: Нет записей Сектор: 3,154,046 Запись: Нет записей Сектор: 3,154,047 Конец stripe блока | Сектор: 3,153,920 Запись: C0 00 Сектор: Сектор: 3,154,046 Запись: FF 00 Сектор: 3,154,047 Конец stripe блока | Сектор: 3,153,920 Запись: 80 00 Сектор: 3,154,046 Запись: BF 00 Сектор: 3,154,047 Конец stripe блока |
Сектор: 3,154,048 Запись: 00 01 Сектор: 3,154,174 Запись: 3F 01 Сектор: 3,154,175 Конец stripe блока | Сектор: 3,154,048 Запись: 40 01 Сектор: Сектор: 3,154,174 Запись: 7F 01 Сектор: 3,154,175 Конец stripe блока | Сектор: 3,154,048 Запись: Нет записей Сектор: 3,154,174 Запись: Нет записей Сектор: 3,154,175 Конец stripe блока |
Кликните по изображению чтобы его увеличить
Пример сектора блока четности
Из вышеприведенной таблицы мы сможем определить следующие параметры:
Порядок дисков:
Первый диск RAID - Disk3.arc
Второй диск RAID - Disk1.arc
Третий диск RAID - Disk2.arc
Смещение: 0
Размер stripe блоков: 128 секторов или 65,536Б (64КБ)
Порядок stripe блоков: (PD означает Четность Данных)
Первый диск RAID | Второй диск RAID | Третий диск RAID |
1 | 2 | PD |
3 | PD | 4 |
PD | 5 | 6 |
Теперь мы можем создать такой RAID в R-Studio:
Кликните по изображению чтобы его увеличить
Объект RAID 5, созданный в R-Studio
При помощи R-Studio на RAID найден объект с файловой системой (Partition 1)
Дважды щелкнем мышью по данному объекту, чтобы просмотреть его файлы:
Кликните по изображению чтобы его увеличить
Структура Папок/Файлов, найденная при помощи R-Studio
Если при помощи R-Studio можно просмотреть структуру папок/файлов, то это хороший знак. Чтобы окончательно убедиться в том, что мы создали RAID с корректными параметрами, следует просмотреть файл. Размер просматриваемого файла должен превышать размер блока * (Число дисков -1). В нашем случае это 128КБ.
Кликните по изображению чтобы его увеличить
Просмотр файла Picture 236.jpg
Просмотр файла дал положительный результат - следовательно, мы создали RAID с корректными параметрами.
Читайте также: