Назад | Перейти на главную страницу

Прямой ввод-вывод в Linux

Я пытаюсь включить прямой ввод-вывод на / opt (/ dev / sda6, ext4) в Linux Mint 13. Я пытаюсь:

mount -o dio,rw /dev/sda6 /opt

как корень.

Система отвечает:

mount: wrong fs type, bad option, bad superblock on /dev/hda2

dmesg сообщает:

EXT4-fs (sda6): Unrecognized mount option "dio" or missing value.

Я не могу понять, какой параметр установить для включения прямого ввода / вывода (и даже если для ext4 возможна установка с прямым вводом / выводом). Кроме того, если ext4 не должен поддерживать прямой ввод-вывод, может ли кто-нибудь указать файловую систему для использования в Linux, которая поддерживает?

ext4 не имеет dio вариант монтирования (я считаю, что в AIX и Solaris есть), но у него есть dioread_lock и dioread_nolock варианты крепления. Из mount(8) страница руководства:

dioread_lock / dioread_nolock

Определяет, следует ли ext4 использовать блокировку чтения DIO. Если указана опция dioread_nolock, ext4 выделит неинициализированный экстент перед записью в буфер и преобразует экстент в инициализированный после завершения ввода-вывода.

Этот подход позволяет коду ext4 избегать использования мьютекса inode, что улучшает масштабируемость в высокоскоростных хранилищах. Однако это не работает с журналированием данных, и параметр dioread_nolock будет проигнорирован с предупреждением ядра. Обратите внимание, что путь кода dioread_nolock используется только для файлов на основе экстентов. Из-за ограничений, содержащихся в этих параметрах, он по умолчанию отключен (например, dioread_lock).

Тем не менее, как уже упоминалось другими, прямой ввод-вывод обычно включается путем установки O_DIRECT флаг в open(2) системный вызов - т.е. он управляется приложением, а не параметром монтирования. O_DIRECT поддерживается ext4, если только вы используете data=journal вариант крепления (см. документация ext4 и это коммит).

Для InnoDB я знаю innodb_flush_method параметр может использоваться для включения O_DIRECT, но мне неизвестна подобная настройка для MyISAM?