Làm cách nào để Centos VM đọc lại kích thước ổ đĩa tăng lên mà KHÔNG cần khởi động lại


16

Tôi có máy ảo CentOS 5 và tôi vừa tăng đĩa VM từ 10G lên 20G, nhưng tôi không thể lấy fdisk để xem kích thước đĩa mới mà không cần khởi động lại.

Tôi đã thử echo 1 > /sys/block/sda/device/rescan, dường như cho thấy nó có thể thấy kích thước mới, nhưng khi tôi vào fdisk để tạo một phần mới, nó vẫn thấy đĩa là 10G.

Có ý kiến ​​gì không?


Tùy thuộc vào nền tảng ảo hóa và phương thức lưu trữ của bạn, điều này có thể hoặc không thể. Chi tiết vấn đề.
womble

Loại đĩa ảo nào bạn đã thêm: IDE hoặc SCSI?
lượng tử

Lệnh đầu tiên đó có hiệu quả với tôi ...
Rodo

Câu trả lời:


11

Bạn cần ban hành lệnh quét lại cho bus SCSI của bạn.

Trong VMware, bộ điều khiển SCSI có thể được tìm thấy ở một số nơi khác thường. Đầu tiên tìm thấy nó:

find /sys -iname 'scan'

Đối với tôi đã trở lại

/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan
/sys/devices/pci0000:00/0000:00:07.1/host1/scsi_host/host1/scan
/sys/devices/pci0000:00/0000:00:10.0/host2/scsi_host/host2/scan

Sau đó, chỉ cần ban hành lệnh quét lại

echo "- - -" >/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host0/scan
echo "- - -" >/sys/devices/pci0000:00/0000:00:07.1/host0/scsi_host/host1/scan
echo "- - -" >/sys/devices/pci0000:00/0000:00:10.0/host0/scsi_host/host2/scan

Điều đó sẽ giúp. :)


5
ls /sys/class/scsi_hostcó thể nhanh hơn
lượng tử

11

Tôi đã phải đối phó với một vấn đề tương tự, trên máy chủ SLES 11. LVM được xây dựng với các đĩa thô, chạy trên VMWare ESXi

# pvcreate /dev/sdd; vgextend ....

Sau một thời gian tôi cần tăng kích thước LVM, nhưng tôi đã không thêm đĩa bổ sung và sau đó là PVCreate + vgextend như tôi đã làm trước đây, nhưng tôi đã chọn tăng kích thước của đĩa hiện có (/ dev / sdd trong trường hợp này ). Sau khi thực hiện tăng VMWare, tôi đã thực hiện một

# rescan-scsi-bus.sh

Nhưng pvdisplay vẫn hiển thị kích thước đĩa 'cũ'. Nó là cần thiết để làm một

# echo 1 > /sys/block/sdd/device/rescan

để kernel tìm hiểu kích thước đĩa mới của / dev / sdd


6
echo 1 > /sys/block/sda/device/rescanlàm việc cho tôi trên CentOS
Benedikt Köppel

-bash: / sys / module / scsi_mod / tham số / quét: Quyền bị từ chối, tên người dùng là root
Sarz

7

sau lần đầu tiên làm echo 1 > /sys/block/sda/device/rescan

pvresize /dev/sda đã lừa tôi


3

Nếu bảng phân vùng được sử dụng trực tiếp (ví dụ: bạn đã gắn hệ thống tệp bằng phân vùng cơ sở), hạt nhân sẽ tiếp tục sử dụng bảng phân vùng cũ cho đến khi điều này không còn xảy ra nữa. Ai đó đã từng nói với tôi rằng nếu bạn đang sử dụng LVM, bạn có thể giải quyết vấn đề này ....


2

Cập nhật: Centos 6 - không thể cập nhật bảng phân vùng của đĩa hoạt động trực tuyến, Centos 7 - có thể mở rộng phân vùng cuối cùng với growpart hoặc tạo phân vùng mới bằng fdisk và hiển thị mà không cần khởi động lại với partprobe . Có lẽ giống nhau trên ubfox / debian. - Tại một số điểm sau khi kernel 2.6 bắt đầu hỗ trợ đọc lại trực tuyến bảng phân vùng của đĩa hoạt động. Vì câu hỏi dành cho Centos 5 nên tôi sẽ nói không có cách nào.

Nếu bạn đang sử dụng phân vùng thì bạn phải khởi động lại để sử dụng không gian mới. Tôi đã không tìm ra cách để tránh điều này. Nếu ai đó đã cho tôi biết.

Tuy nhiên, khởi động lại nên được thực hiện sau khi bạn mở rộng phân vùng cuối cùng trên đĩa hoặc thêm phân vùng mới. Không có ý nghĩa để khởi động lại trước.

Điều đầu tiên bạn nên chú ý sau khi quét lại là kích thước đĩa lớn hơn trong fdisk và trong lsblk. Nếu bạn không thấy nó, bạn phải chơi với các lệnh echo 1 và echo - - - này.

Sau khi bạn thấy nhiều không gian hơn, bạn có thể mở rộng / thêm phân vùng, sau đó khởi động lại, mở rộng vg, mở rộng lv và fs.

Nếu bạn muốn tránh khởi động lại, bạn phải gán đĩa sda / b / c thô cho nhóm âm lượng mà không phân vùng cho sda1 / 2/3. Sau đó, không cần phải khởi động lại.

Phân vùng là cần thiết một thời gian trước khi linux không thể khởi động từ LVM, nhưng bây giờ nó có thể.

Nếu bạn làm lsblk, bạn sẽ thấy các phân vùng hoặc lvms tùy thuộc vào việc bạn đang sử dụng phân vùng hay lvm, bạn có thể có tất cả các phần nếu bạn không sử dụng lvm hoặc tất cả lvms nếu bạn không sử dụng phân vùng. Đây là một ví dụ:

root@srv4 ~ $ lsblk
NAME                        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                           8:0    0  7.3T  0 disk
├─sda1                        8:1    0  500M  0 part /boot
└─sda2                        8:2    0  7.3T  0 part
  ├─vg_srv4-LogVol13 (dm-0) 253:0    0  7.1T  0 lvm  /
  ├─vg_srv4-LogVol05 (dm-1) 253:1    0  100G  0 lvm  /var/log
  ├─vg_srv4-LogVol04 (dm-2) 253:2    0   20G  0 lvm  /var
  ├─vg_srv4-LogVol01 (dm-5) 253:5    0   20G  0 lvm  /opt
  ├─vg_srv4-LogVol00 (dm-6) 253:6    0   20G  0 lvm  /home
  ├─vg_srv4-LogVol03 (dm-7) 253:7    0   20G  0 lvm  /usr
  └─vg_srv4-LogVol02 (dm-8) 253:8    0    8G  0 lvm  /tmp


-5

Bạn phải khởi động lại, không có cách nào khác.


Làm thế nào về hệ thống lực để quét lại?
lượng tử

Tôi đã phải khởi động lại :-(
AndyM

Tôi cũng phải khởi động lại.
ondra

1
Điều này là hoàn toàn sai sự thật. Tôi đã làm điều này nhiều lần mà không cần khởi động lại.
Duncan X Simpson
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.