I/O 튜닝의 목적
파일 시스템은 모든 unix환경의 필수적인 요소로서 파일저장, 검색하는 메커니즘을 제공하며 복수의 파일들을 명명하는 계층적 디렉토리 구조를 제공한다.
• IO Tuning중 ufs file system을 통한 성능 향상에 목적을 둔다.
• Unix 시스템들은 모든 데이터들을 파일화 하는 핵심 기능을 가진다.
• file system의 IO Tuning은 시스템 전체에 성능상 큰 영향을 미친다.
• File system의 I/O 성능을 좋게 하기 위한 방법을 제시한다.
Vnode Interface란 무엇인가?
• 다양한 파일시스템에 대한 구조체 제공
• 여러 종류의 파일 시스템에 대하여 같은 시스템 호출 인터페이스 사용
• 서로 다른 파일 시스템이 하나의 계층적 논리적인 디렉토리 목록으로 사용 가능하도록 제공
• Vnode ( virtual node )는 하나의 파일을 나타냄
• 다수의 파일시스템을 동시에 제공
• 디스크 파티션마다 파일 시스템 타입이 다를 수 있다.
– 이들이 서로 마운트 된 후에는 단일 균질 파일 시스템으로 보여짐
• 네트워크 상에서 파일 공유를 지원한다.
• 새로운 파일 시스템 타입을 쉽게 생성 추가 가능하다.
UFS file system 소개
• unix에서 사용하는 disk-based file system
• 사용자나 시스템이 접근하는 파일이나 디렉토리를 저장
UFS File System Structure
• Ufs file system Structure
– Disk Label
– Boot Block
– Super block
– Backup Super block
– Cylinder groups
– I-node
– shadow i-node
– Data block
• Disk Label
– VTOC ( Volume Table of Contents ): 파티션정보
– Disk의 파티션 (슬라이스)식별 정보 등을 포함 : slice 경계, slice 크기
– Disk의 첫 번째 섹터에 존재
• Boot Block
– Bootblk program 저장
– 1-15 sector에 존재
• Superblock
– file system에 대한 정보를 저장
– 16~31 sector
– data block의 수
– cylinder group의 수
– data block크기와 fragment의 수
– mount point 이름
– file system 상태 플래그
• Cylinder Groups
– Backup Superblock, Cylinder Groups, inode테이블, data block으로 구성
• Backup Superblock
– super block의 backup
– Superblock이 깨질 경우 이를 복구하기 위해 사용되어진다.
– 각 cylinder group당 하나씩 존재
– 첫 번째 backup block는 32sector부터 시작
• 구성요소
– Backup super block
– Cylinder group block
– inode 의 수, cylinder group에서 data block의수, 디렉토리 수
– free block, free inode, free fragment, free block map
– 사용중인 inode map
– Inode table
– data block에 대한 위치 정보
– Data block
– data의 실제 저장소
– 8kbyte 단위
• Cylinder Group Block
– Inode, data block, cylinder group등에 대한 정보와 사용 가능한 자원, 사용되어진 자원 정보등을 요약 포함한다.
– disk 접근 속도 향상
– 최소 16개의 cylinder로 구성
• Inode tables
– File type
– Permission
– link count
– Owner
– Group
– Size
– time등의 정보를 포함한다.
• 128byte size
Structure of a ufs Inode
• Data Blocks
– Data 저장을 위한 공간
• Data block
– 실제 Data가 저장되는 곳
– 8Kbyte단위
• Fragmentation
• 8kbyte 크기의 블록은 아주 작은 파일들에 의하여 공간 낭비를 초래한다.
• ufs는 데이터 블럭을 잘게 나누어 할당할 수 있는데 이를 조각화(단편화 : fragment)라 한다.
• Fragment는 공간 절약을 위하여 사용된다.
• Fragment Rule
– 파일의 마지막 블록에서만 fragment
– 96Kbyte보다 큰 파일들은 fragment를 할 수 없다
– fragment는 블록 안에서 연속적이어야 한다.