如何可靠且方便地镜像热插拔硬盘机架中的 2 个驱动器(可能没有 RAID1)?

如何可靠且方便地镜像热插拔硬盘机架中的 2 个驱动器(可能没有 RAID1)?

我有以下情况:

  • 对于 1-2 TB 大小的数据集,需要存储 1 个原件 + 1 个副本
  • 需要使用消费级 SATA 硬盘,1 个为原件,1 个为副本
  • 需要存储50+个这样的数据集
  • 数据集很少被访问/更改,因此驱动器大部分会离线存储在盒子中
  • 当需要访问/更改数据集时,其驱动器将使用热插拔 SATA 硬盘架连接到服务器(例如
  • 服务器需要通过网络共享文件夹、CIFS/SMB 公开驱动器,并且最好运行 Windows

问题:如何以最可靠和最方便的方式维护两个驱动器之间的镜像?

对我来说不起作用的是:

  • 没有硬件 RAID1。控制器中存在单点故障是不可接受的,而且我怀疑任何 RAID 控制器都无法无缝支持我的使用模式。
  • 没有软件 RAID1。据我所知,热插拔是软件 RAID 的一个问题。

答案1

由于“Windows”部分不是必需的,我敢建议使用 ZFS。

它将在 Linux(即使性能还不够出色……)或 FreeBSD 或 IllumOS 上运行

我在家里处理原始照片的工作流程非常相似,我用的是 USB3 记忆棒,但想法是一样的

1)创建镜像zpool

#sudo zpool status zmirrusb
  pool: zmirrusb
  state: ONLINE
  scan: resilvered 18.4M in 8h1m with 0 errors on Sun Jul 28 23:55:06 2013
  config:

    NAME                                                 STATE     READ WRITE CKSUM
    zmirrusb                                             ONLINE       0     0     0
      mirror-0                                           ONLINE       0     0     0
        usb-SanDisk_Cruzer_Fit_4C532000060405101492-0:0  ONLINE       0     0     0
        usb-SanDisk_Cruzer_Fit_4C532000000405100343-0:0  ONLINE       0     0     0

2)将您的数据复制到其中

3)导出池

# zpool export zmirrusb

4)断开存储并将其存储在安全的地方

5)当您需要访问数据时,重新连接存储

6)导入池并挂载文件系统

# zpool import zmirrusb
# zfs mount -a

现在您可以按照自己喜欢的方式导出卷。

Zfs 支持通过 Samba (CIFS) 导出,我自己从未尝试过,但类似这样的内容可以让您了解

7)通过 samba 导出

#zfs list zmirrusb
NAME                             USED  AVAIL  REFER  MOUNTPOINT
zmirrusb                        19.1G  10.2G  5.84G  /zmirrusb
zmirrusb/stuff                   68.2M  10.2G  1.13M  /zmirrusb/stuff

#zfs set sharesmb=on zmirrusb/stuff

8)浏览网络。

请注意,根据您需要的 SMB 共享功能,您可能必须编辑 samba 配置本身,zfs 只会使特定的文件系统可用,但不会处理诸如身份验证和授权等其他事项。

您的要求似乎非常严格,我想您正试图将预算保持在尽可能低的水平,但您是否考虑过使用不需要太多手动工作的不同类型的存储?
对于这种归档目的,基于对象的存储服务似乎是完美的选择,以下是几个示例:

集群文件系统- HA 网络存储,具有开箱即用通过 SMB/NFS 导出的功能。

迅速- 类似 Openstack S3 的服务,可通过 HTTP API 访问(以及数百万个基于 fuse 的项目使其像 FS 一样工作)

或者,如果你真的可以预测数据的使用模式,尝试看看AWS Glacier这非常便宜,但不能让您在需要时立即访问数据,并且需要您在需要访问时重新下载数据。

答案2

通常,热插拔硬盘支架用于偶然维护目的,并不适用于日常使用。

我的建议是使用外部 USB 驱动器。这样可以为磁盘提供额外的保护,并且连接器专为反复拔出和插入而设计。此外,它不依赖于“奇特”的硬件,从而使您的解决方案更具前瞻性。
使用 USB-3,限制因素将是实际磁盘的读写性能,而不是 USB 链接,您应该获得与热插拔 SATA 端口类似的性能。

无论如何,保持两个数据集同步的可靠方法是rsync。将一个磁盘暴露给网络,并将其同步到其备份。

相关内容