Ubuntu 16.04 Проблема с расширением хранилища виртуальной машины / XenServer

Во-первых, я должен сказать, что я новичок в области управления серверами и виртуализации. После проверки нескольких руководств по этому поводу, Я попытался расширить хранилище виртуальной машины, созданной в XenServer с помощью снимка, снятого с другой виртуальной машины. Во-первых, я отключил виртуальную машину и расширил хранилище с 40 ГБ до 80 ГБ через XenCenter. Затем я запустил виртуальную машину и ввел fdisk с:

sudo fdisk /dev/xvda

Затем я распечатал таблицу разделов:

Device     Boot   Start      End  Sectors  Size Id Type
/dev/xvda1         2048   999423   997376  487M 83 Linux
/dev/xvda2      1001470 83884031 82882562 39.5G  5 Extended
/dev/xvda5      1001472 83884031 82882560 39.5G 8e Linux LVM

Я не видел аналогичной таблицы разделов ни в одном учебном пособии. Поэтому я попытался создать новую таблицу разделов, похожую на эту. Сначала я удаляю 5 и 2, затем я создал новый расширенный раздел (2) и раздел типа Linux (5). Наконец, я изменил тип 5 на Linux LVM. Итоговая таблица разделов выглядит так:

Device     Boot   Start       End   Sectors  Size Id Type
/dev/xvda1         2048    999423    997376  487M 83 Linux
/dev/xvda2       999424 167772159 166772736 79.5G  5 Extended
/dev/xvda5      1001472 167772159 166770688 79.5G 8e Linux LVM

После проверки таблицы я записал ее на диск и перезагрузил виртуальную машину. ВМ запускается без проблем. Я проверил дисковое пространство с помощью sudo df -h , вот результат:

Filesystem                       Size  Used Avail Use% Mounted on
udev                              12G     0   12G   0% /dev
tmpfs                            2.4G  8.7M  2.4G   1% /run
/dev/mapper/dbvmviduio--vg-root   35G  1.7G   32G   6% /
tmpfs                             12G     0   12G   0% /dev/shm
tmpfs                            5.0M     0  5.0M   0% /run/lock
tmpfs                             12G     0   12G   0% /sys/fs/cgroup
/dev/xvda1                       472M  101M  347M  23% /boot
tmpfs                            100K     0  100K   0% /run/lxcfs/controllers
tmpfs                            2.4G     0  2.4G   0% /run/user/1000

В конце концов, Я попытался запустить resize2fs , как написано в руководствах. Сначала я не знал, как запустить resize2fs на xvda2 или xvda5, попробовал оба и получил эти ошибки.

sudo resize2fs /dev/xvda2
resize2fs 1.42.13 (17-May-2015)
resize2fs: Attempt to read block from filesystem resulted in short read while trying to open /dev/xvda2
Couldn't find valid filesystem superblock.


sudo resize2fs /dev/xvda5
resize2fs 1.42.13 (17-May-2015)
resize2fs: Device or resource busy while trying to open /dev/xvda5
Couldn't find valid filesystem superblock.

Есть ли проблемы с таблицей разделов? Как я могу решить эти проблемы?

Примечание: Когда я не смог решить эти проблемы, я попытался создать только раздел типа Linux (без расширенного), виртуальная машина не запускается после перезагрузки. (После этого я вернулся к снимку).

1
задан 25 August 2016 в 12:10
3 ответа

Я не совсем уверен, какие шаги вы выполнили, но для увеличения объема диска, доступного для виртуальной машины Linux, должны произойти три вещи:

  • Увеличить размер диска, доступного виртуальной машине в XenCenter .
  • Увеличьте размер раздела виртуальной машины в таблице разделов виртуальной машины.
  • Увеличьте размер файловой системы ext3 в виртуальной машине

Ниже приведены шаги, включенные в данный пример.

Шаг 1: Увеличьте дисковое пространство в XenCenter

Вы уже это сделали.

Шаг 2: Измените таблицу разделов в виртуальной машине

Затем запустите виртуальную машину, так как вам необходимо увеличить размер раздела linux / с помощью fdisk. Утилита parted должна позволять вам изменять размер разделов и быть намного умнее в этом, а также позволять перемещать данные файловой системы, но parted не позволяет вам редактировать работающие разделы. В этом случае, поскольку мы хотим отредактировать, например: / dev / xvda3, который является нашим разделом / и находится в конце виртуального диска, поэтому мне нужно только увеличить размер раздела, а не перемещать его. На работающей виртуальной машине используйте fdisk для увеличения раздела / (/ dev / xvda3):

# fdisk /dev/xvda

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
         switch off the mode (command 'c') and change display units to
         sectors (command 'u').

Command (m for help): p

Disk /dev/xvda: 12.9 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000928ad

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/xvda2              26         281     2048000   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/xvda3             281        1045     6134784   83  Linux

Command (m for help): d
Partition number (1-4): 3

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (281-1566, default 281): 281
Last cylinder, +cylinders or +size{K,M,G} (281-1566, default 1566): 1566

Command (m for help): p

Disk /dev/xvda: 12.9 GB, 12884901888 bytes
255 heads, 63 sectors/track, 1566 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000928ad

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/xvda2              26         281     2048000   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/xvda3             281        1566    10325071   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
# 

Шаг 3: Перезагрузите виртуальную машину

Теперь, когда последнее предупреждение верное, вам нужно снова перезагрузить виртуальную машину, чтобы ядро зафиксировать изменения геометрии перегородки. Однако перезагрузка не меняет размер доступного дискового пространства раздела /:

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda3            5.8G  829M  4.7G  15% /
tmpfs                 497M     0  497M   0% /dev/shm
/dev/xvda1            194M   45M  140M  25% /boot

Вы можете исправить это, запустив resize2fs на работающей виртуальной машине, которая автоматически заметит разницу между геометрией раздела и размером файловой системы и увеличит размер файловую систему до максимального размера:

# resize2fs /dev/xvda3
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/xvda3 is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/xvda3 to 2581267 (4k) blocks.
The filesystem on /dev/xvda3 is now 2581267 blocks long.

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda3            9.7G  830M  8.4G   9% /
tmpfs                 497M     0  497M   0% /dev/shm
/dev/xvda1            194M   45M  140M  25% /boot
#  

Особая благодарность http://www.simonhiggs.com/articles/xenserver-6.2-exnding-disk-on-a-linux-vm.html

3
ответ дан 3 December 2019 в 17:36

Перед запуском resize2fs необходимо проделать дополнительные действия ... После изменения размера раздела выполните следующие действия:

Измените размер физического тома на разделе с измененным размером:

sudo lvm pvresize /dev/xvda3

Повторно просканируйте группу томов:

sudo lvm vgscan

Активировать виртуальную группу:

sudo lvm vgchange -ay

Показать логические тома:

sudo lvdisplay

Сохранить имя вашего корневого тома. Должно получиться так: / dev / vm-name-vg / root

Измените размер логического тома на все дополнительное свободное пространство (не забудьте заменить "/ dev / vm-name-vg / root" вашим настоящим имя тома из предыдущей команды):

sudo lvm lvresize /dev/vm-name-vg/root -l +100%FREE

Затем вы можете сделать

resize2fs /dev/xvda3

, теперь оно должно работать.

1
ответ дан 3 December 2019 в 17:36

Я не мог заставить себя работать и понять, почему мой способ не работает, но я нашел обходной путь благодаря этому видео .

  1. Я выключил ВМ и увеличил размер жесткого диска
  2. Затем запустил виртуальную машину и запустил fdisk / dev / xvda
  3. Создал новый тип Linux LVM, первичный раздел со свободным пространством, используя n (номер раздела 4, / dev / xvda4)
  4. Написал w и сохранена новая таблица разделов
  5. Перезагрузка виртуальной машины
  6. После перезагрузки создайте новый раздел с помощью pvcreate / dev / xvda4
  7. Ran vgdisplay , чтобы посмотреть, что это мое имя VG (это dbvmviduio-vg)
  8. Расширенный dbvmviduio-vg, запустив vgextend dbvmviduio-vg / dev / xvda4
  9. Увеличьте громкость, запустив lvextend -L + 40G / dev / dbvmviduio-vg / root
  10. Наконец, я запустил resize2fs / dev / dbvmviduio-vg / root и проверил df -h
0
ответ дан 3 December 2019 в 17:36

Теги

Похожие вопросы