2016년 12월 5일 월요일

16TB 이상 Disk 설정 하는 방법

ㅇ ㅂㅇ

Linux에서 16TB 이상 Disk 설정 하는 방법

1. mke2fs.conf 내용 수정

vi /etc/mke2fs.conf  하단 그림과 같이 한 줄 씩 추가

inode_ratio = 65536


auto_64-bit_support = 1  


이미지에서는 ext4에만 추가 했으나, 사용할 파일시스템 타입에 맞춰 추가 해야함

2. yum으로 필요한 것들 설치

yum -y install gcc
yum -y install kernel-devel
yum -y install zlib-devel
yum -y install openssl-devel
yum -y install perl
yum -y install expat-devel
yum -y install gettext-devel
yum -y install autoconf
yum -y install curl

3. 압출 파일 다운 후 설치

wget http://codemonkey.org.uk/projects/git-snapshots/git/git-latest.tar.xz
tar xvf git-xxxxx
압축풀린 폴더로 이동
autoconf
./configure with-curl=/usr/local
make
make install

git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
cd e2fsprogs
mkdir build; cd build/
../configure
make
make install

4. 이후 mkfs.ext4로 포맷후 마운트 
mkfs.ext4 /dev/sdb1



파일시스템 정보 저장 파일(/etc/fstab)에 대해

ㅇ ㅂㅇ

파일 시스템 정보를 저장하는 /etc/fstab에 대해 알아 보자

> 구성
 - fstab은 파일 시스템의 정보를 저장하는 파일로 mount는 재부팅 시 초기화 되는 데 그것을 원하는 것들만 영구적으로 mount 시키기 위해 사용하며, 해당 파일에 정의 된 정보가 잘못된 경우 부팅시 에러가 발생한다.
  >> 보통 서버단에서의 문제는 Disk Fail 같은 문제가 발생시 fstab에 정의된 파일시스템 정보를 확인하다 error가 발생하여 부팅이 되지 않게 된다. 이 때 fstab의 내용을 수정해주어야 하는 데 로그인이 가능하여 로그인 후 vi 명령어로 수정하려고 할 때, 수정이 안되는 상황(부팅시 파일들이 read only 상태)이 발생하는 경우가 있다 이 때 " mount -o remount,rw / "명령어를 실행하여 파일을 Read&Write 가능 상태로 변환하여 fstab을 수정하여 재부팅하면 정상 부팅이 된다.
  ㄴ Disk Fail이 확인 되었을 경우 Dell 장비를 제외한 보통 장비들은 fstab의 Fail Disk의 파일시스템 정의 부분을 주석처리 한 뒤 재부팅을 해서 교체해야 함

[파일시스템장치명] [마운트포인트(디렉토리)] [파일시스템종류] [옵션] [Dump관련설정] [파일점검옵션]

#cat /etc/fstab
UUID=46b428be-a4d0-48da-9a8d-7a26b9023869 /                       ext4    defaults        1 1
/dev/sdb1        /kangkoon1                 ext4    defaults        1 2
/dev/sdc1        /kangkoon2                 ext4    defaults        1 2
/dev/sdd1        /kangkoon3                 ext4    defaults        1 2
/dev/sde1        /kangkoon4                 ext4    defaults        1 2
/dev/sdf1        /kangkoon5                 ext4    defaults        1 2
/dev/sdg1        /kangkoon6                 ext4    defaults        1 2
/dev/sdh1        /kangkoon7                 ext4    defaults        1 2
UUID=f1335123-5d3f-40cf-b10d-1eb432382f0a swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
----------------------------------------------------------------------------------------------------------------------
#cat /etc/fstab
UUID=46b428be-a4d0-48da-9a8d-7a26b9023869 /                       ext4    defaults        1 1
UUID=1abf40a7-c90f-42a2-aa74-3d60ce489d08 /boot                   ext4    defaults        1 2
UUID=f1335123-5d3f-40cf-b10d-1eb432382f0a swap                    swap    defaults        0 0
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0

 위에 두가지의 view가 있는 데파일시스템장치명(or Label)으로 정의한 경우와 UUID를 통한 정의 두가지가 있다. 각각 장단점이 있지만, 기본 리눅스 설치시 두번째 그림과 같은 상태로 존재하며 첫번째 그림과 같은 경우 Disk Fail의 발생시, 부팅 과정에서 파일시스템을 체크하는 중에 매칭이 되지 않아 부팅이 되지 않게 된다. 파일 시스템 확인 과정에서 Fail Disk를 확인 초기에 설정시 mkfs(make file system) 과정에서 mkfs.ext4 -L /kangkoon /dev/sdd1 (파일시스템 타입 Label 명칭 파일시스템장치명) 또는 e2label /dev/sdd1 /kangkoon (파일시스템장치명 Label 명칭) 과정을 통해 Label을 지정 할 수 있으며, 또는 blkid 명령어로 UUID를 확인 후 해당 UUID로 변경하여 적용 할 수 있다.
 ㄴ 정리 하자면, 파일시스템장치명(or Label) 적용 방식은 Disk Fail 시  해당 Disk를 인식하지 못해 (예를 들면, /dev/sdb1이 fail인 경우 파일시스템 체크 Error 발생 위치가 달라지는 데, /dev/sdb1 부분에서 Error가 발생하거나, 혹은 /dev/sdc1 부터 /dev/sdh1 까지 모두 Error로 인식하는 상태가 발생하거나, 한 단계씩 밀려 정상 인식을 계속 하다가 /dev/sdh1에서 파일시스템체크에 Error가 발생하는 경우가 발생) 한 단계씩 밀려 정상인 장치를 Error로 인식할 가능성이 있음
하지만 UUID를 사용하는 경우 고유한 식별자인 UUID를 이용하여 장치를 구분하여 매칭하기 때문에 정확한 파일시스템 체크를 통해 확실히 고장난 Disk가 무엇인지 확인 할 수 있다.

[파일시스템장치명]
 - 파티션의 위치로 fdisk -l 명령어로 확인 가능, Label 사용 및 UUID를 지정하여 사용 가능
[마운트포인트(디렉토리)]
 - 파티션이 연결될 디렉토리를 지정
[파일시스템종류]
 - 파티션의 파일시스템의 종류를 정의(mkfs 명령어로 정의한 것을 써주어야 함)
[마운트옵션]
 - 파일시스템에 맞게 사용되는 옵션을 설정
[Dump관련설정]
 - 덤프(백업)가 되어야 하는 지 설정
[파일점검옵션]
 - fsck에 의한 파일시스템 체크(무결성 검사) 우선 순위를 정함

 fstab 작성 후 mount -a 명령어를 이용하여 fstab에 정의한 것들을 모두 mount 할 수 있다.

> 옵션
 - 3개의 항목은 옵션이 따로 없지만 4,5,6번 항목은 옵션이 지정 할 수 있음
네번째 항목
 default - rw, nouser, auto, exec, suid 속성을 모두 설정
 auto - 부팅시 자동 마운트
 noauto - 부팅시 자동 마운트 하지 않음
 exec - 실행파일이 실행되는 것을 허용
 noexec - 실행파일이 실행되는 것을 불가
 suid - SetUID, SetGID 사용 허용
 nosuid - SetUID, SetGID 사용 불가
 ro - read only 읽기 전용의 파일시스템으로 설정
 rw - read & write 읽기/쓰기 전용의 파일시스템으로 설정
 user - 일반 사용자 마운트 가능
 nouser - 일반 사용자 마운트 불가능, root(최고 사용자)만 가능
 quota - Quota 설정 가능
 noquota - Quota 설정  불가능

다섯번째 항목
0 - dump 
명령으로 dump 가 실행되지 않는 파일시스템
1 - 
데이터백업 시, dump 가 가능한 파일시스템

여섯번째 항목
0 - 
부팅 시, fsck 가 실행되지 않음 (무결성 검사 생략)
1 -
루트 파일시스템 (우선 순위 1위)
2 - 
루트 파일시스템 외의 파일시스템 (루트 파일시스템 이후 순차적으로 검사)