sda3의 LVM을 sda2로 이동/병합하는 방법은 무엇입니까? 문제는 vg1-var 및 vg1-opt가 두 개의 PV에 상주하므로 a가 pvmove
작동하지 않는다는 것입니다.
sda 8:0 0 80G 0 disk
├─sda1 8:1 0 300M 0 part /boot
├─sda2 8:2 0 37G 0 part
│ ├─vg1-root 253:0 0 5G 0 lvm /
│ ├─vg1-swap 253:1 0 4G 0 lvm [SWAP]
│ ├─vg1-usr 253:2 0 8G 0 lvm /usr
│ ├─vg1-home 253:4 0 2G 0 lvm /home
│ ├─vg1-var 253:5 0 6.7G 0 lvm /var
│ ├─vg1-tmp 253:6 0 10G 0 lvm /tmp
│ └─vg1-opt 253:7 0 5G 0 lvm /opt
└─sda3 8:3 0 42.7G 0 part
├─vg1-var 253:5 0 6.7G 0 lvm /var
└─vg1-opt 253:7 0 5G 0 lvm /opt
PV VG Fmt Attr PSize PFree
/dev/sda2 vg1 lvm2 a-- 37.00g 0
/dev/sda3 vg1 lvm2 a-- <42.70g 39.00g
답변1
가장 쉬운 방법은 임시로 새 드라이브를 연결하고 pvmove /dev/sda3
다시 설치하는 것입니다. 이를 통해 성장 /dev/sda2
하고 모든 것을 되돌릴 수 있습니다.
이것이 불가능할 경우 소유한 드라이브의 데이터를 재구성해야 합니다. 인접한 PV는 정렬 문제로 인해 직접 병합할 수 없는 경우가 많으므로 모든 것을 두 번 이동해야 합니다.
용량 /dev/sda3
은 42.7G이고, 사용 가능한 공간은 39G이므로 약 3.7G가 사용됩니다. 따라서 디스크 끝에 새로운 4G 크기가 생성 /dev/sda3
되도록 4G를 축소할 수 있어야 합니다 ./dev/sda4
pvresize /dev/sda3 --setphysicalvolumesize 37G
parted /dev/sda -- resizepart 3 -4G
parted /dev/sda -- mkpart primary -4G -1
모든 데이터를 새 파티션으로 이동합니다.
vgextend vg1 /dev/sda4
pvmove /dev/sda3
vgreduce vg1 /dev/sda3
현재 무료인 것을 삭제 /dev/sda3
하고 /dev/sda2
그에 따라 확장합니다.
parted /dev/sda -- rm 3
parted /dev/sda -- resizepart 2 -4G
pvresize /dev/sda2
/dev/sda4
지금부터 충분히 커질 때까지 모든 것을 이동하세요 /dev/sda2
.
pvmove /dev/sda4
vgreduce vg1 /dev/sda4
이 시점에서 VG는 단일 PV인 /dev/sda2
.
지금 무료인 것을 삭제 /dev/sda4
하고 다시 키우세요 /dev/sda2
:
parted /dev/sda -- rm 4
parted /dev/sda -- resizepart 2 -1
pvresize /dev/sda2
이 단계는 매우 거칠고 때로는 실패할 수 있으므로 그에 따라 조정해야 합니다. 특히 명령을 맹목적으로 실행해서는 안 되며 항상 , , , , , ... parted
에서 무슨 일이 일어나고 있는지 확인하십시오.parted /dev/sda print free
vgs
lvs
pvs
lsblk
바꿀 이유가 없다면 그냥 그대로 두겠습니다. 문제는 많고 이익은 거의 없습니다. PV가 여러 개 있으면 메타데이터의 추가 복사본과 같은 몇 가지 이점도 있습니다.