LVM 논리 볼륨은 처음에는 연속된 범위를 가지고 있지만 연속되지 않은 범위로 확장될 수 있습니다.

LVM 논리 볼륨은 처음에는 연속된 범위를 가지고 있지만 연속되지 않은 범위로 확장될 수 있습니다.

나는 사용할 계획이다LVM은 확장 MBR을 대체합니다.파티션과 해당 논리 볼륨. LVM은 나에게 다소 새로운 개념이므로(이것이 존재한다는 것을 알고 있지만 이전에 이 옵션을 사용해 본 적이 없다는 의미에서) 도움이 필요합니다.

질문

난 ~을 가질 것이다하나의 볼륨 그룹만입다단 하나의 물리적 볼륨. 나는 것을 원하는초기 확장내 논리 볼륨의 수는 다음과 같습니다.가까운(볼륨은 처음에는 연속되어 있습니다). 필요한 모든 논리 볼륨을 생성한 후에는PV 끝에 공백이 있습니다.나중에 사용하려면(필요에 따라 LV를 확장하세요) 따라서 나중에 초기 크기를 확장하는 LV의 일부만 이러한 LV의 초기 공간에 인접하지 않게 됩니다. 방금 설명한 목적을 위해 사용되는 lvcreate명령 옵션은 무엇 --alloc입니까 ?--type

가능한 해결책

옵션:

--alloc contiguous|cling|cling_by_tags|normal|anywhere|inherit

--type linear|striped|snapshot|mirror|raid|thin|cache|thin-pool|cache-pool

아마도 옵션이있을 것입니다PE 범위를 명시적으로 지정주문한 대로 pvmove지만하지만논리 볼륨을 생성하고,이후는 아니다그것을 만드시겠습니까?

그것은 다음과 같습니다:

pvmove /dev/sdb2:501-800   /dev/sdb2:1001-1300
pvmove /dev/sdb2:101-300   /dev/sdb2:1301-1500
pvmove /dev/sdb2:4001-5500 /dev/sdb2:1501-3000

...하지만 함께하나의 lvcreate위의 순서 대신 명령을 사용하면 불필요하게 오래 걸릴 수 있습니다.

lvcreate /dev/sdb2:1001-3000 -n home vg1

...아래 것 대신에 위 명령줄과 동일한 크기의 스캐터 LV를 생성하는 것이 가능합니다(위 구문이 올바른 경우).

lvcreate -l 2000 -n home vg1

이유

그 이유는 논리 볼륨(및 해당 볼륨의 대용량 파일)이 너무 조각화되는 것을 원하지 않기 때문입니다. 한 가지 옵션은 매우 큰 확장자(64MiB 또는 128MiB)를 사용하는 것이지만 드라이브 전체에 걸쳐 파일의 조각화 및 분산을 추가로 줄이는 옵션이 있어야 한다고 생각합니다.

요컨대

  • --alloc--type옵션 의 차이점은 무엇인가요?
  • 어느 것을 사용해야 하며 어떤 매개변수와 함께 사용해야 합니까?
  • 이러한 옵션 중 어느 것도 원하는 결과를 얻을 수 없는 경우 분산된 볼륨을 생성한 다음 pvmove전체 볼륨이 연속되도록 각 범위를 이동(누르기)하는 대신 어떻게 할 수 있습니까?
  • PE 생성 시 PE의 초기 범위를 지정할 수 있나요?

답변1

새로운 PV로 시작하는 경우 LV를 생성하면 기본적으로 PE가 연속적으로 할당됩니다. --alloc contiguousLV를 생성할 때 지정할 필요가 없습니다.

말씀하신 대로 LV를 확장하면 PE가 더 이상 연속되지 않습니다. 궁극적으로 여러분이 찾고 있는 동작은 LVM이 기본적으로 수행하는 동작입니다.

그러나 다음을 수행하면 이 동작을 보다 명확하게 만들 수 있습니다.

  1. 다음을 사용하여 LV를 만듭니다.--alloc contiguous
  2. LV의 할당 정책을 다시 일반으로 변경합니다 lvchange. LV가 생성된 후 언제든지 이 작업을 수행할 수 있습니다.

관련 정보