파일 시스템 ( 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 |