본문 바로가기
linux

디스크관리 1

by dongwookim 2023. 3. 6.

이번시간에는 디스크 관리에 대해 알아보고자 한다.

 

물리공간을 먼저 할당한 다음, 가상에 공간에 집약시키고 필요한 만큼 나누어 사용하는 원리이다.

 

lv 공간에서 파일시스템 관리(포맷)과 마운트(장치와 폴더의 연결)을 해주면 마무리가 된다.

 

물리공간은 pv 가상공간은 vg 나누어진(실제 사용) 공간은 lv로 나타낼 수 있다.

 

상세 설명은 아래와 같다.

 

LVM(Logical Volume Manage)

디스크 관리 메커니즘: 파티션 -> pv 생성 -> vg 생성 -> lv 생성 -> 파일시스템 -> mount
1.PV (Phygical Volume): LVM으로 사용하겠다는 선언
     # pvcreate 파티션명
     # pvscan, pvs
   # pvdisplay
     # pvremoce

2.VG (Volume Group): Pv의 총집합 장소
     # vgcreate -s pe사이즈 vg명 pv명2 pv명2 ..
     # vgscan, vgs
   # vgdisplay
   # vgremove vg명
     # vgextend vg명 추가할 pv명
    #  vgreduce vg명 제거할 pv명1 제거할 pv명2


3.LV (Logical Volume): 실제로 활용하도록 나누는 공간
   # lvcreate -L 사이즈 -n lv명 vg명
   # lvcrete -l 정수 수치(vgs확인) -n  lv명 vg명
   # lvextend -L  + 용량 /dev/vg명/lv명 기존용량에 + 용량 만큼 증가
   # lvextend -L 사이즈 /dev/vg명/lv명 최종용량
   # lvremove /dev/g명/lv명


용량 추가한 것을 반영하는 명령어
resize2fs
xfs_growfs


df- Th로 마지막 확인 하기

 

예제로 통해 알아보자 두 하드디스크 sdb와 sdc에는 각각 10,G 5G가 배정된 상태이다.

먼저 파티션을 나눠야 한다. fdisk 명령어로 sdb에 들어간다음, 커맨드 n을 눌러 파티션 설정모드에 진입한다.

그리고 계속 enter를 눌러 기본값 설정이 되게 한다. 해당 하드디스크에 10G가 배정되어 있으므로 따로 세분화 해서 설정하지 않는이상 10G가 전부 배정이 된다.

 

 

 

또한 해당 파티션을 LV에서 사용할 수 있게끔 커맨드 t와 8e 설정으로 Linux LVM 모드로 만들어준다.

 

 

 

 

 

다음은 pvcreate 명령어로 pv를 만들고 pvscan으로 확인한다. pv의 이름은 sdb1이다.

 

 

pv를 가상의 공간으로 집약시킬떈 gvcreate 명령어를 사용한다. gv의 이름은 babo로 설정한다.

gvs로 확인했을때 babo에 free한 공간이 10G 전체임을 확인할 수 있다.

 

 

 

 

다음으로 실제공간은 세 개로 설정하며 이름은 각각 babo1~3이다.

lvcreate 명령어로 만들 수 있는데 용량을 먼저 기입하고 경로를 쓰면된다.

만들어진 lv는 lvscan으로 확인할 수 있다.

 

 

 

다음은 파일 시스템을 만든다. 파일 시스템이란  lv 작업 후, 저장장치 내에서 파일을 쉽게

접근,저장, 공간관리등을 하기 위한 관리 체계를 뜻한다. 대표적인 예로 ext4, xfs가 있다.

아래와 같이 babo 1과 2는 xfs 3은 ext4로 포맷한다.

명령어는 mkfs.xfs or ext4 경로이다.

 

 

그 다음 단계는 마운트로 실제 폴더와 장치를 연결해주는 것이다.

mount 다음 장치의 경로와 파일의 경로를 쓰면된다.

설정 후 mount 명령어로 확인할 수 있다.

 

 

 

sdb1에 용량을 추가하기 위해 5G의 용량이 있는 sdc1을 이용한다.

sdb1 처럼 fdisk 명령어로 파티션을 생성후 Linux LVM으로 만들어준다.

 

 

 

sdc1의 pv를 만들어 준 후 기존의 vg에 추가할 것이므로 vgcreate가 아닌 vgextend 명령어를 쓴다.

vg babo에 추가할 것이므로 vgextend babo 순으로 명령어를 기입하면 된다.

확인은 vgs로 할 수 있으며 여유공간이 확보 된 것을 알 수 있다.

 

 

 

vgextend 처럼 세 개의 lv 공간에 확장을 해준다. 각각 1G씩 추가를 해주려고 한다.

lvextend -L +추가용량 경로 순으로 명령어를 기입하면 된다.

확인하는 명령어는 df -Th이나 반영이 안된 것을 알 수 있다.

 

 

 

 

파일시스템 포맷 단계의 xfs와 ext4 각각 xfs_growfs resize2fs 명령어로 실제 추가된 용량을 반영 시켜주면 된다.

 

 

이 후에 추가된 용량까지 잘 반영 됨을 알 수 있다.

 

umount 경로 명령어로 마운트 한 것들을 먼저 해제해준 후

wipefs 명령어로 lv 디렉토리에 있는 잔여 파일들을 제거해준다.

 

 

 

 

lvremove 명령어로 lv를 삭제 해준다.

 

 

 

다음은 vgremove로 vg 공간을 삭제해준다. 그리고 pvremove 명령어로 /dev/sdb1과 /dev/sdc1을 삭제해준다.

 

 

 

pvscan으로 확인해보면 잘 삭제 되었음을 확인할 수 있다.

 

 

마지막으로 fdisk로 진입해 sdb, sdc의 파티션을 커맨드 d로 삭제해준다. p로 확인 후 저장 및 exit 하면된다.

 

 

lsblk 명령어로 sdb, sdc 두 하드디스크가 처음 설정 그대로 돌아 왔음을 확인할 수 있다.

'linux' 카테고리의 다른 글

예약 작업  (0) 2023.03.08
사용자 그룹관리(/etc/passwd와 /etc/group)  (0) 2023.03.04
파일과 디렉토리의 권한 설정  (0) 2023.03.02
압축과 아카이브  (0) 2023.03.02
link 파일: hardlink와 Symboliclink  (0) 2023.03.02