|
Отправлено admin Пн, 09/11/2009 - 16:57
|
Наверное не совсем правильно говорить о том что вышеизложенное "недокументировано". Однако, из данной ниже информации вы ничего не найдёте ни в Software-RAID-HOWTO, ни на страницах руководства man по команде mdadm. В статье рассматриваются возможности управления программным RAID, а также получения информации о программных RAID в системе с помощью псевдо-файловой системы /sys, которые описаны только в документации к ядру.
Компиляция перевода документации из ядра: Виктор Вислобоков
Итак. Если у вас есть программный RAID (устройства /dev/md*), то в файловой системе /sys есть каталоги, которые могут нам очень пригодиться. Называются они: /sys/block/mdN, где N - это номер вашего программного RAID.
Каждый каталог /sys/block/mdN содержит следующие каталоги и файлы:
- md - каталог, содержащий следующие файлы:
- Для каждого активного устройства в RAID-массиве также есть символьные ссылки на каталоги dev-XXX, с именем rdNN, где NN-номер позиции устройства в RAID-массиве, начиная с 0, т.е. rd0, rd1... и т.д.
У активных md RAID-массивов, поддерживающих избыточность данных (RAID0,1,5,6,10) в каталоге /sys/block/mdN/md также есть файлы:
- sync_action - файл для мониторинга и управления процессом перестроения массива. Он может содержать одно или несколько слов:
resync - осуществляется восстановление избыточности данных после некорректного останова RAID-массива или при его создании.
recover - происходит замена ошибочного диска на hotspare (резервный) диск.
idle - ничего не происходит.
check - запрошена и выполняется полная проверка избыточных данных RAID-массива. Читает все блоки и проверяет их. Для некоторых уровней RAID может также потребоваться repair
repair - выполняется полная проверка и восстановление. Это похоже на resync, но только выполняемый по запросу пользователя.
В данный файл можно писать. idle приводит к остановке ресинхронизации или восстановления. Однако, нет гарантии, что эти операции не будут запущены снова самой системой. resync и recovery запускают соответствующие операции, которые могут быть остановлены с помощью idle. check и repair запускают соответствующие операции, по окончанию которых устанавливается состояние idle.
- degraded - содержит количество устройств из-за которых массив находится в состоянии degraded. Полностью рабочий RAID-массив показывает 0, при выходе одного диска из строя 1 и т.д.
- mismatch_cnt - при выполнении check, repair и иногда rsync, показывает количество найденных несовпадений, т.е. число перезаписанных секторов, или (для check) число секторов которое должно быть перезаписано. Большинство RAID работает не с секторами, а с элементами страниц, поэтому число несовпадений может быть больше, чем число фактических ошибок из-за фактора наличия нескольких секторов в странице.
- sync_speed_min и sync_speed_max аналогичны /proc/sys/dev/raid/speed_limit_{min,max}, однако они применимы только к конкретному массиву. Если значения в них не заданы или указано 'system', то используются системные настройки. Также в файлы можно записать минимальную и максимальную скорость синхронизации RAID-массива в килобайтах в секунду и тогда настройки будут считаться локальными (local).
- sync_completed - количество секторов, которое прошло синхронизацию во время текущей операции ресинхронизации, косая черта, общее количество секторов.
- sync_max - количество секторов, по достижению которого операции resync/recovery приостановятся. При запущенных операциях данное количество может быть только увеличено, но не уменьшено. Значение max снимает ограничение.
- sync_speed - показывает текущую актуальную скорость синхронизации.
- suspend_lo и suspend_hi - два номер секторов, между которыми операции ввода/вывода RAID-массива будут заблокированы. В настоящий момент поддерживается только для raid4/5/6.
Каждый тип RAID может иметь дополнительные файлы, реализующие специфическую функциональность:
- stripe_cache_size - размер страйп-кэша (только для RAID5). Можно писать значения от 32768 до 16. По умолчанию 128
- strip_cache_active - количество активных элементов страйп-кэша (только для RAID5).
- preread_bypass_threshold - (только для RAID5). Количество раз, которое будет запрошен страйп на чтение перед тем как он будет помещён в страйп-кэш. Можно писать от 0 до stripe_cache_size.
Примеры
1. Как посмотреть состояние всех RAID-массивов, запущенных в системе:
cat /proc/mdstat
2. Как посмотреть процент выполнения (состояние выполнения) процесса сборки/синхронизации/проверки программного RAID-массива:
cat /proc/mdstat
3. Как выполнить проверку целостности программного RAID-массива md0:
echo 'check' >/sys/block/md0/md/sync_action
4. Как выполнить пересинхронизацию программного RAID-массива md0:
echo 'repair' >/sys/block/md0/md/sync_action
5. Как снизить скорость синхронизации программного RAID-массива md0 в процессе восстановления (система и так слишком нагружена):
echo скорость >/sys/block/md0/md/sync_speed_max
где скорость задаётся в кбайт/сек
6. Как посмотреть нашлись ли какие-то ошибки в процессе проверки программного RAID-массива по команде check или repair:
cat /sys/block/md0/md/mismatch_cnt
|
|