标签: software-raid

ZFS 或 LVM 或 MD 冗余异构存储方案

我遇到了大多数人遇到的相同问题:如何创建可靠的个人存储解决方案,因为:

  1. 硬盘驱动器以惊人的规律发生故障。丢失文件是不可接受的。
  2. 我会不时购买新的硬盘。不可避免地,最佳价格/GB 的大小与上次购买的 HDD 不同。
  3. 2 意味着随着时间的推移,我有一个异构的磁盘集合。我想全部使用它们,故障磁盘通常会被更大的磁盘替换。

  4. 对我来说,数据完整性和可靠性比速度更重要。

因此,在将我的头撞到这个问题上几天之后(并且在我的脑后多年),我提出了以下解决方案。我将描述一个基于本地 linux ZFS 测试过的解决方案,它在 Ubuntu PPA 中可用,但 LVM、MD 和 btrfs 可用于实现相同的目标。为此,我将使用 RAID1(ZFS 镜像 vdevs)。

  1. 给定您的一组驱动器,将它们分成两组磁盘,使每组的容量尽可能接近另一组。
  2. 对较大的磁盘进行分区,以便在另一组中存在与其中一个较小磁盘完全相同大小的分区。
  3. 创建镜像 vdevs,以便每个磁盘在另一个磁盘上都有自己的镜像。

例如,考虑一组新的 2TB 驱动器、一个旧的 750GB 驱动器、2 个旧的 400GB 驱动器和一个旧的 500GB 驱动器。最佳镜像分区有 2TB 的可用空间,如下图所示,其中“:”分隔分区,“|”分隔 分离磁盘:

+------------------------------------------------------------------+
| 2TB (sda1)        : (sda2)       : (sda3)       : (sda4)         |
+------------------------------------------------------------------+--+
| 750 GB (sdb)      | 400 GB (sdc) | 400 GB (sdd) | 500 GB (sde1)  :XX|
+---------------------------------------------------------------------+
Run Code Online (Sandbox Code Playgroud)

创建您的 zpool 作为

zpool create archive mirror /dev/sda1 …
Run Code Online (Sandbox Code Playgroud)

hard-drive zfs software-raid lvm raid-1

10
推荐指数
1
解决办法
3246
查看次数

使用空驱动器进行 mdadm RAID 快速设置?

我正在使用 mdadm 将一些 RAID5 磁盘重新创建为 RAID6。我关心的驱动器上没有数据。

设置 RAID 需要一段时间来设置形状 - 我接受当有数据需要条带化并计算奇偶校验时,但是对于这些驱动器,它们是空的 - 或者至少我希望它们被视为空。

那么有没有一种方法可以跳过奇偶校验计算并告诉 mdadm 只设置超级块并完成,否则,当没有数据可以移动时,它到底花费了这么多时间吗?

md3 : active raid6 sdf3[5] sde3[4] sdd3[3] sdc7[2] sdb3[1] sda3[0]
      1953114112 blocks super 1.2 level 6, 512k chunk, algorithm 2 [6/6] [UUUUUU]
      [>....................]  resync =  1.3% (6790144/488278528) finish=409.3min speed=19604K/sec
Run Code Online (Sandbox Code Playgroud)

请注意,我不是在谈论--assume-clean从包含您知道正确的 RAID 阵列的预先存在的一组磁盘重建阵列的位置。我说的是一个应该被认为是空的数组,而不是被认为是正确的条带化。

因此,为了这个问题,让我们说设备已经预先填充了零。

raid software-raid mdadm

10
推荐指数
1
解决办法
1万
查看次数

降低 Linux 软件 RAID 重建速度?

这听起来可能很愚蠢,但是有没有办法有意降低 Linux 软件 RAID 中的重建速度?(基本上减少所有磁盘的吞吐量,使其不会最大化。)

RAID 本身只是一堆驱动器,通过外部 SATA 连接到运行软件 RAID 的 Slackware 13.37 机器(一切由 控制mdadm)。驱动器不是最高质量的(它是一个预算家庭系统),我只是希望我不会过度推动它们,让我高枕无忧。

也许有一种方法可以暂停取消暂停重建,我可以编写脚本不时发生这种情况?

rebuild software-raid

10
推荐指数
1
解决办法
2万
查看次数

为什么我看到如此低的 SMB 传输吞吐量?

好吧,这个故事比标题暗示的要多一些。

背景和环境:我正在通过 SMB 从较旧的 Ubuntu 服务器复制几个 TB 到较新的 Windows 2012 服务器。(从技术上讲,它是商品硬件,但它们是这里的服务器。)每个人都在千兆局域网上,而较旧的 Ubuntu 机器有一个绑定接口。我相信 Ubuntu 服务器有两个 Rosewill PCI-e 1x 以太网卡,Windows 服务器有一个相当不错的 PCI Intel 以太网卡。

目标计算机(Windows 服务器)正在运行具有超过 4 个 2TB 驱动器的奇偶校验的存储池。它正在运行微软的新 ReFS。源计算机(Ubuntu 服务器)正在运行软件 RAID 镜像。它运行良好 ol' EXT4。

两台服务器通过一个千兆交换机运行。我已经尝试在没有任何改进的情况下打破源 (Ubuntu) 计算机上的绑定。

问题:我可以以合理的速度从其他计算机传输到 Windows 服务器。其他计算机可以毫不费力地保持 50-80MB/s,但从该 Ubuntu 服务器传输最高不超过 20MB/s。20MB/s 的 4+TB 需要很长时间(大约 2.3 天),我想知道我能做些什么来找出瓶颈所在。

症状:两台计算机上的 CPU 都很小,当然也不会太忙。两台计算机上的硬盘驱动器都处于活动状态但没有被淹没,至少在 Ubuntu 服务器上,CPU IOwait 几乎为 0%。

我做了 35 秒的 Wireshark 跟踪(大概足够长以确保所有 ACK 都是针对新数据包的),并注意到有很多我没想到的事情。(1) 从 Windows 到 Ubuntu 的 ACK(和一些 SMB 数据包)没有任何校验和。但是,Wireshark 声称这可能是由于“IP 校验和卸载”所致。好的,我有一张非常漂亮的卡片。我想网卡有可能进行校验和计算。美好的。继续......(2)“TCP ACKed unseen …

networking smb software-raid ubuntu windows-server-2012

10
推荐指数
1
解决办法
3185
查看次数

软件RAID信息实际写在哪里?

就像标题所说的那样,指定正在使用哪些磁盘、什么顺序等的实际信息在哪里?

我在安装 linux 发行版时注意到它正在检测没有 RAID 控制器的 RAID 阵列,这必须表明信息不在操作系统的某个文件中,而是在磁盘的某个地方。我对吗?

另外,第二个问题:如果我使用 2 个磁盘创建软件 RAID0,将该新设备格式化为 ext2,然后获取磁盘并将它们放在不同的盒子中,第二个盒子是否能够看到由 2 个磁盘创建的设备作为 RAID 阵列(md0 或其他东西)并且能够安装它?

linux raid hard-drive software-raid ubuntu

10
推荐指数
1
解决办法
592
查看次数

硬件 RAID 和软件 RAID 之间有什么区别?

我正在构建一个新服务器 (Small Business Server 2008),但我无法让内置 RAID 控制器 (AMD SB700) 工作,并且基本上已经放弃使用 Server 2008。很好。

但我的问题是...... RAID 1 的硬件(例如这个)和软件(Window 的内置驱动器镜像)之间有什么真正的区别吗?

假设驱动器是相同的型号等,仅基于我的猜测/一厢情愿,似乎差异可以忽略不计。

windows raid software-raid

9
推荐指数
2
解决办法
3116
查看次数

磁盘显然正在被系统使用

我刚刚在我的家庭服务器上安装了两个磁盘。我正在尝试格式化然后突袭它们,但我遇到了一个问题,即数小时的谷歌搜索没有解决这个问题。

我得到的错误是:

# mkfs.ext3 /dev/sdb1
  mke2fs 1.39 (29-May-2006)
  /dev/sdb1 is apparently in use by the system; will not make a filesystem here!

# df -h
  Filesystem            Size  Used Avail Use% Mounted on
  /dev/sda1             4.0G  1.9G  2.0G  49% /
  none                  380M     0  380M   0% /dev/shm
  /opt/xensource/packages/iso/XenCenter.iso
                        51M   51M     0 100% /var/xen/xc-install

# mount -t ext3 /dev/sdb1 /mnt/b
  mount: /dev/sdb1 already mounted or /mnt/b busy
Run Code Online (Sandbox Code Playgroud)

我是新手,这让我很受打击。如果我没有先做研究,我不会问。谢谢。

# mount
  /dev/sda1 on / type ext3 (rw)
  none on /proc type proc (rw)
  none on …
Run Code Online (Sandbox Code Playgroud)

mount software-raid

9
推荐指数
1
解决办法
5万
查看次数

新 PC 中的最佳 SATA SSD 配置

我在 SATA SSD 上出售我的下一台 PC,但由于它们的价格与其尺寸不成比例地增长,我想知道对它们(操作系统和程序)来说最好的配置是什么:

  1. 2 个 SSD 使用:
    1. 板载 RAID0
    2. 用于 RAID0 的专用 RAID 控制器
    3. 软件RAID0
  2. 2 或 3 个 SSD 使用上述控制器之一但作为 JBOD
  3. 使用 RAID5 的上述配置之一中的 3 个 SSD
  4. 1 个 SSD 用于操作系统 + 1 个 SSD 用于程序
    1. 上述选项以及 %UserProfile% 也位于单独的驱动器上
  5. 1 个用于操作系统和程序的大型 SSD
  6. 上述选项之一并使用 SATA3 控制器
  7. 我还没有想到的其他事情

操作系统将是 x64 Windows 7(和/或 Ubuntu)。较大的媒体文件(如音频/视频)在未处理时将位于不同的驱动器上。

我计划将新 PC 用于:游戏、转码高清视频 (m2ts)、Web 开发、看电影。

raid windows-7 ssd software-raid raid-0

8
推荐指数
1
解决办法
3119
查看次数

带有活动和备用分区的 Raid1

我的 Ubuntu 系统(10.04 LTS、2.6.32-24-server 以防万一)上的 RAID1 软件 raid 分区遇到以下问题。

我的一个磁盘 (sdb5) 报告了 I/O 错误,因此在阵列中被标记为故障。该阵列随后被一个有源器件降级。因此,我更换了硬盘,克隆了分区表并将所有新分区添加到我的 raid 阵列中。同步所有分区后,结果很好,有 2 个活动设备 - 除了其中一个。然而,之前报告故障磁盘的分区没有将新分区作为活动设备,而是作为备用磁盘:

md3 : active raid1 sdb5[2] sda5[1]
  4881344 blocks [2/1] [_U]
Run Code Online (Sandbox Code Playgroud)

详细的外观显示:

root@server:~# mdadm --detail /dev/md3
[...]
Number   Major   Minor   RaidDevice State
   2       8       21        0      spare rebuilding   /dev/sdb5
   1       8        5        1      active sync   /dev/sda5
Run Code Online (Sandbox Code Playgroud)

那么问题来了:我如何告诉我的raid 将备用磁盘变成活动磁盘?为什么将其添加为备用设备?重新创建或重新组装阵列不是一种选择,因为它是我的根分区。而且我在 Software Raid HOWTO 中找不到有关该主题的任何提示。

任何帮助,将不胜感激。

当前解决方案

我找到了解决问题的方法,但我不确定这是否是解决问题的实际方法。仔细查看我的突袭,我发现 sdb5 始终被列为备用设备:

mdadm --examine /dev/sdb5
[...]
Number   Major   Minor   RaidDevice State
this     2       8       21        2 …
Run Code Online (Sandbox Code Playgroud)

linux raid software-raid mdadm ubuntu

8
推荐指数
1
解决办法
5966
查看次数

我可以使用整个驱动器作为软件团队成员吗?

我可以使用/dev/sda/dev/sdb用于我的 RADI1 配置吗?

还是我首先必须用一个 Linux raid 分区对两者进行分区?

linux raid software-raid mdadm

8
推荐指数
2
解决办法
3701
查看次数