Amin ‘s Blog
Рубрики
Метки
Последние комментарии
| alex к записи O ZFS замолвите слово… | |
| tombspace к записи O ZFS замолвите слово… | |
| tombspace к записи O ZFS замолвите слово… | |
| obelov к записи Хватанул таки ковидлу | |
| Amin к записи About | |
| alex к записи About | |
| Eronex к записи linux (fedora) russian console… |
ProxMox — уменьшаем диск в LXC.
Задача : после переноса данных в другой mount_point, капитальной расчистки внутри LXC-контейнера или ошибочного задания слишком большого размера файла диска требуется этот диск ресайзнуть в меньшую сторону.
Веб-интерфейс такого не предоставляет (там можно только увеличить размер), поэтому переведу одну рекомендацию с форума проксмокса (https://forum.proxmox.com/threads/shrink-disk-size.24808/#post-124343), чтобы не потерялась.
Для примера, у нас будет LXC-контейнер № 366, проксмокс 4.2, надо уменьшить размер диска с 8 Гб до 2 Гб, пути стандартные.
1). Останавливаем контейнер.
2). Делаем бэкап.
3). Проверяем, что бэкап есть.
4). Дополнительно копируем файл с дисковым образом ( /var/lib/vz/images/366/vm-366-disk-1.raw ) в другой каталог, если что-нибудь пойдёт не так. Такой образ закопировать назад поверх битого может быть в ряде случаев быстрее, чем разжать из бэкапа.
5). Заходим в каталог с образом диска:
# cd /var/lib/vz/images/366
e2fsck 1.42.12 (29-Aug-2014)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
vm-366-disk-1.raw: 21325/524288 files (0.4% non-contiguous), 240360/2097152 blocks
resize2fs 1.42.12 (29-Aug-2014)
Resizing the filesystem on vm-366-disk-1.raw to 318585 (4k) blocks.
The filesystem on vm-366-disk-1.raw is now 318585 (4k) blocks long.
11). Расширим размер структуры файловой сисемы до нового размера файла-образа:
# resize2fs vm-366-disk-1.raw
Это нужно, чтобы внутри файла выделенное пространство полностью было задействовано файловой системой.
resize2fs 1.42.12 (29-Aug-2014)
Resizing the filesystem on vm-366-disk-1.raw to 524288 (4k) blocks.
The filesystem on vm-366-disk-1.raw is now 524288 (4k) blocks long.
12). Исправим размер образа в конфиге контейнера:
# vi /etc/pve/nodes/vps3/lxc/366.conf
Если vi вызывает у вас аллергию — используйте любой другой редактор, их много. Правим параметр size в свойствах диска:
rootfs: local:366/vm-366-disk-1.raw,size=2G
Сохраняем, обновляем страницу со свойствами контейнера в веб-интерфейсе, убеждаемся, что размер поменялся.
13). Запускаем контейнер.
Filesystem Size Used Avail Use% Mounted on
/dev/loop1 1.9G 677M 1.1G 39% /
1.9 Гб вместо 7.8 Гб места при 677М данных. Это очень позитивно сказывается на скорости переноса контейнера (при отсутствии общего хранилища), времени бэкапа/восстановления и глубине / объёмах бэкапов.
Resize disks
Contents
1. Resizing guest disk
General considerations
When you resize the disk of a VM, to avoid confusion and disasters think the process like adding or removing a disk platter.
If you enlarge the hard disk, once you have added the disk plate, your partition table and file system knows nothing about the new size, so you have to act inside the VM to fix it.
If you reduce (shrink) the hard disk, of course removing the last disk plate will probably destroy your file system and remove the data in it! So in this case it is paramount to act in the VM in advance, reducing the file system and the partition size. SystemRescueCD comes very handy for it, just add its iso as cdrom of your VM and set boot priority to CD-ROM.
Shrinking disks is not supported by the PVE API and has to be done manually.
Another page (deleted) with overlapping content was Resizing disks | Archive
qm command
You can resize your disks online or offline with command line:
exemple: to add 5G to your virtio0 disk on vmid100:
Linux should see the new size online without reboot with kernel >= 3.6
Windows should see the new size online without reboot with last virtio drivers.
for virtio-iscsi disk:
Linux should see the new size online without reboot with kernel >= 3.7
Windows should see the new size online without reboot with last virtio drivers.
2. Enlarge the partition(s) in the virtual disk
Depending on the installed guest there is several diffent ways to resize the partions
Offline for all guests
Use gparted or similar tool (recommended)
In gparted and possibly most other tools, LVM and Windows dynamic disc is not supported
Online for Windows Guests
Online for Linux Guests
Here we will enlarge a LVM PV partition, but the procedure is the same for every kind of partitions. Note that the partition you want to enlarge should be at the end of the disk. If you want to enlarge a partition which is anywhere on the disk, use the offline method.
(here we use VirtIO so the hard drive is named vda)
3. Enlarge the filesystem(s) in the partitions on the virtual disk
If you did not resize the filesystem in step 2
Online for Linux guests with LVM
Enlarge the physical volume to occupy the whole available space in the partition:
Enlarge the logical volume and the filesystem (the file system can be mounted, works with ext4 and xfs)
Online for Linux guests without LVM
Enlarge the filesystem (in this case root is on vda1)
Proxmox уменьшить размер диска виртуальной машины
Contents
1. Resizing guest disk
General considerations
When you resize the disk of a VM, to avoid confusion and disasters think the process like adding or removing a disk platter.
If you enlarge the hard disk, once you have added the disk plate, your partition table and file system knows nothing about the new size, so you have to act inside the VM to fix it.
If you reduce (shrink) the hard disk, of course removing the last disk plate will probably destroy your file system and remove the data in it! So in this case it is paramount to act in the VM in advance, reducing the file system and the partition size. SystemRescueCD comes very handy for it, just add its iso as cdrom of your VM and set boot priority to CD-ROM.
Shrinking disks is not supported by the PVE API and has to be done manually.
Another page (deleted) with overlapping content was Resizing disks | Archive
qm command
You can resize your disks online or offline with command line:
exemple: to add 5G to your virtio0 disk on vmid100:
Linux should see the new size online without reboot with kernel >= 3.6
Windows should see the new size online without reboot with last virtio drivers.
for virtio-iscsi disk:
Linux should see the new size online without reboot with kernel >= 3.7
Windows should see the new size online without reboot with last virtio drivers.
2. Enlarge the partition(s) in the virtual disk
Depending on the installed guest there is several diffent ways to resize the partions
Offline for all guests
Use gparted or similar tool (recommended)
In gparted and possibly most other tools, LVM and Windows dynamic disc is not supported
Boot the virtual machine with gparted or similar tool, enlarge the partion and optionally the file system. With som linux clients you often need to enlarge the extended partion, move the swappartion, shrink the extended partion and enlarge the root partion. (or simple delete the swap and partion andre create it again — but remember to activwate the swap agin (last step).
Gparted have some warnings about some specific operations not well supported with windows guest — outside the scope of this document but read the warnings in gparted.
Online for Windows Guests
Online for Linux Guests
Here we will enlarge a LVM PV partition, but the procedure is the same for every kind of partitions. Note that the partition you want to enlarge should be at the end of the disk. If you want to enlarge a partition which is anywhere on the disk, use the offline method.
(here we use VirtIO so the hard drive is named vda)
3. Enlarge the filesystem(s) in the partitions on the virtual disk
If you did not resize the filesystem in step 2
Online for Linux guests with LVM
Enlarge the physical volume to occupy the whole available space in the partition:
Enlarge the logical volume and the filesystem (the file system can be mounted, works with ext4 and xfs)
Online for Linux guests without LVM
Enlarge the filesystem (in this case root is on vda1)
Путь IT-шника, иногда сложнее, чем путь самурая…
В данном посте речь пойдет о изменение размера дисков у виртуальных машин под Proxmox (KVM) контейнеры которых расположены на томах LVM и внутри которых (машин) крутится Windows.
Чем проще готовая система виртуализации, чем она более полно охватывает все нужды администратора, тем меньше он разбирается в ее начинке. И от этого, у многих администраторов Proxmox проблемы с уменьшением жестких дисков системы, ибо в консоли они работать не умеют, или боятся что то делать в «замкнутой» системе. Поэтому я и решил сделать эту инструкцию.
Если выключить машину, увеличить размер диска, а потом снова включить, машина ничего не заметит, но в управление дисками у жесткого диска появится не распределенное место. Растянуть файловую систему на свободное место начиная с висты можно стандартными средствами, для ХР можно применить образ Hiren и встроенные в него дисковые утилиты, по типу Partition Magic.
Увеличение диска совершенно безопасная процедура, ее даже можно делать на работающей машине, только вот изменения не применяться, причем даже после перезагрузки. Надо будет выключить машину, удалить диск, а потом кнопкой «Редактировать» вернуть его на прежнее место.
С уменьшением все точно так же, но через консоль.
Для примера уменьшим диск виртуальной машины с 2008 сервером на борту.
На данный момент размер диска 82G, я хочу уменьшить его до 30G. Диск виртуальной машины находится в LVM хранилище с именем VM.
Первым делом, сжимаем файловую систему до нужного размера.
Осталось 51,9G которые надо отрезать.
Заходим в консоль сервера и смотрим какие диски у нас есть, набрав команду lvs
Диск виден и имеет такой же размер, как в веб морде, все нормально, можно продолжать.
Набираем команду lvdisplay и в выводе ищем нужный нам диск.
Смотрим точку монтирования, в моем случае это /dev/vm/vm-107-disk-1
Теперь можно уменьшать диск, но надо учесть 2 вещи. Во первых, в отличие от увеличения диска, мы не указываем сколько хотим «отрезать» от диска, мы указываем размер диска, который должен получится. А во вторых, не в коем случае нельзя делать диск меньше чем файловая система, это уничтожит все данные внутри виртуального диска, причем может повезти так, что данные нельзя будет восстановить даже спец программами.
Поэтому, лучше пересчитать объем диска в мегабайты, накинуть сверху еще пару метров и уже до этой цифры уменьшать.
После страшных пугалок системы и мокрых ладоней, можно посмотреть что получилось, с начало в консоле, командой lvs убеждаемся что диск нужного размера.
После этого надо запустить виртуальную машину и убедиться что она стартует, если все нормально, гасим машину и продолжаем с веб мордой.
В настройках самой машины, размер диска не изменился, как и внутри машины.
Но его размер изменился в хранилище VM.
Теперь надо в настройках виртуальной машины удалить диск, встать на получившийся «Неиспользуемый диск«, нажать кнопку «Редактировать» и вернуть диск на место, с теми же настройками.
Диск встанет на место уже с новым размером. На этом все, можно запускать машину и пользоваться ей дальше. Все счастливы, улыбаются и машут.
Смотрите так же:
Изменение размеров дисков виртуальных машин Proxmox (KVM) на LVM : 3 комментария
С динамическими дисками без предварительного бэкапа не советую делать, данные потеряете. Корректно срабатывает только с базовыми.
А вот с увеличением не все так ясно! Вы говорите, как о чем то очевидном, но как же увеличить объем диска? В proxmoxe нет кнопки увеличить размер.
Как же нет, есть она, на этой картинке ее даже видно http://cdn.itroad.ru/wp-content/uploads/2014/03/proxmox3.png
Resize disk называется
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.
Поиск по блогу
6 дек. 2016 г.
Proxmox kvm — изменение размера lvm диска
Увеличение
1) увеличить размер диска виртуальной машины:
— в web-интерфейсе выбрать VM, в разделе «Ресурсы» выбрать диск, нажать кнопку «Resize disk» и указать число XX Гб для увеличения (уменьшить размер lvm через web-интерфейс нельзя).
— в консоли:
перезагрузить ВМ, чтобы «перечитать» диск нового размера (возможно как-либо можно пересканировать диск, чтобы он увидел новый размер и не упала ФС).
2) увеличить размер раздела (онлайн):
3) увеличить размер ФС:
Увеличить оффлайн — по примеру уменьшения размера.
Уменьшение
1) выключить виртуальную машину
2) уменьшить размер ФС до минимального размера:
просмотр параметров ФС
3) уменьшить размер диска виртуальной машины:
4) уменьшить размер раздела:
5) увеличить размер ФС до максимального размера:
KVM: Как увеличить/уменьшить размер диска виртуальной машины?
В этой статье мы поговорим об изменении размера дисков виртуальной машины KVM, рассмотрим используемые форматы виртуальных дисков. Покажем, как правильно увеличить диск виртуальной машины в гипервизоре KVM на Linux без потери данных, а также обсудим варианты уменьшения размеров дисков.
Увеличение диска виртуальной машины KVM
Расширение виртуального диска со стороны KVM
Для того, чтобы проводить работы с диском, виртуальная машина должна быть отключена, иначе мы не сможем что-либо сделать. Рассмотрим пример с увеличением диска размер которого изначально был 20Гб.
Чтобы посмотреть параметры диска виртуальной машины KVM, воспользуйтесь командой:
qemu-img info /путь_до_диска
Вывод команды будет примерно такой:
Мы видим, что у нас есть два поля которые указывают на размер, это virtual_size и disk_size:
И сразу о форматах. Я рекомендую при создании виртуальных машин на KVM использовать формат диска qcow2, а не raw. Чуть позже я объясню почему.
Следующим шагом расширим диск виртуальной машины, на 5Gb (для корректного расширения диска у виртуальной машины не должно быть снапшотов!).
# qemu-img resize /путь до диска +5G
Если сразу проверить вывод информации об образе диска, мы увидим, что он расширился:
# qemu-img info /путь_до_диска
Часть работы мы сделали, но требуется и проведение работ со стороны виртуальной машины в гостевой ОС. Далее мы покажем, как увеличить размер диска в гостевых CentOS 7 и Windows Server 2012.
Расширение раздела в виртуальной машине с Linux CentOS
После расширения диска со стороны сервера, нужно запустить виртуальную машину и подключиться к ней по ssh. Все работы будут проводиться с помощью утилиты управления разделами жестких дисков fdisk.
После подключения к серверу, проверяем наличие нашего дополнительно подключенного места:
На скриншоте видно, раздел /dev/vda2 имеет размер 20Gb, а доступное место на диске у нас больше.
Подправим этот момент и расширим раздел /dev/vda2 до максимального объема:
После чего нам нужно сделать рестарт виртуальной машины и выполнить команду для применения расширения диска:
В итоге мы получили расширенный раздел /dev/vda2. Теперь по порядку, что именно мы сделали:
После перезагрузки проверим диск командой:
В некоторых источниках для выполнения данной процедуры указывают команду:
Но с файловой системой xfs это не работает!
Работы по расширению диска на виртуальной машине с ОС CentOS 7 закончены.
Увеличение диска в гостевой Windows Server
Подключаемся к виртуальной машине через rdp или VNC и выполняем работы по расширению диска.
Хотелось бы добавить, что перед процедурой расширения диска для виртуальной машины, я советую выполнять резервное копирование самого диска. Остановите виртуальную машину и скопируйте образ диска в директорию для бэкапа или в любую директорию, в которой есть свободное место. Если в ходе работ, что-то пойдет не так, вы всегда сможете вернуть образ виртуального диска из бэкапа.
Как уменьшить размер виртуального диска в KVM?
В своей работе, ранее я довольно часто сталкивался с данным вопросом, но к сожалению, безболезненно уменьшить диск на виртуальной машине в KVM нельзя! Единственный приемлемый размер уменьшения размер диска виртуальной машины KVM на физическом хранилище – его сжатие через конвертацию.
В интернете фигурирует много статей, якобы благодаря которым вы можете уменьшить размер диска на виртуальной машине, но это не работает.
Я приведу несколько примеров, на которые я натыкался и которые лично мною были проверены.
Уменьшение KVM диска с помощью утилиты qemu
На ряде ресурсов описаны действия, выполняемые с помощью утилиты qemu. В них предлагается уменьшить размер диска виртуальной машины с помощью команды:
Или такой вариант с указанием конкретного размера:
qemu-img resize /путь_до_диска 25G — указываем размер диска в 25G
Что происходит после выполнения данной команды? Запускаем сервер и конечно система не грузится:
Я пробовал сначала уменьшить раздел из-под системы с помощью утилиты fdisk, но в таком случае, система так же перестает загружаться, даже если вы пропустите шаг уменьшения диска с физического сервера и это логично. Раздел который мы уменьшаем, системный и соответственно ОС перестает загружаться, так как при уменьшении диска, информация по всей видимости уничтожается.
Уменьшение виртуального диска с подменой образа
Уже не такой распространенный в инструкциях вариант — это уменьшение диска, с подменой на старый. То есть, вы создаете новую виртуальную машину с нужным вам размером диска. После чего, подменяете старый образ диска в новый образ и судя по описанию статей в разных источниках, это работает. Я так же сделал проверку и это сломало файловую систему, как и в первом варианте. Я приведу пример команды:
virt-resize /старый_образ_диска /новый_образ_диска
Приводились так же варианты, с конвертацией диска с формата raw в формат qcow2, НО я изначально создаю машины в данном формате и объясню почему.
Форматы дисков KVM и сжатие диска в qcow2 формате
В самом начале статьи, я упомянул про эти два формата.
raw – в переводе «сырой». Преимущество формата, максимальная производительность, универсальность формата. Минусов масса, основные это:
Qcow2 – это родной формат гипервизора QEMU, а так же QEMU-KVM. Это максимально удобный формат виртуального диска из всех поддерживаемых в KVM. Образ диска увеличивается по мере накопления данных на виртуальной машине, поддерживаются снапшоты.
При проверке с сервера, образ диска сначала весил 2.4G после чего расширился до 5.9G:
То есть после удаления информации на виртуальной машине, диск обратно не сжался. Чтобы файл диска получил актуальный размер, я использую следующий метод:
Бэкапим файл диска, останавливаем виртуальную машину и после чего выполняем следующие действия:
После чего можно проверить размеры двух дисков:
Как видим, размер сжатого диска 1.6G. Переименуем новый образ диска в нужный нам и запустим виртуальную машину:
Контрольная проверка с сервера:
Способ рабочий. За все время его использования, ни разу файловая система на виртуальной машине не умирала. Но настоятельно рекомендую перед подобными работами, создавать копию диска, если не хотите потерять данные.
Это все, что я хотел в данной статье рассказать. Если у кого-то из посетителей сайта есть рабочий способ по уменьшению диска на KVM, именно уменьшения (не сжатие) и именно рабочий, предлагайте свои варианты и я обязательно их протестирую.
Ваша система на CentOS не грузится после уменьшения ввиду того, что xfs не поддерживает уменьшение раздела, что нельзя сказать об ext4, например. Но и ресайзить qcow2 образ в сторону уменьшения его объема так же плохая идея. Если говорить о файловой системе xfs, применимой в образе виртуального диска, то лучше создать новый образ qcow2 и в resque, например, подцепить оба образа и выполнить xfs_dump и xfs_restore. Но в этом случае так же придется править grub.
На самом деле в своей работе и ext4 пробовали уменьшать, получилось то, что получилось выше)
Ни разу нормально ничего не уменьшилось. Посыл раздела по уменьшению был такой: куча статей с вариантами уменьшения диска, которые гробят систему. А некоторые в принципе не срабатывают даже, непонятно тестируют ли вообще люди то, о чем пишут. Да и с образом в формате qcow2 смысла уменьшать разделы не вижу, лишние нервы. Есть vds не занимает место, то пусть и будет там раздел хоть на 100Гб) На днях еще раз проверю с ext4 и отпишусь, но последний раз это окончилось плачевно.
Виртуалка с диском на 1000гб будет делать бэкапы гораздо дольше чем со 100гб
Чтобы руками не чистить место от удаленных файлов на дисках ВМ — пользуем TRIM
Win начиная с Vista и любой современный Linux (вкл. службу TRIM) умеют TRIM. Единственное, TRIM должен поддерживаться самим виртуальным контроллером. Virtio только недавно этому научился, а вот SCSI умеет давно. В Proxmox VE TRIM вкл. галкой прямо в свойствах ВМ forum.netgate.com/topic/120102/proxmox-ceph-zfs-pfsense-и-все-все-все
fstrim на kvm тоже работает, но замечал, что не всегда диск виртуальной машины сжимается в актуально состояние, поэтому приходится конвертацию делать.
По поводу того, зачем разные форматы — вот так работает 100%, т.е. диск raw отлично меняет свой размер, если вы позаботились о размере ФС (в случае уменьшения). Кроме того, он быстрее на 10% и нет варианта, что вы отдали всем виртуалкам в сумме больше диска, чем у вас есть. Но тут нужно для себч решить — нужны ли эти 10% производительности или снапшоты, которых raw не поддерживает. С другой стороны, если у вас образы лежат на любой структуре, поддерживающей снапшоты (zfs, lvm, та же xfs) — может и не нужен qcow. Вот только смешивать на одном разделе хоста образы в разных форматах не рекомендую: если не уследите за разрастанием qcow-дисков, будет беда. Машины с qcow-дисками при невозможности расшириться дальше просто станут на паузу, а машины с, например, raw-дисками в «тонких» lvm при невозможности расшириться или записать на диск, исковеркают свою ФС и упадут.
Добавлю свои 5 коп.: Если после увеличения размера образа свободное место не отражается в VM c Windows Server, а перезагрузка VM затруднительна, то можно решить проблему командой DISKPART RESCAN










