7. LVM 구성 방법 / PV / VG / LV / 생성 추가 제거 방법
해당 내용은 매우길며 시험에 필요한 옵션들까지 설명이 되어 있기 때문에
필요하신 부분만 "더보기 버튼" 을 누르셔서 확인하시면 더욱 편하십니다.
기본적으로 알아야 할 개념부터 짧게 소개해드리겠습니다.
LVM (Logical Volume Manager)
PV (Pysical Volume) = 실제 존재하는 물리적 볼륨을 말합니다. ( 하드디스크 )
VG (Volume Group) = 볼륨 그룹은 하나 이상의 물리 볼륨 ( PV ) 으로 구성된것을 말합니다.
LV (Logical Volume) = 논리볼륨은 볼륨 그룹 위에 만들어지는 파티션을 말합니다. LV 는 VG의 공간을 사용하며 파일시스템을 만들어 데이터를 저장하는데 사용됩니다.
유연하고 효율적인 디스크 관리를 가능하게 합니다.
lsblk 명령어를 통해 현재 파티션 생성이 되어있지 않은 devices 를 확인합니다.
( sda , sdb 가 현재 파티션 생성이 안된 devices 입니다 )
Physical Volume
pvcreate [/dev/sd*] (PV 생성하기)
pvcreate /dev/sd* 명령어를 통해 Physical volume 을 만들어 줍니다.
( pvcreate [/dev/sd*] [/dev/sd*] 입력하면 한번의 명령어로 여러개의 pv가 생성됩니다
pvs 명령어 or pvscan or pvdisplay 명령어를 통해 Physical volume 현황을 볼 수 있습니다.
(vgs or vgscan or vgdisplay / lvs or lvscan or lvdisplay 명렁어를 통해 각 volume 의 현황을 볼 수 있습니다.)
pvremove [/dev/sd*] (PV 삭제하기)
pvremove [pv] 명령어를 통해 pv 를 삭제할 수 있습니다.
PV를 삭제할 때는 VG에 할당된 상태면 안됩니다.
vg에 할당된 상태에 pv를 삭제할 경우 에러가 발생하며 삭제되지 않습니다.
Volume Group
vgcreate [vg] [pv] (VG 생성하기)
vgcreate [vg] [pv] 명령어로 vg를 만들어줍니다. pv는 여러 개를 추가할 수 있습니다.
ex) vgcreate vg00 /dev/sda /dev/sdb /dev/sdc
여러개를 추가하게 되면 여러 개의 용량이 vg00에 하나로 합쳐지게 됩니다
즉 2개의 phsycial volume 이 하나의 volume group 이 된 것입니다.
pvs 명령어 및 pvscan 명령어를 사용하시면 PV 가 어떤 VG에 할당이 되었는지 알아보실 수 있습니다.
vgcreate -s (PE 사이즈 지정하여 VG 생성하기)
[ RHCSA 시험에 나올 수 있습니다]
기본적으로 pvcreate 명령어를 사용하여 만들어진 PE사이즈는 4MB입니다.
만일 PE 사이즈를 16M로 설정하여 생성할 경우에는
PE Size 가 16MB로 나타나게 됩니다.
vgcreate -s [size] [vg] [pv] -s 명령어 옵션으로 설정할 수 있습니다.
vgextend [vg] [pv] (VG용량 추가하기)
vgextend [vg] [pv] 명령어를 통해 vg의 용량을 늘리 수 있습니다.
해당 옵션을 사용할 때 pv는 할당되지 않은 pv를 입력해주셔야 합니다.
하나의 pv 파티션을 원하는 용량만큼만 추가하여 vg 추가하는 방법 (심화버전)
[해당 문제는 RHCSA 시험 때 나올 수 있습니다]
현재 lsblk의 보시면 /dev/sdb 경우에 20G로 하나로 되어 있음을 알 수 있습니다.
fdisk [devices] 명령어를 통해 파티션 생성을 해줍니다.
n = New라는 뜻이며
p = primary 기본적인 파티션이며
partition number = 말 그대로 파티션 넘버를 정하는 것입니다 ( 순서 )
first sector = 단위는 kb이며 몇부터 시작할 것인지에 대한 설정입니다.
last sector = 부분 + 1G 설정값은 새로 만들 파티션의 용량을 설정해 주는 값입니다.
t 명령은 type 설정을 해주는 것입니다.
L 은 type list all 옵션이며 타입에 맞게 LVM 타입을 설정해 줍니다.
타입을 정한 후 w를 눌러서 저장을 해주시면 완료입니다.
fdisk - l 명령어나 lsblk 명령어를 통해 보면 1G 용량을 가진 파티션이 생성됨을 확인할 수 있습니다.
위의 방법으로 똑같이 여러 개 파티션을 만들어 주었습니다.
pvcreate 명령어를 통해 여러 개의 pv를 만들었습니다.
앞서 배운 명령어 vgcreate와 vgextend 명령어로
하나의 sdb devices에서 3개의 볼륨으로 나누어 여러 곳에 분배를 했습니다.
lv 또한 이러한 방식으로 여러 개 볼륨으로 나눌 수도 있습니다.
vgreduce [vg] [pv] (VG 용량 축소하기)
vgs 명령어를 통해 #PV 칸에 몇 개의 pv 가 할당되었는지 확인할 수 있습니다.
pvs 명령어에서 또한 각 파티션마다 어떤 vg에 할당되어 있고 용량이 얼마큼 할당되어 있는지 알 수 있습니다.
vgreduce [vg] [pv] 명령어를 통해 [vg]에 있는 [pv]를 제거할 수 있습니다.
Logical Volume
LV 생성하기(lvcreate)
lvcreate -L 옵션
lvcreate [vg] [-L size] [-n lv]
lvcreate -l 옵션
lvcreate 명령어에 -L와 -l 헷갈리는 경우가 많은데
-L 경우에는 10G 지정을 하면 10G만큼 용량을 만드는 것이고 -l 옵션은 PE의 개수로 지정합니다
기본 pe size인 4mb 인 상태에 -l 10로 했다면 40mb 용량의 lv 가 만들어지게 되고
pe size 16mb로 지정된 상태에 -l 10 옵션값을 주었다면 160mb 용량의 lv가 만들어지게 됩니다.
PE Size 설정방법은 VG PE 사이즈 지정하여 생성하기 (vgcreate -s) 내용의 더 보기를 확인해 주세요.
lvcreate -l 100% FREE 옵션
lvcreate -l 100%FREE [vg] [-n lv] 명령어를 사용하게 되면
vg의 해당 volume size 100% 전부 다 끌어 사용하게 됩니다.
vgs 명령어를 사용하면 vg03의 8.83G의 Free(사용가능) 용량을 확인할 수 있습니다.
100% FREE 명령어를 사용하여 사용가능한 모든 용량을 전부 다 사용하였음을 확인할 수 있습니다.
* 해당 명령어는 -l 옵션에만 사용 가능합니다 *
lvreduce [lv] [size] (lv 용량 줄이기)
*작업전 필수 확인*
크기를 줄일만큼의 숫자를 지정하면 그만큼 줄어들게 되며 데이터가 저장돼 있는 이상 만큼 줄어들면 기존의 데이터는 당연히 삭제되며 실무에선 거의 안쓰이는 작업입니다
( 리눅스는 파일의 저장을 처음부터 하는게 아니라 각가지로 저장하기 때문에 어디에 저장 되어있는지 모르므로 백업후 축소를 합니다)
또한 umount 한 상태에서 작업을 진행해야합니다.
-l 10 옵션값을 사용 할 경우 PE 사이즈의 * 10 값만큼으로 용량을 설정해버리게 되버리므로
PE Size 16MB * 10 = 160MB 사이즈로 정해져 버립니다.
이렇게 되면 복잡해지므로
create 나 reduce 할때는 -L 옵션을 이용하는것이 대체로 유용합니다.
-L 옵션을 사용하여 -5G 용량만큼 줄인다고 명시를 한다면 용량만큼 제거 되는것을 확인 하실 수 있습니다.
또한 lvreduce 명령어를 사용할때 -r 값을 주어 자동으로 resizefs 옵션을 주도록 해주는 것이 좋습니다.
(현재 필자는 9.2 버젼으로 자동으로 resize가 되어지지만 그 이하 버전들은 resize 값을 직접 입력해줘야합니다)
lvremove [lv] (lv 삭제하기)
*작업전 필수 확인*
( 리눅스는 파일의 저장을 처음부터 하는게 아니라 각가지로 저장하기 때문에 어디에 저장 되어있는지 모르므로 백업후 삭제를 합니다)
또한 umount 한 상태에서 작업을 진행해야합니다.
lvremove [lv] 명령어를 사용하면 lv 용량을 삭제 할 수 있습니다.
명령어를 입력하면 정말로 삭제할것이냐 묻는데 y 를 타이핑 하시면 삭제가 됩니다.
Filesystem Format
mkfs.[filesystem] [lv] ( 파일시스템 포멧하기 )
mkfs.[filesystem] [/dev/vg/lv]
원하는 타입의 파일 시스템으로 정한 후 포멧하면 쉽게 포멧이 완료 됩니다.
Auto Mount 작업하기
Logical Volume Mount and Automount (LV 마운트 설정하기 )
blkid 명령어를 입력하면 device 마다 UUID 를 확인 할 수 있습니다.
하지만 저희는 lv에 대한 UUID만 알면 되기 때문에 | (파이프) 옵션과 grep 옵션으로 lv 부분만 보이도록 하겠습니다.
그러나 UUID 를 다 외울수는 없으니 >> 옵션을 사용하여 etc/fstab 에 해당 부분만 내용을 옮기도록 하겠습니다.
cat /etc/fstab 로 확인해보면 lv 내용만 잘 넘어 온것을 확인 할 수 있습니다.
원하는 마운트 폴더를 만들어주고 내용을 수정 해주도록 합니다.
마운트 할때 UUID 방식으로 마운트를 할것인지
lv 경로를 통한 마운트를 할것인지 둘중 하나의 방법을 통해 하시면 됩니다.
각자의 장단점이 있으므로 원하시는 방법대로 하시면 됩니다.
저장 후 mount -a 명령어를 통해 마운트를 해준 후
df -h 명령어를 통해 정상적으로 마운트가 된것을 확인 할 수 있습니다.
lsblk 명령어를 통해서도 mount 된 부분과 lv에 사용되고 있는 devices 들을 확인 할 수 있습니다.
해당 마운트 부분을 정상적으로 해주지 않는다면 부팅시 정상적으로 부팅이 되지 않으므로 마운트를 꼭 제대로 해주셔야 합니다
LVM 구성 완료.
공감과 댓글은 큰 도움이 됩니다! 한번씩 부탁드리겠습니다~!
카카오톡 오픈채팅방도 운영중이니 자유롭게 참여 부탁드립니다 ~ ! ㅎㅎ
https://open.kakao.com/o/gffATvVf
'RHEL > RHCSA v9 시험' 카테고리의 다른 글
RHCSA v9 준비 - 8. user , group 생성 및 user uid 지정, group 유저 추가 설정 (0) | 2024.05.07 |
---|---|
RHCSA v9 dump 및 공부 방법 (0) | 2023.12.13 |
RHCSA v9 준비 - 6. selinux 모드 설정 / selinux mode setting (0) | 2023.12.04 |
RHCSA v9 준비 - 5. 호스트네임 설정 hostnamectl set-hostname (1) | 2023.12.04 |
RHCSA v9 준비 - 4. nmcli 명령어를 이용한 network 구성 및 bonding 설정 구성 (2) | 2023.12.03 |