본문 바로가기

프로그래밍/Linux

[study] LVM(Logical Volume Manager) 절차 정리

 

LVM (Logical Volume Manager) 절차

하드디스크 파티셔닝 ->PV 생성 -> VG 생성 -> LV 생성 -> 파일 시스템 포맷 -> 마운트


1. 하드디스크 파티셔닝 (Hard Disk Partitioning)

 

파티션이란?

- 디스크 공간의 분할을 의미.

- 하드 디스크 드라이브의 기억 공간을 별도의 데이터 영역으로 분할하는 것이다.

- 파티션의 최소 단위는 섹터이며 실제 자료가 저장되는 단위이다. (1sector = 512byte)

 

파티션 하는 이유

- 공간 사용 시 서로 다른 공간을 간섭하지 않도록 하기 위해

- 파티션 간 서로 다른 OS를 설치해서 사용할 때 이용

 

파티션 하는 방법

- fdisk 명령어를 통해 디스크 파티션 작업을 할 수 있으며, IDE 디스크인지, SCSI 디스크인지에 따라 장치명이 다르게 주어진다.

IDE 디스크이면, /dev/hdx 와 같은 이름이고 SCSI 디스크이면 /dev/sdx 와 같은 이름이다. (x는 a~z까지 순차로 주어진다.)

ex)

첫번째 IDE 디스크 : /dev/hda 

두번째 IDE 디스크 : /dev/hdb ...

 

첫번째 SCSI 디스크 : /dev/sda

두번째 SCSI 디스크 : /dev/sdb

세번째 SCSI 디스크 : /dev/sdc ...

 

이러한 디스크 중 첫번째 IDE 디스크인 /dev/hda 장치를 파티셔닝하여 3개의 파티션으로 나눈다고 하면,

/dev/hda1, /dev/hda2, /dev/hda3 으로 숫자가 붙어 파티션이 쪼개지게 된다.

 

파티션은 기본적으로 4개가 최대 이고 (Partition numer (1-4, default 1) : ) 

확장 파티션(Extended partition) 을 통해 논리적 파티션 (Logical partition)을 만들어 더 나눠줄 수 있다.

이 확장된 파티션이 아닌 기본으로 만들어진 파티션을 주 파티션(primary partition)이라 하고,

주 파티션이 4개가 되면 확장 파티션을 만들지 못한다.

하나의 디스크에는 단 1개의 확장 파티션만 만들 수 있고, 자료 저장이나 운영체제 설치는 불가능하다.

논리적 파티션을 만들기 위한 용도만을 위해 사용되고 만들어진다.

 

[ 논리적 파티션이 만들어지는 과정 ]

1. 주 파티션을 생성한다. - /dev/hda1, /dev/hda2

2. 확장 파티션을 추가한다. - /dev/hda3 (확장파티션으로 생성 : System = Extended)

3. 해당 확장 파티션을 나눠주면, 논리적 파티션으로 나뉘게 된다.

- /dev/hda5 (/dev/hda3 확장파티션에서 쪼개진 첫번째 논리적 파티션, 번호는 5번부터 시작.)

(hda3 은 껍데기 역할로 사실 상 사용하지 못하는 상태이다.)


2. 물리 볼륨 (PV, Physical Volume) 생성

 

만들어진 논리적 파티션에 각각의 물리적인 볼륨을 1개씩 생성하도록 한다. (명령어 : pvcreate)

이 물리 볼륨 (PV)는 블록 장치(하드 디스크) 전체나 이루고 있는 파티션들을 LVM에서 사용하도록 변환해준 상태이다.

이 PV는 일정한 크기의 PE(Physical Extent)들로 구성되고 이후에 만들어줄 LV의 기본 단위인 LE와 1:1로 매칭된다.


3. 볼륨 그룹 (VG, Volume Group) 생성

VG란 PV들의 집합으로 LV를 할당할 수 있는 공간인데, 이전에 PV들로 초기화된 장치들은 VG로 모두 통합된다.

여러개로 분산된 물리 볼륨들을 하나의 논리 볼륨처럼 해주기 위한 그룹 정책이다.

여러 물리적인 디스크가 있고, 각각 디스크에도 여러 파티션이 있는데, 이를 하나로 만들어 볼륨 그룹으로 묶어주면,

실제로는 분리되어 있어도 하나의 디스크처럼 리눅스가 다룰 수 있게 된다.

마치, RAID(Redundant Arrays of Inexpensive Disks: 개별 디스크를 묶어 대용량 고성능 디스크드라이브의 성능, 기술을 구현)

를 소프트웨어적으로 구성할 수 있게 되는 것이다.

 

hda2와 hda5를 각각 분리된 논리 볼륨으로 생성하고 싶다면, 볼륨 그룹도 마찬가지로 각각 생성해주면 된다.

명령어는 vgcreate이며, 원하는 볼룸 그룹명을 지정해준다. (ex. LVMGroup..)

원한다면 2개 이상의 물리 볼륨을 논리 볼륨 1개로 만들 수도 있다.


4. 논리 볼륨 (LV, Logical Volume) 생성

논리 볼륨이란 볼륨 그룹에서 원하는대로 공간을 나눠 디렉토리에 마운트(mount) 시킬 수 있는 실질적 파티션이다.

물리적 저장 장치를 논리적 장치로 관리하게 되고, 이를 이용하면 공간 활용과 확장성이 좋다.

이 LV는 일정한 크기의 LE(Logical Extent)들로 구성된다.

명령어는 lvcreate 이며, lvcreate --name SLV -l100%FREE LVMGroup 과 같이 사용한다.

(VG의 용량을 꽉 채워서 LV를 만드는 옵션들을 이용하였다.)

하지만, 마운트가 되어있지 않아, 사용은 불가능한 상태이다.

포맷과 마운트를 통해 파일 시스템 및 애플리케이션 등으로 사용할 수 있다.


5. 파일 시스템 포맷 (File System Format)

파일 시스템이란?

- 파일에 이름을 붙이고 자료를 저장하는 형식을 지정하며  저장 및 탐색을 위해 파일을 어디에 위치 시킬지 나타내는 체계,

파일들이 디스크 상에서 구성되는 방식.

- 리눅스에서는 윈도우와 달리 Ext (Extended File System)을 사용하는데, EXT1 ~ 4 까지 활용도에 따라 다양하다.

기본적으로 실무에서는 EXT4 와 XFS 등을 사용한다. (가장 최근의 파일 시스템은 EXT4 이다.)


6. 마운트 (Mount)

마운트란?

- 물리적인 장치를 특정한 위치(디렉토리)에 연결시켜 주는 과정을 마운트라고 한다.

- Windows에서는 PnP 방식으로 연결이 되면 자동으로 설정 및 마운트 작업이 이뤄지기 때문에 이 개념이 별로 사용되지 않지만,

Linux에서는 하드웨어를 사용할 때 특정 위치에 연결해줘야 한다.

- 지정된 디렉토리 위치를 마운트 포인트라 하며, /home /boot /var /srv /tmp [SWAP] 등에 마운트포인트가 있다.

- mount 명령어를 통해 마운트 해주면, 암호화된 볼륨을 일반 디스크처럼 사용할 수 있도록 작업을 마칠 수 있다.

- 반대로 umount 로 마운트를 해제할 수도 있다.

'프로그래밍 > Linux' 카테고리의 다른 글

[study] Makefile  (0) 2024.03.12
Recent Posts
Popular Posts
Recent Comments