2014-11-06 2 views
3
ll /srv/node/dcodxx/test.sh 
-rw-r--r--. 1 root root 7 Nov 5 11:18 /srv/node/dcodxx/test.sh 

Размер файла указывается в байтах. Этот файл хранится в файловой системе xfs с размером блока 4096 байт.Размер файла Xfs, размер и размер блока inode

xfs_info /srv/node/sdaxx/ 
meta-data=/dev/sda    isize=256 agcount=32, agsize=7630958 blks 
     =      sectsz=4096 attr=2, projid32bit=0 
data  =      bsize=4096 blocks=244190646, imaxpct=25 
     =      sunit=0  swidth=0 blks 
naming =version 2    bsize=4096 ascii-ci=0 
log  =internal    bsize=4096 blocks=119233, version=2 
     =      sectsz=4096 sunit=1 blks, lazy-count=1 
realtime =none     extsz=4096 blocks=0, rtextents=0 

Означает ли это, что блок может содержать более одного файла, если не то, что происходит с остальными байтами (4096-7)? Кроме того, где 256 байтов, зарезервированных для хранения inode, если он хранится в том же блоке, что и файл, размер файла не должен быть больше (256 + 7)?

ответ

1

Означает ли это, что блок может содержать более одного файла, если не то, что происходит с остальными байтами (4096-7)?

Блок не может содержать более одного файла. Если файл больше одного блока, используются несколько блоков.

Современные файловые системы, такие как XFS, имеют функциональность под названием «inline», где файлы, достаточно маленькие (не более 60 байт), могут быть сохранены в inode в пространстве, предназначенном для хранения указателей на блоки.

где 256 байтов, зарезервированных для хранения inode, если он хранится в том же блоке, что и файл, размер файла не должен быть больше (256 + 7)?

Информация об Inode хранится в таблице inode.

+0

Я не думаю, что XFS на самом деле строит небольшие файлы. http://xfs.org/index.php/Unfinished_work#Inline_data_in_inodes. у reiserfs была возможность упаковать несколько небольших файлов в один и тот же блок. То, что на самом деле происходит в большинстве файловых систем, - это внутренняя фрагментация (http://en.wikipedia.org/wiki/Fragmentation_%28computing%29#Internal_fragmentation) (если размер файла не является кратным размеру блока FS.) –

+0

Это также было бы больше полезно сказать, что иноды упакованы вместе в блоки. В любом месте нет таблицы «inode». Блок ядов может быть выделен в любом месте, как я понимаю. (Часть мотивации для нового crc = 1 на диске. Https://www.kernel.org/doc/Documentation/filesystems/xfs-self-describing-metadata.txt) –

3

Данные файла хранятся в единицах размера блока файловой системы, и в настоящее время не существует разделения блоков между несколькими файлами в XFS. Таким образом, используемое дисковое пространство всегда представляет собой количество байтов в файле, округленное до следующего размера блока. 1-байтовый файл будет потреблять 4k дискового пространства в файловой системе размера блока размером 4k.

Сам дескриптор содержит метаданные файлов, такие как размер, временные метки, данные о масштабах и т. Д., А на xfs также может содержать расширенную информацию об атрибутах.

Внутренний индекс на диске отделен от блоков данных файла и всегда будет потреблять 256 байтов в файловой системе с 256-байтовыми инодами независимо от количества используемых метаданных. Если для хранения дополнительной информации об объеме или расширенных данных атрибутов требуется более 256 байт, будут выделены дополнительные блоки метаданных размером в файловой системе.

Смежные вопросы