Вопрос или проблема
Я запускаю команду svn checkout
, чтобы клонировать удаленный репозиторий размером около 9 ГБ в мое рабочее пространство на CentOS /home/john/my/workspace
, но через некоторое время получаю:
No space left on device (Нет места на устройстве)
И процедура прерывается.
Если я запускаю команду df -h
, получаю:
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 7.7G 0 7.7G 0% /dev/shm
tmpfs 3.1G 1.4M 3.1G 1% /run
efivarfs 256K 31K 221K 13% /sys/firmware/efi/efivars
/dev/mapper/cs-root 9.4G 1.1G 8.4G 11% /
/dev/mapper/cs-usr 7.5G 5.0G 2.5G 67% /usr
tmpfs 1.0G 0 1.0G 0% /tmp
/dev/mapper/cs-var 7.5G 949M 6.6G 13% /var
/dev/sda2 947M 507M 441M 54% /boot
/dev/mapper/cs-var_tmp 1.9G 46M 1.9G 3% /var/tmp
/dev/mapper/cs-opt 7.5G 112M 7.4G 2% /opt
/dev/sda1 571M 7.5M 564M 2% /boot/efi
/dev/mapper/cs-home 7.5G 7.5G 20K 100% /home
/dev/mapper/cs-var_log 3.8G 584M 3.2G 16% /var/log
/dev/mapper/cs-var_log_audit 3.8G 3.3G 524M 87% /var/log/audit
tmpfs 1.6G 28K 1.6G 1% /run/user/974
tmpfs 1.6G 28K 1.6G 1% /run/user/582851889
И, как я предполагаю, директория /home
заполнена на 100%
(Size
составляет 7.5G, Used
составляет 7.5G, Avail
составляет 20K).
Как я могу увеличить доступное пространство, чтобы команда svn checkout
завершилась успешно?
Если я запускаю команду lsblk
, получаю:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 1T 0 disk
├─sda1 8:1 0 572M 0 part /boot/efi
├─sda2 8:2 0 953M 0 part /boot
├─sda3 8:3 0 54.2G 0 part
│ ├─cs-root 253:0 0 9.3G 0 lvm /
│ ├─cs-swap 253:1 0 3.7G 0 lvm [SWAP]
│ ├─cs-usr 253:2 0 7.5G 0 lvm /usr
│ ├─cs-opt 253:3 0 7.5G 0 lvm /opt
│ ├─cs-home 253:4 0 7.5G 0 lvm /home
│ ├─cs-var_log_audit 253:5 0 3.7G 0 lvm /var/log/audit
│ ├─cs-var 253:6 0 7.5G 0 lvm /var
│ ├─cs-tmp 253:7 0 2G 0 lvm
│ ├─cs-var_log 253:8 0 3.7G 0 lvm /var/log
│ └─cs-var_tmp 253:9 0 1.9G 0 lvm /var/tmp
└─sda4 8:4 0 1M 0 part
sr0 11:0 1 1024M 0 rom
Вывод команды vgs
:
VG #PV #LV #SN Attr VSize VFree
cs 1 10 0 wz--n- <54.18g 4.00m
Вот распространенный метод расширения, который предполагает наличие свободного места на диске. Существует множество других вариантов, в зависимости от того, как вы хотите организовать всё:
- Добавьте новый раздел с помощью
fdisk
илиparted
, либо на sda, либо туда, где у вас есть свободное место.- Вы можете проверить диск на наличие свободного места с помощью
parted -l
- Вы можете проверить диск на наличие свободного места с помощью
- Создайте и обновите объекты LVM по мере необходимости из нового раздела. Например:
- Добавьте весь раздел как физический том:
pvcreate /dev/sda5
- Добавьте физический том в свою группу томов:
vgextend cs /dev/sda5
- Добавьте весь физический том в логический том каталога home:
lvextend /dev/cs/home /dev/sda5
- Добавьте весь раздел как физический том:
Вам, вероятно, захочется ограничить размер вашего нового раздела. Так просто добавить место, но часто намного сложнее уменьшить его обратно, если вы захотите снова передвинуть его.
Если разделы используют MBR (отображается как Partition Table: msdos
в parted -l
), то они могут быть ограничены 4 разделами. Существуют простые способы обойти это, но стоит упомянуть, если вы столкнетесь с проблемами на первом шаге
Ответ или решение
Для решения задачи увеличения доступного пространства в директории /home
на вашей системе CentOS с файловой системой LVM (Logical Volume Management), необходимо провести несколько этапов модификаций. Важно следовать плану, чтобы обеспечить стабильность системы и минимизировать риск потери данных. В представленном сценарии место в директории /home
полностью занято, препятствуя успешному выполнению операции svn checkout
, требующей значительного объема свободного пространства. Рассмотрим подробно, как можно решить данную проблему.
Теория: Использование LVM предоставляет гибкие возможности управления логическими томами, позволяя легко расширять или перераспределять пространство между различными директориями. В вашем случае логический том /home
исчерпал всю доступную емкость и требует увеличения. Это можно сделать несколькими способами, включая добавление нового физического накопителя или перераспределение существующего пространства.
-
Проверка доступного пространства на диске: Первым шагом необходимо выяснить, имеется ли на диске
sda
неиспользуемое пространство, поскольку текущее пространство выделено на томcs
, судя по выводам командdf -h
иvgs
. Полная информация о доступных разделах и их состоянии может быть получена с помощью командыparted -l
. -
Создание нового раздела:
- Если свободное пространство на диске доступно, необходимо создать новый раздел, который будет добавлен в LVM. Это можно сделать с помощью утилит
fdisk
илиparted
. - Важно убедиться, что созданный раздел не конфликтует с существующими и был правильно инициализирован для дальнейшего использования с LVM.
- Если свободное пространство на диске доступно, необходимо создать новый раздел, который будет добавлен в LVM. Это можно сделать с помощью утилит
-
Инициализация физического тома и расширение группы томов:
- После создания раздела, добавьте его как физический том с помощью команды
pvcreate
, например:pvcreate /dev/sda5
. - Далее расширьте группу томов
cs
, добавив новый физический том:vgextend cs /dev/sda5
.
- После создания раздела, добавьте его как физический том с помощью команды
-
Расширение логического тома и файловой системы:
- Теперь можно расширить логический том, отвечающий за директорию
/home
. Это можно сделать с помощью командыlvextend
, например:lvextend -l +100%FREE /dev/cs/home
, где+100%FREE
означает использование всего доступного пространства в группе. - После расширения логического тома необходимо расширить файловую систему на нем, чтобы она могла использовать новое пространство, с помощью:
resize2fs /dev/cs/home
.
- Теперь можно расширить логический том, отвечающий за директорию
Пример:
Допустим, вы добавили новый физический том и успешно расширили логический том и файловую систему. Теперь при выполнении svn checkout
команда должна успешно завершаться, не вызывая ошибок нехватки места.
Применение:
Данная последовательность шагов оптимальна в условиях, когда свободное пространство на существующем физическом диске все еще доступно. В случае его отсутствия вы могли бы рассмотреть возможность использования другого физического накопителя или удалять ненужные файлы, чтобы освободить текущую директорию.
Кроме того, регулярное управление объемами всегда должно сопровождаться резервным копированием данных для снижения риска потери информации. Стратегия может различаться в зависимости от вашей политики хранения данных, требований безопасности и специфики использования системы.
Применение этих стратегий позволит более гибко управлять дисковым пространством и будет полезно в ситуациях, когда одна из директорий на вашем сервере требует больше ресурсов без замены всего оборудования. Это обеспечивает не только решение текущей проблемы, но и создает почву для более эффективного использования системы в дальнейшем.