From: Sergey Matveev Date: Sun, 26 Sep 2021 11:01:18 +0000 (+0300) Subject: Данные в символических ссылках на ZFS X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=ce77c1a4e9eda67679c6c8d1ccd7bfc44020d3e8;p=stargrave-blog.git Данные в символических ссылках на ZFS Для GoCheese решил попробовать хранить контрольные суммы не в виде содержимого файлов, а в виде символических ссылок, где будет например Base64 (494ba450b1c38f4008afdef83dd7043ea5f1ef95). Сконвертировал весь PyPI state, увидел что размер dataset-а стал только больше. Пошёл ковыряться в zdb -- впервые его использовал для настоящей задачи выяснения что же реально сохранилось на диске (прежде им только смотрел ashift). В общем, небольшого размера данные и так умещаются внутрь dnode-ы в виде EMBEDDED indirect блока. А содержимое символической ссылки в ZAP структуре. Но 32-байта займут меньше места чем их кодированное представление, поэтому и размеры dnode, судя по всему (или ZAP overhead? не думаю) меньше и данные в символических ссылках тут только вредят. Где-то мельком видел что до 60 байт символические ссылки на ext4 хранятся прямо в inode. В UFS тоже встраиваются, если небольшого размера, в inode. Но на ZFS во всём этом смысла нет. ---