我订购了一台更快的 Hetzner 根服务器,将我的 XEN 机器以及所有卷组、lvm 卷和虚拟机移至那里。
我已经开始在那里创建相同的 xen 虚拟机,复制配置文件和用户数据并安装与旧虚拟机中相同的软件包,但那就是很多工作。
有没有一种简单的方法可以真正实现复制 一切在基本根级别上,包括raid 1 上的所有分区,这样我就可以获得旧服务器的精确副本?
然后我只需要从根控制台调整 IP 就可以了
答案1
xenA:您以前的服务器
xenB:您的新服务器
第 1 步:使用实时 Linux 发行版启动两台服务器(Ubuntu、Fedaora、CentOS)
步骤2:在新服务器中启动 ssh 服务
Step3:在xenA中执行以下命令
dd if=/dev/sdX bs=16M | pv | ssh user@xenB dd of=/dev/sdX
其中 X 表示连接到服务器的本地磁盘。您可以使用“lsblk”命令找到它们。
注:pv用于监控数据。
第四步:修改IP地址以及其他所有更改的参数。
使用这种方法,您无需担心分区、lvm 卷和上面的文件系统。
希望这个方法能解决您的问题。
1. 步骤:通过使用 linux single 更改引导参数:“vga=785splash”,将引导引导至单模式。您可以从下面的链接找到屏幕截图。
- 步骤:在您的主机上以单用户模式启动网络服务,并将确切的块设备传输到另一台机器。
dd if=/dev/sda bs=16M | ssh user@backuphost dd of=backup.img
您可以在下面找到有关压缩的详细信息:
有多种方法可以实现这一目标。
- dd 和 netcat警告:此方法会暴露您在互联网上交易的时间消耗数据。
如果您能够使用单用户或另一个实时映像启动系统,您可以使用 dd 方法来获取服务器的精确副本,必须停止所有服务和虚拟机以确保数据完整性:
- 通过执行以下命令来准备备份主机(如果您正在使用远程备份主机以避免 ssh 超时,请使用 screen 或 tmux 或使用命令来 fork 后台)
nc -l RANDOMPORTNUMBER|bzip2 -d|dd bs=16M of=backup.img
- 在您的虚拟机主机上,您可以执行以下命令以克隆您的确切主机
dd bs=16M if=/dev/sda|bzip2 -c|nc ipaddressofbackuphost RANDOMPORTNUMBER
- 焦油和 ssh我个人更喜欢这种方法,而不是在需要时备份我的远程计算机。此方法不会直接将您的数据公开到公共网络,因为它使用 ssh。
我更喜欢这种方法的另一个原因是,备份将在文件级别完成,不需要备份的空白空间和块设备被排除在外,这样我们可以节省存储和流量。既然你声明你想要一个精确的克隆,我不得不谈论第一种方法。
请不要忘记根据您的发行版和应用程序修改排除的挂载点。您必须考虑是否按存储和流量收费。
cd / # THIS CD IS IMPORTANT THE FOLLOWING LONG COMMAND IS RUN FROM /
tar -cvpzf backup.tar.gz \
--exclude=/backup.tar.gz \
--exclude=/proc \
--exclude=/tmp \
--exclude=/mnt \
--exclude=/dev \
--exclude=/sys \
--exclude=/run \
--exclude=/media \
--exclude=/var/log \
--exclude=/var/cache/apt/archives \
--exclude=/usr/src/linux-headers* \
--exclude=/home/*/.gvfs \
--exclude=/home/*/.cache \
--exclude=/home/*/.local/share/Trash / | ssh <backuphost> "( cat > ssh_backup.tar.gz )"
您可以在这里找到有关该主题的更多详细信息:
- https://help.ubuntu.com/community/BackupYourSystem/TAR#Backup_Over_a_Network
- https://www.ndchost.com/wiki/server-administration/netcat-over-ssh