Можно ли настроить ZFS, чтобы избежать использования ramdisk?
В следующем сценарии:
практически не будет дискового ввода-вывода. Дисковый ввод-вывод должен происходить, когда больше нет свободной оперативной памяти или когда кеш очищается явным образом (перед перезагрузкой / выключением) или данные в кеше достаточно старые (часы) - это нормально, если кеш будет очищаться время от времени, но не слишком часто ( раз в час нормально). Производительность важнее целостности данных.
Я мог бы использовать для этого ramdisk, но будет намного удобнее, если можно будет так настроить zfs.
Лучше использовать RAMdisk, поддержание его потребует немного дополнительных усилий, но борьба с ZFS столько, сколько вам нужно, чтобы заставить его сделать это, вероятно, потребует больше усилий.
Это в основном полностью противоречит тому, как ZFS хочет работать. ZFS сделает все возможное, чтобы ваши данные были в безопасности, а затем ускорит их обработку.
Если вы действительно хотите сделать это в ZFS, это было бы очень рискованно, и я понятия не имею, сработает ли это на самом деле. Вам нужно будет создать полностью отдельный Zpool, чтобы справиться с этим, и он, вероятно, полностью сломается очень быстро после того, как вы его внедрите. В основном вам нужно настроить ZFS для хранения огромных объемов грязных данных (находящихся только в кеше), и вы будете бороться с желанием ZFS сохранить эти данные надежными.
Вам придется повозиться с установкой безумно высокого лимита zfs_dirty_data_max и установить zfs_delay_min_dirty_percent на 100 для всего пула; закинуть на него тонну оперативной памяти; тщательно настройте очереди ввода-вывода для всех операций записи и количество операций записи, которые вы позволяете ей делать в определенное время.
Все это в основном разрушит желание ZFS быть уверенным, что ваши данные останутся в безопасности, что бы ни случилось. Вдобавок вы, вероятно, полностью упали бы в своей производительности, когда бы вы достигли этих пределов, и ZFS попыталась зафиксировать 100 ГБ буферизованных данных на диск за один раз, вместо того, чтобы делать много меньших операций записи по 100 МБ.
Если вы действительно хотите заставить его работать, взгляните на настраиваемые параметры в ZoL (которые, как я предполагаю, вы используете, а не Oracle / Solaris ZFS): http://fibrevillage.com/storage/171-zfs-on-linux-performance-tuning