Tôi có hai câu hỏi liên quan đến LVM liên quan đến việc mở rộng khối lượng được quản lý LVM.

Thứ nhất , từ tài liệu (sửa: ) mà tôi đã đọc về LVM và mối quan hệ giữa Nhóm khối lượng và Mức độ vật lý, nếu bạn muốn phát triển VG lên lớn hơn 256GB, bạn phải có kích thước PE lớn hơn 4MB. Một ví dụ là từ bài viết này , nơi nó hiển thị thông báo cho biết " kích thước khối lượng hợp lý tối đa là 255,99 Gigabyte " với 4MB PEs. Tuy nhiên, tôi mong đợi điều này có nghĩa là VG sẽ không cho phép bạn xác định / thêm khối lượng có giá trị hơn 256GB vào nó nếu kích thước PE là 4MB và sẽ gây ra lỗi hoặc ít nhất là một cảnh báo nếu bạn cố gắng thực hiện. Tôi đưa ra điều này vì tôi có một máy ảo hiển thị điều này cho một trong các nhóm khối lượng của nó (được trích dẫn):

VG Size               499.50 GiB
PE Size               4.00 MiB
Total PE              127872
Alloc PE / Size       127872 / 499.50 GiB
Free  PE / Size       0 / 0   

VG bao gồm hai Khối lượng vật lý, một 100GB (/ dev / sda2) và 400GB còn lại (/ dev / sda3). Làm cách nào để tôi có thể (?) Xác định thành công 500GB dung lượng trong VG này chỉ với kích thước PE 4MB? Tôi vẫn chưa thực hiện một bài kiểm tra thực tế về việc cố gắng lấp đầy các ổ đĩa logic được gắn kết để xem liệu tôi có thực sự có thể lưu trữ 500GB hay không, nhưng trừ khi có điều gì đó thay đổi trong cách LVM hoạt động, các ổ đĩa logic sẽ chỉ "ngừng ghi" dữ liệu khi nó đạt đến 256GB của không gian được sử dụng mặc dù nó hiển thị 244GB còn lại? Tôi có thể thay đổi thành công kích thước PE của VG (tại chỗ) thành 8MB không?

Thứ hai , nếu tôi muốn mở rộng phân vùng LVM / ổ đĩa vật lý để phát triển để tận dụng không gian bổ sung, khi tôi tăng kích thước ổ cứng vmdk, hơn là tạo một ổ đĩa vật lý mới và thêm nó vào VG ( như bài viết tuyệt vời này đề cập đến VMWare ) thì tôi sẽ sử dụng pvresize ? Các ràng buộc của tôi là không phá hủy bất kỳ dữ liệu hiện có nào và chỉ cần thêm không gian vào ổ đĩa, điều mà bài viết VMWare KB hoàn thành, trong khi tôi nghi ngờ sau khi đọc câu hỏi SE này về việc liệu bạn có thể chỉ mở rộng ổ đĩa hay không hay bạn phải "xóa và tạo ra một cái lớn hơn ”.

Vì bài viết VMWare dựa vào khả năng thêm phân vùng chính nên rõ ràng bạn chỉ có thể làm theo quy trình đó tối đa 4 phân vùng chính, sau đó bạn không thể phát triển khối lượng của mình nữa hoặc tôi cho rằng bạn phải sử dụng một cái gì đó như pvresize (mà tôi không biết làm thế nào để sử dụng đúng cách / do dự khi thử vì sợ phá hủy dữ liệu hiện có). Bất kỳ gợi ý nào về việc liệu pvresize có thể làm những gì tôi đang tìm kiếm không?

answer

Trả lời câu hỏi đầu tiên

Vui lòng xem xét rằng bài viết bạn đang dựa trên tất cả các cân nhắc của bạn đã RẤT lỗi thời ! Mặc dù ngày rõ ràng không được báo cáo trong trang HOWTO mà bạn đã liên kết, nhưng nhìn vào mã liên quan đến HOWTO đã đề cập , bạn có thể thấy rằng nó đề cập đến hạt nhân 2.3.99, trở lại năm 2000! 15 năm trước!

Điều này hoàn toàn phù hợp với kinh nghiệm trực tiếp của tôi, nơi tôi KHÔNG gặp vấn đề gì khi có PV nhiều terabyte, với PE 4MB. Dưới đây là kết quả đầu ra của một hệ thống đang chạy: RAID5 VG (vg_raid) được xây dựng trên đầu đĩa S-ATA 5 x 2TB và cung cấp một LV 7,28 TB (lv_raid):

[[email protected] ~]# cat /etc/centos-release 
CentOS release 6.5 (Final)

[[email protected] ~]# uname -r
2.6.32-431.17.1.el6.x86_64

[[email protected] ~]# rpm -q lvm2
lvm2-2.02.100-8.el6.x86_64

[[email protected] ~]# vgdisplay 
  --- Volume group ---
  VG Name               vg_raid
  System ID             
  Format                lvm2
  Metadata Areas        5
  Metadata Sequence No  19
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                5
  Act PV                5
  VG Size               9,10 TiB
  PE Size               4,00 MiB
  Total PE              2384655
  Alloc PE / Size       2384655 / 9,10 TiB
  Free  PE / Size       0 / 0   
  VG UUID               rXke5K-2NOo-5jwR-74LT-hw3L-6XcW-ikyDp0    

[[email protected] ~]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sdb1
  VG Name               vg_raid
  PV Size               1,82 TiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              476931
  Free PE               0
  Allocated PE          476931
  PV UUID               7ToSLb-H9Of-unDk-Yt22-upwi-qkVE-ZiEKo2

  --- Physical volume ---
  PV Name               /dev/sdc1
  VG Name               vg_raid
  PV Size               1,82 TiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              476931
  Free PE               0
  Allocated PE          476931
  PV UUID               PaUyX1-jykz-B2Tp-KE2M-9VaT-E4uY-iv8ppi

  --- Physical volume ---
  PV Name               /dev/sdd1
  VG Name               vg_raid
  PV Size               1,82 TiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              476931
  Free PE               0
  Allocated PE          476931
  PV UUID               DCag4w-CWbp-bUUI-7S24-JCFL-NlUK-Vgskab

  --- Physical volume ---
  PV Name               /dev/sde1
  VG Name               vg_raid
  PV Size               1,82 TiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              476931
  Free PE               0
  Allocated PE          476931
  PV UUID               3GW2LM-b01Y-oIgd-DHJf-Or0a-fys2-wLesSX

  --- Physical volume ---
  PV Name               /dev/sdf1
  VG Name               vg_raid
  PV Size               1,82 TiB / not usable 4,00 MiB
  Allocatable           yes (but full)
  PE Size               4,00 MiB
  Total PE              476931
  Free PE               0
  Allocated PE          476931
  PV UUID               fxd1rG-E9RA-2WsN-hLrG-6IgP-lZTE-0U52Ge


[[email protected] ~]# lvdisplay /dev/vg_raid/lv_raid
  --- Logical volume ---
  LV Path                /dev/vg_raid/lv_raid
  LV Name                lv_raid
  VG Name                vg_raid
  LV UUID                fRzAnT-BQZf-J1oc-nOK9-BC10-S7w1-zoEv2s
  LV Write Access        read/write
  LV Creation host, time nocdump, 2014-05-23 00:17:02 +0200
  LV Status              available
  # open                 1
  LV Size                7,28 TiB
  Current LE             1907720
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     1280
  Block device           253:15

Trả lời câu hỏi thứ 2

Bạn nói: " ... Tôi nghi ngờ ... liệu bạn có thể chỉ mở rộng âm lượng hay không hay bạn phải" xóa và tạo một ổ lớn hơn ... "

Hãy làm rõ một số khái niệm sơ bộ:

  1. Giả sử bạn đang ở trong điều kiện bình thường : bạn có ổ cứng HDD với các phân vùng msdos phổ biến. Như vậy, bạn có nhiều nhất 4 phân vùng chính;

  2. Giả sử Khối lượng vật lý LVM của bạn được xác định trên đầu một trong 4 phân vùng chính ở trên và phân vùng LVM đó (loại 8e) kéo dài đến không gian trống tối đa của đĩa (nói cách khác, không có phân vùng nào khác, ở giữa LVM-Type-8e một và cuối đĩa)

Vì vậy, dựa trên những điều trên, bạn đã có một ổ cứng HDD tương tự như sau:

[[email protected] ~]# parted /dev/sda print
Modello: ATA ST2000DM001-1E61 (scsi)
Disco /dev/sda: 2000GB
Dimensione del settore (logica/fisica): 512B/4096B
Tabella delle partizioni: msdos

Numero  Inizio  Fine    Dimensione  Tipo     File system  Flag
 1      1049kB  525MB   524MB       primary  ext4         avvio
 2      525MB   1999GB  1998GB      primary               lvm

Trong điều kiện như vậy:

  1. nếu bạn sắp hết dung lượng, bạn phải xem xét rằng:

    3a) những gì sẽ được lấp đầy là hệ thống tệp của bạn ("thứ" thường được gọi là EXT3, EXT4, NTFS, FAT32, HFS, v.v.);

    3b) hệ thống tệp của bạn được đóng gói trong một thiết bị. Trong trường hợp không phải LVM, thiết bị như vậy chủ yếu là một "phân vùng". Nhưng trong trường hợp của bạn, vì chúng tôi đang sử dụng LVM, thiết bị như vậy là Ổ đĩa logic LVM

    3c) Khối lượng logic được chứa trong Nhóm khối lượng LVM

    3d) Nhóm Khối lượng được tạo thành từ Khối lượng Vật lý;

    3e) Ổ đĩa vật lý được xây dựng trên đầu "thiết bị" (cùng một thiết bị được đề cập ở bước 3b trong trường hợp không phải LVM) và trong trường hợp của bạn, thiết bị đó là một phân vùng chính (/ dev / sda2 trong trường hợp của tôi, ở trên )

vì thế:

  1. trong trường hợp của bạn, các bước cần thiết để phóng to hệ thống tệp là:

    i) phóng to đĩa vật lý, bằng cách thêm "không gian chưa phân vùng" vào cuối đĩa;

    ii) cung cấp cho LVM tùy chọn để sử dụng không gian chưa được phân vùng đó. Điều này có thể đạt được ở hai chế độ khác nhau:

    iii / 1) phóng to phân vùng LVM-type-8e để nó sẽ kết thúc ở phần cuối mới của đĩa (điều này chỉ có thể thực hiện được nếu phân vùng hiện có là phân vùng cuối cùng trên đĩa. Do đó, yêu cầu tại điểm 2 ở trên)

    iii / 2) gán không gian chưa được phân vùng cho một phân vùng chính mới, được gán kiểu 8e. Đây sẽ là LVM-Physical_Volume mới, hữu ích để phóng to Volume_Group;

Khi bạn có vẻ quan tâm đến điểm iii / 1, tôi sẽ tập trung vào nó. Vậy ... làm thế nào để phóng to một phân vùng chính hiện có ?

CẢNH BÁO!: Điều này sẽ rất rủi ro! Đảm bảo rằng bạn đã sao lưu dữ liệu thích hợp và cũng có kế hoạch khôi phục sau thảm họa thích hợp. Nếu bạn không hiểu những rủi ro mà bạn đang gặp phải, đừng tiếp tục!

Câu trả lời khá đơn giản. Vì phân vùng chính được tham chiếu với START_CYLINDER và END_CYLINDER trong Bảng phân vùng đĩa, bạn chỉ cần sửa đổi END_CYLINDER. Giá trị hiện tại cho trụ START và END có thể được truy xuất bằng "fdisk -lu / dev / sda", như trong:

[[email protected] ~]# fdisk -lu /dev/sda

Disco /dev/sda: 2000.4 GB, 2000398934016 byte
[...]
Sector size (logical/physical): 512 bytes / 4096 bytes
[...]
Dispositivo Boot      Start         End      Blocks   Id  System
[...]
/dev/sda2         1026048  3904294911  1951634432   8e  Linux LVM

vì vậy / dev / sda2 của tôi bắt đầu ở 1026048 và kết thúc ở 3904294911 . Bây giờ, bạn có thể chỉ cần XÓA phân vùng / dev / sda2 và TẠO một phân vùng mới, bắt đầu từ 1026048 và kết thúc ở ... cuối mới của ổ đĩa được phóng to. Đừng quên gán loại 8e cho phân vùng như vậy và hiển nhiên, đừng quên lưu các thay đổi. nếu bạn không cảm thấy "có thể chấp nhận được" với quy trình này - vì nó rất rủi ro - lựa chọn duy nhất của bạn là iii / 2

  • iv) bây giờ bạn đã có một phân vùng được mở rộng, bạn phải thuyết phục hệ điều hành của mình tải lại bảng phân vùng. Trong câu hỏi SF mà bạn đã đề cập , có rất nhiều chi tiết. Trong trường hợp xấu nhất, bạn sẽ cần khởi động lại máy chủ của mình

  • v) bây giờ bạn đã có một phân vùng được mở rộng và nó được hệ điều hành nhận dạng chính xác, bạn có một vấn đề mới : bạn có một LVM-Physical_Volume có kích thước nhất định (kích thước ban đầu) và kích thước đó nhỏ hơn phân vùng 8e-Physical bên dưới (mà bạn vừa phóng to). Bạn có thể tự mình kiểm tra sự không khớp đó bằng:

  • pvdisplay : hiển thị kích thước ban đầu, nhỏ hơn,;
  • lvmdiskscan -l: hiển thị kích thước mới, lớn hơn. Sau khi các con số trên được biết, bạn có thể đặt lại siêu dữ liệu PV thành kích thước mới, lớn hơn, bằng: " pvresize " và thông số " setphysicalvolumesize ", như trong:

    pvresize --setphysicalvolumesize 49.51G /dev/sda2

Hãy lưu ý rằng tôi mạnh mẽ đề nghị sử dụng một slighly nhỏ hơn giá trị, trong pvresize, so với cái thấy của lvmdiskscan. Điều này 'gây ra nếu bạn đặt sai kích thước PV thành giá trị lớn hơn không gian vật lý có sẵn, những điều rất xấu có thể xảy ra (như LV bị treo, không thể hoạt động trở lại!). Vì vậy, nếu bạn có phân vùng vật lý 49,52G, bạn nên đặt kích thước ổ đĩa vật lý thành 49,51G.

  • vi) bây giờ bạn có một PV được phóng to, bạn đã có dung lượng trống trong VG của mình và ... dung lượng trống đó có thể được phân bổ cho LV của bạn. Vì thế...

  • vii) bạn có thể mở rộng LV của mình bằng lệnh lvextend . Trong trường hợp của tôi, khi tôi quyết định phân bổ 100% dung lượng trống (trong VG), tôi đã sử dụng:lvextend -l +100%FREE /dev/vg_raid/lv_raid

Chúng tôi gần như đã hoàn thành. Bây giờ chúng ta có một LV mở rộng, nhưng thật không may, bên trong vẫn có một hệ thống tập tin "nhỏ hơn". Nếu bạn dựa vào EXT3 hoặc EXT4, rất có thể bạn có thể sử dụng resize2fs . Từ trang chủ của nó:

" Chương trình resize2fs sẽ thay đổi kích thước hệ thống tệp ext2, ext3 hoặc ext4. [...] Nếu hệ thống tệp được gắn kết, nó có thể được sử dụng để mở rộng kích thước của hệ thống tệp được gắn kết, giả sử hạt nhân hỗ trợ thay đổi kích thước trực tuyến. "

Khoảng thời gian resize2fs sẽ thực hiện thay đổi kích thước sẽ phụ thuộc vào nhiều yếu tố: kích thước của hệ thống tệp và hoạt động I / O chạy trên nó là những yếu tố quan trọng nhất.

Đó là tất cả.

Một lần nữa: hãy cẩn thận khi thực hiện tất cả những điều trên và nếu bạn hơi nghĩ rằng mình đang gặp bất kỳ loại rủi ro nào, vui lòng không tiếp tục! Đừng đổ lỗi cho tôi nếu có gì đó sẽ xảy ra sai!