LVM은 각각의 디스크 파티션을 묶어 한 파티션처럼 사용할 수 있다.
디스크 확인
VMWare와 같은 가상화 솔루션을 사용하면 유동적으로 디스크를 추가해야하는 경우가 있다.
이 경우 VMWare에서 VM에 disk 장치를 추가했음에도 불구하고 VM 내 Linux OS에서는 인식하지 못하는 경우가 있다.
[root@server /]# fdisk -l | grep /dev/sd
Disk /dev/sda: 53.7 GB, 53687091200 bytes, 104857600 sectors
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 104857599 51379200 8e Linux LVM
-> VM 내 실제 디스크는 sda, sdb 2개가 할당 되어 있으나 OS상에서는 기존의 sda만 인식 중
해결 방법
가장 간단한 방법은 VM 재부팅이다. VM을 재부팅하여 초기 부팅 시 장치 인식 과정에서 추가된 sdb 디스크를 인식 시키면 된다.
하지만, 상용 환경에서는 서비스 영향을 고려해야한다. 재부팅 없이 온라인 환경에서의 인식 시킬 수 있는 방법이 필요하다.
인식 방법은 /sys/class/scsi_host/{host#}/scan 파일에 echo "- - -"(- 사이 띄어쓰기 주의) 을 실행하면 된다.
echo "- - -" > /sys/class/scsi_host/{host#}/scan
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
참고
https://november11tech.tistory.com/122
fdisk 로 sda 1.2TB, 추가한 sdb 1.1TB 확인
# fdisk -l
Disk /dev/sda: 1.2 TiB, 1319413953024 bytes, 2576980377 sectors
Disk model: Virtual disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xbb26ac42
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1050623 1048576 512M 83 Linux
/dev/sda2 1050624 34605055 33554432 16G 83 Linux
/dev/sda3 34605056 68159487 33554432 16G 82 Linux swap / Solaris
/dev/sda4 68159488 2576979967 2508820480 1.2T f W95 Ext'd (LBA)
/dev/sda5 68161536 2572505087 2504343552 1.2T 8e Linux LVM
Disk /dev/sdb: 1.1 TiB, 1209462790144 bytes, 2362232012 sectors
Disk model: Virtual disk
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/rocky-root: 1.07 TiB, 1172542849024 bytes, 2290122752 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 65536 bytes / 65536 bytes
# pvscan
PV /dev/sda5 VG rocky lvm2 [<1.17 TiB / 100.00 GiB free]
Total: 1 [<1.17 TiB] / in use: 1 [<1.17 TiB] / in no VG: 0 [0 ]
# pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created.
# pvscan
PV /dev/sda5 VG rocky lvm2 [<1.17 TiB / 100.00 GiB free]
PV /dev/sdb lvm2 [<1.10 TiB]
Total: 2 [<2.27 TiB] / in use: 1 [<1.17 TiB] / in no VG: 1 [<1.10 TiB]
sda 와 sdb 각각의 pv 를 2TB 의 VG로 묶음
# vgextend rocky /dev/sdb
Volume group "rocky" successfully extended
# pvscan
PV /dev/sda5 VG rocky lvm2 [<1.17 TiB / 100.00 GiB free]
PV /dev/sdb VG rocky lvm2 [<1.10 TiB / <1.10 TiB free]
Total: 2 [<2.27 TiB] / in use: 2 [<2.27 TiB] / in no VG: 0 [0 ]
# lvscan
ACTIVE '/dev/rocky/pool00' [<1.07 TiB] inherit
ACTIVE '/dev/rocky/root' [<1.07 TiB] inherit
# lvextend -l +100%FREE -n /dev/rocky/root
Size of logical volume rocky/root changed from <1.07 TiB (279556 extents) to 2.26 TiB (593515 extents).
WARNING: Sum of all thin volume sizes (2.26 TiB) exceeds the size of thin pool rocky/pool00 and the amount of free space in volume group (<1.20 TiB).
WARNING: You have not turned on protection against thin pools running out of space.
WARNING: Set activation/thin_pool_autoextend_threshold below 100 to trigger automatic extension of thin pools before they get full.
Logical volume rocky/root successfully resized.
# lvscan
ACTIVE '/dev/rocky/pool00' [<1.07 TiB] inherit
ACTIVE '/dev/rocky/root' [2.26 TiB] inherit
파일 시스템 별 설정
# resize2fs /dev/rocky/root
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/rocky/root is mounted on /; on-line resizing required
old_desc_blocks = 137, new_desc_blocks = 290
The filesystem on /dev/rocky/root is now 607759360 (4k) blocks long.
# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 7.7G 0 7.7G 0% /dev/shm
tmpfs 3.1G 8.8M 3.1G 1% /run
/dev/mapper/rocky-root 2.3T 96G 2.1T 5% /
/dev/sda2 16G 520M 15G 4% /var
/dev/sda1 488M 288M 164M 64% /boot
tmpfs 1.6G 4.0K 1.6G 1% /run/user/0
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1.2T 0 disk
├─sda1 8:1 0 512M 0 part /boot
├─sda2 8:2 0 16G 0 part /var
├─sda3 8:3 0 16G 0 part [SWAP]
├─sda4 8:4 0 1K 0 part
└─sda5 8:5 0 1.2T 0 part
├─rocky-pool00_tmeta 253:0 0 1.1G 0 lvm
│ └─rocky-pool00-tpool 253:2 0 1.1T 0 lvm
│ ├─rocky-root 253:3 0 2.3T 0 lvm /
│ └─rocky-pool00 253:4 0 1.1T 1 lvm
└─rocky-pool00_tdata 253:1 0 1.1T 0 lvm
└─rocky-pool00-tpool 253:2 0 1.1T 0 lvm
├─rocky-root 253:3 0 2.3T 0 lvm /
└─rocky-pool00 253:4 0 1.1T 1 lvm
sdb 8:16 0 1.1T 0 disk
sr0 11:0 1 1.5G 0 rom
2. 디스크의 용량을 늘려 LVM 디스크확장
1. / 디렉토리 LVM 씬 프로비전, ext4로 생성 (볼륨 그룹명은 자유롭게 수정 가능, 여기선 rocky로 수정/이름도 root로 진행)

2. 디스크 사이즈 추가

3. lvscan으로 볼륨그룹/이름 확인

# lvextend -l +100%FREE -n /dev/{LVM 볼륨그룹}/{이름}
5. 확장된 파티션의 파일시스템 지정
# resize2fs /dev/{LVM 볼륨그룹}/{이름}

6. df -h로 확인

만약 디스크가 MBR 파티션 테이블을 사용한다면 2TB 이상의 디스크 크기를 지원하지 않는다.