11 марта 2014 г., 11:27 пользователь Anton Sayetsky <[email protected]>написал:
> 11 марта 2014 г., 10:25 пользователь Alexander Yerenkow > <[email protected]> написал: > > > > > > > > > >> Тут всё правильно - меньше 12к не получится с учётом ashift. > >> И если создать файл размером в 100к - то он у меня 100к и занимает. > > > > Занимает файл или его блок? > > > >> Так что теперь мне непонятно, почему при записи файла размером 484к я > >> получаю 4*128, а не 3*128+100 > > Эмм, так вроде ж ты в начальных условиях указал что "имеем dataset c > > recordsize=128k", плюс у тебя выполняется условие что файл уже состоит из > > нескольких блоков, дальше он (судя по инфе что я читал) будет дополняться > > именно кусками в recordsize. > > Ну и плюс чексум считается именно по всему блоку, если мы не знаем что > там > > было до нас, то надо туда писать весь блок, включая padding zeroes (или > как > > оно у них там). > > > > Примерно то что ты спрашивал, или я не уловил суть? > Пишу файл 9.5к - занимает 12к. > Пишу файл 100к - занимает 100к. > Пишу файл 484к - занимает 512, а не 484к. > Я ж вроде указал вывод zdb. :) Я не понял, почему для файла размером > 484к последний блок - 128, а не 100к. > Потому что это не первый блок, а N-ный ( N > 1), для этих файлов ZFS считает что это уже в некоторой степени large file, и пишет блоками по recordsize. -- Regards, Alexander Yerenkow
