两个存储卷之间的完全直接双向数据交换?

Mat*_*ino 0 storage

我将如何在两个相同大小的存储设备之间进行 100% 数据交换并保留两个数据分区而不使用第三个设备作为临时缓冲区?

换句话说,我有两个非常大的存储阵列,每个阵列都有两个相同大小的非常大的卷,例如:

驱动器 1:卷 A

驱动器 2:B 卷

我希望来自卷 a 的数据进入卷 b,来自卷 b 的数据进入卷 a。必须保留所有数据。我没有办法获得第三个设备进行临时存储。

我认为理论上可以在位级别进行编程。只要两个卷上都有一些空闲空间(有),该空闲空间就可以用作交换数据的临时存储。最坏的情况是,我可以通过批量复制目录来手动执行此操作。但是,肯定有软件可以在位级别执行此操作吗?

不幸的是,我已经在网上搜寻并发现是空的。我看到的所有软件都会将旧驱动器克隆到新驱动器,但没有直接的双向卷数据交换。

有任何想法吗?

**更新**

只是要清楚 - 我意识到可以手动将数据移动到多个临时位置并使用备份/恢复过程。由于从多个位置和通过多个过程恢复数据所涉及的时间和精力,我正试图避免这样做。没有任何其他数组足够大,可以作为整个数据/文件集的临时位置。

**解决方案**

由于数据集是模块化的,我最终手动来回交换数据。Altap Salamander 文件管理器能够对文件传输进行排队,因此我基本上创建了一个文件传输队列,其大小计算为复制一组文件后每个驱动器上可用的可用空间量。工作起来很有魅力,但与仅使用备用存储阵列来临时容纳整个副本相比太耗时了。如果有自动执行此操作的软件会很酷,但显然这是额外硬件击败软件解决方案的问题之一。

Dav*_*rtz 6

我只想编写一个程序以原始模式打开两个卷并在内存中分配两个大缓冲区。从卷 A 填充一个缓冲区,从卷 B 填充一个缓冲区。然后将从卷 A 读取的缓冲区写入卷 B,反之亦然。重复直到完成交换。

请注意,如果您在此过程中的任何地方被打断,那将会非常难看。

如果你提到你的平台,我可以给你更具体的建议。


use*_*517 5

唯一安全的解决方案是使用额外的硬件。与您的存储供应商讨论雇佣一些东西来帮助您完成工作。以任何其他方式尝试这样做都会以灾难告终,你会回到这里询问如何恢复......