LVM에 파티션 테이블이 필요합니까? 할 수 있습니다. 작동하는 것 같지만 위생

파티션 테이블을 만드는 단계를 거치지 않고 원시 블록 장치 위에서 pvcreate를 성공적으로 수행 할 수있는 것으로 보입니다. 그런 다음 볼륨 그룹, 논리 볼륨 및 파일 시스템을 생성하고 마운트 한 다음 dd를 통해 테스트 할 수 있습니다.

작동하는 것 같지만 위생 검사가 필요합니다. 이것은 나쁜 생각입니까?

원시 블록 장치 위에 GPT 또는 MBR 파티션 테이블을 작성하는 방법

parted를 사용하여 어떤 종류의 파티션 테이블을 사용하고 있는지 표시하려면 어떻게해야합니까? 나는 노력했다 :

parted, / dev / sdb를 선택하고 인쇄하면 다음과 같은 결과가 나타납니다.

오류 : / dev / sdb : 인식 할 수없는 디스크 레이블

그러나 드라이브가 현재 사용 중이며 읽고 쓸 수 있습니다. 파티션 테이블이없는 원시 블록 장치 위에서 LVM을 수행 할 때 예상되는 출력입니까? 이견있는 사람?

감사!



답변

LVM 자체가 실제 파티션을 갖는 것에 신경 쓰지 않더라도, 파티션을 만들어야하는 한 가지 이유는 파티션 프로그램에 “뭔가가 있음”을 알리는 것입니다. 악몽 시나리오는 서버의 부팅 문제를 진단하고, 파티션 프로그램을 시작하고, 파티션되지 않은 디스크를보고, 드라이브가 손상되었다는 새로운 sysadmin입니다.

LVM 파티션을 만드는 데 단점이 없습니다. 당신 은요?


답변

원시 블록 장치에서 pv를 만들 수는 있지만 일반적으로 블록 장치가 무엇을 사용하는지 혼동을 일으킬 수 있으므로 피하려고합니다. 또한 구성 파일이없는 경우 LVM에서 사용할 수있는 일부 자동 검색 루틴을 중단 할 수 있습니다.

다음은 parted를 사용하여 전체 드라이브 인 1 개의 파티션으로 GPT를 만들고 partition 플래그를 lvm으로 설정하는 예입니다. mkpart는 파일 시스템을 지정해야하지만 파일 시스템을 작성하지는 않습니다. 부분적으로 오래 지속되는 버그 인 것 같습니다. 또한 1M의 시작 오프셋은 올바른 정렬을 보장하는 것입니다.

parted /dev/sdb
mklabel GPT
mkpart primary ext2 1M 100%
set 1 lvm on


답변

KVM 게스트 내부의 가상 저장 장치에서 직접 PV를 생성하면 게스트의 논리 볼륨이 하이퍼 바이저에 표시됩니다. 여러 게스트에서 동일한 논리 볼륨 및 볼륨 그룹 이름을 사용하는 경우 상황이 매우 혼동 될 수 있습니다. 장치를 찾을 수 없다는 하이퍼 바이저에 대한 경고가 표시 될 수도 있습니다.

예를 들어, 테스트 하이퍼 바이저에서이 문제를 재현했습니다.

[root@testhost ~]# vgs
  Couldn't find device with uuid dCaylp-1kvL-syiF-A2bW-NTPP-Ehlb-gtfxZz.
  VG          #PV #LV #SN Attr   VSize   VFree
  vg_main       2   2   0 wz-pn-  19.25g 768.00m
  vg_main       2   2   0 wz-pn-  19.25g 768.00m
  vg_testhost   1   8   0 wz--n- 237.98g 120.15g

여기에는 하이퍼 바이저에 실제로 나타나지 않아야하는 게스트의 이름이 동일한 두 개의 볼륨 그룹이 있습니다.

이러한 이유로 PV를 생성하고 볼륨 그룹에 추가하기 전에 parted 또는 fdisk를 사용하여 KVM 파티션을 먼저 생성 할 것을 권합니다 (이전 답변에서 3dinfluence로 표시됨). 이렇게하면 게스트 논리 볼륨이 하이퍼 바이저에서 숨겨져 있습니다.


답변

한 가지 단점은 파티션 테이블 내부의 PV에 공간을 핫 추가 할 수 없다는 것입니다. PV에 전체 블록 장치를 사용하는 경우에는 문제가되지 않습니다.


답변

RedHat의 LVM 가이드, 4.2.1 섹션에 따르면
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/logical_volume_manager_administration/physvol_admin

그들은 파티션 테이블을 가질 필요가 없다고 말했으며 VG (볼륨 그룹)에 전체 디스크를 사용하는 경우 파티션 테이블 만 포함하지 않는 한 파티션 테이블을 폐기 할 것을 제안합니다.


답변

과거에는 PV에 MS-DOS 디스크 레이블 또는 GPT 디스크 레이블을 사용 했더라도 이제 주 블록 장치에서 직접 LVM을 사용하는 것을 선호합니다. 부트 섹터 및 부트 파티션이있는 디스크와 같이 매우 구체적인 사용 사례가없는 경우 2 개의 디스크 레이블을 사용할 이유가 없습니다.

LVM을 직접 사용하면 다음과 같은 이점이 있습니다.

  • 단순성-두 세트의 도구를 사용할 필요가 없습니다.
  • 유연성-pvmove를 사용하여 다운 타임없이 한 디스크 볼륨에서 다른 디스크 볼륨으로 데이터를 이동할 수 있으며 스냅 샷 및 씬 프로비저닝을 사용할 수 있습니다
  • 커널에 볼륨 생성 / 크기 조정 / 삭제를 알리기 위해 partprobe 또는 kpartx를 실행할 필요가 없습니다. 그리고 partprobe /합니다 kpartx는 실패 할 수 파티션이 사용중인 경우에는 재부팅해야 할 수도 있습니다
  • MS-DOS 또는 GPT 디스크 장치에서 LVM을 사용하는 것과 비교하여 더 나은 성능

답변