CentOS & перемещение /var на новый диск / раздел
Немного старше системы, примерно 2 года. Запуск CentOS
Я замечаю, у меня есть /var
использование большого количества места, и это все хорошо... так что удаление места не является ответом.
Есть ли простой / безопасный способ передвижения /var
на вновь смонтированный диск без поджаривания ОС? Я знаю, как добавлять диски и правильно их форматировать, просто никогда не пытался переместить /var
до нового места назначения раньше.
Я читал статьи о сбое сервера и других сайтах, но они расплывчаты в ответ, как именно это сделать. Как правило, они предлагают остановить процессы и т. Д. Но не вдавайтесь в подробности о том, как сделать это безопасно, или как убедиться, что вы остановили все правильно, прежде чем перемещать данные и монтировать все.
Проверено это уже:
Переместить / var на новый набор дисков
Не хотел делать что-то, что могло бы сильно испортить MySQL. Спасибо!
ОБНОВИТЬ:
Информация о файловой системе:
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_centos6-centos6_root
47G 41G 4.0G 92% /
tmpfs 3.9G 500K 3.9G 1% /dev/shm
/dev/vda1 276M 199M 64M 76% /boot
/dev/vdb1 197G 119G 68G 64% /home
/dev/vdd1 197G 95G 93G 51% /home2
/dev/vde1 99G 8.1G 86G 9% /home3
/usr/tmpDSK 2.0G 40M 1.8G 3% /tmp
Подробные крепления:
# cat /etc/fstab
/dev/vg_centos6/centos6_root / ext4 usrjquota=quota.user,jqfmt=vfsv0 1 1
/dev/vda1 /boot ext3 defaults 1 2
/dev/vdb1 /home ext4 usrjquota=quota.user,jqfmt=vfsv0 0 0
/dev/vdd1 /home2 ext4 usrjquota=quota.user,jqfmt=vfsv0 0 0
/dev/vde1 /home3 ext4 usrjquota=quota.user,jqfmt=vfsv0 0 0
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/mapper/vg_centos6-lv_swap swap swap defaults 0 0
/usr/tmpDSK /tmp ext3 defaults,noauto 0 0
Из того, что я вижу, /var
определенно находится в корневом разделе. Я надеюсь изменить это.
3 ответа
Хорошо, что ваша система, вероятно, является виртуальной машиной, что может быть известно по именам файловых узлов устройства (например, /dev/vdb
), что упростит нашу процедуру, исключив необходимость использования какого-либо специализированного инструмента (например, iscsi-initiator-utils
) если он пришел, скажем, хранилище iSCSI.
CentOS предлагает минимальный установочный носитель, который включает в себя наиболее важный инструмент для нашей цели, rsync
, Если вы используете CentOS 6 и используете 64-битную систему, вы можете загрузить минимальный ISO-образ компакт-диска, выбрав, например, зеркало по вашему выбору. Затем вы можете скачать минимальный ISO отсюда размером менее 400 МБ. Рекомендации по дополнительным шагам следующие:
Подготовьте запасной диск. Присоедините новый диск к ВМ и отформатируйте его как обычно. Вы уже написали, что знаете, как это сделать.
Загрузитесь в режиме восстановления. Изящно завершите работу виртуальной машины и загрузите минимальный ISO. Один из предложенных вариантов установки - Rescue установленная система. Выбор этого параметра позволит нам загрузиться с компакт-диска без каких-либо процессов записи на ваш
/var
каталог. Это обеспечит нам безопасную среду для переноса данных со старого диска на новый. Есть несколько меню, по которым вам нужно будет перемещаться, прежде чем вы попадете в приглашение оболочки. Пункты в скобках - это те, которые наиболее важны для меня. Пожалуйста, выберите те, которые вы считаете подходящими.- Выберите язык. [Английский]
- Тип клавиатуры [нас]
- Вы хотите запустить сетевые интерфейсы в этой системе? [Нет]. Мы можем сделать это, потому что вы находитесь на виртуальной машине, и новый диск будет доступен без подключения к сети.
- Спасательная среда... [Пропустить]. Это долгий диалог. Просто выберите пропустить.
- Начать оболочку
Передача данных. Допустим, узел устройства на вашем новом диске, в котором будут храниться новые
/var
данные/dev/vdc1
и ваш старый корневой раздел, держа/var
каталог/dev/vda2
, Создайте временные точки монтирования и скопируйте данные:mkdir /mnt/var /mnt/var_old mount /dev/vda2 /mnt/var_old mount /dev/vdc1 /mnt/var rsync -a /mnt/var_old/ /mnt/var/
Переместить старое / вар. Переместить старое
/var
удалите каталог и создайте новую пустую точку монтирования:mv /mnt/var_old/var /mnt/var_old/var.old mkdir /mnt/var_old/var
Отредактируйте fstab. Настроить
/etc/fstab
так что файловая система на новом диске монтируется на/var
, Учитывая вышеупомянутые узлы устройства, добавьте запись, такую как следующее к/mnt/var_old/etc/fstab
:/dev/vdc1 /var ext4 defaults 1 2
Перезагрузка Тип
exit
в командной строке и выберите перезагрузить виртуальную машину. Затем загрузитесь в вашу обычную установку ОС, а не на минимальный CD.
Если все прошло хорошо, то ваш старый /var
данные будут присутствовать в /var.old
а также /var
будет содержать все эти данные и будет готов к использованию. Вы можете, если хотите, удалить /var.old
после нескольких дней нормальной работы.
Мне очень нравится ответ pdp, но с LVM на Centos 7 я хотел бы добавить эти шаги для тех из нас, кто не знает:
Загрузите спасательный носитель. Побег в раковину.
Сканирование для групп томов:lvm vgscan -v
Активируйте все группы томов:lvm vgchange -a y
Список логических томов:lvm lvs –all
С этой информацией и активированными томами вы сможете смонтировать тома:mount /dev/volumegroup/logicalvolume /mountpoint
Это копия инструкции на http://jim-zimmerman.com/?p=587
И будьте осторожны с тем, как rsync создает свои целевые каталоги. Копирование / old / var в / new / var создало / new / var / var, что доставило мне небольшую головную боль, так как мне пришлось реструктурировать мой новый var, чтобы CentOS был счастлив:)
Смонтировать новый раздел под /mnt
и после этого rsync --progress /var /mnt
и когда это уже сделано, umount /mnt
и отредактируйте свой /etc/fstab
где новый раздел var и reboot
Ответ ДА!
Скорее всего, моя мотивация отличается от вашей - я переезжаю, записывает свои системные диски как можно лучше, чтобы продлить срок службы твердотельных накопителей, на которых они живут.
Для этого я просто подготавливаю среду, создавая структуру диска на любых других дисках - будь то жесткие диски или другие твердотельные накопители - и перемещая данные, а затем загружаюсь в, ммм, режим восстановления / режим восстановления - независимо от того, что ваша версия требует от вас - тогда используйте
rsync
чтобы уравнять дисковое пространство, выполните
mv /var /var.old
(на всякий случай), а затем выполните
ln -s
в новое место и загрузитесь. Готово!
Если что-то пойдет не так, легко исправить это еще раз...