Короткий ответ:

Короткий ответ:

Я читал в интернете много противоречивых заявлений о ZFS на системах с небольшим объемом памяти, но большинство вариантов использования были связаны с производительным хранением данных.

Я хочу использовать ZFS не из соображений производительности, а потому, что она поддерживает прозрачное сжатие и дедупликацию (последнее может быть необязательным) и все еще кажется более зрелой, чем BTRFS. Я не хочу использовать какую-либо конфигурацию RAID.

Я хочу использовать его на ноутбуке, для корневой и домашней файловой системы, а дисковое пространство и безопасность данных (возможность восстановления после отключения питания или других случайных несоответствий, очень низкий риск повреждения из-за низкого объема оперативной памяти и т. д.) важнее производительности диска. Я хочу сравнимую безопасность с ext2/3/4.

Я хотел бы использовать ext4 поверх ZVOL.

Итак, вопросы:

  • Можно ли настроить ZFS для работы?надежнос «малым объемом оперативной памяти», если производительность ввода-вывода/кэширование не имеет значения, и функциональность RAID не требуется?
  • Как изменится необходимый объем оперативной памяти, если я не использую ZFS как файловую систему, а просто использую ZVOL, поверх которых размещаю другую файловую систему?
  • Как меняется потребность в оперативной памяти при включенной дедупликации? Если дедупликация включена, а оперативной памяти становится мало, безопасно ли это — может ли ZFS просто приостановить дедупликацию и использовать меньше оперативной памяти?
  • Можно ли отключить автоматическую дедупликацию, но время от времени запускать ее вручную?
  • Может ли ext4 поверх ZVOL надежно хранить мои данные даже в ситуациях с нехваткой оперативной памяти, и если возникают несоответствия, шансы на успех исправления высоки (как и в случае с ext2/3/4)? Увеличивает ли ext4 поверх ZVOL надежность, поскольку она добавляет надежности ext4, или данные так же надежны, как и базовый ZVOL?

Характеристики системы:

  • Линукс
  • 8 ГиБ оперативной памяти (совместно с видеокартой), но большая ее часть (не менее 7 ГиБ) должна быть доступна для программного обеспечения пользовательского пространства,
  • около 700 ГиБ SSD-накопителя для использования ZFS,
  • возможно, на другой системе 128 ГиБ eMMC для использования под ZFS.
  • Текущее использование диска ( du -shбольших каталогов по адресу /) (/ — это ext4, /var, смонтированный поверх, — это reiserfs) (хотим переместить его в хранилище с прозрачным сжатием):

    74M     /etc
    342G    /home
    5.0G    /opt
    1.5G    /root
    261M    /tmp
    35G     /usr
    30G     /var
    

ИЛИ просто использовать BTRFS (читал, что из-за «ошибок» может произойти серьезная/трудно поддающаяся восстановлению потеря данных, но это все спорно...)?

решение1

Короткий ответ:

  • Да, возможно успешно использовать небольшой объем оперативной памяти (~ 1 ГБ) с ZFS.
  • Не следует использовать дедупликацию, но RAID и сжатие обычно вполне приемлемы.
  • После включения дублирования оно будет применяться ко всем вновь записанным данным, и избавиться от него будет непросто.
  • Вы не можете включить обратную дедупликацию, поскольку она работает только с онлайн-данными.
  • Ваша идея неоправданно сложна без всякой на то причины, поэтому я бы рекомендовал просто использовать ZFS и на этом закончить.

Длинный ответ:

Можно ли настроить ZFS для надежной работы с «малым объемом оперативной памяти», если производительность ввода-вывода/кэширование не имеет значения и функциональность RAID не требуется?

Да, даже с включенными функциями RAID. Вам нужно гораздо меньше, чем люди утверждают в сети, например, посмотрите на этого парня, который управляет быстрым файловым сервером с FreeBSD, 2 ядрами и768 МБвиртуализировано. Или взгляните на SolarisInternals Guide (в настоящее время доступно только через archive.org), где 512 МБ упоминаются как абсолютный минимум, 1 ГБ как минимальная рекомендация и 2 ГБ как полная рекомендация.

Я бы все же воздержался от дедупликации. Не потому, что она медленная из-за страничной памяти, а потому, что вы не сможете вернуться к недедупликации, если ваша система зависнет. Кроме того, это обмен между оперативной памятью и дисками, а в бюджетной системе у вас нет ни того, ни другого, так что вы не выиграете много.

Как изменится необходимый объем оперативной памяти, если я не использую ZFS как файловую систему, а просто использую ZVOL, поверх которых размещаю другую файловую систему?

Вам понадобится дополнительная память для второй файловой системы и для уровня выше ZFS, в зависимости от того, как вы планируете к ней обращаться (виртуализация типа KVM, FUSE, iSCSI и т. д.)

Как меняется потребность в оперативной памяти при включенной дедупликации? Если дедупликация включена, а оперативной памяти становится мало, безопасно ли это — может ли ZFS просто приостановить дедупликацию и использовать меньше оперативной памяти?

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

Можно ли отключить автоматическую дедупликацию, но время от времени запускать ее вручную?

Нет, потому что это не влияет на данные в состоянии покоя. Если у вас включена дедупликация и вы хотите записать блок, ZFS проверяет, присутствует ли он в таблице дедупликации. Если да, то запись отменяется, и в таблицу дедупликации добавляется ссылка. Если нет, то она записывается, и добавляется первая ссылка. Это означает, что ваши старые данные не затронуты дедупликацией, и включение ее без записи нового блока ничего не делает относительно используемого размера старых данных.

Может ли ext4 поверх ZVOL надежно хранить мои данные даже в ситуациях с нехваткой оперативной памяти, и если возникают несоответствия, шансы на успех исправления высоки (как и в случае с ext2/3/4)? Увеличивает ли ext4 поверх ZVOL надежность, поскольку она добавляет надежности ext4, или данные так же надежны, как и базовый ZVOL?

На мой взгляд, это излишнее усложнение, поскольку вы не получите никаких новых функций (как в обратном случае с ext4 внизу и ZFS сверху, например, моментальные снимки), а кроме того, получите некоторые новые обязанности, например, fsckбольше fdiskупражнений по форматированию.

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

решение2

user121391 проделал большую работу, предоставив вам полезную информацию, поэтому я коснусь только ваших проблем с памятью.

Что касается памяти, да, ZFS может быть пожирателем памяти. Он будет использовать свободную системную память для кэширования. За эти годы Sun, теперь Oracle, улучшили производительность, надежность и улучшили использование памяти. Вы можете проверить сайт ZFS internals/evil tuning guide илиблог ZFSдля конкретики. Однако большинство этих настроек и функций можно найти только в версии Solaris 11.x ZFS.

Если вы действительно беспокоитесь о памяти, вам не следует использовать дедупликацию, так как она требует значительного объема памяти, поскольку дедупликация выполняется в реальном времени и должна хранить таблицу дедупликации в памяти.

Связанный контент