df -h Filesystem Size Used Avail Use% Mounted on udev 7,5G 0 7,5G 0% /dev tmpfs 1,6G 2,5M 1,6G 1% /run /dev/mapper/system-root 30G 17G 12G 58% / tmpfs 7,6G 0 7,6G 0% /dev/shm tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 7,6G 0 7,6G 0% /sys/fs/cgroup /dev/mapper/system-lib 30G 8,0G 20G 29% /var/lib /dev/mapper/system-log 9,8G 5,4G 4,0G 58% /var/log /dev/mapper/system-home 29G 956M 27G 4% /home /dev/mapper/system-glusterfs 15G 43M 14G 1% /var/lib/ecss/restfs /dev/mapper/system-ecss--mysql 15G 54M 14G 1% /var/lib/ecss-mysql /dev/mapper/system-mysql 9,8G 243M 9,0G 3% /var/lib/mysql /dev/nvme0n1p1 1,1G 4,4M 1,1G 1% /boot/efi
Для примера, возьмем раздел /dev/mapper/system-glusterfs. В первую очередь необходимо отмонтировать раздел.
sudo umount /dev/mapper/system-glusterfs umount: /var/lib/ecss/restfs: target is busy.
Если в результате выполнения команды возникнет ошибка "target is busy", то необходимо остановить сервисы, которые используют этот раздел.
Посмотрим, какие сервисы используют раздел командой lsof
sudo lsof /dev/mapper/system-glusterfs COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME unitd 1406 www-data cwd DIR 253,6 4096 2 /var/lib/ecss/restfs unitd 2007 www-data cwd DIR 253,6 4096 2 /var/lib/ecss/restfs ecss-rest 2041 www-data cwd DIR 253,6 4096 2 /var/lib/ecss/restfs unitd 2102 www-data cwd DIR 253,6 4096 2 /var/lib/ecss/restfs unitd 2139 www-data cwd DIR 253,6 4096 2 /var/lib/ecss/restfs unitd 2211 www-data cwd DIR 253,6 4096 2 /var/lib/ecss/restfs unitd 2285 www-data cwd DIR 253,6 4096 2 /var/lib/ecss/restfs unitd 2341 www-data cwd DIR 253,6 4096 2 /var/lib/ecss/restfs
Видим какие процессы висят, и останавливаем их через kill -9 <PID>, либо, через остановку сервиса systemd.
sudo systemctl stop ecss-restfs
sudo systemctl status ecss-restfs ● ecss-restfs.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/ecss-restfs.service; enabled; vendor preset: enabled) Active: inactive (dead) since Fri 2023-02-17 15:28:36 +07; 3s ago Docs: http://nginx.org/en/docs/ Process: 24667 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/ecss-restfs-nginx.pid (code=exited, status=0/SUCCESS) Process: 24251 ExecStart=/usr/sbin/ecss-restfs (code=exited, status=0/SUCCESS) Process: 24212 ExecStartPre=/usr/sbin/ecss-restfs -t -q (code=exited, status=0/SUCCESS) Main PID: 24253 (code=exited, status=0/SUCCESS) фев 17 15:28:25 ecss1 systemd[1]: Starting nginx - high performance web server... фев 17 15:28:25 ecss1 systemd[1]: Started nginx - high performance web server. фев 17 15:28:35 ecss1 systemd[1]: Stopping nginx - high performance web server... фев 17 15:28:36 ecss1 systemd[1]: Stopped nginx - high performance web server.
sudo umount /dev/mapper/system-glusterfs umount: /var/lib/ecss/restfs: target is busy. sudo lsof /dev/mapper/system-glusterfs COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME ecss-rest 24367 www-data cwd DIR 253,6 4096 2 /var/lib/ecss/restfs sudo kill 24367 sudo lsof /dev/mapper/system-glusterfs sudo umount /dev/mapper/system-gluster
Теперь раздел отмонтирован. Можно приступать к изменению размера.
Допустим, нам необходимо забрать 5ГБ от этого раздела, тогда воспользуемся командой
sudo lvresize --resizefs -L-5G /dev/mapper/system-glusterfs Do you want to unmount "/var/lib/ecss/restfs" ? [Y|n] y fsck from util-linux 2.31.1 /dev/mapper/system-glusterfs: /lost+found not found. CREATED. /dev/mapper/system-glusterfs: 601/983040 files (0.5% non-contiguous), 99133/3932160 blocks resize2fs 1.44.1 (24-Mar-2018) Resizing the filesystem on /dev/mapper/system-glusterfs to 2621440 (4k) blocks. The filesystem on /dev/mapper/system-glusterfs is now 2621440 (4k) blocks long. Size of logical volume system/glusterfs changed from 15,00 GiB (3840 extents) to 10,00 GiB (2560 extents). Logical volume system/glusterfs successfully resized.
Обязательно используйте ключ --resizefs или -r. Он используется для того, чтобы в момент изменения размера, сам LVM пересчитал итоговый размер и чтобы система определила этот раздел с правильным размером.
Если же нужно добавить места, то после -L ставим +<необходимый размер>G
После всех проделанных процедур, снова подключаем раздел и включаем сервисы, которые выключали.
sudo mount -a df -h Filesystem Size Used Avail Use% Mounted on udev 7,5G 0 7,5G 0% /dev tmpfs 1,6G 2,5M 1,6G 1% /run /dev/mapper/system-root 30G 17G 12G 58% / tmpfs 7,6G 0 7,6G 0% /dev/shm tmpfs 5,0M 0 5,0M 0% /run/lock tmpfs 7,6G 0 7,6G 0% /sys/fs/cgroup /dev/mapper/system-lib 30G 8,0G 20G 29% /var/lib /dev/mapper/system-log 9,8G 5,4G 4,0G 58% /var/log /dev/mapper/system-home 29G 956M 27G 4% /home /dev/mapper/system-ecss--mysql 15G 54M 14G 1% /var/lib/ecss-mysql /dev/mapper/system-mysql 9,8G 243M 9,0G 3% /var/lib/mysql /dev/nvme0n1p1 1,1G 4,4M 1,1G 1% /boot/efi /dev/mapper/system-glusterfs 9,8G 43M 9,2G 1% /var/lib/ecss/restfs sudo systemctl start ecss-restfs