RAID1 中是否可以增加分区

RAID1 中是否可以增加分区

我正在考虑为家庭构建一个 NAS。它将是一个简单的文件、打印机、rsync 和 bit-torrent 服务器,运行自由网络存储。服务器将有两个 3.5 英寸 SATA 驱动器,我计划使用软件 RAID1 对它们进行镜像。

我有两个问题:

  1. 我应该使用哪种文件系统,默认的 UFS 还是 ZFS?据我从各种博客文章中了解到,ZFS 非常耗内存和 CPU,它能与 VIA C7 配合使用吗?我喜欢 ZFS 快照的想法,但如果要求太高,我可以不用它们。

  2. 我目前有两个驱动器:640GB 和 1TB。如果我在 RAID-1 中使用它们,则总阵列大小将是两个磁盘的最小大小,即 640GB。目前这样还好,但如果一年后我得到一个新的驱动器(比如 1.5TB),会发生什么情况?当我用新的驱动器替换最小的驱动器时,RAID 阵列应该重建,但是否可以将其从 640GB 扩展到新的最小值 - 1TB 而不会丢失数据?

谢谢,抱歉,如果我问的是一些琐碎的问题,我是一名软件人员。

更新:回答第二个问题,这篇博文解释如何在更换其中一个驱动器后扩大 RAID1 分区。

答案1

ZFS 规则,但受到硬件选择的限制(ZFS 稳定性),因为 C7 是 32 位的(维基百科称它们使用 x86 指令集),ZFS 可能不是您想要的解决方案。如果您决定不这样做(它可以保护您免受数据损坏和磁盘故障的影响),那么有一些有用的项目 关于

当我用新的驱动器替换最小的驱动器时,RAID 阵列应该重建,但是是否有可能将其从 640GB 扩展到新的最小值 - 1TB 而不会丢失数据?

应该不是问题(我从未使用过 FreeNAS),使用硬件 RAID 控制器我已经多次这样做了:

  1. 备份所有数据:)
  2. 从阵列中移除较小的磁盘
  3. 插入新磁盘
  4. 使用原始磁盘作为主磁盘重建阵列

或者,如果你想要完全轻松地动态调整数组大小和巨大的冗余度,可以德罗博(新型号明显更好) - 但是你不能将其作为简单的服务器运行。因此,你可以运行超低功耗希瓦普拉格作为服务器(便宜得像薯条) 并将 Drobo 插入其中。这是我推荐的低功耗超可扩展解决方案(仅受当前最大 HDD 容量限制)。

答案2

从 Linux 内核版本 2.6.11 开始,您可以创建可调整大小的 ext3 共享。我最近在 CentOS 5.4 服务器上做了您问的这件事,该服务器有一个使用 300GB 和 500GB 驱动器的 raid1。我想升级镜像,所以我买了一个 1TB 驱动器来替换 300GB 驱动器。

首先,这是我最初使用 300 + 500GB 驱动器创建 raid1 的方式

我通常使用 fdisk 在驱动器上创建单个分区,并将分区类型标记为 fd(linux RAID)。接下来,我使用 mdadm 创建软件 raid1 阵列。

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/hda1 /dev/hdb1

接下来我在 raid1 阵列顶部放置一个 LVM 组(我将其命名为 lvm-raid)。

vgcreate -s 8M lvm-raid /dev/md0

确定卷组有多少可用的物理盘区。您可以使用命令 vgdisplay lvm-raid 并查找“Total PE”行。在我的示例中,它是 59617。有了此信息,我现在可以在卷组 lvm-raid 中创建一个逻辑卷。

lvcreate -l 59617 lvm-raid -n lvm0

最后我把ext3分区放在逻辑卷上。

mkfs.ext3 /dev/lvm-raid/lvm0

...以下是我将 raid1 迁移到 500GB + 1TB 驱动器的方法

我将 1TB 驱动器作为热备用驱动器添加到 raid1,并将其同步为成员。同步后,我失败了,随后移除了 300GB 驱动器。这使我能够将 raid1 阵列升级到 500GB,因为 500GB 驱动器现在是最小的阵列成员。我对这一步的记录缺乏细节,但我认为我做了以下事情:

mdadm --manage --add /dev/md0 /dev/sda1
mdadm --manage /dev/md0 --fail /dev/hda1

...wait for it to sync...
cat /proc/mdstat
...wait for it to sync...
cat /proc/mdstat

...sync is done...

mdadm /dev/md0 -r /dev/hda1

将 raid 扩展到剩余阵列成员的最大大小。在本例中,raid 1 中有一个 500GB 和一个 1TB 的驱动器,因此我们可以将 raid 扩展到 500GB。

mdadm --grow /dev/md0 --size=max

一旦 raid 阵列达到 500GB,我就会运行以下命令来利用 LVM 中可用的额外空间并最终利用实际的 ext3 共享。

首先,我获得了物理卷来利用额外的空间。

pvresize /dev/md0

接下来,我运行命令 pvdisplay /dev/md0 来确定现在有多少个“空闲扩展区”。在我的例子中,它是 23845。因此,我运行此命令将它们吸收到逻辑卷中。

lvextend -l +23845 /dev/lvm-raid/lvm0

最后我运行命令 resize2fs 将额外的空间添加到 ext3 共享中。

resize2fs /dev/lvm-raid/lvm0

resize2fs 运行时的样子如下:

resize2fs 1.39 (29-May-2006)
Filesystem at /dev/lvm-raid/lvm0 is mounted on /export/raid1; on-line resizing
required Performing an on-line resize of /dev/lvm-raid/lvm0 to 122095616 (4k) blocks. 
The filesystem on /dev/lvm-raid/lvm0 is now 122095616 blocks long.

当一切完成后,df 现在显示以下内容:

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/lvm--raid-lvm0
                      459G  256G  180G  59% /export/raid1

相关内容