LFCS: vgcreate, lvcreate 및 lvextend 명령을 사용하여 LVM을 관리하고 생성하는 방법 - 11부
2월부터 시행되는 LFCS 시험 요건 변경으로 인해 2016년 1월 2일, 여기에 게시된 LFCS 시리즈에 필요한 주제를 추가합니다. 이 시험을 준비하려면 LFCE 시리즈도 사용하는 것이 좋습니다.
Linux 시스템을 설치하는 동안 가장 중요한 결정 중 하나는 시스템 파일, 홈 디렉토리 등에 할당할 저장 공간의 양입니다. 그 시점에서 실수를 한다면 공간이 부족한 파티션을 늘리는 것은 부담스럽고 다소 위험할 수 있습니다.
대부분의(전부는 아니지만) Linux 배포판 설치의 기본값이 된 논리 볼륨 관리(LVM이라고도 함)는 기존 파티션 관리에 비해 많은 장점을 가지고 있습니다. 아마도 LVM의 가장 눈에 띄는 특징은 큰 번거로움 없이 논리 분할의 크기를 마음대로 조정(축소 또는 증가)할 수 있다는 것입니다.
LVM의 구조는 다음과 같이 구성됩니다.
- 하나 이상의 전체 하드 디스크 또는 파티션이 PV(물리적 볼륨)로 구성됩니다.
- 볼륨 그룹(VG)은 하나 이상의 물리적 볼륨을 사용하여 생성됩니다. 볼륨 그룹을 단일 저장 장치로 생각할 수 있습니다.
- 그런 다음 볼륨 그룹에 여러 논리 볼륨을 생성할 수 있습니다. 각 논리 볼륨은 기존 파티션과 어느 정도 동일합니다. 앞서 언급한 대로 크기를 마음대로 조정할 수 있다는 장점이 있습니다.
이 문서에서는 각각 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에 대한 정보를 보려면 다음과 같이 VG 및 LV를 매개변수로 사용하여 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을 구성합니다.
이 기사에 대한 질문이 있거나 개선을 위한 제안이 있는 경우 아래 의견 양식을 사용하여 언제든지 문의해 주세요.