설치 환경 : CentOS 6.x 64bit
1. 리눅스 ext4 16TB 이상 파일시스템
파일시스템이 ext4 로 구성된 리눅스 서버가 있다. 현재 이 서버는 파일서버로 운영되고있으며, 3T*8 disk 를 raid5 로 구성되어있는 상태다.

결론적으로 16TB 이상을 사용한다는 얘기인데, 리눅스에서 파일시스템이 ext4 는 16TB 이상은 생성되지 않는다. 이유는 blocksize 값이 맞지 않기 때문이다.
어떻게 하면 리눅스서버 에서 16테라를 사용할수 있을까?
2. 리눅스 ext4 16TB 파일시스템 만들기
현재 설치된 os 정보를 잠시 확인 해 본다.
OS : Centos 6.5 64bit
parted /dev/sdb(parted) mklabel gpt(parted) mkpartpartition name [primary]?File system type? [ext2]?Start? 0End? 21TB(parted)q
이렇게 parted 툴을 이용해서 라벨을 GPT 로 구성하였지만 아래와 같은 에러를 확인할 수 있다.
mkfs.ext4 -L /data -i 8192 /dev/sdb1mkfs.ext4: Size of device /dev/sdb1 too big to be expressed in 32 bits using a blocksize of 4096.
vi /etc/mke2fs.conf
[defaults]base_features = sparse_super,filetype,resize_inode,dir_index,ext_attrblocksize = 4096inode_size = 256inode_ratio = 16384[fs_types]ext3 = {features = has_journal}ext4 = {features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isizeauto_64-bit_support = 1 inode_size = 256}ext4dev = {features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isizeinode_size = 256options = test_fs=1}small = {blocksize = 1024inode_size = 128inode_ratio = 4096}floppy = {blocksize = 1024inode_size = 128inode_ratio = 8192}news = {inode_ratio = 4096}largefile = {inode_ratio = 1048576blocksize = -1}largefile4 = {inode_ratio = 4194304blocksize = -1}hurd = {blocksize = 4096inode_size = 128}
위 설정 값 중에서 ext4 부분에 auto_64-bit_support = 1 옵션을 설정해줘야 리눅스 ext4 16테라 이상을 설정할 수 있다.
3. e2fsprogs 설치하기
다운로드는 아래 url 를 참고하면 되겠습니다.
https://sourceforge.net/projects/e2fsprogs/files/latest/download
./configure && make && make install
mkfs.ext4 -L /data -i 8192 /dev/sdb1
성공이다.
e2fsprogs를 설치전에는 mkfs.ext4 명령어로 파일시스템이 생성이 안되는걸 확인하였다. 아이노드 옵션을 제거해도 설치가 되지 않았으며, -b 옵션으로 block size 를 눌리면 생성이 되긴 하는데, 최소 블럭이 커지는거에 대한 부담감으로 인해서 제외했다.