Centos уменьшить размер диска
Parted – (сокращенно от PARTition EDitor) редактор дисковых разделов для Linux, предназначенный для управления разметкой, создания, удаления и изменения размеров разделов диска. Утилита проста в использовании и доступна для всех дистрибутивов Unix/Linux систем. Кроме того, доступна GUI версия — Gparted. В данной статье, мы покажем, как управлять разделами диска с помощью parted на примере CentOS 8 (в других дистрибутивах Linux все работает аналогично). В Windows аналогом команды parted является diskpart .
Шаг 2: увеличиваем размер тома LVM (который у нас / ) без перезагрузки
Да, вы не очитались. Чтобы увеличить размер тома LVM нам не придется загружаться в single mode (или через LiveCD в Rescue mode).
На всякий случай, чтобы не перепутать, какому тому вы хотите отдать свободное место, выполните cat /etc/fstab и lvscan, убедитесь, что раздел / (корень) - это /dev/VolGroup/LogVol02, а не что-то иное ;)
Именно так, без пробелов между -l (это маленькая L) и +100%FREE. Заметьте, я не стал указывать, на сколько точно я хочу увеличть размер тома. В данной ситуации мне это было не нужно и чтобы не гадать, сколько конкретно надо добавить Гбайт, я просто указал, чтобы было добавлено все, что можно. man lvextend для ознакомления с вариациями -L+100G ;) Опция -r указывает на то, чтобы был выполнен ресайз файловой системы после увеличения логического тома. Без этой опции команды было бы две:
После успешного завершения я бы перезагрузился и проверил, что все ок.
Естественно, все вышеописанное может дать сбой на любом этапе, хотя бы из-за сбоя электропитания. Поэтому если данные на изменяемых разделах хоть как-то важны, вы должны иметь их копию.
Все вышеперечисленное верно для CentOS. Для Ubuntu вроде бы все то же самое. Думаю (не знаю) что для всех современных Linux все команды такие же.
Изменение размеров логических томов в Linux осуществляется сложнее, нежели в Windows, что связано с особенностями использования консольных команд и доступных графических приложений. Однако эта задача под силу любому пользователю, и приведенные далее инструкции помогут разобраться с тем, как выполнить ее быстро.
Resizing The Logical Volume (LV)
The next step is to resize the logical volume to use the new space available in the LVM physical volume. Execute the following command:
This should produce the following output (it will differ depending on how much disk space you're adding):
Resizing The Partition
You need to modify the Linux partition table within the virtual machine to recognize that the disk size has changed. This can be done using the fdisk utility, which is a partition editor. For the virtual machine provided by Nagios Enterprises:
- sda1 is used for the boot partition
- sda2 is the device for all logical volumes, this is the partition you need to edit
Start fdisk by executing the following command:
You should print the current partition table so you can keep track of your changes as you go:
Take a screenshot or copy the screen contents into a text file in case you want to reference it later.
To resize a partition, you actually "delete" it and then add a new one with the new size, making sure to place the beginning of the new partition at the same sector/cylinder as the old one started. This process is NOT destructive, your data still remains on the disk. These first steps are for deleting the partition:
These next steps re-create the partition:
You will be prompted for the first and last sectors to use, simply accept the defaults for the start and end point (just press Enter). Double-check that they make sense when compared to the information printed earlier.
Next you need to configure the partition type to LVM ( 8e ):
At this point you are done making your changes, and just need to write them to the disk. It is a good idea to print (p) the new partition table to ensure you entered things correctly. Once thing look okay, you can commit (write) the partition table to disk:
The write command will exit the fdisk program. You will now need to reboot the virtual machine to allow the kernel to recognize the new partition table, execute the following command:
Управление таблицей разделов в parted, разметка диска
Выведем список доступных дисков:
Доступен диск /dev/vdb размером 21 Гб, диску не присвоена метка (error /dev/vdb: unrecognized disk label), какая таблица разделов – не понятно.
Можно создать на диске разметку msdos (MBR)
Или таблицу разделов gpt ( GUIE partition table поддерживает размер раздела более 2 Тб) :
Обратите внимаени, что в parted в отличии от fdisk нет команды для записи изменений. Все изменения применяются немедленно.
Теперь parted показывает тип таблицы разделов (разметки) на диске:
Как вы видите, на диске уже есть таблица разделов MBR, но сами разделы еще не созданы.
Если у вас на сервере имеется несколько свободных дисков, то можно переключаться между ними с помощью команды:
Удаление раздела с помощью parted
Если вам требуется удалить раздел на диске, вы можете использовать команду rm в оболочке parted:
Эта команду удалит раздел с номером 1:
Будьте осторожны в использовании данной команды, так как она не требует подтверждение удаления.
Установка parted в Linux
Обновите набор по на сервере и установите пакет parted с помощью менеджера пакетов вашего дистрибутива Linux. Для CentOS 8 с менеджером пакетов dnf (который заменил yum), можете установить parted из базового репозитория командой:
Или в Debian/Ubuntu:
Чтобы проверить версию утилиты, выполните команду:
Чтобы попасть в саму оболочку, введите:
Шаг 1: уменьшаем /var
В моем случае (софтовый raid1) я сначала проверил на всякий случай, что все диски подключены и ошибок нет (cat /proc/mdstat).
Я не был уверен, что размонтировать /var (umount /var) в рабочем режиме хорошая мысль, поэтому загрузился с LiveCD CentOS в Rescue Mode (можно было войти в single mode и без LiveCD).
Проверяем доступность физического тома LVM:
Проверяем доступность групп томов:
Активируем логические тома:
Смотрим логические тома:
Можно посмотреть подробности тома /dev/VolGroup/LogVol01 (он у нас /var):
а можно и не смотреть.
Все вышеуказанные проверки служат для того, чтобы вы были уверены, что тома LVM видны и активны и чтобы вы понимали, с каким именно томом вам следует проводить дальнейшие дествия. Идем дальше.
Отмонтируем том, который у нас /var и который будет уменьшать:
Выполняем проверку файловой системы тома:
Команда должна пройти без ошибок.
Выполняем проверку на наличие ошибок (-f - force):
Сначала уменьшаем размер файловой системы тома:
resize2fs -p /dev/VolGroup/LogVol01 30G
Внимание: здесь "30G" - это размер, который мы хотим задать для файловой системы, а не на который мы хотим уменьшить файловую систему.
И только после этого изменяем размер тома LVM:
Теперь можно и не монтировать обратно раздел, а сразу перезагрузиться и проверить, что все ок, система загружается, df -h выдает размер /var равным 30 Гб.
Создание нового раздела в parted
Для создания раздела в parted, используется утилита mkpart . При вводе команды в интерактивном режиме будут появляться вопросы о параметрах нового раздела:
- Partition type — указываем тип раздела (primary / extended)
- File system type — файловая система, по умолчанию предлагается ext2 (в дальнейшем мы ее изменим);
- Start — начальный сектор раздела
- End — конечный сектор раздела (в мегабайтах). В нашем примере мы указали 5000, это значит, что будет создан раздел размером 5Гб.
Чтобы вывести оставшееся количество места на диске, используйте команду:
(parted) print free
Можно сразу создать раздел на весь диск:
или указать произвольный размер раздела так:
Также можно указывать размер диска в % и задать метку:
Чтобы выйти из оболочки parted, выполните команду:
Отформатируем раздел в файловой системе ext4:
Проверяем файловую систему раздела и видим, что она изменилась (обратите внимание что команда print выводит теперь список разделов на диске, их номера, тип, размер и файловую систему).
Можно создать раздел и отформатировать его, не входя в оболочку parted, например:
Данной командой мы создадим раздел на диске vdb, под который отдадим всё пространство.
Таким образом вы можете упрощать себе работу или же добавлять подобные команды в какие-то скрипты или файлы кикстарта.
Подготовка
Для решения нашей задачи нам понадобятся две утилиты — установим их.
а) если используем CentOS / Red Hat:
yum install lvm2 xfsdump
б) если используем Ubuntu / Debian:
apt-get install lvm2 xfsdump
Затем рекомендую сделать резервную копию всех важных данных, которые находятся на компьютере. Также стоит выбрать подходящее время для работы, например, в выходные (чтобы было время настроить компьютер или сервер по новой, в случае неудачи).
Описание процесса
План действий такой:
- Создаем временный раздел XFS на новом томе LVM. Переносим корневой раздел на временный том и загружаемся с него.
- Уменьшаем исходный том до нужного размера, возвращаем на него данные. Загружаемся с нового раздела.
- Удаляем временный том.
В нашем примере будут такие разделы:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 9G 0 part
vg-root 253:0 0 8G 0 lvm /
vg-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 8G 0 disk
* в данном примере корневой раздел находится на физическом диске sda и его разделе sda2.
Мы попробуем уменьшить раздел с 8 Гб до 6. Диск sdb будем использовать как временный.
3. Удаление временного тома
Для порядка, вернем прежнее состояние без временного тома.
Удаляем том, группу и снимаем lvm-метку с диска, который нами использовался как временный (sdb):
Do you really want to remove active logical volume vg_tmp_root/lv_tmp_root? [y/n]: y
Как расширить или уменьшить размер раздела диска с помощью parted
Чтобы расширить или уменьшить размер раздела в partedиспользуется субкоманда resizepart Можно изменить размер раздела в интерактивном режиме. В оболочке parted введите команду:
Система запросит номер раздела (берется из вывода команды print) и конечный размер раздела. В этом примере размер разделе будет увеличен с 5 до 10 Гб:
Сначала увеличьте размер раздела, а потом растяните файловую систему на нем. Если вы уменьшаете размер раздела – сначала нужно сжать размер файловой системы, и только после этого уменьшать размер раздела. Иначе потеряете данные.
Для уменьшения размер файловой системы используются следующие команды. Для файловых систем ext2/3/4 :
resize2fs /dev/sdab size
btrfs filesystem resize /dev/sdab size
Изменять флаг раздела в parted тоже возможно, вы можете установить один из нужных вам:
Например сделаем раздел загрузочным:
Меняем размер разделов диска с помощью fdisk
Более гибкий, но сложный вариант изменения размера диска в Linux подразумевает использование консольной утилиты fdisk. Для выполнения расширения тома на все свободное пространство понадобится выполнить более десятка разных действий, но на все про все уйдет не больше 10 минут.
- Если вы пока не знаете, под какими метками располагается сам диск и его логические тома, используйте команду sudo fdisk -l, отобразив список со всеми секторами.
- Используйте команду umount /dev/sdb2 для размонтирования раздела. Замените его название на необходимое и учитывайте, что корневой том размонтировать так просто нельзя, понадобится загрузка с LiveCD.
- Далее укажите fdisk /dev/sdb , подключившись тем самым к указанному диску.
- Посмотрите все разделы, введя p и нажав на Enter .
- За удаление отвечает d; после активации этого атрибута понадобится ввести цифру раздела, который вы хотите удалить (при этом форматирования не происходит, все данные сохраняются).
- Последовательно активируйте n (новый раздел), p (основной) и 2 (замените на номер тома). При появлении уведомления о создании первого и последнего сектора подтверждайте операцию нажатием на Enter .
- Проверьте список томов еще раз через p , а затем нажмите w для сохранения изменений.
Осталось только указать файловой системе, что размер тома был расширен до максимального, поскольку пока отображается старое значение. Для этого сначала определите используемую файловую систему через df -T . Введите одну из трех следующих команд, отталкиваясь от полученной информации:
Для ext2/ext3/ext4 :
XFS :
Reiserfs :
В командах номера разделов указаны в качестве примеров, вы же заменяете их на свои. Еще оставлю пример команды для монтирования диска, если ранее он был отключен:
Сделать это нужно уже после внесения всех изменений.
Для уменьшения размера раздела используйте последовательность команд:
После ввода последней снова используйте последовательную активацию букв так, как это было показано в предыдущей инструкции, чтобы создать новый раздел. Кроме того, не забудьте смонтировать его обратно!
This KB article describes how to increase the size of a Nagios virtual machine (VM) disk. This documentation is specifically for the CentOS 7 VM's available for download from the Nagios Enterprises website for each of the following products:
- Nagios XI
- Nagios Fusion
- Nagios Network Analyzer
- Nagios Log Server
This KB article works on any of the CentOS 7 VMs as they have identical disk configurations.
If you are using a CentOS 6 VM then there is separate documentation for those VM's as each product had slightly different disk configurations:
If you are unsure what version of CentOS your VM is running on you can execute the following command:
Version 6 will output something like:
Version 7 will output something like:
The actions required to resize the virtual machine are potentially destructive by nature. We strongly recommended that you make proper backups of your Nagios server before proceeding.
A snapshot of your virtual machine is one method to provide a way to "go back" if something goes wrong. However a snapshot can only be done once you add extra disk space to the virtual hard disk (the first step in this guide). It is not possible to take a snapshot before adding the extra disk space, the virtual technology does not provide this capability. It is recommended that you shutdown and power the VM off before taking a snapshot.
Resizing The Virtual Disk
The first step is to modify the amount of disk space VMware is allocating to your Nagios image. If you are using another hypervisor like Hyper-V or VirtualBox then these settings will be slightly different from the steps below.
It is recommended that you shutdown and power the VM off before resizing the virtual disk.
The virtual disk size setting you need can be found under:
(Your VM) > Summary > Commands > Edit Settings > Hardware > Hard Disk 1 > Capacity > New Size.
For VMware Player, the disk size setting can be found using the following options on the overview page:
(Your VM) > Edit virtual machine settings > Hardware > Hard Disk (SCSI) > Utilities > Expand > Maximum disk size.
Power the VM back on after increasing the disk space.
The remaining instructions require you to establish a terminal session to your Nagios server as the root user.
Resizing The Partition / Filesystem
There are two methods available for resizing the partition and filesystem:
Automated With Script
The following commands will automatically resize the partition and filesystem on your VM. Once the script has completed it will automatically restart the Nagios server:
You will see output similar to the following:
You will need to answer y to proceed.
After the server reboots and you login as the root user in a terminal session you will see a message similar to:
The sizes you see in the message above will differ depending on how much extra disk space you added.
This completes the automatic steps for increasing the VM disk size. You should log into the Nagios interface to ensure everything is working OK.
If you took a snapshot of your VM before proceeding you should now shutdown the VM and delete the snapshot as it is no longer required for roll-back purposes.
Follow these steps to manually resize the VM partition and filesystem.
Resizing The Physical Volume (PV)
The CentOS system installed in the virtual machine image we ship uses Logical Volume Management (LVM) for its partitions. If you have never worked with LVM before and want to better understand the terminology herein, visit:
In order to make use of the newly increased disk space, LVM needs to be told that it is there and should be used. For this step you will adjust the size of the physical volume to match the new size of the partition. Establish a terminal session to your Nagios server and then execute the following command:
This should produce the following output:
Работа с разделами в GParted
Не все юзеры Linux предпочитают использовать терминал, когда можно обойтись без него. К тому же новички в этой операционной системе не особо желают разбираться с активацией сложных команд. Поэтому в качестве первого варианта предлагаю ознакомиться с использованием программы GParted, которая представляет собой полноценную систему управления дисками.
GParted по умолчанию установлена в большинстве популярных дистрибутивов и их оболочках. Однако если при запуске окажется, что она отсутствует, используйте менеджер приложений или пользовательские репозитории для стандартной процедуры инсталляции. После этого приступайте к выполнению следующей инструкции.
Если все пространство уже распределено по разделам, учитывайте, что сначала его придется вернуть к нераспределенному, сжав один или несколько логических томов. Затем свободные мегабайты уже можно будет отнести к новому тому, расширив его.
Resizing The Filesystem
The last step is to change the filesystem residing on the logical volume so that it knows to put files in that space.
First, determine if you have an xfs or ext filesystem by running the following command:
The output should display the filesystem type in the Type column.
If XFS, then execute the following command:
If EXT, then execute the following command:
This should produce the following output (it will differ depending on how much disk space you're adding):
You're done! You can confirm the disk resize worked by using df -h to display a summary of filesystem size and usage.
If you took a snapshot of your VM before proceeding you should now shutdown the VM and delete the snapshot as it is no longer required for roll-back purposes.
For any support related questions please visit the Nagios Support Forums at:
Posted by: tlea on Tue, May 8, 2018 at 9:58 PM. This article has been viewed 46934 times.
Filed Under: System Configuration, System Configuration, System Configuration, System Configuration
Attachments
Related Articles
Каждый, кто сталкивался с задачей уменьшения XFS знает, что нет штатного решения это сделать. Для изменения размера в меньшую сторону нужно сдампить во временный раздел содержимое текущего и поменять точку монтирования. Затем уменьшить исходный раздел, сдампить уже временный раздел в новый исходный, вернуть точку монтирования.
Данные операции проще сделать, если это раздел с данными и есть возможность отмонировать его в процессе работы операционной системы. Однако, при работе с корневым разделом, это сделать сложнее. Рассмотрим, как это делается.
Хочу обратить внимание, что данная операция крайне опасна — любое неверное действие или нюанс в ранней настройке операционной системы приведет к падению системы без возможности загрузки. Перед началом работы стоит обкатать действия на тестовой машине.
1. Загрузка с временного раздела
Подготовим временный раздел для корневого тома:
vgcreate vg_tmp_root /dev/sdb
lvcreate -n lv_tmp_root -l +100%FREE /dev/vg_tmp_root
* данными командами мы создали группу томов vg_tmp_root и сделали из нее один логический раздел lv_tmp_root.
Создадим файловую систему XFS и смонтируем ее в каталог /mnt:
mount /dev/vg_tmp_root/lv_tmp_root /mnt
Смотрим расположение корневого раздела командой:
.
--- Logical volume ---
LV Path /dev/vg/root
LV Name root
VG Name vg
.
Находим среди результатов корневой раздел — нам нужен параметр LV Path.
Сдампим содержимое текущего корневого раздела в наш временный:
xfsdump -J - /dev/vg/root | xfsrestore -J - /mnt
* где /dev/vg/root — то, что мы получили в параметре LV Path командой lvdisplay; /mnt — каталог, в который мы смонтировали наш временный раздел.
Заходим в окружение chroot нашего временного корня:
for i in /proc/ /sys/ /dev/ /run/ /boot/; do mount --bind $i /mnt/$i; done
Запишем новый загрузчик:
grub2-mkconfig -o /boot/grub2/grub.cfg
Обновляем образы загрузки:
cd /boot ; for i in `ls initramfs-*img`; do dracut -v $i `echo $i|sed "s/initramfs-//g; s/.img//g"` --force; done
Открываем конфигурационный файл grub:
Меняем все значения, которые задействуют старый том lvm — в моем случае, все совпадения:
* так как у меня корневой раздел был в группе vg и имел название root (команда lvdisplay), то под замену попадает vg/root. В вашем случае это будет другое значение.
Этот момент крайне важен. Неправильное редактирование приведет к невозможности загрузки.
Выходим из окружения chroot и перезагружаем компьютер:
. мы должны загрузиться с временного раздела:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 9G 0 part
vg-swap 253:1 0 1G 0 lvm [SWAP]
vg-root 253:2 0 8G 0 lvm
sdb 8:16 0 8G 0 disk
vg_tmp_root-lv_tmp_root 253:0 0 8G 0 lvm /
* как видим, теперь корневой раздел на sdb.
Восстановление случайно удаленных разделов с помощью rescue
Удаленный раздел можно восстановить с помощью утилиты rescue, которая доступа в оболочке parted:
Команда запросит начальный и конечный размер разделе. Если на этих позициях есть инфа о разделе, команда попробует восстановить удаленный раздел.
Как видите, утилита parted проста в использовании и очень удобна для создания/изменения разделов вашего диска. Надеемся, что данная статья поможет вам разобраться во многих вопросах.
Изменение размера дисков LVM
На днях пришлось менять диски на сервере CentOS 6.7. Старые диски хоть и рабочие еще, но с нагрузкой не справлялись. Поэтому раскошелились и купили SSD диски такой же емкости, как и старые. Но т.к. стоимость 1 Гб на SSD диске намного дороже, то посмотрев на размер /var (180 Гб) и / (корневой раздел) 300 Гб, само собой напросилось решение увеличить размер / за счет уменьшения размера /var. Идея, конечно, хорошая, но раньше я никогда таким не баловался, поэтому провел выходные на форумах, проверил сначала все на виртуальной машине без raid, потом подумал, что на моем сервере работает софтовый raid1 и сделал тестовый стенд (на старый комп поставил CentOS 6.7 с двумя дисками в программном raid1) и проверил все на нем, потом уже выполнил повторно на рабочем сервере. Но все же волнительно было, чего уж. Итак, поехали!
Совет: если вы раньше никогда не развлекались изменениями разделов, никогда не пробуйте это делать на рабочем компьютере.
Итак, есть система из двух дисков, объединенных в raid1 (зеркало).
Разбивка примерно такая:
/dev/sda:
/dev/sda1 200 Мб, /dev/md0
/dev/sda2 480 Гб, /dev/md1
/dev/sdb:
/dev/sdb1 200 Мб, /dev/md0
/dev/sdb2 480 Гб, /dev/md1
/dev/md0 отдан под /boot
На /dev/md1 тома LVM:
/dev/VolGroup/LogVol00 swap 2 Гб
/dev/VolGroup/LogVol01 /var 180 Гб, ext4
/dev/VolGroup/LogVol02 / 300 Гб, ext4
Для чего я привел пример разбивки? Чтобы вы обратили внимание, что мы в дальнейшем ни разу не будем ресайзить тома на устройствах /dev/sdXY. Мы все изменения разделов будем проводить только с логическими томами LVM!
Задача: изменить размер /var до 30 Гб и отдать все освободившееся место в / (корень). Файловая система обоих разделов ext4. Система CentOS 6.7.
2. Уменьшаем раздел и возвращаем с него загрузку
И так, у нас есть раздел, который нужно уменьшить и который теперь не примонтирован в качестве корня.
Удаляем его логический том:
* напомню, что /dev/vg/root используется в конкретном случае и данный путь нужно подставить свой.
Do you really want to remove active logical volume vg/root? [y/n]:
. отвечаем утвердительно — y;
Создаем новый логический том меньшего размера:
lvcreate -n root -L 6G vg
* мы создали новый том LVM со старым именем root в группе томов vg.
WARNING: xfs signature detected on /dev/vg/root at offset 0. Wipe it? [y/n]:
. отвечаем утвердительно — y;
Создаем на нем файловую систему и монтируем его:
mount /dev/vg/root /mnt
Возвращаем обратно содержимое корня:
xfsdump -J - /dev/vg_tmp_root/lv_tmp_root | xfsrestore -J - /mnt
Заходим в окружение chroot нашего временного корня:
for i in /proc/ /sys/ /dev/ /run/ /boot/; do mount --bind $i /mnt/$i; done
Запишем новый загрузчик:
grub2-mkconfig -o /boot/grub2/grub.cfg
Обновляем образы загрузки:
cd /boot ; for i in `ls initramfs-*img`; do dracut -v $i `echo $i|sed "s/initramfs-//g; s/.img//g"` --force; done
Открываем конфигурационный файл grub:
Проверяем все значения, которые задействуют старый том lvm — в моем случае должны быть:
* так как у меня корневой раздел в группе vg и имеет название root (команда lvdisplay), то корневой раздел имеет точку монтирования lvm vg/root. В вашем случае это будет другое значение.
Выходим из окружения chroot и перезагружаем компьютер:
. мы должны загрузиться с нашего уменьшенного раздела:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 10G 0 disk
sda1 8:1 0 1G 0 part /boot
sda2 8:2 0 9G 0 part
vg-root 253:0 0 6G 0 lvm /
vg-swap 253:1 0 1G 0 lvm [SWAP]
sdb 8:16 0 8G 0 disk
vg_tmp_root-lv_tmp_root 253:2 0 8G 0 lvm
* как видим, корневой раздел вернулся назад и его размер уменьшен.
Читайте также: