11 марта 2014 г., 11:44 пользователь Slawa Olhovchenkov
<[email protected]> написал:
> On Tue, Mar 11, 2014 at 11:27:12AM +0200, Anton Sayetsky wrote:
>
>> 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к.
>
> блоков 100к не бывает. только степени 2.
А это тогда что?
jason@jnb:~$ cat typescript
Script started on Tue Mar 11 11:48:27 2014
jason@jnb:~$ dd if=/dev/random of=test.fil bs=100k count=1
1+0 records in
1+0 records out
102400 bytes transferred in 0.002707 secs (37827790 bytes/sec)
jason@jnb:~$ ll -i test.fil
4661 -rw-r--r-- 1 jason jason 102400 11 мар 11:48 test.fil
jason@jnb:~$ zdb -ddddddddd ezroot/home/jason 4661
Dataset ezroot/home/jason [ZPL], ID 59, cr_txg 13, 3.16G, 2786
objects, rootbp DVA[0]=<0:1243357000:1000> DVA[1]=<0:300ce6a000:1000>
[L0 DMU objset] fletcher4 lzjb LE contiguous unique double
size=800L/200P birth=206214L/206214P fill=2786
cksum=1cb499543f:8fdd5bda617:188f8992bb918:301ab58895acbf
Object lvl iblk dblk dsize lsize %full type
4661 1 16K 100K 100K 100K 100.00 ZFS plain file
(K=inherit) (Z=inherit)
168 bonus System attributes
dnode flags: USED_BYTES USERUSED_ACCOUNTED
dnode maxblkid: 0
path /test.fil
uid 1001
gid 1001
atime Tue Mar 11 11:48:46 2014
mtime Tue Mar 11 11:48:46 2014
ctime Tue Mar 11 11:48:46 2014
crtime Tue Mar 11 11:48:46 2014
gen 206213
mode 100644
size 102400
parent 4
links 1
pflags 40800000004
Indirect blocks:
0 L0 0:1243317000:19000 19000L/19000P F=1 B=206213/206213
segment [0000000000000000, 0000000000019000) size 100K
jason@jnb:~$ echo "ibase=16; 19000" | bc
102400
jason@jnb:~$ exit
Script done on Tue Mar 11 11:50:20 2014
jason@jnb:~$