Як змусити Centos VM перечитати його збільшений розмір диска БЕЗ перезавантаження


16

У мене є CentOS 5 VM, і я щойно збільшив диск VM з 10G до 20G, але я не можу отримати fdisk, щоб побачити новий розмір диска без перезавантаження.

Я намагався echo 1 > /sys/block/sda/device/rescan, схоже, це вказує, що він може бачити новий розмір, але коли я переходжу до fdisk, щоб створити новий розділ, він все одно сприймає диск як 10G.

Будь-які ідеї?


Залежно від вашої платформи віртуалізації та способу зберігання, це може бути, а може і не бути можливим. Деталі мають значення.
живіт

Який тип віртуального диска ви додали: IDE або SCSI?
кванта

Ця перша команда спрацювала для мене ...
Родо

Відповіді:


11

Вам потрібно надати команду rescan на шину SCSI.

У VMware контролер SCSI може бути знайдений у якомусь незвичному місці. Спочатку знайдіть його:

find /sys -iname 'scan'

Для мене, що повернувся

/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

Тоді просто видайте команду rescan

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

Це повинно допомогти. :)


5
ls /sys/class/scsi_hostможливо, швидше.
кванта

11

Довелося зіткнутися з подібною проблемою на сервері SLES 11. LVM був побудований із сировинних дисків, що працюють на VMWare ESXi

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

Через деякий час мені потрібно було збільшити розмір LVM, але я не додав додатковий диск, а потім pvcreate + vgextend, як я це робив раніше, але я вирішив збільшити розмір існуючого диска (/ dev / sdd в цьому випадку ). Зробивши збільшення VMWare, я виконав a

# rescan-scsi-bus.sh

Але pvdisplay все ще показував "старий" розмір диска. Треба було зробити а

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

щоб ядро ​​дізналося новий розмір диска / dev / sdd


6
echo 1 > /sys/block/sda/device/rescanпрацював для мене на CentOS
Benedikt Köppel

-bash: / sys / module / scsi_mod / parametri / scan: Дозвіл відхилено, ім'я користувача - root
Sarz

7

після першої дії echo 1 > /sys/block/sda/device/rescan

pvresize /dev/sda зробив трюк для мене


3

Якщо таблиця розділів безпосередньо використовується (наприклад, ви встановили файлову систему за допомогою базового розділу), ядро ​​продовжуватиме використовувати стару таблицю розділів, поки це більше не відбудеться. Хтось одного разу сказав мені, що якщо ви використовуєте LVM, ви можете обійти це ....


2

Оновлення: Centos 6 - неможливо оновити таблицю розділів активного диска в Інтернеті, Centos 7 - можна розширити останній розділ за допомогоюpartpart або створити новий розділ з fdisk і зробити його видимим без перезавантаження з partprobe . Напевно, те саме на ubuntu / debian. - В якийсь момент після 2.6 ядро ​​почало підтримувати онлайн-перечитування таблиці розділів активного диска. Оскільки питання стосується Centos 5, я б не сказав.

Якщо ви використовуєте розділи, вам доведеться перезавантажити, щоб використовувати новий простір. Я не знайшов способу цього уникнути. Якщо хтось дав мені знати.

Однак перезавантаження слід виконати після того, як ви продовжите останній розділ на диску або додасте новий розділ. Немає сенсу перезавантажувати раніше.

Перше, що слід помітити після сканування - більший розмір диска у fdisk та lsblk. Якщо ви цього не бачите, вам доведеться грати з цими командами echo 1 та echo - - -.

Коли ви побачите більше місця, ви можете розширити / додати розділ, а потім перезавантажити, розширити vg, розширити lv та fs.

Якщо ви хочете уникнути перезавантаження, вам потрібно призначити необроблений диск sda / b / c групі томів, не розділяючи його на sda1 / 2/3. Тоді немає потреби в перезавантаженні.

Розмежування було необхідне деякий час тому, коли Linux не міг завантажуватися з LVM, але тепер він може.

Якщо ви робите lsblk, ви побачите розділи або lvms залежно від того, використовуєте ви розділи або lvm, ви можете мати всі частини, якщо ви не використовуєте lvm або всі lvms, якщо ви не використовуєте розділи. Ось один із прикладів:

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

Вам доведеться перезавантажити, цього немає.


Як щодо силової системи для повторного сканування?
кванта

Мені довелося перезавантажувати :-(
AndyM

Довелося також перезавантажуватись.
ондра

1
Це абсолютно неправда. Я робив це кілька разів без перезавантаження.
Дункан X Сімпсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.