Ответы пользователя по тегу ZFS
  • Можно ли ускорить запись на ZFS через кэш?

    @mezhuev
    Системный администратор
    Но я не смог найти инфу про ускорение записи через какой-нибудь дешёвый SSD. Так возможно ли это?

    Краткий ответ: с использованием SSD невозможно, ставьте CMR-диски.

    Фактическое поведение ZFS зависит от режима записи: синхронный или асинхронный.

    В асинхронном режиме (режим по умолчанию или при sync=disabled) запись происходит группами транзакций (txg) с периодичностью, стремящейся к значению zfs_txg_timeout — это и есть кэш записи ZFS, доступный из коробки и единственно возможный. Значение по умолчанию 5 секунд, фактическое время зависит от множества факторов и может быть как меньше, так и больше. На свой страх и риск можно поиграться с параметрами, влияющими на данное поведение, но физику не обманешь и вы всё равно довольно быстро упрётесь в фактическую производительность дисков.

    В синхронном режиме (если приложение явно запрашивает синхронную запись или при sync=always), данные аналогично помещаются в память, но запись не будут подтверждена пока не завершиться запись в ZFS Intent Log (ZIL), который является частью пула. После этого данные в рамках очередной txg записываются на диск (да, ещё раз) уже на своё постоянное место. Можно снизить нагрузку на диски добавив SLOG на базе SSD (желательно двух и в mirror, так как эти данные важны в случае сбоя). Но это не кэш записи, а способ немного увеличить производительность записи при некоторых сценариях. Ещё на синхронную запись и работу с ZIL влияет logbias.

    Можно было бы подумать, что при использовании sync=always и отдельном SLOG мы заставим все данные писаться сначала на SSD и тем самым получим кэш записи, но нет. При нормальном режиме работы данные из ZIL, где бы он не находился, никогда не читаются, так как они есть в оперативной памяти. ZIL используется только для восстановления после сбоев.
    Ответ написан
    Комментировать
  • Как проще всего сделать резервный образ системы на ZFS?

    @mezhuev
    Системный администратор
    Проще всего на случай отката при неудачном обновлении сделать снапшот:
    zfs snapshot -r rpool@backup

    Для резервного копирования всей ФС существуют zfs send/zfs receive. Потребуется другой ZFS-пул для приёма (теоретически можно и в файл, но не могу рекомендовать из-за риска потери данных). Плюс все другие «стандартные» возможности резервного копирования никто не запрещает применять.
    Ответ написан
    7 комментариев
  • Совместимость реализаций ZFS?

    @mezhuev
    Системный администратор
    FreeBSD перешла на OpenZFS с версии 13.0. В целом же различные реализации ZFS совместимы между собой при условии, что у пула список активированных Feature Flags поддерживается всеми системами, где его планируется использовать.
    Ответ написан
    Комментировать
  • Как организовать два дисковых массива на двух дисках raid1 + raid0? и как это скажется на работе?

    @mezhuev
    Системный администратор
    zfs (пока планирую использовать его, озу добавлю, ecc есть) или чем-то еще со встроенной дедупликацией

    С дедупликацией ZFS надо быть осторожней. На первый взгляд она классная, но есть нюансы:
    1. Требование к оперативной памяти прямо пропорционально объёму хранимых дедуплицированных данных. Примерно 5 ГБ памяти на 1 ТБ данных.
    2. Даже если отключить дедупликпцию, ОЗУ будет продолжать использоваться пока вы не удалите весь пул.
    3. Скорость работы с таким пулом может разочаровать. В общем случае дешевле и проще добавить ещё дисков.

    организовать на одном диске зеркальный массив для ценной информации плюс все остальное место для всякого мусора в raid0.

    В ZFS можно использовать в качестве vdev не только физические диски, но и логические разделы и даже файлы (но файлы лучше не надо). Так что такая конфигурация вполне возможна. Будет два пула:
    zpool create mirroring-pool mirror sda1 sdb1
    zpool create striping-pool sda2 sdb2

    Черевато ли такая разметка диска чем-то еще?

    Пока хватает IOPS и скорости разницы не будет.
    Ответ написан
    2 комментария
  • Использовать всё пространство в raid-z на дисках разной ёмкости?

    @mezhuev
    Системный администратор
    Хочется собрать raid-z1 из 4-х дисков задействовав "малышей" по 500гб, а позднее апгрейднуть все диски до 3тб.

    Делайте. Это вполне штатный вариант. Впоследствии сделаете zpool set autoexpand=on <pool> и через zpool replace <pool> <device> [new-device] произведёте замену дисков. После замены последнего диска пул автоматически расширится до нового объёма.

    остальные 2,5тб на каждом диске временно либо без raid использовать, либо в зеркале

    Вам никто не может запретить стрелять себе в ногу. Делая так, вы должны отдавать себе отчёт, что создаёте повышенную нагрузку на эти два диска со всеми вытекающими.
    Ответ написан
    Комментировать
  • Можно ли зеркалировать пул ZFS из 4 дисков одним?

    @mezhuev
    Системный администратор
    zpool attach [-f] pool device new_device

    Attaches new_device to an existing zpool device. The existing device
    cannot be part of a raidz configuration.
    If device is not currently
    part of a mirrored configuration, device automatically transforms
    into a two-way mirror of device and new_device. If device is part of
    a two-way mirror, attaching new_device creates a three-way mirror,
    and so on. In either case, new_device begins to resilver immediately.

    -f Forces use of new_device, even if its appears to be in use.
    Not all devices can be overridden in this manner.
    Ответ написан
    3 комментария