LVM 그룹 볼륨에서 사용 가능한 디스크 공간을 100% 활용하기 위해 실수로 볼륨을 확장했습니다. 디스크만 사용하려면 필요한데 /dev/sdb
, 두 디스크가 같은 그룹에 있기 때문에 두 디스크의 여유 공간을 차지합니다. 이 상황을 되돌릴 수 있는 방법이 있나요?
[root@server]# pvscan
PV /dev/sda3 VG myvg lvm2 [13.84 GB / 13.84 GB free]
PV /dev/sdb3 VG myvg lvm2 [22.06 GB / 8.22 GB free]
Total: 2 [35.91 GB] / in use: 2 [35.91 GB] / in no VG: 0 [0 ]
[root@server]# lvextend -l +100%FREE /dev/myvg/rootvol
Extending logical volume rootvol to 35.91 GB
Logical volume rootvol successfully resized
[root@server]# pvscan
PV /dev/sda3 VG myvg lvm2 [13.84 GB / 0 free]
PV /dev/sdb3 VG myvg lvm2 [22.06 GB / 0 free]
Total: 2 [35.91 GB] / in use: 2 [35.91 GB] / in no VG: 0 [0 ]
실제로 삭제해야 합니다 /dev/sda3
.
이는 RHEL 5.9 시스템에 있습니다.
데이터 손실을 원하지 않습니다.
고쳐 쓰다:
임시 디스크를 사용하는 경우 거의 같은 크기의 디스크가 필요하며 볼륨 하나만 pvmove하는 경우 다른 디스크에 아무것도 없고 데이터가 손상되지 않았는지 어떻게 확인할 수 있습니까?
고쳐 쓰다:
더 큰 새 디스크와 pvmove
/dev/sda3
(새 디스크)를 추가했습니다 /dev/sdb3
. /dev/sdc3
df가 루트 볼륨에 새로 추가된 여유 공간을 계속 표시하는 이유가 무엇인지 잘 모르겠습니다.
[root@server]# pvscan
PV /dev/sdc3 VG myvg lvm2 [47.06 GB / 11.16 GB free]
PV /dev/sda3 lvm2 [13.85 GB]
PV /dev/sdb3 lvm2 [22.07 GB]
Total: 3 [82.98 GB] / in use: 1 [47.06 GB] / in no VG: 2 [35.92 GB]
[root@server]# lvscan
ACTIVE '/dev/myvg/rootvol' [35.91 GB] inherit
[root@server]# df -kh .
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/myvg-rootvol
14G 12G 1.3G 91% /
답변1
먼저 백업을 만들고 작동하는지 테스트하십시오. 데이터가 삭제되지는 않지만 철자 오류로 인해 모든 내용이 손실될 수 있습니다.
파일 시스템이 아닌 논리 볼륨만 확장했기 때문에 논리 볼륨만 축소하면 됩니다. 상위 파일 시스템의 크기를 알아보세요 /dev/myvg/rootvol
. ext4 파일 시스템인 경우 tune2fs -l /dev/myvg/rootvol
이를 알려줍니다. 올바르게 설정하는 것이 중요합니다. 논리 볼륨을 파일 시스템 크기보다 작게 축소하면 데이터가 손실됩니다. 그런 다음 실행
lvreduce -L NNNNNNNk /dev/myvg/rootvol
여기서 NNNNNNN은 파일 시스템의 크기(kB)입니다.
이제 실행 pvmove
하여 의 데이터를 해제합니다 /dev/sda3
. 나중에 물리적 볼륨을 삭제할 수 있습니다.
pvmove /dev/sda3
vgreduce myvg /dev/sda3
pvremove /dev/sda3
답변2
내가 그랬으니까아니요FS는 전체 VG 범위를 채우기 위해 크기가 조정되고 새 물리 볼륨은 비어 있습니다. 다음을 수행하여 볼륨 그룹의 범위를 간단히 줄일 수 있습니다.
lvreduce -l3913721 /dev/myvg/rootvol
vgreduce rootvol /dev/sds
pvremove /dev/sds
여기서 3913721은 이전 범위입니다.