드라이브 크기에 두 개의 다른 값이있는 이유와 장치 매퍼 및 LVM을 사용하여 조정하는 방법은 무엇입니까?


13

USB를 통해 1TB 드라이브가 연결되어 있습니다. 여기에는 파티션 테이블없이 전체 장치를 채우는 LVM 물리 볼륨 이 포함 됩니다. 전체 PV를 사용하여 논리 볼륨 을 확장하려고 할 때 장치 매퍼 는 PV에서 LVM이 할당 한 섹션이 장치보다 크다고 불평하기 시작했습니다. 로 표시되는 장치 매퍼의 오류 메시지 dmesg1953320367 [dm] 섹터 크기를보고합니다 .

device-mapper: table: 254:0: sdf too small for target: start=1821353984, len=132169728, dev_size=1953320367

그러나 LVM은 물리적 크기 가 238467 PV를 만들었으며 이는 1953521664 [lvm] 섹터 (약 100MB 이상)입니다.

$ pvdisplay /dev/sdf
  --- Physical volume ---
  PV Name               /dev/sdf
  VG Name               apu-vg1
  PV Size               931.51 GiB / not usable 1.71 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              238467
  Free PE               100
  Allocated PE          238367
  PV UUID               LrKDDW-4dXz-kDgh-CK78-OWhY-4sCH-rKT0e4

이제 hdparm -gI장치에서 실행 하면 장치 크기에 대한 두 가지 값을 볼 수 있습니다. geometry 아래 에는 장치 맵퍼가 장치의 크기와 동일한 값을보고합니다. 그러나 LBA48 사용자 주소 지정 가능 섹터 에서 값 1953525168 [lba]는 PV의 PE 조합 크기보다 PE가 1보다 작습니다. 이것은 LVM이 보는 가치라고 생각합니다.

$ hdparm -Ig /dev/sdf

/dev/sdf:
 geometry      = 121588/255/63, sectors = 1953320367, start = 0

ATA device, with non-removable media
          Model Number:       ST1000LM024 HN-M101MBB                  
          Serial Number:      S2RUJ9BC702524      
          Firmware Revision:  2AR10001
          Transport:          Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
          Used: unknown (minor revision code 0x0028) 
          Supported: 8 7 6 5 
          Likely used: 8
Configuration:
          Logical         max     current
          cylinders       16383   16383
          heads           16      16
          sectors/track   63      63
          --
          CHS current addressable sectors:   16514064
          LBA    user addressable sectors:  268435455
          LBA48  user addressable sectors: 1953525168
...

이제 내 질문에 :

  • 커널의 다른 부분에서 사용되는 장치 크기에 대해 두 개의 다른 값이있는 이유는 무엇입니까?
  • 그리고 LVM이 장치 매퍼가 액세스 할 수있는 공간보다 큰 PV를 만들지 않도록이 상황을 어떻게 처리 / 수정합니까?

확장 할 때 실행중인 정확한 명령은 무엇입니까? LVM 헤드에는 일반적으로 불일치 크기에 가까운 2MB가 할당됩니다.
Bratchley

7
보고 된 작은 크기 hdparm는 255 * 63 섹터의 배수이고 실제 크기보다 작은 가장 큰 숫자입니다. 이러한 제약은 30 년 된 BIOS 인터페이스의 실린더 / 헤드 / 섹터 형식으로 인한 것입니다. 최신 LBA48 인터페이스는 디스크 크기를 잘보고 할 수 있습니다. 나는 왜 리눅스가 CHS 크기를 사용하는지 이유를 모른다.
Gilles 'SO- 악마 그만해'

쉽게 참조 할 수 있도록 대괄호 안에 다른 값을 표시했습니다.
Feuermurmel

1
@JoelDavis 나는 일반을 사용하여 VG를 확장했습니다 vgextend <vg-name> /dev/sdf. LVM은 내가 기대하는 것을 정확하게 수행합니다. pvdisplay심지어 1.71 MiB 는 unusabe이며, 이는 [lvm]과 [lba]의 차이의 크기입니다.
Feuermurmel

2
@Feuermurmel 추가 정보를 제공하기 위해 질문을 편집 하십시오-의견을 사용하지 마십시오.
guntbert

답변:


1

여기서 중요한 문제는 당신의 Free PE가치입니다. 100 개의 익스텐트 만 무료라고 말하는 방법에 주목하십시오. 그것은 당신이 그것을 확장 할 수 없다는 것을 의미합니다. vgscan, pvscan 및 vgdisplay (및 vgs)를 수행하는 경우 장치가 이미 vg의 일부이고 lv도 가능하다는 것을 알 수 있으므로 익스텐트가 비어 있지 않은 이유입니다.

다음에서 출력을 제공 할 수 있습니까?

vgscan;pvscan;vgdisplay;vgs

익스텐트 크기와 비어있는 정도에 따라 추가 400MB를 얻을 수 있어야합니다.


예, PV에는 이미 LV에 238367 PE가 할당되어 있습니다. 장치 맵퍼가 LVM이 요청한 매핑에 대해 범위를 벗어난 것에 대해 불평 한 후 LV를 축소했기 때문에 100 개의 확장은 무료입니다. 내 문제는 LVM으로 생성 된 PV가 실제로 실제 디스크보다 크다는 것입니다. 해당 디스크는 더 이상 시스템의 일부가 아니므로 요청한 출력을 제공 할 수 없습니다.
Feuermurmel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.