Если бы вам представилась ситуация, когда вы ДОЛЖЕН используйте RAID по причинам, не зависящим от вас, и сервер с RAID может не работать от батареи и здание склонно к отключению питания, что вы можете сделать, чтобы сделать RAID более устойчивым в ситуациях, когда питание прекращается немедленно? Эта ситуация кажется надуманной, но на самом деле это ситуация, в которой я сейчас нахожусь по причинам, в которые я не могу войти.
Будет ли какая-либо конкретная спецификация RAID, поддерживаемая программным RAID Linux, более устойчивой к потере мощности, чем любая другая спецификация RAID, или существуют ли какие-либо параметры конфигурации RAID, которые могут быть здесь полезны?
Например, RAID 10 более / менее склонен к тому, чтобы не возвращаться после потери мощности, чем, скажем, конфигурация RAID на основе четности, такая как RAID5 или RAID6. Кроме того, существуют ли какие-либо настройки конфигурации RAID, которые пытаются справиться с реальностью отсутствия хорошего аппаратного RAID BBU для записи в кэш?
Есть несколько вещей, которые вы можете сделать, чтобы помочь, которые охватили TomTom и Barlomiej. Но это все равно плохая идея. Настоящее решение состоит в том, что чьи-то требования нужно изменить. Итак, я собираюсь назвать вам несколько причин, по которым это плохая идея, и вы можете поделиться ими с тем, кто считает эти требования приемлемыми.
Если отложить на время RAID в сторону, неожиданное отключение питания от сервера в конечном итоге вызовет проблемы:
Теперь добавим RAID:
ИБП существуют не зря. Вам не нужен изысканный ИБП размером с серверную стойку. Если вам нужно, вы, вероятно, можете обойтись более дорогим потребительским ИБП примерно за 100-200 долларов. Все, что вам действительно нужно, - это проработать достаточно долго, чтобы правильно отключить сервер. Подключите USB-кабель, настройте программное обеспечение ИБП и настройте его так, чтобы компьютер начинал выключаться после 10 секунд отключения питания. Теперь он остается включенным во время небольших перебоев в подаче электроэнергии на полсекунды (и ИБП следит за тем, чтобы сервер не видел каких-либо ужасных условий питания, которые обычно сопровождают такие события). А во время более длительного он выключается красиво и аккуратно, данные не теряются, не работает 20-часовая смена, пытаясь восстановить сервер.
Если вы предоставите нам больше информации о том, почему существуют эти требования, мы сможем дать вам больше идей о том, как работать в соответствии с духом требований, и предложить приемлемое решение. Но, как говорится сейчас, все, что я могу сказать, это: Получите ИБП.
Однако я не могу вспомнить какие-либо конкретные параметры md raid:
Отключить кеш записи на диск
hdparm
-W get/set drive write-caching flag (0/1)
смонтировать все разделы с параметрами синхронизации / dirsync
от человека Mount:
dirsync
All directory updates within the file system should be done synchronously. This affects the following sys-tem calls: creat, link, unlink, symlink, mkdir, rmdir, mknod and rename.
sync
All I/O to the file system should be done synchronously. In case of media with limited number of write cycles (e.g. some flash drives) "sync" may cause life-cycle shortening.
... и, возможно, после отключения питания он будет синхронизирован.
Начните с использования SSD с кешем записи - и купите его с конденсаторами, чтобы справиться с потерей мощности.
В противном случае убедитесь, что вы отключили любые подсказки по производительности. Никакого кэширования с обратной записью где-либо в стеке (включая аппаратный уровень).
И это все. Не уверен, что в Linux есть файловая система, оптимизированная для этого.