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

Как изменить размер основной файловой системы

на моем сервере centos я установил новый том /dev/sdb. Я хочу добавить место в корневую файловую систему /dev/vda1.

[user@prod current]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        30G   11G   18G  37% /
devtmpfs        488M     0  488M   0% /dev
tmpfs           497M     0  497M   0% /dev/shm
tmpfs           497M   50M  447M  11% /run
tmpfs           497M     0  497M   0% /sys/fs/cgroup
tmpfs           100M     0  100M   0% /run/user/1000
/dev/sdb         50G   53M   47G   1% /mnt/volume_nyc3_01

Есть ли способ уменьшить /dev/sdb и увеличить /dev/vda1? По возможности без потери данных на /dev/vda1.

Если мы рассмотрим /dev/vda и /dev/sdb поскольку это разные (физические) диски, это нелегко сделать, так что было бы намного проще переустановить сервер с нуля и поставить / в том LVM с самого начала.

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

/dev/vda предполагает, что это какая-то виртуальная система. В зависимости от того, что позволяет базовая система, можно изменить размер образа диска, предоставив /dev/vda (и при необходимости удалите / уменьшите изображение, предоставив /dev/sdb). Поговорите со своим администратором / провайдером. В этом случае после того, как система выберет больший размер /dev/vda, вы могли бы продлить /dev/vda1 а затем выращивать / файловая система.

Я очень сомневаюсь, что это возможно буквально. Но что вы можете сделать, так это переместить файлы или папки из / dev / vda1 в / dev / sdb, а затем заставить их появиться в том же месте на / dev / vda1 после этого. Это приведет к увеличению доступного пространства на / dev / vda1.

Например, простым решением было бы переместить содержимое / var, / home, / opt или / usr в / dev / sdb, а затем смонтировать / dev / sdb как любую папку, которую вы переместили. Это довольно распространенный способ справиться с этим. Будьте осторожны с / sbin и / root, так как они могут существовать до того, как / dev / sdb будет смонтирован в вашей установке. Вы можете сделать это, изменив fstab (что можно сделать с помощью инструмента в вашей настройке).

Вы также можете разделить / dev / sdb (я полагаю). Затем вы можете смонтировать его как несколько каталогов. Это потребует добавления записей в fstab.

Третий вариант - переместить файлы из / dev / vda1 в / dev / sdb, а затем создать символьную ссылку, чтобы они отображались в одном месте в файловой структуре. Вы часто помещаете эти символические ссылки на уровне папки. Например. что-то вроде

ln -s /mnt/volume_nyc3_01/usr /usr

Вы бы сделали это как root (возможно, с sudo). Это позволит вам размещать произвольные папки или файлы в / dev / sdb, сохраняя при этом доступ к ним в том же месте файловой системы. Я полагаю, вы уже знаете, как использовать du чтобы определить, какие файлы и папки занимают больше всего места.

Помните, что вы можете монтировать тома в любом месте дерева. Без изменения корневой файловой системы в /.

Создайте группу томов LVM, затем логические тома из / dev / sdb, создайте на ней файловую систему и смонтируйте ее там, где вам нужно пространство. Например, это может быть база данных, смонтируйте ее в / var / lib / pgsql. (Ваше приложение будет другим.)

Конкретные точки монтирования, подобные этой, изолируют данные приложения от операционной системы. Это может упростить резервное копирование или планирование емкости. Ценой необходимости управлять более чем одной файловой системой.