Контроллер LSI Megaraid имеет резервную батарею для своего кэша записи, что позволяет в случае непредвиденного отключения электроэнергии сохранить кэшированные, еще не записанные данные, чтобы он мог записать их на диск при следующей загрузке сервера. вверх. В случае «чистого» выключения в этом резервном копировании, по-видимому, нет необходимости, поскольку в рамках «чистого выключения» контроллер будет записывать кэшированные данные на диск.
Как рейд-контроллер узнает, что завершение работы скоро произойдет? Предположительно, этот сброс должен произойти в последнюю очередь после кода завершения работы другой ОС, который может включать запись данных или журналов в рейд.
Есть ли какая-то сигнализация уровня PCIe, которая сообщает периферийным устройствам о предстоящем отключении питания? Сообщает ли модуль ядра Megaraid_sas карту об ожидающем завершении работы? Или MegaCli
команду для очистки кеша нужно запускать из сценария инициализации для выключения?
Я вручную добавил карту Megaraid и дополнительный набор дисков в систему Linux, которая была установлена без таковой, и хочу быть уверенным, что мне не нужно вручную добавлять что-то, чтобы гарантировать, что кеш будет согласованным при выключении.
Во время выключения система отключит большинство файловых систем. Те, которые нельзя размонтировать, перемонтируются только для чтения. Системный вызов Umount очистит кеши дисков через VFS и буферы дисков, используя драйвер, стоящий за блочным устройством. Драйвер блочного устройства в вашем случае - это универсальный драйвер SCSI. sg
. Это отправит данные на устройство SCSI, используя специальный драйвер для вашего устройства и команду сброса SCSI, чтобы данные были записаны из внутреннего дискового кеша на дисковый носитель. Все это синхронно, и размонтирование не вернется, пока данные не будут на диске. Для перемонтированной файловой системы, доступной только для чтения, сценарии завершения работы просто запустят системный вызов синхронизации.
В документе LSI Описание Очищает кэш контроллера на выбранном контроллере (ах).
MegaCli –AdpCacheFlush -aN|-a0,1,2|-aALL
Storcli /cx flushcache