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 

파일 크기는 바이트 단위로 표시됩니다. 이 파일은 블록 크기가 4096 바이트 인 xfs 파일 시스템에 저장됩니다.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)이 발생하지 않으면 블록에 둘 이상의 파일을 저장할 수 있다는 의미입니까? 또한, 파일과 동일한 블록에 저장되어있는 경우, inode 용으로 예약 된 256 바이트는 어디에서 파일 크기가 커야합니까 (256 + 7)?

답변

1

나머지 블록 (4096-7)이 발생하지 않으면 블록에 둘 이상의 파일을 저장할 수 있다는 의미입니까?

블록은 하나 이상의 파일을 포함 할 수 없습니다. 파일이 한 블록보다 크면 여러 블록이 사용됩니다.

XFS와 같은 최신 파일 시스템에는 "inline"이라는 기능이 있습니다.이 파일은 블록에 대한 포인터를 저장할 공간에서 inode에 저장할 수있는 크기가 충분히 작습니다 (60 바이트 이하).

여기서는 파일과 동일한 블록에 저장되어있는 경우 256 바이트의 inode가 예약되어 있으므로 파일 크기가 커야합니다 (256 + 7)?

아이 노드 정보는 아이 노드 테이블에 저장됩니다.

+0

XFS가 실제로 작은 파일을 아직 인라인한다고 생각하지 않습니다. http://xfs.org/index.php/Unfinished_work#Inline_data_in_inodes. reiserfs는 여러 개의 작은 파일을 같은 블록에 압축 할 수있는 옵션을 가지고있었습니다. 대부분의 파일 시스템에서 실제로 발생하는 것은 파일 크기가 FS 블록 크기의 배수가 아닌 경우 내부 조각화입니다 (http://en.wikipedia.org/wiki/Fragmentation_%28computing%29#Internal_fragmentation). –

+0

inode가 블록으로 묶여 있다고 말하는 것이 유용합니다. 어디서나 하나의 "inode 테이블"이 없습니다. 내가 이해할 때, inode 블록은 어디서나 할당 할 수 있습니다. (새로운 crc = 1 on-disk 형식에 대한 동기 중 하나 인 https://www.kernel.org/doc/Documentation/filesystems/xfs-self-describing-metadata.txt) –

3

파일 데이터는 파일 시스템 블록 크기 단위로 저장되며 현재 XFS의 여러 파일에서 블록 공유가 불가능합니다. 따라서 사용 된 디스크 공간은 항상 다음 블록 크기로 반올림 된 파일의 바이트 수입니다. 1 바이트 파일은 4K 블록 크기의 파일 시스템에서 4KB의 디스크 공간을 사용합니다.

inode 자체에는 크기, 타임 스탬프, 익스텐트 데이터 등과 같은 파일 메타 데이터가 포함되어 있으며 xfs에는 확장 된 속성 정보가 포함될 수도 있습니다.

디스크상의 inode는 파일 데이터 블록과 별개이며 사용 된 메타 데이터 양에 관계없이 256 바이트 inode가있는 파일 시스템에서 항상 256 바이트를 사용합니다. 추가 확장 영역 정보 또는 확장 된 속성 데이터를 저장하는 데 256 바이트 이상이 필요하면 추가 파일 시스템 블록 크기의 메타 데이터 블록이 할당됩니다.