LVM에 파티션 테이블이 필요합니까?


18

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

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

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

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

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

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

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

감사!

답변:


29

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

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


1
시나리오의 경우 +1 실생활에서 너무 가능성이 높습니다.
Hennes

1
통찰력 +1
Alexander Janssen

답장을 보내 주셔서 감사합니다! 나는 확실히 파티션 테이블을 가지고 단점을 볼 수 없습니다. 나는 단지 위생 검사로 확인하고 싶었다. 따라서 올바른 계층 순서는 블록 장치, 파티션 테이블, 볼륨 그룹, 논리 볼륨, 파일 시스템이 맞습니까?
고양이 바지

8
단점 : 블록 장치를 확장하고 파티션 테이블을 사용하지 않은 경우 pvresize를 사용하여 물리 볼륨을 즉시 확장 할 수 있습니다. 파티션 테이블을 사용한 경우 먼저 파티션을 삭제하고 더 큰 크기로 다시 만들어야합니다.
sciurus

1
주의를 기울이는 것이 좋지만 질문을 다시 던져도 큰 답이되지는 않습니다. 이 파티션이 필요하지 않으며 파티션이 있다는 단점이 있습니다.
bryn

16

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

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

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

3
"mkpart는 파일 시스템을 지정해야하지만 파일 시스템을 작성하지는 않습니다." 이 점을 언급 해 주셔서 감사합니다. 즉, 정신을 확립하는 데는 엄청납니다! :)
고양이 바지

1
더 이상 사실이 아닙니다. mkpart primary 1M 100%작동하고 파일 시스템 필드를 비워 둡니다.
stark

1
@ 3dinfluence LVM 지금 정렬이 자동으로 몇 년 후 나는 LVM의로 나타남 데이터 디스크의 파티션을 사용하여 실제 사용 사례가 표시되지 않습니다
c4f4t0r

5

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로 표시됨). 이렇게하면 게스트 논리 볼륨이 하이퍼 바이저에서 숨겨져 있습니다.


1
filter/etc/lvm/lvm.conf에서 VM이 직접 사용하는 모든 블록 장치를 필터링하는 경우이를 피할 수 있습니다 .
Mircea Vutcovici 2012

디스크는 항상 호스트에 존재합니다. 파티션은 매핑되지 않습니다. kpartx -a당신을 위해 그렇게 할 것입니다. 하이퍼 바이저는 모든 게스트 디스크에 액세스 할 수 있지만 볼륨 그룹을 활성화하지 않아야합니다.
bryn



3

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

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

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

2
왜 모든 사람들이 그 파티션을 원하는지 잘 모르겠습니다. 그러나 여기서 대답은 "왜 안 돼요"방향으로갑니다. 이 답변이 더 좋습니다. 전체 디스크를 사용하려는 경우 파티션이 필요하지 않습니다. 파티션이 있으면 크기 조정 / 확장 디스크를 훨씬 더 고통스럽게 만들 수 있습니다.
bryn

리눅스에이 논리를 가지고 많은 유닉스 시스템 관리자, 나는 공공 및 민간와 작품, 리눅스에서이 아무튼 '은 어떤 의미가 있는지 볼륨 관리자 VERITAS 기억
c4f4t0r
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.