Поведение RAM-диска как ZFS

Можно ли настроить ZFS, чтобы избежать использования виртуального диска?

В следующем сценарии:

  • создать большой файл (например, 100 ГБ) или много маленьких файлов (свободной оперативной памяти намного больше, чем общий размер файла (ов))
  • удалите этот файл

он будет почти без ввода-вывода диска. Дисковый ввод-вывод должен происходить, когда больше нет свободной оперативной памяти или когда кеш очищается явно (до перезагрузки / выключения) или данные в кеше достаточно старые (часы) - это нормально, если кеш будет очищаться время от времени, но не слишком часто ( раз в час нормально). Производительность важнее целостности данных.

Я мог бы использовать для этого ramdisk, но будет гораздо удобнее, если можно будет настроить zfs таким образом.

1
задан 14 November 2017 в 17:28
1 ответ

Лучше использовать 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

2
ответ дан 3 December 2019 в 20:17

Теги

Похожие вопросы