[О блоге] [наверх] [пред] [2020-01-08 15:50:11+03:00] [1c64cce5d29d8bfff067f5f873af3024971b979c]
Темы: [zfs]

Посмотрел как собирается сервер зеркало Debian-а Дмитрием Бачилой

http://16-bits.ru/allunix-desktop-linux/
Дмитрий всё делает в общем-то правильно, претензий нет. Но включу зануду
касательно работы с ZFS-ом:

* во время загрузки у Дмитрия действительно вываливались SATA ошибки и
  всё же нужно проверить каждый диск всё ли с ним в порядке. Возможно с
  диском проблемы, скорее всего с питанием или SATA-кабелем (90% всех
  проблем из-за контактов/кабелей). Но для видео, думаю, это было бы
  излишне и не интересно
* я не очень понимаю почему сама система поставлена на UFS2, а не на
  ZFS, с которым без проблем FreeBSD может загрузиться (ну, ok, с
  ограничениями на ряд фич включённых). Как минимум это дико удобно для
  администрирования и создания backup-ов
* в свете последних мною узнанных особенностей, приходится
  самостоятельно для простых SATA дисков делать хаки
  (2a6f0070761d6b8831998a5150cf31e39d7f4be0) чтобы заставить pool
  использовать 4K секторы. А диски тут не то что обычные SATA, но даже
  вот с заранее созданной NTFS. У Дмитрия я уверен что создались 512B
  секторы, что не очень хорошо будет для производительности
* сам я не сталкивался, но, много говорят, что могут возникнуть проблемы
  если диски "переименуются" и ZFS может не найти их все, при сборке
  pool-а после перезагрузки. Поэтому рекомендуется создавать pool поверх
  чего-то более стабильного чем пронумерованные диски. Использовать
  diskid/SERIAL, использовать glabel (label/LABEL) или GPT (gpt/LABEL)
  GPT в довесок автоматом можно использовать и для выравнивания раздела
  по 4K границам. Да и просто как-то приятнее видеть *хотя бы* серийные
  номера дисков в zpool list, а не просто голые ada0/1/2. А ещё я слышал
  люди GPT разделы делают например на 1 GB поменьше, чтобы, при вставке
  совершенно других дисков, немного несовпадающие размеры (ведь никто же
  ровно терабайты эти не делает?) не означали бы невозможность
  подсоединения диска к pool-у. А ещё GPT полезны когда захочется
  использовать ZFS для основной системы и выделить отдельную партицию
  для swap-а, который вряд ли захочется менять по размерам когда-либо
* после/при создании pool-а для зеркала я бы однозначно включал:
  * atime=off (тупо экономия IOPS-ов на вряд ли нужные atime)
  * recordsize=1M (для хранения Debian пакетов оно в самый раз -- просто
    класть линейным куском и не думать, так будет меньше фрагментация и
    меньше IOPS отжирать, плюс линейное размещение блока)
  * compression=lz4 (компрессия нужна, как минимум, для удаления нулевых
    блоков, да и вообще не помешает LZ4, который быстро fallback делает
    если данные не сжимаются. Как правило, ситуаций когда компрессия LZ4
    может навредить нету)
  * checksum=skein (лично я бы не хотел не криптографические хэши.
    SHA256 вариант, но Skein или SHA512 будут быстрее. Теоретически,
    если захочется дедупликации, то криптохэши придётся включить в любом
    случае)

    [оставить комментарий]