Для начала закажем тестовую VPS OpenVZ и KVM https://www.ukrnames.com/hosting/vps/ и https://www.ukrnames.com/vds/
Поставим на VPS(OpenVZ) бесплатную панель VestaCP, чтобы убедиться в правильности переноса файлов.
Ставим VestaCP:
wget http://vestacp.com/pub/vst-install.shbash vst-install.sh
Получили ошибку:
Following packages are already installed:httpd bind-9
Удаляем данные пакеты:
yum remove httpd httpd-tools bind bind-libs -y либо yum remove httpd* bind* -y
Проверим, что еще может помешать установке панели VestaCP (ssh удалять не нужно):
netstat -nlp tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 529/sendmail
Удаляем sendmail:
yum remove sendmail -y
Устанавливаем панель:
bash vst-install-rhel.sh -f (файл называется теперь не vst-install.sh, а vst-install-rhel.sh, потому как скрипт установки определил ОС как Centos и скачал с сайта VestaCP нужный файл установки панели, а именно vst-install-rhel.sh )
И вновь ошибка:
chown: cannot access `/etc/dovecot’: No such file or directoryAdding user dovecot to group mailError: dovecot start failed
Редактируем скрипт установки vst-install-rhel.sh строка 734, заменяем содержимое # Dovecot configuration на:
# Dovecot configuration
if [ “$release” -eq ‘5’ ]; then
wget $CHOST/$VERSION/dovecot.conf -O /etc/dovecot.conf
else
wget $CHOST/$VERSION/dovecot.tar.gz -O /etc/dovecot.tar.gz
cd /etc/
#rm -rf dovecot
tar -xzf dovecot.tar.gz
rm -f dovecot.tar.gz
mv -y /etc/dovecot.conf /etc/dovecot/dovecot.conf
echo “log_path = /var/log/dovecot.log” >> /etc/dovecot/dovecot.conf
chown -R root:root /etc/dovecot
fi
gpasswd -a dovecot mail
chkconfig dovecot on
service dovecot start
if [ “$?” -ne 0 ]; then
echo “Error: dovecot start failed”
exit 1
fi
Устанавливаем панель:
bash vst-install-rhel.sh-f
Данные ошибки были актуальны на момент написания статьи, возможно в данный период времени установка VestaCP уже происходит нормально!
Теперь переходим непосредственно к переносу с VPS(OpenVZ IP A.B.C.D VestaCP: https://A.B.C.D:8083 ) на VDS(KVM IP W.X.Y.Z )
Заходим по SSH на W.X.Y.Z и выполняем команды:
#: echo “/tmp
/boot
/lib/modules
/etc/blkid
/etc/mtab
/etc/fstab
/etc/udev
/etc/inittab
/etc/sysconfig/network
/etc/sysconfig/network-scripts
/etc/sysctl.conf
/etc/sysctl.d
/etc/rc.sysinit
/usr/lib/sysctl.d ” > /root/list.txt – в данном файле будут находиться файлы и директории, которые не будут перенесены с другого сервера.
С помощью утилиты rsync (если ее нет, то выполняем yum install rsync) выполняем перенос файлов с сервера OpenVZ на сервер KVM:
rsync -avz -H -X –one-file-system –numeric-ids –exclude-from=/root/list.txt -e ssh root@A.B.C.D:/ /
После завершения переноса, заменяем во всех файлах сервера IP с A.B.C.D на W.X.Y.Z:
find / -type f -exec sed -i -r ‘s/A.B.C.D/W.X.Y.Z/g’ {} \;
После замены IP адресов, хоть мы и указывали в файле /root/list.txt директорию /etc/udev , сбросим все данные о сетевых интерфейсах, чтобы после перезагрузки сеть поднялась нормально:
echo “” > /etc/udev/rules.d/70-persistent-net.rules
reboot – перезагружаем сервер
После перезагрузки проверяем все службы сервера (netstat -nlp), все работает, теперь ссылка на VetsaCP активна и для IP адреса W.X.Y.Z (https://W.X.Y.Z:8083).
После переноса все же возникла проблема с паролем к пользователю VestaCP. Решилось это с помощью данных команд:
yum reinstall sudo
passwd admin
v-change-user-password admin *******
На этом все, перенос с OpenVZ на KVM окончен.
Но все же хочу отметить, что лучшим вариантом переноса будет – перенос между нодами, на которых размещены данные VPS/VDS, при этом данные виртуальные сервера OpenVZ и KVM должны быть выключены, т.к. при активном переносе, который указан в данной статье, есть вероятность того, что возникнет много ошибок.