기존 블록 장치의 크기를 늘리는 경우(예: vmware에서 /dev/sdc에 20GB를 제공했지만 현재는 40GB임) 해당 공간을 사용하려면 LVM에 대해 몇 가지 작업을 수행해야 합니다. 내가 본 모든 가이드(1,2,삼)에서는 기존 파티션을 삭제하고 다시 생성하고 끝에 추가 공간을 추가한 다음 pvresize를 실행할 것을 제안합니다.
pvresize /dev/sdc1
/dev/sdc1의 크기를 조정하고 실행하는 대신 /dev/sdc2를 생성하여 실행 pvcreate /dev/sdc2
하고 VG에 추가할 수도 있습니다.
새 파티션을 추가하는 것보다 크기 조정이 더 나은 기술적 또는 성능상의 이유가 있습니까? 아니면 크기 조정이 항상 해왔던 방식대로 작동합니까?
답변1
요약: 순전히 기술적인 관점에서는 큰 차이가 없지만 크기 조정이 더 좋습니다. 실용적인 측면이 추가되면 새로운 파티션을 추가하는 것이 확실한 승자입니다.
엄밀히 기술적인 관점에서 볼 때, 새로운 광전지에는 몇 가지 단점이 있습니다.
- 일부 디스크 공간을 소비하는 LVM 메타데이터의 또 다른 복사본을 얻게 됩니다. 이는 또한 LVM 작업이 빈번한 경우 쓰기 증폭으로 이어질 수 있습니다(메타데이터가 모든 PV에 미러링되므로).
- 정렬을 위한 빈 공간이 남아 있을 수 있습니다.
- 새 PV에 대한 정보를 저장하려면 LVM 메타데이터(복제본당)의 양을 약간 늘립니다.
- 두 개의 PV에 걸쳐 있는 LV를 생성하는 경우 연속되지 않습니다(추가 메타데이터 및 정렬을 위해 남겨진 구멍으로 인해). 예를 들어 대규모 순차 읽기/쓰기에 해당 LV를 사용하는 경우 이제 그곳에서 조회를 수행하십시오.
실용적인 관점에서 볼 때 이는 합리적인 양의 PV에 중요하지 않습니다. 메타데이터의 추가 복사본이 먼저 중요하지만 더 적은 수의 복사본(VG --metadatacopies
또는 PV --metadataignore
) 을 유지하는 LVM 옵션이 있습니다 .
또한 실용적인 관점에서 계속해서 파티션을 삭제하고 다시 만드는 것은 새 파티션을 만드는 것보다 관리 오류(오타 등)에 시달릴 가능성이 더 높습니다. 왜냐하면 후자를 위한 더 나은 도구가 있기 때문입니다. 발생하는 관리 오류로 인해 크기 조정에 더 많은 손상이 발생할 수 있습니다(데이터는 크기가 조정된 파티션에 있지만 새 파티션에는 데이터가 없기 때문입니다). 예를 들어, mdraid가 LVM보다 낮을 경우에는 상황이 더욱 악화됩니다. 선택 에 따라 -e
슈퍼블록은 배열의 끝에 있을 수 있으며 이는 파티션 크기를 조정할 때 흥미로울 수 있습니다.
한 가지 예외가 있습니다. 어떤 이유로 새 파티션을 만들 수 없는 경우입니다. 예를 들어, DOS 파티션 테이블을 사용하고 있고 기본 파티션 4개를 모두 사용했습니다(확장 파티션이 생성되지 않음). 그렇다면 선택의 여지가 없습니다.
답변2
제안한 대로 동일한 VG에 더 많은 PV를 계속 추가하여 VM의 스토리지를 늘려 스토리지를 확장하면 보기 흉할 수 있습니다.
VM의 공간을 10배 늘려야 한다고 가정해 보겠습니다. VG 10배에 새 PV를 추가하시겠습니까? 가상 머신은 결국 수많은 가상 디스크와 연결된 PV로 구성됩니다.
lvextend
추가 공간을 사용하기 위해 매번 VG에 PV를 추가하면 resize2fs
어떻게 되나요 ? 귀하의 LV 및 그 안의 파일 시스템여러 PV에 걸쳐 있음. 이렇게 하면 pvdisplay -m
LV가 다른 PV 범위를 사용하는 것을 볼 수 있습니다.
시스템이 복잡할수록 이상하고 예상치 못한 방식으로 실패할 가능성이 높아집니다.
그건아니요설명하다"VM당 최대 1개의 PV(가상 디스크)"! PV를 사용하세요VG마다, 즉, 데이터를 운영 체제와 별도로 별도의 묶음으로 추상화하는 깔끔한 조직이 될 것입니다 vg_system
. vg_data
여러 PV를 사용하지 않는 것이 좋습니다동일한VM의 VG.