Як розширити розділ 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.