kickstart 파일을 사용하여 CentOS 7.4 시스템을 설치하려고 하는데 다음 오류가 발생합니다: "새 lv가 너무 커서 사용 가능한 공간에 맞지 않습니다."
752.85MiB가 필요하다는 추가 메시지가 있습니다.
킥스타트 파일의 관련 부분은 다음과 같습니다.
part pv.00 --size=77824 --asprimary
volgroup vg00 pv.00
logvol / --fstype=ext4 --name=lv_root --vgname=vg00 --size=40960
logvol /tmp --fstype=ext4 --name=lv_tmp --vgname=vg00 --size=16384 --fsoptions="nodev,noexec,nosuid"
logvol /var --fstype=ext4 --name=lv_var --vgname=vg00 --size=16384 --fsoptions="nodev,nosuid"
logvol swap --name=lv_swap --vgname=vg00 --size=4096
보시다시피 논리 볼륨의 전체 크기는 물리 볼륨의 크기와 같습니다: 40960 + 16384 + 16384 + 4096 = 77824
분명히 물리적 볼륨이나 볼륨 그룹의 일부를 차지하는 오버헤드나 메타데이터가 있지만 이것이 어떻게 계산되는지는 확실하지 않습니다.
나는 오전 내내 인터넷 검색을 했는데 RedHat의 고급 LVM 구성 가이드에서도 어떤 정보도 찾을 수 없었습니다.
이 답변의 목적을 위해 --grow가 옵션이 아니라고 가정할 때 정확한 계산을 알아야 합니다(이 물리 볼륨 뒤에는 성장해야 하는 또 다른 물리 볼륨이 있으므로 이 물리 볼륨은 고정된 크기여야 합니다).
답변1
기본적으로 LVM2 메타데이터는 물리적 볼륨당 1MiB입니다. 이를 사용하여
pvs -o +pe_start
페이로드의 정확한 시작 위치를 찾을 수 있습니다.볼륨 그룹과 논리 볼륨에는 메타데이터 오버헤드가 없습니다. 물리 볼륨만 메타데이터를 전달합니다.
또한 기본적으로 LVM은 4MiB의 물리적 범위를 사용합니다.
최종 결과는 미적인 이유로 pvdisplay
" "을 표시 하려면 not usable 0
다음을 수행해야 한다는 것입니다.
각 물리적 볼륨을 4MiB + 1MiB의 배수로 만듭니다.
-s 1m
또는 를 사용하여 물리적 범위가 1MiB가 되도록 볼륨 그룹을 생성합니다 .
원천:
데이터 영역의 기본 정렬(페이로드 영역의 시작 섹터에 반영됨
pvs -o +pe_start
)은 1MiB입니다.이번에 제출하세요. 이는 실제로 구성 가능한 매개변수입니다. 매뉴얼 페이지를 참조하세요.lvm.conf
; 물론 물리볼륨 생성시 물리볼륨으로 제어가 가능합니다.기본 물리적 범위 크기는 매뉴얼 페이지에 문서화되어 있습니다.
vgcreate
:-에스,--물리적 범위 크기 물리적 범위 크기[
bBsSkKmMgGtTpPeE
]
이 볼륨 그룹의 물리 볼륨에 대한 물리 확장 영역 크기를 설정합니다. 크기 접미사(k
킬로바이트에서 메가바이트까지t
)는 선택 사항이며, 접미사가 없으면 기본값은 메가바이트입니다. 값은 LVM2 형식의 경우 최소 1개 섹터여야 하며(여기서 섹터 크기는 현재 VG에서 사용되는 PV의 최대 섹터 크기임), LVM1 형식의 경우 값은 최소 8KiB여야 하며 2의 거듭제곱이어야 합니다. 기본값은 4MiB입니다.
답변2
이 명령은 dmsetup table
PV 내에서 LV의 시작 위치를 표시합니다. 이전 시스템의 PV의 경우 가장 낮은 오프셋은 384입니다.
start cmd: # dmsetup table | grep '\b384$'
storage-images: 0 62914560 linear 9:9 384
linux0-home: 0 2097152 linear 9:0 384
그러나 최신 시스템에서는 오프셋이 더 큽니다.
linuxbackup-rootfs: 0 18874368 linear 9:1 2048
이는 LVM 버전(또는 배포판별 구성)에 따라 첫 번째 384 또는 2048 섹터가 PV 및 VG 메타데이터용으로 예약되어 있음을 의미할 수 있습니다. PV 끝에 메타데이터가 있을 수도 있습니다(강제하는 경우).
상관관계 값을 알고 싶다면 간단히 VG를 만들고 사용된 값을 확인하면 됩니다. 그러나 귀하의 목적에 따라 더 큰 값으로 계산을 수행하는 것만으로도 충분할 수 있습니다.