我有一对在 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
,而sdb
和sdc
是我的“数据“磁盘。您可以看到 已sda1
安装在/
,而sdb1
和sdc1
尚未安装。
$ 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
这可能需要花费一些时间。