Как увеличить доступное пространство в каталоге /home?

Вопрос или проблема

Я запускаю команду 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

Вот распространенный метод расширения, который предполагает наличие свободного места на диске. Существует множество других вариантов, в зависимости от того, как вы хотите организовать всё:

  1. Добавьте новый раздел с помощью fdisk или parted, либо на sda, либо туда, где у вас есть свободное место.
    • Вы можете проверить диск на наличие свободного места с помощью parted -l
  2. Создайте и обновите объекты 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 исчерпал всю доступную емкость и требует увеличения. Это можно сделать несколькими способами, включая добавление нового физического накопителя или перераспределение существующего пространства.

  1. Проверка доступного пространства на диске: Первым шагом необходимо выяснить, имеется ли на диске sda неиспользуемое пространство, поскольку текущее пространство выделено на том cs, судя по выводам команд df -h и vgs. Полная информация о доступных разделах и их состоянии может быть получена с помощью команды parted -l.

  2. Создание нового раздела:

    • Если свободное пространство на диске доступно, необходимо создать новый раздел, который будет добавлен в LVM. Это можно сделать с помощью утилит fdisk или parted.
    • Важно убедиться, что созданный раздел не конфликтует с существующими и был правильно инициализирован для дальнейшего использования с LVM.
  3. Инициализация физического тома и расширение группы томов:

    • После создания раздела, добавьте его как физический том с помощью команды pvcreate, например: pvcreate /dev/sda5.
    • Далее расширьте группу томов cs, добавив новый физический том: vgextend cs /dev/sda5.
  4. Расширение логического тома и файловой системы:

    • Теперь можно расширить логический том, отвечающий за директорию /home. Это можно сделать с помощью команды lvextend, например: lvextend -l +100%FREE /dev/cs/home, где +100%FREE означает использование всего доступного пространства в группе.
    • После расширения логического тома необходимо расширить файловую систему на нем, чтобы она могла использовать новое пространство, с помощью: resize2fs /dev/cs/home.

Пример:
Допустим, вы добавили новый физический том и успешно расширили логический том и файловую систему. Теперь при выполнении svn checkout команда должна успешно завершаться, не вызывая ошибок нехватки места.

Применение:
Данная последовательность шагов оптимальна в условиях, когда свободное пространство на существующем физическом диске все еще доступно. В случае его отсутствия вы могли бы рассмотреть возможность использования другого физического накопителя или удалять ненужные файлы, чтобы освободить текущую директорию.

Кроме того, регулярное управление объемами всегда должно сопровождаться резервным копированием данных для снижения риска потери информации. Стратегия может различаться в зависимости от вашей политики хранения данных, требований безопасности и специфики использования системы.

Применение этих стратегий позволит более гибко управлять дисковым пространством и будет полезно в ситуациях, когда одна из директорий на вашем сервере требует больше ресурсов без замены всего оборудования. Это обеспечивает не только решение текущей проблемы, но и создает почву для более эффективного использования системы в дальнейшем.

Оцените материал
Добавить комментарий

Капча загружается...