JFS 와 JFS2 차이점
JFS2 는 AIX V4.3. 에서 소개되었던 JFS 의 upgrade version
JFS 와 JFS2 는 모두 AIX 에 기본적으로 탑재되어 있습니다. 다만 POWER system 에서는 JFS/JFS2 를 모두 사용할 수 있지만,
IA64 system 에서는 JFS2 만 사용할 수 있습니다.
JFS vs JFS2
Function | JFS2 | JFS |
---|---|---|
Fragments/Block Size | 512~4096 Block Size | 512~4096 Block Size |
Architectural Maximum File (만들 수 있는 최대 File Size) | 1PB(**1) | 64GB |
Architectural Maximum File System Size (만들 수 있는 최대 파일 시스템 Size) | 4PB | 1TB(**2) |
Maximum File Size Tested (최대 파일 크기 테스트) | 1TB | 64GB |
Maximum File System Size (최대 파일 시스템 크기) | 1TB | 1TB |
Number of Inodes (Inodes 수) | Dynamic, Limited by disk space | Fixed, set at file system creation |
Directory Organization (디렉토리 조직) | B-tree | Linear |
Compresssion (압축) | No | Yes |
Default Ownership at Creation(생성 시 기본 소유권) | root.system | sys.sys |
SGID of Default File Mode(기본 파일 모드 SGID) | SGID=off | SGID=on |
Quotas | No | Yes |
Available on IA64 Architecture(IA64 아키텍처에서 사용 가능) | Yes | No |
Available on POWER Architecture (POWER 아키텍처에서 사용 가능) | Yes | Yes |
(**1) PB (PetaBytes) = 1,048,576 GB
(**2) TB (TeraBytes) = 1,024 GB
cf) SGID = Linux SetUID 와 같은 기능
JFS2 의 대표적인 몇 가지 특징
- Extent based addressing structure ( 범위 기반 주소 지정 구조 )
- Dynamic disk inode allocation ( 동적 디스크 inode 할당 )
- Directory organization ( 디렉토리 조직 )
- On-line file system space defragmentation ( 온라인 파일 시스템 공간 조각 모음 )
- Variable block size ( 가변 블록 크기 )
JFS 와 JFS2 의 addressing 구조에 많은 차이가 있습니다.
JFS2 의 addressing structure 를 살펴보면, block allocation policy 가 변화하면서 좀 더 효율적이고, 확장성이 뛰어나면, compact 한 구조를 가지게 되있습니다.
특히 JFS2 에서는 더 이상 필요 없는 공간을 free 시켜서, 다른 공간에 할당하는 inode의 dynamic allocation 이 가능합니다.
기존의 JFS 는 file system 을 생성할 때 inode 가 고정되지만, JFS2 에서는 사용중인 file system 의 inode 를 변화시킬 수 있다.
또 현재 mount 되어 사용 중인 file system 을 defragmentation(조각 모음) 이 가능합니다.
File system 의 남은 공간을 다시 fragement 하면 I/O 가 그만큼 더 빨라질 수 있고, 공간 효율도 더 높일 수 있습니다.
이와 같은 이유로 JFS2 에서는 “Large File enabled System ( 큰 용량의 파일 허용 )” 이라는 옵션이 없어졌다. JFS2 에는 두 가지의 directory 구조를 사용합니다.
작은 directory 와 큰 directory 에 사용하는 directory 구조가 다른데, 큰 directory 구조에는 기존의 linear 가 아닌 B-tree 형태를 사용합니다.
이 B-tree 구조는 좀 더 빠른 operation(directory look up, delete, insert…) 이 가능합니다.
JFS2 가 512, 1024, 2048, 4096 byte 의 block size 를 지원하는 것은 JFS 와 같습니다. Block size 가 작으면, disk 사용률은 높아지는 대신에, fragment(조각모음)율이 높아져서 path(경로) 가 길어지고, block size 가 커지면, path 가 짧기 때문에 performance(작업)는 좋아지지만, 디스크 사용률은 약간 낮아집니다. 이 밖에도 performance 를 높이기 위해서 vnode cache 가 NFS 에 추가되고, File system cache 가 좀 더 확장된 면이 있습니다.