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

Правильный способ переназначить раздел на новый диск?

В настоящее время я запускаю веб-сервер под управлением Debian. У меня есть 1 ГБ диск с одним разделом ext4, сопоставленным с / и диск емкостью 8 ГБ с одним разделом ext4, сопоставленным с /var/www.

Диск емкостью 1 ГБ заполнен на 70% без установленной БД. Как только я установил psql, мой /var вероятно собирается заполнить диск 1GB.

Итак, что я хочу сделать, так это изменить размер ext4 на диске 8 ГБ до 4 ГБ и создать другой раздел, используя свободное пространство.

На мой взгляд, я пришел к следующему набору шагов:

  1. umount и использовать resize2fs (или parted), чтобы изменить размер раздела на диске 8 ГБ.
  2. parted для создания нового раздела размером 4 ГБ на свободном пространстве.
  3. mount новая перегородка, чтобы сказать /media/new
  4. cp -a скопировать мой /var из раздела 1 ГБ в новый раздел 4 ГБ. (или я должен использовать tar для этого?)
  5. добавить запись для нового раздела в fstab
  6. удалите лишнее, например /var с моего диска 1 ГБ и /var/www для нового раздела.

Я никогда раньше не делал ничего подобного, может кто-нибудь, пожалуйста, подтвердите мои действия и посмотрите, не упустил ли я что-нибудь?

PS. Я сделал du --max-depth=1, и похоже, что помимо 200 МБ, занятых /var, также выделено 300 МБ для /usr и 200 МБ в /lib. Мне тоже нужно переместить их?

На самом деле вам не нужно переделывать диск для этого. Альтернативное решение - использовать mount -o bind.

  1. Остановите все службы, запущенные на сервере, и убедитесь, что нет открытых дескрипторов для / var с помощью lsof | grep /var - если есть, убить процессы, которые их удерживают.
  2. Отключите диск 8 ГБ (/ var / www) и смонтируйте его в другом месте (например, / mnt)
  3. На диске 8 ГБ переместите все содержимое в одну папку - назовем ее «www».
  4. Переместите / var / на свой диск 8 ГБ (вы можете вместо этого скопировать и переименовать оригинал для некоторой безопасности) (Итак, теперь у вас есть две папки / mnt / www и / mnt / var)
    • (Поскольку / var / www находится в var, проще просто переместить его туда в этот момент (т.е. mv /mnt/www /mnt/var/, хотя, я могу установить вложенные крепления)
  5. Смонтировать bind / var: mount -o bind /mnt/var /var
  6. Добавить в fstab:

    /mnt/var  /var    bind     defaults,noatime,bind        0   0
  7. Убедитесь, что все работает, и возобновите нормальную работу

Этот подход должен предлагать ту же функциональность, с немного меньшим риском (без переразметки / изменения размера файловых систем) и большей гибкостью - если вы хотите добавить еще две или три папки, вам не нужно постоянно создавать новые разделы.

Кроме того, перемещение всего / var на второй диск не было бы моим первым выбором, я бы предпочел переместить каталоги, в которых хранятся данные, вместо тех, которые хранят программы, например следующие: (вы, вероятно, обнаружите, что / var / log и / var / lib в любом случае используют большую часть места в / var).

  • / var / журнал
  • / var / lib / pgsql
  • / var / spool / mail (и / или / var / vmail)
  • / var / www (который вы уже переместили)

Та же процедура может быть применена к большинству каталогов (кроме чего-то вроде / boot). Кроме того, вы можете рассмотреть возможность использования rsync вместо cp, если некоторые файлы заблокированы и т. Д., И вам нужно запустить его второй раз, это может быть более снисходительным.