Thinking Out Loud

[Linux] 파티션 본문

Linux/Linux Master

[Linux] 파티션

주롱주롱 2021. 11. 1. 14:47

# 파티션이란

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

- 디스크 공간을 여러 개의 하드디스크가 있는 것처럼 활용하기 위함

 

# 파티션 분할 이유

- 한 시스템에 서로 다른 운영체제 사용 가능 (멀티 부팅 가능)

- 디스크 공간의 효율적 활용 (저장 공간)

- 하드 디스크의 물리적으로 손상 시 피해 축소 및 보안 유지

- 부팅 시간 단축 (파일 시스템 검사 시간 단축)

- 손상된 하드디스크 복구 시간 단축 

- 자료 백업과 보안의 용이성

 

# 파티션의 특징과 종류

주 파티션
(Primary
Partition)
- 부팅이 가능한 기본 파티션
- 하나의 하드디스크에 최대 4개의 주 파티션 분할 가능
  (하나의 HDD에는 주 파티션과 확장 파티션을 합쳐 모두 4개의 파티션까지 나눌 수 있다는 제한)
- 하드디스크를 4개 이상의 파티션으로 사용해야 할 때 하나의 확장 파티션을 설정하여 확장 파티션 안에 여러 개의 논리 파티션을 분할하여 데이터 저장
  (4개 이상의 파티션이 필요할 경우 확장 파티션을 만들어 그 안에 논리 파티션을 두어야함)
확장 파티션
(Extended
Partition)
- HDD를 여러 개의 파티션으로 나누고자 할 때 만드는 파티션
- 주 파티션 내에 생성, 하나의 물리적 디스크에 1개만 생성
- 파티션 번호는 1~4번이 할당
- 데이터 저장 영역을 위한 것이 아니라 논리 파티션을 생성
  (저장 공간이 없으며, 안에 논리 파티션을 만들 수 있게 해주는 큰 그릇의 역할만 함)
논리 파티션
(Logical
Patition)
- 확장 파티션 안에 생성되는 파티션
- 4개 이상의 파티션을 사용하게 되는 경우, 확장 파티션 내에 논리 파티션을 만들어서 사용
- 논리 파티션은 12개 이상 생성하지 않는 것을 권고
- 5번 이후의 번호가 붙여짐
스왑 파티션
(Swap
Partition)
- 하드디스크의 일부를 메모리처럼 사용하는 영역
- 주 파티션 또는 논리 파티션에 생성
- 프로그램 실행 시 부족한 메모리 용량을 하드디스크로 대신
- 리눅스 설치 시에 반드시 설치되어야 하는 영역
- 스왑 영역의 크기는 메모리의 2배를 설정하도록 권고

# 파티션 개수의 제약

- 하나의 하드디스크에 만들 수 있는 주 파티션의 최대 개수 : 4개

- 파티션을 4개 이상으로 더 분할할 경우 : 주 파티션 중 하나를 확장 파티션으로 전환 후 확장 파티션 내에 논리 파티션 생성

- 하나의 하드 디스크에서 사용 가능한 파티션의 최대 개수 : 15개 (주 파티션 3 + 확장 파티션 1{논리 파티션 12개})

 

# 디스크와 장치명

- 분할된 파티션은 디스크의 장치 파일명 뒤에 숫자를 붙인다.

- 리눅스에서 파티션을 만들고 마운트할 때 지정된 디바이스명을 사용한다.

 

# 리눅스의 하드 및 파티션 표시법

1. (E)IDE 타입의 하드디스크인 경우의 표현

- (E)IDE 컨트롤러에 연결되어있는 순서에 따라 " hd? " 로 표현

- ex) hda, hdb, hdc, hdd

 

2. SCSI, SATA 타입의 하드디스크인 경우의 표현

- " sd? " 로 표현

- 요즘 거의 이렇게 표시

- ex) sda, sdb, sdc, sdd

연결 순서 EIDE 방식 SCSI 또는 SATA 방식
primary master HD /dev/hda /dev/sda
primary slave HD /dev/hdb /dev/sdb
secondary master HD /dev/hdc /dev/sdc
secondary slave HD /dev/hdd /dev/sdd

 

3. 파티션 표시

- 하드디스크 표현 끝에 숫자를 붙여서 표시

- ex) hda1 : hda의 첫 번째 파티션

       hdb2 : hdb의 두 번째 파티션

 

* 하드디스크 및 파티션 인식 방법의 예

- /dev/hda1 : Primary master 하드디스크 첫 번째 파티션

- /dev/hda2 : Primary master 하드디스크 두 번째 파티션

- /dev/hdb1 : Primary slave 하드디스크 첫 번째 파티션

- /dev/hdc2 : Secondary master 하드디스크 두 번째 파티션

 

* 하나의 하드디스크 상에서 파티션 표기법

# 리눅스 설치를 위한 최소의 파티션 개수 : 2개

- 네이티브(native) 파티션 혹은 루트(/) 파티션 : 리눅스가 설치되거나 시스템 파일 및 사용자 개인 파일 등 모든 파일이 저장되는 파티션

- 스왑(swap) 파티션 : 시스템 메모리를 확장하기 위해 사용하는 파티션(가상 메모리) 

 

# 파일 시스템

- 운영체제가 파일을 시스템의 디스크 파티션상에 구성하는 방식

- 일정한 규칙을 가지고 파일을 저장하도록 규칙 방식을 제시

- 파티션에 파일 시스템이 없으면, 파일 시스템 생성을 거쳐야 사용 가능

- 리눅스는 고유의 파일 시스템뿐만 아니라 다양한 파일 시스템을 지원하고 있음

 

# LVM (Logical Volume Manager)

- 논리 볼륨 관리자

- 여러 개의 물리적인 하드디스크 파티션을 Volume Group으로 묶은 다음, 논리적인 디스크로 할당하여 유연하게 관리할 수 있게 해주는 기술

- 여러 개의 하드디스크를 합쳐서 사용하는 기술로, 한 개의 파일 시스템을 사용

- 작은 용량의 하드디스크 여러 개를 큰 용량의 하나의 하드디스크처럼 사용

- 서버를 운영하면서 대용량의 별도 저장 공간이 필요할 때 활용

- 여러 개의 디스크를 묶어서 사용함으로써 파티션의 크기를 줄이거나 늘릴 수 있음

 

# LVM 구성의 예

 

# LVM 구현 방법

- Fdisk를 통해 생성한 파티션을 나누고, 파티션 타입을 Linux LVM(8e)로 선택

- 생성된 파티션을 pvcreate 명령으로 physical volume으로 생성

- vgcreate 명령으로 각각 PV(Physical Volume)들을 묶어 VG(Volume Group)을 만듦

- lvcreate 명령으로 VG에서 원하는 size 만큼의 LV(Logical Volume)을 만듦

- 생성된 LV에 file system을 생성하고, /etc/fstab에 등록하여 마운트함

 

# RAID

- 복수 배열 독립 디스크

- 여러 개의 물리적 디스크를 하나의 논리적 디스크로 인식하여 작동하게 하는 기술

- 여러 개의 하드디스크에 일부 중복된 데이터를 나눠서 저장하는 기술

- RAID 종류 : 하드웨어 RAID, 소프트웨어 RAID

- 레벨 : 데이터를 저장하는 방법. 다양함

- 레벨에 따라 저장 장치의 신뢰성을 높이거나 전체적인 성능을 향상시키는 다양한 목적을 만족시킴

- 각 레벨의 장점을 합친 RAID 구성으로는 대표적으로 RAID 0+1과 RAID 1+0 이 있음

 

# 파티션 분할

- fdisk : 파티션 테이블을 관리하는 명령. 리눅스의 디스크 파티션을 생성, 수정, 삭제할 수 있는 일종의 유틸리티

- fdisk 명령어 : a, l, n, t, w, p, q

 


참고 :

https://itdexter.tistory.com/279 

https://www.sharedit.co.kr/posts/1234

https://tech.cloud.nongshim.co.kr/2018/11/23/lvmlogical-volume-manager-1-%EA%B0%9C%EB%85%90/