e2fsprogs 설치 리눅스 ext4 16TB 이상 파일시스템 만들기

설치 환경 : 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) mkpart
partition name [primary]?
File system type? [ext2]?
Start? 0
End? 21TB
(parted)q

이렇게 parted 툴을 이용해서 라벨을 GPT 로 구성하였지만 아래와 같은 에러를 확인할 수 있다.

mkfs.ext4 -L /data -i 8192 /dev/sdb1
mkfs.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_attr
blocksize = 4096
inode_size = 256
inode_ratio = 16384
[fs_types]
ext3 = {
features = has_journal
}
ext4 = {
features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
auto_64-bit_support = 1
inode_size = 256
}
ext4dev = {
features = has_journal,extent,huge_file,flex_bg,uninit_bg,dir_nlink,extra_isize
inode_size = 256
options = test_fs=1
}
small = {
blocksize = 1024
inode_size = 128
inode_ratio = 4096
}
floppy = {
blocksize = 1024
inode_size = 128
inode_ratio = 8192
}
news = {
inode_ratio = 4096
}
largefile = {
inode_ratio = 1048576
blocksize = -1
}
largefile4 = {
inode_ratio = 4194304
blocksize = -1
}
hurd = {
blocksize = 4096
inode_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 를 눌리면 생성이 되긴 하는데, 최소 블럭이 커지는거에 대한 부담감으로 인해서 제외했다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다