BASH Programming - Введение



                


Установка и установочные соображения - часть 6


Другая альтернатива создать массив RAID-1 с тремя дисками. Заметьте, что все три диска содержат идентичные данные, и 2/3 пространства ''теряется''.

  • В: Я хочу понять, существует-ли что-то типа fsck: если раздел не был правильно демонтирован, fsck запускается и исправляет файловую систему более 90% времени. Так как машина способна исправлять это сама с помощью ckraid --fix, почему не автоматизировать это?

    О: Это возможно сделать добавлением следующие строки в /etc/rc.d/rc.sysinit:

    mdadd /dev/md0 /dev/hda1 /dev/hdc1 { ckraid --fix /etc/raid.usr.conf mdadd /dev/md0 /dev/hda1 /dev/hdc1 }

    или

    mdrun -p1 /dev/md0 if [ $? -gt 0 ] ; then ckraid --fix /etc/raid1.conf mdrun -p1 /dev/md0 fi

    Перед предоставлением более полного и надежного скрипта, рассмотрим теорию операций.

    Gadi Oxman написал: При неправильном завершении, Linux может быть в одном их следующих состояний:

    • При возникновении аварийного завершения дисковый кеш в памяти был синхронизирован с RAID набором; потерь данных нет.
    • При возникновении аварийного завершения в памяти дискового кеша было более новое содержимое, чем в RAID наборе; в результате повреждена файловая система и возможно потеряны данные. Это состояние может быть далее разделено на два других состояния:

      • При аварийном завершении Linux записывал данные.
      • При аварийном завершении Linux не записывал данные.
      • Допустим мы используем массив RAID-1. В (2a), может случиться, что перед аварией небольшое количество блоков данных было успешно записано только на несколько из зеркал, таким образом при следующей загрузке, зеркала уже не будут идентичными.

        Если мы проигнорировали разницу в зеркалах, the raidtools-0.36.3 код балансировки чтения может выбрать для чтения блоки из любого зеркала, что приведет к противоречивому поведению (например, вывод e2fsck -n /dev/md0 будет отличаться от запуска к запуску).

        Так как RAID не защищает от неправильного завершения, обычно нет никакого ''целиком корректного'' пути для устранения разницы в зеркалах и повреждений файловой системы.

        Например, по умолчанию ckraid --fix будет выбирать содержимое первого действующего зеркала и обновлять другие зеркала. Однако, в зависимости от точного времени аварии, данные на другом зеркале могут быть более свежие, и мы можем пожелать использовать их как источник для восстановления зеркал, или, возможно, использовать другой метод восстановления.

        Следующий скрипт реализует одну из самых здравых последовательностей загрузки. В частности, он принимает меры предосторожности длинными, повторяющимися ckraid-ов при не совместных дисках, контроллерах, или драйверах контроллеров дисков. Модифицируйте его, для соответствия своей конфигурации, и скопируйте в rc.raid.init. Затем вызовите rc.raid.init после проверки fsck-ом монтирования rw корневого раздела, но перед проверкой fsck-ом оставшихся разделов. Убедитесь, что текущий каталог в путях поиска (переменная PATH).




        Содержание  Назад  Вперед