Monday, April 9, 2018

CentOS 6.6 리눅스 관리] 2. EXT 파일시스템 생성


안녕하세요. 썬구루입니다. 이 게시물에서는 CentOS 6.x의 기본 파일시스템인 EXT 파일시스템에 대해 알아보도록 하겠습니다. 하드 디스크를 인식시키고 파티션 분할하면 그다음 과정은 파일시스템을 만드는 것입니다. FAT32, NTFS, UFS, ZFS, JSFS, VxFS 등 여러 종류의 파일시스템 존재합니다. 각 운영체제들마다 그들에 대한 파일시스템을 사용합니다. 또는 상용 파일시스템을 구매해서 설치, 사용하기도 합니다. 대표적인 상용 파일시스템이 Veritas의 VxFS이죠. CentOS 6 버전까지는 EXT 파일시스템을 기본 파일시스템으로 사용합니다. 하지만 7버전에서는 EXT 파일시스템을 사용할 수 있지만 XFS 파일시스템을 밀고 있더군요.

운영체제 버전이 올라갈 때마다 기술이 발전되기 때문에 당연히 새로운 강력하고 확장성이 뛰어난 새로운 파일시스템이 나올 것입니다. 하지만 이 게시물에서는 EXT 파일시스템에 대해 알아볼 것입니다.

■ 파일시스템이란?

하드 디스크, 플래시 메모리(USB), DVD 같은 저장매체에 데이터를 저장, 삭제. 검색하는 방법을 제어하기 위해 사용되는 체계(System)이다. 컴퓨터를 통해 우리 눈에 보이는 파일과 디렉터리는 컴퓨터 입장에서는 단순히 데이터 구조이다. 파일이나 디렉터리를 사용자 프로세스나 응용프로그램이 저장 매체에 어떻게 효율적으로 저장, 삭제, 검색하고 저장된 데이터를 정확하게 불러올 수 있는 신뢰성과 안정성 가질 수 있도록 해주느냐? 그리고 확장성과 뛰어난 성능을 보장해야 할 것인데 이러한 것을 파일시스템이 제공해주는 것이다.

■ EXT 파일시스템

EXT 파일시스템은 리눅스에서 사용되는 기본 파일시스템이다(버전 6까지는.. ^^). Redhat Enterprse Linux(RHEL) 7 버전부터는 64비트 저널링 파일시스템인 xfs를 밀고 있다. RHEL 의 클론 운영체제인 CentOS 또한 7버전에서는 xfs를 기본으로 사용한다. 하지만 7 버전에서도 EXT 파일시스템을 여전히 사용할 수 있다.

파일시스템 유형
EXT2
EXT3
EXT4
 도입 년도
1993
2001
2008
 단일 파일 최대 크기
from 16GB to 2TB
from 16GB to 2TB
from 16GB to 16TB
파일시스템 최대 크기
from 16GB to 32TB
from 16GB to 32TB
1024 PB(Petabytes)
Journaling 기능
X
O
O
리눅스 커널(Kernel)
2.4.15 이전
2.4.15 부터
2.6.19 부터

저널링(Journaling) 기능은 파일시스템에 변경사항을 반영하기 전에 저널(Journal) 안에 변경사항을 기록, 추적하는 기능이다. 이는 시스템 오류나 전원 문제로 인해 시스템이 리부팅되었을 때 더 빠르게 파일시스템 무결성 체크를 통해 mount 될 수 있도록 해준다. 만약 저널링 파일시스템이 아니라고 한다면 파일시스템 체크하는데 정말 세월아 네월아를 경험하게 될 것이다.



■ mkfs 명령

파티션 또는 볼륨에 파일시스템을 생성하기 위해 사용되는 명령이다.

1). 명령 형식

mkfs [옵션] DEVICE NAME 또는 VOLUME NAME

2). 옵션

옵 션
내 용
-c
 파일시스템을 만들기 전 베드 섹터(Bad Sector)를 검사한다.
-t FS_TYPE
 파일시스템 유형을 명시한다. [ ext2, ext3, ext4 등 ]
-v
 세부 내용을 출력한다. 

3). 예제

[root@sunguru ~]# lsblk /dev/sdc
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sdc      8:32   0    4T  0 disk
|-sdc1   8:33   0  1.9T  0 part
`-sdc2   8:34   0  2.1T  0 part
[root@sunguru ~]#
[root@sunguru ~]# mkfs -t ext3 /dev/sdc1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
125001728 inodes, 499999744 blocks
24999987 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
15259 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
 102400000, 214990848

Writing inode tables: done                     
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@sunguru ~]#
[root@sunguru ~]# mkfs -t ext4 -v /dev/sdc2
mke2fs 1.41.12 (17-May-2010)
fs_types for mke2fs.conf resolution: 'ext4', 'default'
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
143441920 inodes, 573741568 blocks
28687078 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
17510 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
 4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
 102400000, 214990848, 512000000, 550731776

Writing inode tables: done                     
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@sunguru ~]#
[root@sunguru ~]# blkid | grep "/dev/sdc"
/dev/sdc1: UUID="6b5eddb7-6373-42fc-9d74-dc95507d4280" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdc2: UUID="7ef26df0-eadb-4c36-b4ce-2e07268342c6" TYPE="ext4"
[root@sunguru ~]# 

 서버시스템 하드디스크 연결 구성도

■ blkid 명령

블록 디바이스의 속성을 출력하기 위해 사용되는 명령이다. 이전 게시물에서 이 명령을 몇 번 사용했었는데 파티션이나 볼륨에 생성된 파일시스템 유형을 blkid 명령으로 확인할 수 있다.

[root@sunguru ~]# blkid
/dev/sda3: UUID="047dc93f-6363-4570-a7b5-1937a6534afa" TYPE="ext4"
/dev/sda1: UUID="b7618935-2a1e-4f2a-ad9f-167a96b8e935" TYPE="ext4"
/dev/sda2: UUID="1b4804f6-b38b-4484-928d-73f04f327afb" TYPE="swap"
/dev/sdb1: UUID="b380e123-e1ee-4ae2-8ae2-55827b5bae91" TYPE="ext4"
/dev/sdc1: UUID="6b5eddb7-6373-42fc-9d74-dc95507d4280" SEC_TYPE="ext2" TYPE="ext3"
/dev/sdc2: UUID="7ef26df0-eadb-4c36-b4ce-2e07268342c6" TYPE="ext4"
[root@sunguru ~]#
[root@sunguru ~]# blkid /dev/sdc1
/dev/sdc1: UUID="6b5eddb7-6373-42fc-9d74-dc95507d4280" SEC_TYPE="ext2" TYPE="ext3"
[root@sunguru ~]# 

다음 게시물에서는 생성한 파일시스템을 사용하기 위해 마운트하는 방법에 대해 알아보겠습니다.






No comments:

Post a Comment