如何将 Windows 2012 RAID 1 阵列迁移到 Linux?

如何将 Windows 2012 RAID 1 阵列迁移到 Linux?

我有一对在 Windows 2012 Server 下创建的 RAID 1 磁盘。操作系统磁盘出现故障,我不再有权访问设置该框时拥有的 Windows 许可密钥(我不再是 MSDN 成员),所以我不能简单地重新安装 Windows 2012。这些磁盘用于存储 MP3、JPG 和其他 Windows 文档,并通过本地网络访问。

我正在考虑在 OS 驱动器上安装 Linux,并希望能够安装镜像驱动器并继续像以前一样使用它们,但我不知道这是否可行,如果可行,该怎么做。我显然不想在此过程中丢失磁盘的内容。

  • 哪一个是最合适的 Linux 操作系统?
  • 我应该使用哪种 RAID 软件?

答案1

正如指出的那样,你可以安装 Windows 并利用试用期来检索您的文件,但如果您无论如何都打算使用 Linux,那么这不是必需的。


我刚刚在虚拟机上安装了 Windows 2012 R2,以执行这些步骤并按照说明进行操作...假设您的镜像是使用动态磁盘而不是存储空间创建的。

我在两个动态磁盘上创建了一个镜像卷,并在该卷上放置了一些文件。快速搜索表示有可能安装这样的卷ldmtool- 但幸运的是它“刚刚起作用“与 Ubuntu 18.04(笔记:没有ldmtool,也没有功能镜像,但您可以访问您的数据)。

我的建议:

安装 Linux

哪一个是最合适的 Linux 操作系统?

我建议新的 Linux 用户使用 Ubuntu - 它的支持非常好,并且有一个庞大的社区……如果你遇到问题,那么你很可能将要找到解决方案。作为“专家“用户,我也主要使用 Ubuntu ——我在大多数情况下都推荐它。

Ubuntu 可以从这里下载- 选择 18.04,因为这是一个 LTS(长期支持)版本。

注意不要改变您尝试重新定位的数据 - 如果您感到不安,请在安装 Ubuntu 时断开数据驱动器与系统的连接。

决定使用什么存储

我应该使用哪种 RAID 软件?

对于保存重要(关键)文件的服务器系统,我强烈推荐现代文件系统,例如 ZFS 或 BTRFS。我之前写过关于 ZFS 的文章- 即使你没有使用任何“先进的“功能,我认为这是一个值得考虑的明智选择。

如果您打算使用 ZFS,那么我建议每 TB 可用存储配备约 1GB 的 RAM...例如:对于 2x 4TB 硬盘的镜像,我建议至少配备 4GB 的 RAM。

你会看到这样的论点“不能使用没有 ECC RAM 的 ZFS“,但这在很大程度上是危言耸听...... ECC RAM 永远不会有害 - 但如果你没有它(例如:成本)那么你最好使用像 ZFS 这样的技术。

替代方案包括使用逻辑卷管理器,但我将继续使用 ZFS 进行指导……

识别磁盘

您需要确定您的数据位于哪些磁盘上。使用lsblk缩小搜索范围... 在这里,我在 上安装了 Ubuntu sda,而sdbsdc是我的“数据“磁盘。您可以看到 已sda1安装在/,而sdb1sdc1尚未安装。

$ lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0    7:0    0  1.6M  1 loop /snap/gnome-calculator/154
loop1    7:1    0  3.3M  1 loop /snap/gnome-system-monitor/36
loop2    7:2    0   21M  1 loop /snap/gnome-logs/25
loop3    7:3    0 86.6M  1 loop /snap/core/4486
loop4    7:4    0  140M  1 loop /snap/gnome-3-26-1604/59
loop5    7:5    0 12.2M  1 loop /snap/gnome-characters/69
sda      8:0    0   10G  0 disk
└─sda1   8:1    0   10G  0 part /
sdb      8:16   0    5G  0 disk
└─sdb1   8:17   0    5G  0 part
sdc      8:32   0    5G  0 disk
└─sdc1   8:33   0    5G  0 part

挂载您的数据盘

现在可以把作为镜像集一部分的 NTFS 分区挂载到临时位置。使用-o ro只读方式挂载它,防止任何意外写入。

$ mkdir /media/old_ntfs
$ mount -o ro /dev/sdc1 /media/old_ntfs

安装和设置 ZFS

ZFS 默认未安装,因此您需要安装它。

$ apt install zfsutils-linux

关于设置 ZFS 的指南有很多,所以我将在这里做一个非常简短的介绍……你可能需要研究ashift选项,对于具有 4k 扇区的磁盘使用值 12 - 我将忽略这一点。

创建一个磁盘池 -tank是池的名称,-f强制其覆盖现有的 NTFS 文件系统(破坏其中一个镜像磁盘上的数据),并且您需要以 root 身份执行此操作(例如sudo:):

$ zpool create -f tank /dev/sdb

zfs status可以查看 ZFS 池的详细信息:

$ zpool status
  pool: tank
 state: ONLINE
  scan: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          sdb       ONLINE       0     0     0

现在zfs list您可以看到您的 ZFS 池安装在/tank

$ zfs list
NAME   USED  AVAIL  REFER  MOUNTPOINT
tank    84K  4.81G    24K  /tank

复制文件

您可能需要更改池的权限,然后使用类似以下工具复制文件rsync

$ chown $(id -u):$(id -g) /tank
$ rsync -av /media/old_ntfs/ /tank/     # trailing slashes are important!

尽力确认文件已被正确复制。

卸载旧 NTFS

从临时位置卸载旧的 NTFS 文件系统,并整理:

$ umount /media/old_ntfs
$ rm -rf /media/old_ntfs

将第二个磁盘添加到 ZPool

现在我们在 ZFS 上有了文件,我们可以添加第二个磁盘使其成为镜像:

$ zpool attach -f tank sdb sdc
$ zpool status
  pool: tank
 state: ONLINE
  scan: resilvered 1.00G in 0h0m with 0 errors on Sun Jun  3 11:20:49 2018
config:

        NAME        STATE     READ WRITE CKSUM
        tank        ONLINE       0     0     0
          mirror-0  ONLINE       0     0     0
            sdb     ONLINE       0     0     0
            sdc     ONLINE       0     0     0

这可能需要花费一些时间。

相关内容