Як розширити розділ Linux PV в Інтернеті після зростання віртуального диска


14

VMware дозволяє збільшити розмір віртуального диску в Інтернеті - коли він працює. Наступні очікувані кроки для системи Linux:

  1. розширити розділ: видалити та створити більший за допомогою fdisk
  2. збільшити розмір PV за допомогою pvresize
  3. використовувати безкоштовні розширення для lvresizeоперацій
  4. а потім resize2fsдля файлової системи

Але я застряг на першому кроці: fdiskі sfdiskвсе одно відображати старий розмір для диска.

Мій диск - це віртуальний диск SCSI, підключений завдяки віртуальному контролеру LSI Logic.

Як оновити розмір віртуального диска та інформацію таблиці таблиць розділів, доступну в ядрі Linux, без перезавантаження ?

Наскільки я знаю, всі кроки можливі для запущеної Windows, без перезавантаження та навіть без будь-яких дій користувача завдяки інструментам VMWare. В Linux я також розраховую зробити всі кроки в Інтернеті, і я вже знаю, що кроки 2, 3 і 4 працюють в Інтернеті. Але перший - зміна розміру розділу, оголошеного в таблиці розділів (все ще) вимагає перезавантаження.

Оновлення: Моя система - це Debian Lenny з ядром 2.6.26, а розширений я диск - це основний диск з великим PV, що містить "root" LV for "/".

Відповіді:


9

Це можна зробити без перезавантаження. pvresize не змінює фізичний обсяг, поки розділ не буде оновлено з доданим пробілом. Ви повинні fdisk розділ і відтворити його з новим повним розміром диска, після того, як ви зможете переробити диски для нього, щоб побачити додаткове місце в першу чергу.

Більше інформації: http://theducks.org/2009/11/expanding-lvm-partitions-in-vmware-on-the-fly/


Я погоджуюся, але що б я не зробив для сканування диска SCSI, я ніколи не отримував новий розмір диска у fdisk, тому я застряг до першого перезавантаження. І "partprobe" - це нова команда для мене. Безумовно, я повинен перевірити цю процедуру ... Дякую.
Ів Мартін

Для інформації partprobe- команда від partedпроекту.
Ів Мартін

Якщо ви не бачили новий розмір диска, fdiskтоді проблема не з LVM. Мені доведеться запитати, як ви сканували, оскільки це зазвичай підбирає мені новий розмір диска. Я також не розміщую диски з розділами, на яких я буду використовувати LVM, якщо зможу в цьому допомогти. Якщо ви pvcreateвесь диск, то оновлення таблиці розділів - це лише одна менша річ, яку вам потрібно зробити, коли ви збираєтесь змінити її розмір.
Братчлі

14

Інший наданий відповідь не відповідає на ваше запитання, я визначив правильну команду для повторного сканування вже підключеного диска.

Треба перевмістити ваш уже підключений диск, спочатку визначте, який диск ви хочете повторно сканувати.

ls /sys/class/scsi_disk/

У моєму прикладі я бачу символьне посилання на ім'я 0:0:0:0, тому ми переглянули цей scsi-диск.

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

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


Працювали чудово!
Еміль Штирке

Ви також можете знайти диски за їх назвою "/ dev /" /sys/block/, щоб ви могли використовувати напр /sys/block/sda/device/rescan.
mwfearnley

4

Що стосується кореневої файлової системи /, встановленої на зміненому диску, то таблиця розділів та розмір диска не оновлюються за допомогою SCSI-рескана з Linux 2.6.26.

Я дуже сподіваюся, що незабаром буде краще з новими версіями ядра.

Тому мені довелося:

  • перезавантажте перший раз, щоб побачити новий розмір диска в fdisk
  • видалити старий первинний розділ PV в fdisk
  • створіть запис розділу з тим самим номером і запустіть сектор до кінця диска
  • перезавантажте вдруге АБО запустіть partprobeз partedпакета, лише якщо /він не встановлений там
  • Тепер я можу бігти, pvresizeщоб отримати новий вільний простір lvextendта resize2fsвиділити ще трохи місця для файлової системи

Мені рекомендували просто відкинути цю тупу стару таблицю розділів і запустити pvcreateбезпосередньо на пристрої, оскільки Grub2 може завантажувати зображення ядра безпосередньо з файлової системи на розділ LVM. Але така установка взагалі не очевидна для інсталяторів дистрибуції.

Оновлення: Я щойно перевірив Debian GNU / Linux Jessie 8.2, що працює з ядрами 3.16 та parted3.2, partprobeтепер це успішно після випуску таблиці розділів cfdiskбез перезавантаження. pvresizeпрацює відразу після.

Якщо ви хочете розширити PV-файл, що зберігається як логічний розділ ПК, наприклад, /dev/sda5на розширеному первинному розділі /dev/sda2, не використовуйте, fdiskа віддайте перевагу parted:

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

Команди в кінці не працюють # parted / dev / sda2 -1 -> parted: недійсний варіант - '1'
Oskar Berggren

3

Потрібно повторно змінити диски, перш ніж ви зможете зробити більшу секцію.

У Centos це можна зробити за допомогою

ls /sys/class/scsi_host

то для кожного господаря

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

(замініть номер # на номер)

Також є ще один крок до вищезазначеного, який розширює ext або будь-яку файлову систему, якою ви користуєтесь після зміни розміру розділу.

Вам все одно доведеться демонтувати цей розділ, хоча в якийсь момент. Що ми, як правило, робимо, це додавати другий диск vmware і використовувати lvm для розширення на новий диск (і зменшити старий, якщо він є заміною), оскільки це дозволяє всьому процесу відбуватися в прямому ефірі.


Моя система Debian, і я запускаю rescan-scsi-bus.sh зі scsitools. Я думаю, що це рівнозначно команді, яку ви пропонуєте в / sys / class / scsi_host, але "fdisk" все ще відображає старий розмір на моєму диску ...
Ів Мартін,

Чи розпізнає він новий диск vmware при перезавантаженні?
JamesRyan

Ні. Цей диск вже існує, він не новий. Розмір диска збільшений у клієнта vSphere.
Ів Мартін

Я усвідомлюю це, але вам слід спробувати додати нове, щоб побачити, чи сканує це сканування, щоб усунути проблему
JamesRyan

Я погоджуюся з вами, і я вже знаю на практиці, що додавання нового диска SCSI на машину Linux можна зробити в Інтернеті для всіх перерахованих етапів. Оскільки VM може працювати протягом 10 років ... Я боюся загальної кількості дисків у найближчому майбутньому ...
Ів Мартін

2

Як оновлена ​​відповідь, в Ubuntu 16.04.1 я зміг зробити наступне, щоб змінити розмір об'єму від 1024 ГБ до 1,4 ТБ:

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

Не fdiskпотрібно, і місце було негайно доступним.


3
Щасливчик. Причина полягає в тому, що у вас немає таблиці розділів, а безпосередньо ПВ, на /dev/sdbякому, мабуть, ваші дані програми лише вторинний диск, але не ваш перший диск із системою (згадую, що я налаштовую свої системи так само!). Моє запитання стосувалося розширення останнього PV / розділу такого "системного диска" (клонованого з шаблону), наскільки дистрибутиви Linux не підтримують установку на пряму PV, тоді як Linux ядро ​​та GRUB повинні мати можливість завантажуватися та працювати на системному диску без таблиці розділів взагалі.
Ів Мартін

Справедлива точка. Для тих, хто виявляє це через Google: пам’ятайте про це.
peelman

1

Ви не надали нам достатньо деталей, щоб повідомити вам точні команди, які вам знадобляться, але по суті вам потрібно буде використовувати lvextendкоманду для розширення логічного обсягу, потім e2fsckкоманду, а потім resize2fsкоманду для фактичного розширення вашої файлової системи. Кожній з цих команд знадобляться додаткові параметри, зокрема інформація про пристрій та файлову систему, яку ми не можемо надати, але вам потрібно знати, просто скористайтеся опцією --help для кожної команди, щоб сказати, як їх конкретно використовувати, плюс ви , ймовірно , в кінцевому підсумку , використовуючи pvdisplay, lvdisplayі mountкоманди , щоб допомогти заповнити ці параметри.


Я знаю всі команди для інших кроків. Моє запитання: як виростити первинний розділ, що використовується як PV без перезавантаження?
Ів Мартін

Вибачте, ви просто маєте на увазі pvresize?
Chopper3

Я згоден, моє запитання було недостатньо явним (навіть із сміливою частиною). pvresize згадується як етап 2. Я затримався на кроці 1: збільшити розмір розділу "PCAT".
Ів Мартін

Ви ще збільшили розмір .vmdk через VSClient?
Chopper3

3
Для підтвердження /sbin/rescan-scsi-busdooes не змінюйте існуючий розмір диска. Але echo "1" > '/sys/class/scsi_disk/0:0:1:0/device/rescan'робить
Ів Мартіну

0

Ніхто не опублікував повний набір команд, тому ми переходимо:

# 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

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