在正在运行的服务器上使用 dd 进行 HHD 克隆

在正在运行的服务器上使用 dd 进行 HHD 克隆

在服务器启动并运行时,是否可以使用 Linux 上的 dd 命令克隆 HDD。服务器正在运行,Apache、MySql、NGINX。我问这个是因为不会停机。

答案1

不,至少在源磁盘/分区正在使用时克隆不可用且不一致。原因是磁盘内容将在dd运行过程中被更改,并且dd不会注意到。最终您将得到一个损坏且不一致的文件系统。

有很多更好的方法来备份正在运行的服务器。

答案2

不是零停机时间,但也许可以接近于零停机时间取决于您的设置和你想克隆什么(请向您的问题添加更多细节,以准确描述您想要实现的目标)。

如果您直接从活动分区复制,您将得到不一致的损坏响应,因为在复制过程中,当前读取点之前和之后都可能发生变化:您将获得该点之后的较新信息,但之前的信息则不会。事实上,服务可能会将更新保存在内存中,但这些更新dd永远不会被看到,因为它们尚未将其写入磁盘。

如果您的系统使用 LVM 来管理文件系统的块设备,并且卷组中有足够的可用空间来创建快照,那么您可以执行以下操作:

  1. 停止所有服务。
  2. 为每个相关文件系统创建 LVM 快照。
  3. 重新启动服务(因此您会有一些停机时间,但只需要停止服务、创建快照(几乎是即时的)并重新启动服务)。
  4. 使用 dd 或其他方法备份快照而不是原始卷。
  5. 完成后删除快照。

当然,通过这种方式,您不会获得在此过程中所做的任何更新,并且只有当您已经配置为使用 LVM 时它才会起作用(转换为那样需要相当长的停机时间)。

相关内容