Cách mở rộng phân vùng PV Linux trực tuyến sau khi tăng trưởng đĩa ảo


14

VMware cho phép mở rộng kích thước của một đĩa ảo trực tuyến - khi VM đang chạy. Các bước dự kiến ​​tiếp theo cho hệ thống Linux là:

  1. mở rộng phân vùng: xóa và tạo một phân vùng lớn hơn với fdisk
  2. mở rộng kích thước PV với pvresize
  3. sử dụng phạm vi miễn phí cho các lvresizehoạt động
  4. và sau đó resize2fscho hệ thống tập tin

Nhưng tôi bị kẹt ở bước đầu tiên: fdisksfdiskvẫn hiển thị kích thước cũ cho đĩa.

Đĩa của tôi là một đĩa ảo SCSI được kết nối nhờ bộ điều khiển LSI Logic ảo.

Làm thế nào để làm mới kích thước đĩa ảo và thông tin bảng phân vùng có sẵn trong nhân Linux mà không cần khởi động lại ?

Theo như tôi biết thì tất cả các bước đều có thể cho Windows đang chạy, không cần khởi động lại và thậm chí không có bất kỳ hành động nào của người dùng nhờ vào các công cụ VMWare. Trên Linux, tôi hy vọng cũng sẽ thực hiện tất cả các bước trực tuyến và tôi đã biết các bước 2, 3 và 4 hoạt động trực tuyến. Nhưng cái đầu tiên - thay đổi kích thước phân vùng được khai báo trong bảng phân vùng (vẫn) dường như yêu cầu khởi động lại.

Cập nhật: Hệ thống của tôi là Debian Lenny với kernel 2.6.26 và đĩa tôi đã mở rộng là đĩa chính có PV lớn chứa "root" LV cho "/".

Câu trả lời:


9

Bạn có thể làm điều này mà không cần khởi động lại. pvresize không thay đổi kích thước âm lượng vật lý cho đến khi phân vùng được cập nhật với không gian được thêm vào. Bạn phải fdisk phân vùng và tạo lại nó với kích thước đầy đủ mới của đĩa, sau khi bạn có thể quét lại các ổ đĩa để nó thấy không gian thừa ở vị trí đầu tiên.

Thông tin thêm: http://theducks.org/2009/11/Exanding-lvm-partitions-in-vmware-on-the-fly/


Tôi đồng ý nhưng bất cứ điều gì tôi đã làm để quét lại ổ đĩa SCSI, tôi không bao giờ có kích thước đĩa mới hiển thị trong fdisk, vì vậy tôi đã bị kẹt cho đến khi khởi động lại lần đầu tiên. Và "partprobe" là một lệnh mới đối với tôi. Chắc chắn tôi phải kiểm tra thủ tục này ... Cảm ơn bạn.
Yves Martin

Đối với thông tin partprobelà một lệnh từ parteddự án.
Yves Martin

Nếu bạn không thấy kích thước đĩa mới fdiskthì vấn đề không nằm ở LVM. Tôi phải hỏi làm thế nào bạn quét vì điều đó thường chọn kích thước đĩa mới cho tôi. Tôi cũng không sử dụng đĩa phân vùng Tôi sẽ sử dụng LVM nếu tôi có thể giúp nó. Nếu bạn pvcreatetoàn bộ đĩa thì cập nhật bảng phân vùng chỉ là một việc ít hơn bạn phải làm khi bạn thay đổi kích thước nó.
Bratchley

14

Các câu trả lời khác được cung cấp không giải quyết câu hỏi của bạn, tôi đã xác định lệnh chính xác để quét lại một đĩa đã được kết nối.

Chúng tôi phải quét lại đĩa đã được kết nối của bạn, trước tiên hãy xác định đĩa nào bạn muốn quét lại.

ls /sys/class/scsi_disk/

Trong ví dụ của tôi, tôi thấy một liên kết tượng trưng có tên 0:0:0:0, vì vậy chúng tôi quét lại đĩa scsi này.

echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan

Tôi cũng chỉ mở rộng đĩa VMware của mình và phải tìm kiếm các câu trả lời khác để tìm lệnh chính xác. Hy vọng điều này sẽ cứu những người tìm kiếm trong tương lai khỏi những nỗ lực vô ích.


Làm việc hoàn hảo!
Emil Styrke

Bạn cũng có thể tìm thấy các đĩa theo tên "/ dev /" của chúng /sys/block/, vì vậy bạn có thể sử dụng ví dụ /sys/block/sda/device/rescan.
mwfearnley

4

Theo như hệ thống tập tin gốc /được gắn trên đĩa đã được thay đổi kích thước, bảng phân vùng và kích thước đĩa không được làm mới bằng quét lại SCSI với Linux 2.6.26.

Tôi thực sự hy vọng nó sẽ sớm tốt hơn với các phiên bản kernel mới hơn.

Vì vậy, tôi đã phải:

  • khởi động lại lần đầu tiên để xem kích thước đĩa mới trong fdisk
  • xóa phần PV chính cũ trong fdisk
  • tạo một mục phân vùng có cùng số và bắt đầu sector cho đến hết đĩa
  • khởi động lại lần thứ hai HOẶC chỉ chạy partprobetừ partedgói nếu /không được gắn kết ở đó
  • Bây giờ tôi có thể chạy pvresizeđể có không gian trống mới lvextendresize2fsphân bổ thêm dung lượng cho hệ thống tệp

Tôi đã được đề nghị đơn giản loại bỏ bảng phân vùng cũ ngu ngốc đó và chạy pvcreatetrực tiếp trên thiết bị vì Grub2 có thể tải hình ảnh hạt nhân trực tiếp từ hệ thống tệp trên phân vùng LVM. Nhưng một thiết lập như vậy hoàn toàn không rõ ràng với các trình cài đặt phân phối.

Cập nhật: Tôi vừa kiểm tra với Debian GNU / Linux Jessie 8.2 đang chạy kernel 3.16 và parted3.2, partprobehiện đã thành công sau khi phiên bản bảng phân vùng cfdiskkhông có khởi động lại. pvresizehoạt động ngay sau đó.

Nếu bạn muốn mở rộng một PV được lưu dưới dạng phân vùng PC logic, ví dụ /dev/sda5trên phân vùng chính mở rộng /dev/sda2, không sử dụng fdiskmà thích parted:

parted /dev/sda2 -1
parted /dev/sda5 -1
pvresize /dev/sda5

Các lệnh ở cuối không hoạt động # parted / dev / sda2 -1 -> parted: tùy chọn không hợp lệ - '1'
Oskar Berggren

3

Bạn cần quét lại các đĩa trước khi bạn có thể tạo phân vùng lớn hơn.

Trong Centos bạn có thể làm điều này bằng cách

ls /sys/class/scsi_host

sau đó cho từng máy chủ

echo "- - -" > /sys/class/scsi_host/host#/scan

(thay # bằng số)

Ngoài ra còn có một bước nữa ở trên là mở rộng ext hoặc bất kỳ hệ thống tập tin nào bạn đang sử dụng một khi bạn đã thay đổi kích thước phân vùng.

Bạn vẫn sẽ phải ngắt kết nối phân vùng đó mặc dù tại một số điểm. Những gì chúng ta có xu hướng làm là thêm một đĩa vmware thứ 2 và sử dụng lvm để mở rộng lên đĩa mới (và giảm cái cũ nếu nó là một sự thay thế) vì điều này cho phép toàn bộ quá trình diễn ra trực tiếp.


Hệ thống của tôi là Debian và tôi chạy rescan-scsi-bus.sh từ scsitools. Tôi nghĩ rằng nó tương đương với lệnh bạn đề xuất trên / sys / class / scsi_host nhưng "fdisk" vẫn hiển thị kích thước cũ trên đĩa của tôi ...
Yves Martin

Nó có nhận ra một đĩa vmware mới khi bạn quét lại không?
JamesRyan

Không. Đĩa này đã tồn tại, nó không mới. Kích thước đĩa đã được tăng lên trong vSphere client.
Yves Martin

Tôi nhận ra điều đó nhưng bạn nên thử thêm một cái mới để xem liệu quá trình quét của bạn có khắc phục được vấn đề này không
JamesRyan

Tôi đồng ý với bạn và tôi đã biết bằng cách thực hành rằng việc thêm một đĩa SCSI mới vào máy Linux có thể được thực hiện trực tuyến cho tất cả các bước được liệt kê. Vì VM có thể hoạt động được 10 năm ... Tôi sợ tổng số đĩa trong tương lai gần ...
Yves Martin

2

Như một câu trả lời được cập nhật, trên Ubuntu 16.04.1, tôi có thể thực hiện các thao tác sau để thay đổi kích thước ổ đĩa từ 1024GB thành 1,4TB:

echo '1' > /sys/class/scsi_disk/32\:0\:1\:0/device/rescan
pvresize /dev/sdb
lvextend -l +100%FREE /dev/nvr01-opt/opt
resize2fs /dev/nvr01-opt/opt

Không fdiskyêu cầu, và không gian ngay lập tức có sẵn.


3
Bạn thật may mắn. Lý do là vì bạn không có bảng phân vùng mà chỉ bật PV trực tiếp /dev/sdb, có lẽ là dữ liệu ứng dụng của bạn chỉ là đĩa thứ cấp chứ không phải đĩa đầu tiên của bạn với hệ thống (đề cập đến việc tôi định cấu hình hệ thống của mình theo cách tương tự!). Câu hỏi của tôi là về việc mở rộng PV / phân vùng cuối cùng của một "đĩa hệ thống" như vậy (được sao chép từ một mẫu), miễn là các bản phân phối Linux không hỗ trợ cài đặt trên PV trực tiếp trong khi nhân Linux và GRUB có thể khởi động và chạy trên đĩa hệ thống không có bảng phân vùng nào cả.
Yves Martin

Điểm công bằng. Đối với những người tìm thấy điều này thông qua Google: hãy ghi nhớ điều đó.
Peelman

1

Bạn đã không cung cấp cho chúng tôi đủ chi tiết để cho bạn biết các lệnh chính xác bạn sẽ cần nhưng về cơ bản bạn sẽ cần sử dụng lvextendlệnh để mở rộng âm lượng logic, sau đó là e2fscklệnh và sau đó là resize2fslệnh để thực sự mở rộng hệ thống tệp của bạn. Mỗi lệnh này sẽ cần các tham số bổ sung, cụ thể là thông tin về thiết bị và hệ thống tệp, chúng tôi không thể cung cấp nhưng bạn sẽ cần biết những điều này, chỉ cần sử dụng tùy chọn --help cho mỗi lệnh để cho bạn biết cách sử dụng chúng một cách cụ thể, cộng với bạn có lẽ sẽ kết thúc bằng cách sử dụng pvdisplay, lvdisplaymountlệnh để giúp đỡ điền các thông số này.


Tôi biết tất cả các lệnh cho các bước khác. Câu hỏi của tôi là: làm thế nào để phát triển phân vùng chính được sử dụng như PV mà không cần khởi động lại?
Yves Martin

Xin lỗi, bạn chỉ có nghĩa là pvresize?
Chopper3

Tôi đồng ý câu hỏi của tôi không đủ rõ ràng (ngay cả với phần in đậm). pvresize được đề cập như bước 2. Tôi bị kẹt ở bước 1: tăng kích thước phân vùng "PCAT".
Yves Martin

Bạn đã tăng kích thước .vmdk qua VSClient chưa?
Chopper3

3
Để xác nhận các /sbin/rescan-scsi-busdooes không thay đổi kích thước đĩa hiện có. Nhưng echo "1" > '/sys/class/scsi_disk/0:0:1:0/device/rescan'
Yves Martin

0

Không ai đã đăng một bộ lệnh hoàn chỉnh, vì vậy chúng tôi đi đây:

# the following steps are for adding a new HDD
apt install scsitools
rescan-scsi-bus
pvcreate /dev/sdX
vgextend /dev/vgname /dev/sdx
lvextend -l +100%FREE /dev/vgname/root 
resize2fs /dev/vgname/root

#if resizing existing HDD
fdisk /dev/sdX
create new partition
pvcreate /dev/sdXn
vgextend /dev/vgname /dev/sdXn
lvextend -l +100%FREE /dev/vgname/root 
resize2fs /dev/vgname/root

Xin lỗi để phân phối nhưng tôi thấy việc thêm đĩa, phân vùng và PV ở mỗi mức tăng trưởng của đĩa là "xấu" và không mở rộng. Câu hỏi của tôi là về việc mở rộng một phân vùng chính hiện có trên đĩa mà không cần thêm đĩa hoặc phân vùng hoặc PV.
Yves Martin
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.