Библиотека поддержки защищенной отказоустойчивой файловой системы QNX 6 Power-Safe (СЗИ)
драйвер ... qnx6 опции ... &
- Драйвер
- Определяет один из драйверов devb-*
- hold=allow|root|deny
- Определить пользователей (если требуется), которые могут приостанавливать создание мгновенных снимков (с помощью флага в
DCMD_FSYS_FILEFLAGS
функции devctl()). Значение по умолчанию – root.
- overalloc
- Разрешить эвристику избыточного выделения блоков для небольших операций записи файлов.
- snapshot=частота
- Установить периодичность автоматического создания мгновенных снимков; значение по умолчанию – 10 секунд. Мгновенный снимок файловой системы явно создается при вызове функции sync() или fsync() или на основе указанного таймера периодов.
- sync=режим
- Указать требуемые возможности синхронизации диска. Аргумент режим может принимать одно из следующих значений:
- mandatory (значение по умолчанию)
- накопитель должен поддерживать синхронизацию для обеспечения возможности монтирования файловой системы в режиме чтения/записи. В противном случае работа mount завершается неуспешно, и возвращается ошибка EROFS. Монтирование в режиме только для чтения ( mount с опцией -r) можно выполнить на любом устройстве в любой момент времени;
- optional
- предпринять попытку синхронизации, но игнорировать ошибки, возникающие в случае, если накопитель не поддерживает эту операцию. Драйвер может некорректно декларировать свои возможности или для физического носителя может не требоваться явная синхронизация (сквозная запись непосредственно на устройство).
- ignore
- никогда не выдавать команду синхронизации для диска и не очищать заполненные блоки из кэш-памяти файловой системы (до явного применения команды umount). Этот режим подходит только при использовании бесперебойного питания (UPS).
| Если накопитель не поддерживает синхронизацию, то fs-qnx6-ksz.so не может гарантировать, что файловая система является отказоустойчивой (Power-Safe). Для переопределения этого требования предусмотрена опция sync, которая используется на свой страх и риск. Перед использованием этой файловой системы в таких устройствах, как USB-устройства и устройства флэш-памяти (помимо традиционных вращающихся жестких дисков) необходимо убедиться в том, что устройство соответствует требованиям файловой системы. Для получения дополнительной информации см. «Требуемые свойства устройства» далее. |
- zero
- Активирует зануления блоков внешней памяти при осуществлении операций unlink.
- dzero
- Активирует режим двухкратного зануления блоков внешней памяти при осуществлении операций unlink.
- clean=байты
- Активирует режим многократной перезаписи блоков внешней памяти при осуществлении операций unlink. Перезапись выполняется заданной последовательностью байтов (каждый байт - один цикл перезаписи), максимальная длина последовательности - 16. Значение байтов указывается в HEX без
0x
и h
, обязательно 2 символа (00
, а не 0
). При указании вместо значения байта символов RR выполняется перезапись псевдослучайным числом. Опция указывается в параметрах devb-* в секции qnx6, например:
devb-eide ... qnx6 clean=AA55RR
| Для разделения опций используется запятая (,). |
ЗОСРВ «Нейтрино»
aarch64, arm, armv7, e2k, mips, ppc, x86
Разделяемый объект fs-qnx6-ksz.so обеспечивает поддержку отказоустойчивой (Power-Safe) файловой системы (копирование при записи/снимки), а также однократной, двукратной и многократной перезаписи блоков внешней памяти при осуществлении операций unlink. Он автоматически загружается драйверами devb-* при монтировании отказоустойчивой (Power-Safe) файловой системы.
| В этой файловой системе для представления имен файлов используется кодировка UTF-8. Попытка ввода имени файла в кодировке, отличной от UTF-8, завершится неуспешно (с ошибкой EILSEQ). |
Требуемые свойства устройства:
Файловая система "Power-Safe" была разработана для традиционных вращающихся жестких дисков. В основе ее работы лежит перевод состояния файловой системы на диске из одного стабильного представления в другое с использованием функции копирования при записи (Copy-On-Write, COW) для перемещения измененных блоков. Для завершения этого перевода все заполненные блоки, включенные в новое представление, должны быть зафиксированы для постоянного хранения, после чего фиксируется новый суперблок/корневой каталог файловой системы со ссылкой на перемещенные блоки.
Это обеспечивает устойчивость к сбоям питания, поскольку доступ к старой или новой версии возможен в любой момент (без промежуточной перезаписи продуктивных данных). Таким образом, для монтирования на устройстве в режиме чтения/записи это устройство должно обладать следующими свойствами:
- Одно из следующих:
- Устройство может накапливать в буфере данные операций записи с целью повышения производительности, и результат выполнения команды WRITE не обязательно указывает на фиксацию данных для постоянного хранения. Однако в таком устройстве должна поддерживаться команда FLUSH/SYNC, принудительно инициирующая сброс кэшированных или буферизованных данных записи на постоянное хранение, которая возвращает результат только в случае обеспечения стабильности всех данных при сбое питания.
- Устройство не накапливает в буфере данные операций записи и поддерживает строго сквозную запись. При этом возврат результата выполнения команды WRITE подтверждает немедленную фиксацию данных на постоянное хранение. Для такого устройства не требуется дополнительно выполнять команду FLUSH/SYNC.
- И оба следующих свойства:
- Запись данных в одну область (объявленный раздел устройства) не может негативно повлиять на содержимое любой другой области даже при сбое питания, вибрации, колебании температуры и т.д.
- Данные, ранее определенные как зафиксированные на постоянное хранение, сохраняются до явной перезаписи. Для поддержки этого требования могут быть предусмотрены такие функции, как перераспределение поврежденных блоков или выравнивание степени износа, при условии, что эти действия не приведут к потере длительно хранимых данных даже в случае сбоя питания и т.д.
Базовые подсистемы ЗОСРВ «Нейтрино», Драйверы
devb-*, fs-*, mount, umount, io-blk.so, mkqnx6fs
Предыдущий раздел: Утилиты