Ответы пользователя по тегу NAS
  • Можно ли ускорить запись на 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 используется только для восстановления после сбоев.
    Ответ написан
    Комментировать
  • Использовать всё пространство в raid-z на дисках разной ёмкости?

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

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

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

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