본문 바로가기
서버/Linux

[Linux] 파일 시스템

by 느링 2017. 10. 16.

파일 시스템 ( File System )

파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 / 조직하는 체제

예를 들어

하드 디스크 - 도서관

파일 시스템 - 도서 검색대

파일 - 책

 

리눅스의 대표 파일 시스템

ext3, etx4, swap, xfs, iso9660, nfs

CentOS 6.9버전에서 채택한 기본 파일 시스템 → ext4

 

※ 파일 시스템 종류

ext - 초기 리눅스에서 사용하였던 종류, 현재는 사용하지 않음

ext2 - 현재도 사용하며, 긴 파일시스템 이름을 지원하는 것이 특징

ext3 - 저널링 파일시스템, ext2보다 파일시스템의 복수/보안 기능이 크게 향상

ext4 - 16TB까지만 지원하던 ext3과는 달리 더 큰 용량을 지원하며, 삭제된 파일 복구,

   파일 시스템 속도가 훨씬 빨라진 파일시스템

swap - swap공간으로 사용되는 파일 시스템

xfs - 64bit 고성능 저널링 파일 시스템

iso9660 - DVD/CD-ROM을 위한 표준 파일 시스템으로 읽기만 가능

nfs - 원격 서버에서 파일 시스템 마운트 할 때 사용하는 시스템 (Network File System)

 

EXT4 ( EXTended File System 4 )

- 1EB의 최대 파일 시스템 크기와 16TB의 크기의 파일을 지원

- 서브 디렉토리를 64000개 지원, 파일은 약 40억개 저장 가능

  TB → PB (페타) → EB (엑사)

 

Hard Disk 종류 (타입)

- IDE (Integrated Drive Electronics)

- SATA (Serial Advanced Technology Attachment)

- SCSI (Small Computer System Interface)

- SAS (Serial Attached SCSI) 크기가 작고 빠르며, 안정적이다. → 가격이 비싸다

 

파티션 (Parition)

하나의 물리적인 디스크를 여러개의 논리적인 디스크로 나누는 것

 

장치명 (드라이브 문자)

Windows

디스크나 파티션이 추가가 될 때마다 알파벳 순으로 증가된다.

C:\ ← OS 

D:\ ← GAME/DATA

E:\

F:\

 

※ C:\부터 시작하는 이유

A:\는 3.5 플로피 디스크 (용량 1.44MB)

B:\는 5.25 플로피 디스크 (용량 1.2MB)

→ A:\, B:\는 위에 두 디스크를 위한 자리로 예전에는 있었으나

   요즘에는 사용되지 않아 자리만 남아있습니다.

 

Linux

※ 디스크가 추가될 때마다 문자가 알파벳순으로 증가합니다.

/dev/sda → 첫 번째 디스크

/dev/sdb → 두 번째 디스크

/dev/sdc → 세 번째 디스크

/dev/sdd → 네 번째 디스크

 

리눅스 파티션 명칭

/dev/sda1 → 1번 디스크의 1번 파티션 

/dev/sda2 → 1번 디스크의 2번 파티션

/dev/sdb3 → 2번 디스크의 3번 파티션

/dev/sdc4 → 3번 디스크의 4번 파티션

 

리눅스 파티션 특징

- 리눅스 파티션은 주(Primary)파티확장(Extended) 파티션, 논리(Logical) 파티으로 구성 할 수 있습니다.

 

※ 확장 파티션은 데이터를 저장하기 위한 것이 아니라 실제 데이터가 저장되는 논리 파티션을 만들기 위한 툴입니다.

확장 파티션은 파일 시스템 생성, 마운트 불가

- 디스크 하나 당 주 파티션을 최대 4개까지 생성할 수 있습니다.

- 4개 이상의 파티션이 필요할 경우에는 확장과 논리파티션이 필요하며,

최대 12개까지생성이 가능합니다.

 

ex)[                      주파티션                    ]

    [       주파티션       ][       주파티션       ]

    [ 주파티션][주파티션][주파티션][주파티션 ]

 

사용하는 이유

디스크를 추가하여 용량 증설을 할 수 있고, 파티션을 나누어 디스크를 효율적으로 사용할 수

있도록 설정하고, 안정적으로 사용할 수 있는 방법을 알 수 있습니다.

 

파티션 설정 및 용량 증설

※ 하기 전에 VMware 스냅 샷을 저장해주세요.

1. 디스크 추가

VMware → Server-A → Settings → Add → HardDisk → 2GB Disk 두 개 추가

디스크 크기 2GB 설정 후 단일 파일을 선택합니다.

 

추가된 디스크를 확인해줍니다.

 

2. 추가한 디스크를 시스템에 인식시키기위해 재부팅

# reboot

 

3.fdisk명령어를 이용하여 추가 디스크 확인

# fdisk [옵션] [dev_name]

→ 옵션

-l 현재 시스템이 인식한 모든 디스크의 정보를 출력

 

# fdisk -l

 /dev/sdb, /dev/sdc 확인

 

4. 파티션 생성

/dev/sdb                           용량

주파티션1    /dev/sdb1        500MB

주파티션2    /dev/sdb2        500MB

주파티션3    /dev/sdb3        나머지 전부

 

fdisk [장치명]

해당 장치의 파티션을 설정

ex) # fdisk /dev/sdb

m도움말

Command action
   a   toggle a bootable flag
   b   edit bsd disklabel
   c   toggle the dos compatibility flag
   d   delete a partition    //파티션 삭제
   l   list known partition types    //파티션 타입종류출력
   m   print this menu    //도움말
   n   add a new partition    //새로운 파티션 생성
   o   create a new empty DOS partition table
   p   print the partition table    //파티션 테이블 확인
   q   quit without saving changes    //저장하지 않고 종료
   s   create a new empty Sun disklabel
   t   change a partition's system id    파티션 타입 변경
   u   change display/entry units
   v   verify the partition table
   w   write table to disk and exit    //저장 후 종료
   x   extra functionality (experts only)

Command (m for help):


 

"n" 새로운 파티션 생성

"p" 주파티션 생성

"1" 1번 파티션

"1" 디스크의 시작 지점 부터

"+500M" 500MB까지 생성

 

<예제 1>

아래와 같이 파티션 생성하기

# fdisk /dev/sdb           용량

주 파티션 1 /dev/sdb1    500MB

주 파티션 2 /dev/sdb2    500MB

주 파티션 3 /dev/sdb3    나머지 전부

※ 아무것도 입력하지 않고 엔터를 누르면 기본값(default)이 입력됩니다.

 

파티션 생성 후 p를 눌러 결과(파티션 테이블) 확인

 

w를 눌러 저장해줍니다.

 

 

<예제 2>

확장 파티션과 논리 파티션 생성 (예시이므로 저장X)

# fdisk /dev/sdc           용량

주    파티션1  /dev/sdc1  100MB

주    파티션2  /dev/sdc2  100MB

확장 파티션  /dev/sdc3  나머지전부

논리 파티션  /dev/sdc5  500MB

논리 파티션  /dev/sdc6  나머지전부

※ 디스크 하나 당 주 파티션은 최대 4개까지이므로 논리 파티션은 /dev/sdc 디스크의 5번 파티션부터 생성됩니다.

확장 파티션은 논리 파티션을 위한 파티션으로 실제 데이터가 저장되지 않습니다.

 

파티션 생성 후 p를 눌러 결과(파티션 테이블) 확인

 

5. 파일 시스템 생성

# mkfs (Make File System) [옵션] [파일 시스템 명] [장치명]

→ 옵션

-t (type)

 

<예제 3> 

# mkfs -t ext4 /dev/sdb1

→ /dev/sdb 디스크의 1번 파티션에 ext4 파일 시스템을 생성하겠다.

 

# mkfs -t ext4 /dev/sdb2

 

# mkfs -t ext4 /dev/sdb3

→ /dev/sdb 디스크의 2번 파티션, 3번 파티션에 ext4 파일 시스템을 생성하겠다.

 

생성한 파티션에 데이터가 저장될 때 어떠한 방식으로 데이터를 저장하고 사용할지를 결정하는 파일 시스템을 생성해야 데이터를 저장할 수 있게 됩니다.

 

6. 마운트 포인트 생성과 마운트

마운트 (Mount)

특정 디렉토리에 장치(Disk)를 연결(탑재)하는 것

 

리눅스는 파일 단위로 장치를 관리하기 때문에, 새롭게 만든 디스크를 사용하기 위해서는 생성한 파티션(ex. /dev/sdb1) 파일을 임의의 디렉토리와 연결시켜 사용해야합니다.

 

마운트 포인트 (Mount Point)

장치와 연결되는 디렉토리

 

# mount [장치명] [마운트 포인트] - 마운트

 

마운트 해제

# umount [마운트 포인트]

- 주의사항

마운트를 해제할 경로에 위치한 상태에거나, 마운트 되어있는 파일을 사용중인 경우에는 언마운트(마운트해제)를 할 수 없습니다.

 

마운트 확인 방법

# mount

현재 시스템에 마운트 되어있는 파티션의 정보를 출력

# df [옵션] (disk free)

현재 마운트 되어 있는 파티션의 용량 정보를 출력

→ 옵션

-h 사람이 읽기 쉽게 용량단위를 붙여서 출력

 

<예제 1>

마운트 포인트 (MP1, MP2, MP3) 생성 후 /dev/(sdb1, sdb2, sdb3)에 마운트 하기

 

마운트 확인

 

 

7. /etc/fstab 파일에 마운트 정보 등록

- 부팅 시 마운트 할 파티션의 정보가 저장되어 있는 파일

- 파일에 기록되어 있는 순서대로 마운트가 되어 디렉토리 구조가 만들어진다.

※ 마운트 정보를 등록해야 리부팅을 해도 마운트가 유지됩니다.

 

#vi /etc/fstab

[장치명] [마운트포인트] [파일시스템타입] [옵션] [덤프생성유무] [파일시스템검사]

 

① 장치명

장치에 접근하기 위한 장치 파일의 경로, LABEL, UUID가 올 수 있다.

ex) /dev/sdb1

 

② 마운트 포인트

장치가 연결되는 디렉토리의 경로입니다.

ex) /DIR1

 

③ 파일 시스템 타입

mkfs 명령어 생성했던 해당 파티션의 파일 시스템 타입입니다.

ex) ext4

 

④ 옵션

- 마운트 옵션

- 보통 defaults 옵션을 사용하며, 해당 옵션은 자주 사용되는 옵션들을 묶어 놓은 옵션입니다.

defaults == ( rw, suid, dev, exec, nouser, async )

 

⑤ 덤프 생성 유무

해당 파티션의 문제가 생겼을 경우, 문제를 분석하기위해서 생성하는 파일 (덤프)입니다.

0 - 생성하지않음

1 - 생성함

 

⑥ 파일 시스템 검사

부팅 시 해당 장치 문제가 있는지 검사하는 옵션 ( == # fsck )

0 - 검사 하지 않음

1 - 검사 ( 우선순위가 가장 높다) 대부분 "/" 루트 디렉토리가 마운트 되어 있는 파티션 적용

2 - 검사 ( 1 이후에 검사할 파티션 ) "/"루트 파티션 이후에 검사할 파티션

 

<예제 1>

마운트 정보 등록하기

# vi /etc/fstab로 열기

마운트 정보를 등록해줍니다.

 

리부팅해줍니다.

 

리부팅 후 마운트가 되어있나 확인해줍니다.

 

UUID ( Universial Unique IDentifier / 범용 고유 식별자 )

- 특정 장치나, 구성한 설정에 할당되는 고유한 값 (절대 중복되지 않음)

- UUID는 파일 시스템을 생성할 때 생성 됨
- 디스크 교체 작업이나, 추가/제거 작업 시 장치명이 변경되어 마운트가 되지 않거나 부팅이 되지 않은 현상을 방지할 수 있다.

 

UUID 확인 방법

# blkid (BLocK ID)

시스템에 모든 파티션에 대한 UUID 값을 출력

# blkid [장치명]

지정된 파티션에 대한 UUID 값을 출력

 

<예제 1>

 

<예제 2>

UUID로 /etc/fstab 파일에 마운트 등록하기

# vi /etc/fstab로 열기

 

더블 쿼터를 꼭 제거 해주어야 합니다.

 

리부팅 후 마운트 되어있나 확인해봅니다.

 

※ 디스크 증설 작업 ※

(1) 디스크 추가

(2) 재부팅 (디스트 인식)

(3) 파티션 생성

(4) 파일 시스템 생성

(5) 마운트 포인트 생성

(6) 마운트

(7) UUID 확인

(8) /etc/fstab 마운트 정보 등록

(9) 자동 마운트 확인

'서버 > Linux' 카테고리의 다른 글

[Linux] RAID란 (1)  (0) 2017.10.16
[Linux] rpm & yum  (0) 2017.10.16
[Linux] 프로세스 (2)  (0) 2017.10.16
[Linux] 아카이브 (Archive)  (0) 2017.10.16
[Linux] 압축 ( gzip, bzip2, xz )  (0) 2017.10.11