Группа томов закончилась. Как мне ее вернуть?

Группа томов закончилась. Как мне ее вернуть?

Итак, длинная история: есть виртуальная машина SVN (сервер vmware), на которой закончилось место. Я не могу выполнить коммит, потому что он говорит, что места нет. К виртуальной машине подключен один виртуальный диск на 80 ГБ (hda), раздел /boot и большая VG (VolGroup00) для /

Я архивирую и удаляю старые репозитории SVN с диска, но свободного места не возвращается. Что мне нужно сделать, чтобы это место снова стало доступным для использования? Я использую Linux почти для всего, но никогда не игрался с LVM достаточно, чтобы понять, что происходит.

вывод vgdisplay:

--- Volume group ---
VG Name               VolGroup00
System ID             
Format                lvm2
Metadata Areas        1
Metadata Sequence No  3
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                2
Open LV               2
Max PV                0
Cur PV                1
Act PV                1
VG Size               74.41 GB
PE Size               32.00 MB
Total PE              2381
Alloc PE / Size       2380 / 74.38 GB
Free  PE / Size       1 / 32.00 MB
VG UUID               dPSZpL-kFBn-HpkH-ChfO-dw9q-YGg2-qHOiQF

Со вчерашнего дня место освободилось...

Вывод df -h

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
                       72G   67G  959M  99% /
/dev/hda1              99M   15M   80M  16% /boot
tmpfs                  62M     0   62M   0% /dev/shm

Вывод lvs

LV       VG         Attr   LSize  Origin Snap%  Move Log Copy% 
LogVol00 VolGroup00 -wi-ao 73.38G                              
LogVol01 VolGroup00 -wi-ao  1.00G

Что-то все равно кажется странным, поскольку указано 959 МБ свободной памяти, а при размере 72 Гб используется 67 Гб...

Итак, теперь я освобождаю место, удаляя репозитории... и все же равновесие во вселенной еще не восстановлено...

решение1

Удаление файлов не изменяет размер логического тома (и, соответственно, не влияет на свободное место в группе томов).

Группу томов можно представить как «виртуальный диск», а логические тома на ней — как разделы, но с ними гораздо проще работать (изменять размер, создавать, удалять), чем с обычными разделами.

Как говорит Камил, если вы получаете ошибки "out of space" во время работы, то это не LVM, который напрямую виноват — это простая ошибка файловой системы, и вы можете определить, в какой файловой системе не хватает места с помощью df -h, и удаление достаточного количества вещей в этой файловой системе в конечном итоге даст вам больше места. Однако с LVM, если у вас есть файловая система с кучей свободного места и другая без него, вы можете сжать LV с большим количеством свободного места, а затем выделить это пространство LV, на котором закончилось место, и, следовательно, использовать выделенный вам диск более эффективно.

Процесс сжатия и расширения файловых систем немного рискован (поэтому делайте резервные копии), а этап сжатия должен выполняться на размонтированных файловых системах (поэтому переход в однопользовательский режим хорош, и вы не можете сжать корневую файловую систему; если ваши файловые системы это поддерживают (XFS, reiser, последние ext2/3), вы можете выполнить расширение в режиме онлайн). В общем, процесс выглядит следующим образом:

  1. Сократите файловую систему, из которой вы хотите удалить пространство, до размера, немного меньшего, чем тот, который вы хотите получить в итоге (например, resize2fs /dev/mapper/VolGroup00-largeLV xG). Причина, по которой вы сжимаете ее до немного меньшего размера, заключается в том, что если вы ошибетесь в математике и сократите LV меньше файловой системы, вы ее забьете.
  2. Уменьшите LV, из которого вы хотите удалить пространство, до нужного вам размера ( lvresize -L xG VolGroup00/largeLV)
  3. Увеличьте файловую систему на этом LV до нового размера LV:resize2fs /dev/mapper/VolGroup00-largeLV
  4. Увеличьте слишком маленький LV до нового, большего размера:lvresize -L+nG VolGroup00/smallLV
  5. Увеличьте файловую систему на слишком маленьком логическом томе до нового, большего размера:resize2fs /dev/mapper/VolGroup00-smallLV

И теперь у вас везде должно быть достаточно места.

Несколько советов:

  • lvsперечислит все ваши LV вместе с их размерами
  • vgsбыстро отобразит все размеры ваших VG и свободное пространство
  • Если ваш раздел подкачки находится на LVM, то это часто хорошее место, чтобы получить немного временного свободного места, если машина не слишком загружена.

Удачи!

решение2

/dev/sda локальный или на SAN? Если на SAN, то есть надежда. Если он локальный и использует все доступное пространство, вам придется освободить часть дискового пространства, удалив файлы.

Обновите вопрос и сообщите нам статус.

Редактировать

Ах, это виртуальная машина! Вам повезло (если на хостовой машине есть свободное место).

Создайте еще один виртуальный диск в менеджере ВМ, который будет иметь такой же размер, как и свободное пространство. Затем предоставьте этот образ диска ВМ.

Убедитесь, что виртуальная машина видит его (используйте dmesg, чтобы проверить, отображается ли он). Если это так, выполните fdisk и создайте один раздел.

Проблема

 pvcreate /dev/whatever1  

Где "что угодно" - это, очевидно, устройство. Вероятно, sdb. 1 - это раздел, который вы только что создали. У него не должно возникнуть проблем с созданием этого физического тома.

Теперь беги

 vgextend VolumeGroupName /dev/whatever1 

Вы можете использовать vgdisplay, чтобы проверить, что в группе томов теперь есть свободное место. Теперь увеличьте логический том:

 lvextend -l +100%FREE 

Это должно расширить логический том для заполнения группы томов.

Теперь самое сложное. Если у вас файловая система ext3, вы сможете изменять размер в режиме реального времени, на лету:

 resize2fs /dev/volgroup/logicalvolume 

(где volgroup и logicalvolume — это фактический путь к тому, что смонтировано в /)

Он сообщит, что выполняет динамическое изменение размера, поскольку том смонтирован, и вуаля, запуск df -h должен показать, что у вас есть свободное место.

решение3

Объем свободного места в вашей группе томов не изменится. Все это выделяется файловой системой, в которой вы ее отформатировали. Удаление файлов приведет только к удалению их записей inode из файловой системы, но файловая система по-прежнему будет претендовать на это пространство.

Единственный способ освободить место в группе томов — изменить размер или удалить логические тома.

Но то, что вы описываете, звучит так, будто у вас просто закончилось место на диске. Вам следует проверить вывод df -hв вашей виртуальной машине и посмотреть, сколько свободного места на томе, где находится репозиторий.

решение4

Попробуйте перезапустить сервер SVN. Если удаление файлов не освобождает место, они должны все еще использоваться каким-то образом. Это происходит и с активными журналами. У меня однажды был журнал, который рос на 10 МБ в час, поэтому довольно скоро мне пришлось удалить журнал, но это не освободило место, пока я не перезапустил демон, который извергал данные в этот журнал.

EDIT: Я посмотрел, почему это происходит. Кажется, linux/unix считает ссылки на файлы, поэтому их можно удалить, пока они не будут освобождены всеми процессами, которые их открыли.

Связанный контент