16.04.2013 13:45, Alexey Markov:
Hello, Volodymyr!
On April, 16 2013 at 14:16 you wrote to Alexey Markov:

VK> AFAIK текущий размер блока выбирается один раз при создании файла
VK> согласно установкам текущей файловой системы. Об этом косвенно
VK> свидетельствуют гайды по оптимизации баз данных (MySQL/PostgreSQL) в
VK> которых чётко прописано что раздел с базой нужно пересоздать иначе вне
VK> зависимости от размера транзакции ZFS будет читать и писать на диск
VK> полные блоки.

Не совсем так. При создании ФС указывается параметр volblocksize, который
определяет размер блока, записываемого "за раз" на диск. Его действительно
стараются выбирать совпадающим с типичным блоком данных (4К для раздела со
свопом, 8К для MyISAM, 16К для InnoDB). И есть ещё размер блока на самой
ФС,
размер которого может меняться от 512 байт до 128 килобайт.

volblocksize определяет размер блока для vdev а не для обычных файловых систем, я имел в виду recordsize.

Например, файл на ZFS может занимать 3 блока по 128 К и один блок в 512
байт.

Если честно здесь для меня самого тёмное место. Мне кажется вполне логичным что он будет так _занимать_ место, а при выделении места система будет просто виртуально делить весь файл на блоки по {recordsize}K и обрабатывать соответственно. Т.е. неполные/сжатые/дырявые блоки будут на диске занимать меньше места и храниться будут в блоках меньшего размера.

--
Sphinx of black quartz, judge my vow.

Ответить