Назад | Перейти на главную страницу

группа томов не хватает места. Как мне его вернуть?

Итак, существует 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

Выход лвс

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

Что-то все еще кажется странным, так как там говорится, что 959M доступно, а 67G используется с размером 72G ...

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

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

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

Как говорит Камил, если во время работы вы получаете ошибки «не хватает места», значит, виноват не 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. Увеличьте файловую систему на слишком маленьком LV до нового, большего размера: resize2fs /dev/mapper/VolGroup00-smallLV

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

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

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

Удачи!

/ 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 должен показать, что у вас есть свободное место.

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

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

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

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

РЕДАКТИРОВАТЬ: Я посмотрел, почему это происходит. Кажется, что файлы подсчета ссылок linux / unix, поэтому их можно удалить, пока они не будут выпущены всеми процессами, которые их открыли.