웹사이트 검색

LFCS: vgcreate, lvcreate 및 lvextend 명령을 사용하여 LVM을 관리하고 생성하는 방법 - 11부


2월부터 시행되는 LFCS 시험 요건 변경으로 인해 2016년 1월 2일, 여기에 게시된 LFCS 시리즈에 필요한 주제를 추가합니다. 이 시험을 준비하려면 LFCE 시리즈도 사용하는 것이 좋습니다.

Linux 시스템을 설치하는 동안 가장 중요한 결정 중 하나는 시스템 파일, 홈 디렉토리 등에 할당할 저장 공간의 양입니다. 그 시점에서 실수를 한다면 공간이 부족한 파티션을 늘리는 것은 부담스럽고 다소 위험할 수 있습니다.

대부분의(전부는 아니지만) Linux 배포판 설치의 기본값이 된 논리 볼륨 관리(LVM이라고도 함)는 기존 파티션 관리에 비해 많은 장점을 가지고 있습니다. 아마도 LVM의 가장 눈에 띄는 특징은 큰 번거로움 없이 논리 분할의 크기를 마음대로 조정(축소 또는 증가)할 수 있다는 것입니다.

LVM의 구조는 다음과 같이 구성됩니다.

  1. 하나 이상의 전체 하드 디스크 또는 파티션이 PV(물리적 볼륨)로 구성됩니다.
  2. 볼륨 그룹(VG)은 하나 이상의 물리적 볼륨을 사용하여 생성됩니다. 볼륨 그룹을 단일 저장 장치로 생각할 수 있습니다.
  3. 그런 다음 볼륨 그룹에 여러 논리 볼륨을 생성할 수 있습니다. 각 논리 볼륨은 기존 파티션과 어느 정도 동일합니다. 앞서 언급한 대로 크기를 마음대로 조정할 수 있다는 장점이 있습니다.

이 문서에서는 각각 8GB의 디스크 3개(/dev/sdb, /dev/sdc/dev)를 사용합니다. /sdd) 3개의 물리적 볼륨을 생성합니다. 장치 위에 직접 PV를 생성하거나 먼저 파티션을 나눌 수 있습니다.

첫 번째 방법을 선택했지만 두 번째 방법을 사용하기로 결정한 경우(이 시리즈의 4부 – Linux에서 파티션 및 파일 시스템 생성에 설명된 대로) 각 파티션을 8e< 유형으로 구성해야 합니다. /코드>.

물리 볼륨, 볼륨 그룹 및 논리 볼륨 생성

/dev/sdb, /dev/sdc/dev/sdd 위에 물리적 볼륨을 생성하려면 다음을 수행합니다.

pvcreate /dev/sdb /dev/sdc /dev/sdd

다음을 사용하여 새로 생성된 PV를 나열할 수 있습니다.

pvs

다음을 통해 각 PV에 대한 자세한 정보를 얻으십시오.

pvdisplay /dev/sdX

(여기서 X는 b, c 또는 d임)

매개변수로 /dev/sdX를 생략하면 모든 PV에 대한 정보를 얻을 수 있습니다.

/dev/sdb/dev/sdc를 사용하여 vg00이라는 볼륨 그룹을 생성하려면 (/dev/sdd 를 저장합니다.) 필요할 때 저장 용량을 확장하기 위해 다른 장치를 추가할 수 있는 가능성을 나중에 설명하기 위해 ):

vgcreate vg00 /dev/sdb /dev/sdc

물리 볼륨의 경우와 마찬가지로 다음을 실행하여 이 볼륨 그룹에 대한 정보를 볼 수도 있습니다.

vgdisplay vg00

vg00은 두 개의 8GB 디스크로 구성되므로 단일 16GB 드라이브로 표시됩니다.

논리 볼륨을 생성할 때 공간 분배는 현재와 미래의 요구 사항을 모두 고려해야 합니다. 용도에 따라 각 논리 볼륨의 이름을 지정하는 것이 좋습니다.

예를 들어 vol_projects(10GB)와 vol_backups(나머지 공간)라는 두 개의 LV를 만들어 나중에 프로젝트 문서를 저장하는 데 사용할 수 있습니다. 및 시스템 백업이 각각 필요합니다.

-n 옵션은 LV의 이름을 나타내는 데 사용되는 반면, -L은 고정 크기를 설정하고 -l(소문자 L)은 컨테이너 VG에 남은 공간의 백분율을 나타내는 데 사용됩니다.

lvcreate -n vol_projects -L 10G vg00
lvcreate -n vol_backups -l 100%FREE vg00

이전과 마찬가지로 다음을 사용하여 LV 목록과 기본 정보를 볼 수 있습니다.

lvs

그리고 자세한 정보는

lvdisplay

단일 LV에 대한 정보를 보려면 다음과 같이 VGLV를 매개변수로 사용하여 lvdisplay를 사용하세요.

lvdisplay vg00/vol_projects

위 이미지에서 LV가 저장 장치로 생성된 것을 볼 수 있습니다(LV 경로 줄 참조). 각 논리 볼륨을 사용하기 전에 그 위에 파일 시스템을 생성해야 합니다.

여기서는 각 LV의 크기를 늘리거나 줄일 수 있는 ext4를 예로 사용하겠습니다(크기만 늘릴 수 있는 xfs와 반대).

mkfs.ext4 /dev/vg00/vol_projects
mkfs.ext4 /dev/vg00/vol_backups

다음 섹션에서는 필요할 때 논리 볼륨의 크기를 조정하고 추가 물리적 저장 공간을 추가하는 방법을 설명합니다.

논리 볼륨 크기 조정 및 볼륨 그룹 확장

이제 다음 시나리오를 상상해보세요. vol_backups에는 공간이 부족해지기 시작했지만 vol_projects에는 사용 가능한 공간이 충분합니다. LVM의 특성으로 인해 후자의 크기(예: 2.5GB)를 쉽게 줄이고 전자에 할당하는 동시에 각 파일 시스템의 크기를 조정할 수 있습니다.

다행히도 다음과 같이 하면 쉽습니다.

lvreduce -L -2.5G -r /dev/vg00/vol_projects
lvextend -l +100%FREE -r /dev/vg00/vol_backups

논리 볼륨의 크기를 조정할 때 빼기 (-) 또는 더하기 (+) 기호를 포함하는 것이 중요합니다. 그렇지 않으면 LV 크기를 조정하는 대신 고정 크기를 설정하게 됩니다.

논리 볼륨의 크기를 조정하면 더 이상 스토리지 요구 사항을 해결할 수 없어 추가 스토리지 장치를 구입해야 하는 시점에 도달할 수 있습니다. 간단하게 유지하려면 다른 디스크가 필요합니다. 초기 설정(/dev/sdd)에서 남은 PV를 추가하여 이 상황을 시뮬레이션하겠습니다.

vg00/dev/sdd를 추가하려면 다음을 수행하세요.

vgextend vg00 /dev/sdd

이전 명령 전후에 vgdisplay vg00를 실행하면 VG 크기가 증가하는 것을 볼 수 있습니다.

vgdisplay vg00

이제 새로 추가된 공간을 사용하여 필요에 따라 기존 LV의 크기를 조정하거나 필요에 따라 추가 LV를 만들 수 있습니다.

부팅 시 및 요청 시 논리 볼륨 마운트

물론 실제로 사용하지 않을 경우 논리 볼륨을 생성하는 것은 의미가 없습니다! 논리 볼륨을 더 잘 식별하려면 UUID(포맷된 저장 장치를 고유하게 식별하는 변경되지 않는 속성)가 무엇인지 알아야 합니다.

그렇게 하려면 blkid 뒤에 각 장치의 경로를 입력하세요.

blkid /dev/vg00/vol_projects
blkid /dev/vg00/vol_backups

각 LV에 대한 마운트 지점을 생성합니다.

mkdir /home/projects
mkdir /home/backups

/etc/fstab에 해당 항목을 삽입합니다(이전에 얻은 UUID를 사용해야 합니다).

UUID=b85df913-580f-461c-844f-546d8cde4646 /home/projects	ext4 defaults 0 0
UUID=e1929239-5087-44b1-9396-53e09db6eb9e /home/backups ext4	defaults 0 0

그런 다음 변경 사항을 저장하고 LV를 마운트합니다.

mount -a
mount | grep home

실제로 LV를 사용하려면 이 시리즈의 8부 – Linux에서 사용자 및 그룹 관리에 설명된 대로 적절한 ugo+rwx 권한을 할당해야 합니다.

요약

이 기사에서는 확장성을 제공하는 저장 장치를 관리하는 다용도 도구인 논리 볼륨 관리(Logical Volume Management)를 소개했습니다. RAID(이 시리즈의 6부 – Linux에서 RAID 생성 및 관리에서 설명)와 결합하면 확장성(LVM 제공)뿐만 아니라 중복성(RAID 제공)도 누릴 수 있습니다.

이러한 유형의 설정에서는 일반적으로 RAID 위에 LVM이 있습니다. 즉, RAID를 먼저 구성한 다음 그 위에 LVM을 구성합니다.

이 기사에 대한 질문이 있거나 개선을 위한 제안이 있는 경우 아래 의견 양식을 사용하여 언제든지 문의해 주세요.