내 동료가 정확히 무엇을 했는지는 모르지만 그가 LVM 크기를 늘리려고 했다는 것은 알고 있습니다. 이제 명령을 실행하면 다음과 같은 출력을 볼 수 있습니다 lsblk
.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
fd0 2:0 1 4K 0 disk
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 1G 0 part /boot
├─sda2 8:2 0 39G 0 part
│ ├─rhel-root 253:0 0 95G 0 lvm /
│ └─rhel-swap 253:1 0 4G 0 lvm [SWAP]
└─sda3 8:3 0 60G 0 part
└─rhel-root 253:0 0 95G 0 lvm /
보시다시피 rhel-root
및 아래에 동일한 이름이 두 개 있으며 둘 다 루트 디렉터리에 마운트되어 있습니다.sda2
sda3
/
그러나 출력은 다음과 df -h
같습니다.
Filesystem Size Used Avail Use% Mounted on
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 9.6M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/mapper/rhel-root 35G 28G 7.3G 80% /
/dev/sda1 1014M 285M 730M 29% /boot
tmpfs 783M 8.0K 783M 1% /run/user/42
tmpfs 783M 0 783M 0% /run/user/1001
크기는 /
여전히 35G인 것으로 보이며, 이는 확장이 없음을 의미합니다.
병합해야 할 것 같은데 sda3
이 sda2
문제를 해결하는 방법을 모르겠습니다.
출력 lvs
:
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel -wi-ao---- 94.99g
swap rhel -wi-ao---- 4.00g
출력 vgs
:
VG #PV #LV #SN Attr VSize VFree
rhel 2 2 0 wz--n- 98.99g 0
출력 pvs
:
PV VG Fmt Attr PSize PFree
/dev/sda2 rhel lvm2 a-- <39.00g 0
/dev/sda3 rhel lvm2 a-- <60.00g 0
출력 vgdisplay
:
--- Volume group ---
VG Name rhel
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 9
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 98.99 GiB
PE Size 4.00 MiB
Total PE 25342
Alloc PE / Size 25342 / 98.99 GiB
Free PE / Size 0 / 0
VG UUID tPY1JO-AwK2-ULra-Matz-5VVy-lxWK-CL60ng
답변1
rhel-root
귀하의 동료가 LV를 성공적으로 확장했으므로 lvextend
이제 LV의 일부가 열려 sda2
있고 다른 부분도 열려 있습니다 sda3
. 그러나 LV 내의 파일 시스템은 아직 확장되지 않았습니다.
rhel-root
LV 는 하나만 있지만 lsblk
여기에 표시되는 방식은 약간 혼란스러울 수 있습니다. LV의 전체 크기를 각 개별 부분에 상대적으로 표시합니다.
sda2
PV는 VG sda3
에 병합되었으므로 rhel
해당 VG 내의 LV는 단일 PV의 한계를 넘어 성장할 수 있습니다. 분명히 동료는 루트 파일 시스템이 포함된 파티션을 동적으로 편집하는 것과 관련된 위험을 피하고 새 공간으로 새 파티션을 만들고 이를 기존 VG에 새 PV로 추가하기를 원했습니다. 제 생각에는 이것이 부팅 가능한 디스크에서 VG를 확장하는 가장 안전한 방법입니다. PV로 여러 파티션이 남게 되어 깔끔함이 손상될 수 있지만 실제로는 다른 중요한 영향은 없습니다.
이 시점에서도 원하는 경우 삭제 sda3
하고 확장 할 수 있습니다 sda2
. 절차는 다음과 같습니다.
먼저 lvreduce
LV를 root
원래 모양으로 매우 조심스럽게 축소합니다. LVM 백업 파일을 사용하여 /etc/lvm/archive
정확한 크기를 알아내거나 lvdisplay -m /dev/mapper/rhel-root
PV에 있는 익스텐트 수를 확인 sda2
하고 해당 값을 사용할 수 있습니다.이 작업을 수행하기로 선택한 경우 LV를 그 안에 있는 파일 시스템의 현재 크기보다 작게 축소하지 않도록 매우 주의해야 합니다.파일 시스템의 꼬리 부분을 조금이라도 잘라내고 싶지는 않을 것입니다.
sda3
그런 다음 VG를 확장하여 새 공간을 차지하기 위해 VGrhel
vgreduce rhel /dev/sda3
sda3
sda2
partprobe /dev/sda
partprobe
pvresize /dev/sda2
rhel
sda2
lvextend -l +100%FREE /dev/mapper/rhel-root
root
이제 당신은 동료와 같은 상황에 있지만 미학적 불쾌감은 없습니다 sda3
.
동료가 놓친 마지막 단계는 실제로 LV의 증가된 용량을 활용하기 위해 파일 시스템을 확장하는 것이었습니다. 출력 /run
에 df -h
VG 이름이 있는 것으로 볼 때 rhel
시스템이 RHEL 7 이상이라고 가정합니다. 따라서 기본 파일 시스템 유형은 XFS입니다. 즉, 파일 시스템을 확장하는 명령은 다음과 같습니다.
fsadm resize /dev/mapper/rhel-root
또는
xfs_growfs /
참고: 이 작업을 수행하기 전에 신중하게 생각하십시오.현재 XFS 파일 시스템을 온라인이나 오프라인으로 축소하기 위한 프로덕션 품질 도구는 없습니다.따라서 파일 시스템을 확장한 후에는 더 작은 크기로 축소할 수 없습니다.
sda3
이 명령은 삭제 및 확장을 선택하든 , 동료의 작업을 그대로 유지하든 sda2
동일합니다 .