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

Ответить