리눅스에서 파티션을 나누고 PV(Physical Volume), VG(Volume Group), LV(Logical Volume) 까지 구성하는 방법을 알려 드릴게요.
순서는 이렇게 됩니다.
1. 통 디스크의 파티션을 나눔(fdisk 활용)
2. pv 를 생성
3. vg 를 생성
4. lv 를 생성
5. lv를 사용하기 위해 포맷을 함
6. mount 후 사용
그럼 차근차근 시작해보도록 하죠.
먼저 스토리지에서 할당을 받았던, usb를 붙였던 디스크가 붙어있다고 가정합시다.
내가 붙인 디스크가 어느 경로에 붙었는지 확인하기 위해서는 아래명령어로 확인을 해 줍니다.
blkid
보통 vda, vdb (VM인 경우) 또는 sda, sdb (물리서버의 경우(vmware는 가상서버이지만 예외적으로 sda와 같이 표시됨)) 와 같은 이름으로 표기가 될텐데 마지막으로 붙은 알파벳이 뭔지 대략적으로 확인해 주고, fdisk 에서 다시한번 보도록 합니다.
fdisk -l
위 명령어를 수행 해 보면 용량과 대조가 가능할 겁니다.
그럼 이제 /dev/vdb 가 새로운 디스크라고 가정해 봅시다.
이제 그럼 파티션 나누는 작업을 시작해 보죠.
1. 통 디스크의 파티션을 나눔(fdisk 활용)
fdisk /dev/vdb
위 명령어로 vdb 디스크를 fdisk 로 들어갑니다.
이렇게 나오면 잘 들어온 겁니다.
m 을 눌러보면 메뉴들을 쭉 표시해줄테고 저희가 하고자하는 파티션 나누기를 하려면 n 을 눌러 줍니다.
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
그 후, 새 파티션이므로 p 로 가야합니다. default 가 p 이므로 그냥 Enter.
Partition number (1-4, default 1):
그럼 위와 같이 나오는데 첫번째 파티션을 만드는 것이므로 1. 이것도 default 1 이므로 그냥 Enter.
First sector (2048-143305919, default 2048):
Using default value 2048
섹터로 첫 섹터부터 꽉 채울 예정이므로 그냥 Enter.
Last sector, +sectors or +size{K,M,G} (2048-286343959, default 286343959):
Using default value 286343959
Partition 1 of type Linux and of size 120 GiB is set
여기선 저는 그냥 Enter. 그냥 Enter를 치면 해당 디스크 용량만큼 꽉 채워 만들게 됩니다.
(만약 일부 용량만 주고 싶다 하면 여기서 +50G 와 같이 적어주면 됩니다)
이제 파티션이 생성 되었습니다.
p 를 눌러서 확인해보면 잘 생성된 것을 볼 수 있습니다.
Command (m for help): p
하지만 여기서 보시면 Type 은 Linux 로 되어있는데 기왕이면 나중에 확장 및 축소 가능하게 하기 위해 Type 을 Linux LVM 으로 변경해 주는 것이 좋습니다.
t를 눌릅시다.
Command (m for help): t
t를 누르면 위와 같이 Type 종류들이 나오게 되는데 이 중 Linux LVM 인 8e 를 선택하고 Enter.
이제 다시 p를 눌러서 보면 Type 이 Linux LVM 이 된 것을 확인할 수 있습니다.
그럼 이제 저장을 하고 빠져 나갑시다.
저장은 w 입니다.
Command (m for help): w
이제 저장하고 빠져나옴으로써 파티션은 생성을 완료 하였습니다.
2. pv 를 생성
PV(Physical Volume) 생성은 간단합니다.
조금 전 만든 파티션에 의해 vdb 디스크에 vdb1 이라는 파티션이 생겼을 겁니다. (2번째 파티션을 만든 것이라면 vdb2)
저는 vdb1 이 방금 만든 파티션이라고 가정해 보겠습니다.
pvcreate /dev/vdb1
위 명령어를 수행하면 pv 가 만들어 집니다.
잘 만들어졌나 확인해보려면,
pvs
위 명령어를 수행해보면 pv 목록이 나옵니다.
3. vg 를 생성
이제 VG(Volume Group) 를 생성할 차례입니다.
빠르게 가봅시다.
vgcreate vg1 /dev/vdb1
vg 명 : vg1
조금전 만든 pv를 사용하여 vg1 이라는 vg를 만들었습니다.
확인하기 위해선,
vgs
만든 vg 목록이 나옵니다.
4. lv 를 생성
이제 LV(Logical Volume) 입니다.
만든 vg를 활용하여 lv 를 만들어 보죠.
lvcreate -L 50G -n lv1 vg1
lv 사이즈 : 50GB
lv 이름 : lv1
vg1 을 활용하여 lv1 이라는 lv 를 생성하였습니다.
만약 여기서 나는 디스크 전체를 lv로 잡을거다 라고 생각하시고 100GB짜리 vg에 lvcreate -L 100G 를 입력하시면 간혹 용량이 초과된다거나 안만들어지는 에러 메시지가 나올 수 있습니다. 이는 vg가 실제로 100GB보다 미세하게 작을 수 있기 때문 입니다.
따라서 이 경우에 vg의 용량을 꽉 채워서 lv를 만들고 싶으시면
lvcreate -l +100%free -n lv1 vg1
위와 같이 소문자 -l 과 +100%free 를 사용해 주시면 있는 용량을 꽉 다 잡게 됩니다.
마지막으로 lv 리스트를 확인하기 위해서는,
lvs
5. lv를 사용하기 위해 포맷을 함
이제 lv까지 만들었으니 실질적으로 사용하기 위해 포맷을 해줘야 합니다.
xfs, ext4 등등의 포맷 형식이 있지만 저는 개인적으로 ext4를 좋아하기 때문에 ext4로 예를 들어 볼게요.
mkfs.ext4 /dev/vg1/lv1
위 명령어를 수행하면 lv1 을 ext4 Type 으로 포맷을 합니다.
6. mount 후 사용
이제 mount 하고 사용할 일만 남았습니다.
원하는 mount 위치에 폴더를 생성해 줍시다.
저는 /mnt/test 폴더에 마운트를 해보겠습니다.
mount /dev/vg1/lv1 /mnt/test
마운트가 완료 되었습니다.
하지만 이대로 두면 서버가 재부팅되었을 경우 mount 가 풀려 버립니다.
따라서 /etc/fstab 에 등록해 주는 것이 좋습니다.
vi /etc/fstab
proc /proc proc defaults 0 0
# a swapfile is not a swap partition, no line here
# use dphys-swapfile swap[on|off] for that
/dev/mapper/vg1-lv1 /mnt/test ext4 defaults 0 0
위 그림에서 맨 아랫줄과 같이 적어주고 저장을 하고 빠져나옵니다.
fstab 내용들을 바로 적용해보고 싶다면
mount -a
라고 명령어를 치시면 fstab 내용들을 마운트 시도 합니다.
이제 마운트 된 lv 를 사용하시면 됩니다.
끝.
'리눅스' 카테고리의 다른 글
라즈베리파이에 DDNS 부여해서 고유 도메인 주소 주는 방법 (0) | 2021.01.19 |
---|---|
리눅스 CLI 에서 screen 사용하면 작업 또는 프로세스 돌리고 창 닫아도 된다 (0) | 2021.01.18 |
라즈베리파이에 쿠버네티스 설치 후 CPU 온도, 메모리 사용량, 디스크 사용량, 파드(Pod) 및 주요 서비스 상태 출력 하기 (0) | 2021.01.18 |
리눅스 rsync 로 백업하고 crontab 걸어서 자동 백업 구성 (0) | 2021.01.17 |
umount 하려는 디스크에 프로세스가 사용 중 일때 (0) | 2020.12.25 |