![]() |
Внимание! Перед проведением данного типа работ на сервере ОБЯЗАТЕЛЬНО сделайте его резервную копию или, если это виртуальный сервер, снапшот состояния! Данные действия потенциально опасны и могут привести к утере всей хранящейся на сервере информации! Автор данной статьи не несет ответственности за возможную потерю информации и прочие сбои! В зависимости от того, как разбит на разделы жесткий диск вашего сервера, может поменяться и порядок действий! На данном сервере диск размечался автоматически установщиком Debian 10! |
Итак, при восстановлении дампа базы я получил ошибку:
ERROR 1114 (HY000) at line 3624: The table 'history_uint' is full
Проверив место на диске я увидел неутешительную картину:
df -H
Filesystem Size Used Avail Use% Mounted on
…
/dev/xvda1 9.5G 9.0G 11M 100% /
Места на диске не было. Сам дамп с базой у меня занимает 2.9 Гб, так что, при восстановлении базы из дампа, просто не хватило свободного места.
На старом сервере ситуация была такой:
df -H
Filesystem Size Used Avail Use% Mounted on
…
/dev/sda1 62G 16G 43G 27% /
В принципе можно было создать новую виртуальную машину с диском около 100 Гб и заново поставить всё что нужно, но я решил расширить существующий диск. Сразу после установки Zabbix я сделал снапшот состояния виртуальной машины, так что попросту откатил состояние машины до этого момента.
Изменение размера диска
Для начала отключим виртуальную машину и средствами гипервизора изменим объем диск виртуальной машины до 100 Гб.
Запустим виртуальную машину.
Проверим свободное место:
df -H
Filesystem Size Used Avail Use% Mounted on
...
/dev/xvda1 9.5G 1.7G 7.4G 19% /
Хотя мы физически и изменили свободное место, размер раздела / остался прежним, а что же диск?
root@debian:/home/meria# sudo fdisk -l
Disk /dev/xvda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x2974fada
Device Boot Start End Sectors Size Id Type
/dev/xvda1 2048 18892799 18890752 9G 83 Linux
/dev/xvda2 18894846 20969471 2074626 1013M 5 Extended
/dev/xvda5 18894848 20969471 2074624 1013M 82 Linux swap / Solaris
Как вы можете видеть, размер диска увеличился до 100 Gb, но разделы остались прежними.
Не забудем отключить раздел подкачки:
sudo swapoff –a
Удаление старых разделов
Для начала нужно удалить все старые разделы
Запустим fdisk
sudo fdisk /dev/xvda
Нажмем p
Command (m for help): p
Disk /dev/xvda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x2974fada
Device Boot Start End Sectors Size Id Type
/dev/xvda1 2048 18892799 18890752 9G 83 Linux
/dev/xvda2 18894846 20969471 2074626 1013M 5 Extended
/dev/xvda5 18894848 20969471 2074624 1013M 82 Linux swap / Solaris
В моем случае /dev/xvda2 нужно удалить, чтобы увеличить размер диска.
Нажмем d и затем 2
Command (m for help): d
Partition number (1,2,5, default 5): 2
Partition 2 has been deleted.
Нажмем p
Command (m for help): p
Disk /dev/xvda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x2974fada
Device Boot Start End Sectors Size Id Type
/dev/xvda1 2048 18894845 18892798 9G 83 Linux
У нас остался только один раздел нажмем d и удалим и его
Command (m for help): d
Selected partition 1
Partition 1 has been deleted.
Мы удалили старые разделы. Обратите внимание, что такой метод подходит потому, что у изначально раздел с данными занимал место от начала диска, так что мы можем спокойно создать новый раздел большего размера.
Создание новых разделов
Создадим новый раздел требуемого размера
Нажмем n
Command (m for help): n
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Нажмем p
Select (default p): p
Partition number (1-4, default 1):
Нажмем 1, Enter и еще раз Enter
Partition number (1-4, default 1): 1
First sector (2048-209715199, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199):
Введем +98G и нажмем Enter
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199): +98G
Created a new partition 1 of type 'Linux' and of size 98 GiB.
Будет создан раздел размером в 98 Гб
Создание раздела подкачки (swap)
Теперь нам нужно восстановить раздел подкачки, для этого сначала создадим под него раздел.
Нажмем n и e
Command (m for help): n
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): e
Partition number (2-4, default 2):
Нажмем 2 и затем Enter и Enter
First sector (205522944-209715199, default 205522944):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (205522944-209715199, default 209715199):
Created a new partition 2 of type 'Extended' and of size 2 GiB.
Будет создан раздел размером в 2 Гб
Нажмем t и 2
Command (m for help): t
Partition number (1,2, default 2): 2
Введем 82
Hex code (type L to list all codes): 82
Changed type of partition 'Extended' to 'Linux swap / Solaris'.
Вот и все теперь осталось записать данные на диск.
Запись изменений на диск
Для того чтобы записать все изменения на диск достаточно ввести w и нажать
Command (m for help): w
The partition table has been altered.
Syncing disks.
Программа fdisk завершит на этом свою работу и запишет изменения на диск.
Проверим что у нас получилось:
sudo fdisk -l
Disk /dev/xvda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x2974fada
Device Boot Start End Sectors Size Id Type
/dev/xvda1 2048 205522943 205520896 98G 83 Linux
/dev/xvda2 205522944 209715199 4192256 2G 82 Linux swap / Solaris
Размер раздела увеличился.
Но если мы посмотрим утилитой df то увидим следующее
df -H
Filesystem Size Used Avail Use% Mounted on
...
/dev/xvda1 9.5G 1.7G 7.4G 19% /
Размер раздела / не изменился
Изменение размера корневого раздела /
Для того, чтобы указать корневому разделу использовать всё доступное пространство диска запустим команду
sudo resize2fs /dev/xvda1
Проверим еще раз
df -H
Filesystem Size Used Avail Use% Mounted on
…
/dev/xvda1 104G 1.7G 98G 2% /
На этот раз все получилось.
Подключение раздела подкачки
Последнее что нам осталось – инициализировать и подключить раздел подкачки.
Если мы проверим состояние памяти, то обнаружим, что размер подкачки равен нулю!
free -m
total used free shared buff/cache available
Mem: 956 278 432 6 245 532
Swap: 0 0 0
Для начала инициализируем раздел под swap
sudo mkswap /dev/xvda2
После этого подключим его
sudo swapon /dev/xvda2
Проверяем
free -m
total used free shared buff/cache available
Mem: 956 278 429 6 248 531
Swap: 2046 0 2046
Все в порядке.
Обновление /etc/fstab
Осталось только обновить /etc/fstab так как UUID у раздела подкачки поменялся
Запустим
sudo blkid
/dev/xvda1: UUID="2ca5857b-3052-45ef-8cb5-236513198857" TYPE="ext4" PARTUUID="2974fada-01"
/dev/xvda2: UUID="b8e91264-1d1e-4238-b5f3-1e310df5dc44" TYPE="swap" PARTUUID="2974fada-02"
Откроем /etc/fstab
sudo nano /etc/fstab
UUID=2ca5857b-3052-45ef-8cb5-236513198857 / ext4 errors=remoun$
# swap was on /dev/xvda5 during installation
UUID=09fe383d-199e-4d4e-b907-bb69b374d63a none swap sw $
/dev/sr0 /media/cdrom0 udf,iso9660 user,noauto 0 0
Изменим UUID у swap в нашем случае на
b8e91264-1d1e-4238-b5f3-1e310df5dc44
Нажмем ctrl+x и y и Enter, чтобы сохранить конфигурацию.
Обязательно перезагрузите сервер и проверьте, чтобы всё работало!
Заключение
Сегодня мы рассмотрели процесс изменения раздела под Linux Debian 10 Buster.
Мы увеличили размер диска виртуальной машины с 10 до 100 Гб.
Проверили размер диска после перезагрузки.
Удалили старые разделы. Создали новый размером в 98 Гб и 2Гб выделили под новый swap.
Записали изменения на диск и проверили результат.
Проверил свободную память и обнаружили, что у нас нету раздела подкачки.
Создали новый раздел подкачки и подключили его.
Обновили /etc/fstab так как у нас изменился UUID раздела подкачки.
После этого снова проверили состояние памяти.