Tại sao có hai giá trị khác nhau cho kích thước của ổ đĩa và làm cách nào để điều hòa chúng với trình ánh xạ thiết bị và LVM?


13

Tôi có ổ đĩa 1 TB được gắn qua USB. Nó chứa một khối lượng vật lý LVM lấp đầy toàn bộ thiết bị (không có bất kỳ bảng phân vùng nào). Khi tôi cố gắng mở rộng âm lượng hợp lý bằng cách sử dụng toàn bộ PV, trình ánh xạ thiết bị bắt đầu phàn nàn rằng phần được phân bổ bởi LVM trên PV lớn hơn thiết bị. Thông báo lỗi từ trình ánh xạ thiết bị (như được hiển thị bởi dmesg) báo cáo kích thước của 1953320367 [dm] sector:

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

Nhưng LVM đã tạo ra một PV với 238467 mức độ vật lý , đó là 1953521664 [lvm] sector (tức là khoảng 100 MB nữa):

$ 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

Bây giờ nếu tôi chạy hdparm -gItrên thiết bị, tôi có thể thấy hai giá trị cho kích thước của thiết bị. Trong hình học , có cùng giá trị được báo cáo bởi người lập bản đồ thiết bị với kích thước của thiết bị. Nhưng trong các lĩnh vực địa chỉ người dùng LBA48 , có giá trị 1953525168 [lba], nhỏ hơn một PE lớn hơn kích thước kết hợp của PE của PV. Điều này khiến tôi nghĩ rằng đây là giá trị mà LVM thấy:

$ 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
...

Bây giờ cho câu hỏi của tôi:

  • Tại sao có hai giá trị khác nhau cho kích thước của thiết bị được sử dụng bởi các phần khác nhau của kernel?
  • Và, làm cách nào để xử lý / khắc phục tình huống này để LVM sẽ không tạo ra các PV lớn hơn không gian mà trình ánh xạ thiết bị sẵn sàng / có thể truy cập?

Lệnh chính xác mà bạn đang chạy khi bạn gia hạn là gì? Đầu LVM thường được phân bổ 2 MB, xung quanh kích thước của sự khác biệt của bạn.
Bratchley

7
Kích thước nhỏ hơn được báo cáo bởi hdparmsố lượng lớn nhất là bội số của 255 * 63 ngành và nhỏ hơn kích thước thực tế. Hạn chế này là do định dạng hình trụ / đầu / cung từ giao diện BIOS 30 năm tuổi. Giao diện LBA48 mới hơn có thể báo cáo kích thước đĩa của bạn tốt. Tôi không biết tại sao Linux sử dụng kích thước CHS cho bất cứ điều gì.
Gilles 'SO- ngừng trở nên xấu xa'

Tôi đã gắn nhãn các giá trị khác nhau trong ngoặc vuông để dễ dàng tham khảo chúng.
Feuermurmel

1
@JoelDavis Tôi đã mở rộng VG bằng cách sử dụng đồng bằng vgextend <vg-name> /dev/sdf. LVM làm chính xác những gì tôi mong đợi. pvdisplaythậm chí nói rằng 1,71 MiB là unusabe, đó chính xác là kích thước của sự khác biệt giữa [lvm] và [lba].
Feuermurmel

2
@Feuermurmel vui lòng chỉnh sửa câu hỏi của bạn để cung cấp thêm thông tin - không sử dụng nhận xét.
guntbert

Câu trả lời:


1

Vấn đề chính ở đây là Free PEgiá trị của bạn . Chú ý rằng nó chỉ có 100 phạm vi là miễn phí? Điều đó có nghĩa là bạn sẽ không thể gia hạn. Nếu bạn làm một vgscan, pvscan, và sau đó là một vgdisplay (cũng là vss), bạn có thể sẽ thấy rằng thiết bị của bạn đã là một phần của vg (và có thể là lv (s) cũng vậy), đó là lý do tại sao các phạm vi không miễn phí.

Bạn có thể cung cấp đầu ra từ:

vgscan;pvscan;vgdisplay;vgs

bạn sẽ có thể nhận thêm 400 MB dựa trên kích thước của phạm vi của bạn và số lượng miễn phí.


Có, PV đó đã có 238367 PE được phân bổ cho LV. 100 phần mở rộng đó là miễn phí vì tôi đã thu hẹp LV sau khi trình ánh xạ thiết bị phàn nàn về ánh xạ mà LVM yêu cầu nằm ngoài phạm vi. Vấn đề của tôi là PV được tạo bởi LVM thực sự lớn hơn đĩa vật lý. Đĩa đó đang được đề cập không còn là một phần của hệ thống nên tôi không thể cung cấp đầu ra mà bạn yêu cầu.
Feuermurmel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.