是否有可能在RAID1中增加分区

我正在考虑为家庭build立一个NAS。 这将是一个简单的文件,打印机,运行FreeNAS的 rsync和bit-torrent服务器。 服务器将有两个3.5“SATA驱动器,我打算使用软件RAID1镜像它们。

我有两个问题:

  1. 我应该使用哪个文件系统,默认的UFS或ZFS? 据我所知,各种博客文章ZFS的内存和CPU都很饿,是否可以与威盛C7兼容? 我喜欢ZFS快照的想法,但如果要求太高,我可以不用他们。

  2. 我目前有两个驱动器:640GB和1TB。 如果我在RAID-1中使用它们,则总arrays大小将是两个磁盘的最小大小,即640GB。 现在就这样好了,但是如果我在一年内得到一个1.5TB的新驱动,会发生什么呢? RAIDarrays应该重build,当我用新的最小的驱动器,但将有可能从640GB增长到新的最低 – 1TB,而不会丢失数据?

谢谢你,如果我提出微不足道的问题,我很抱歉。

更新:为了回答第二个问题, 本博客文章解释了在更换其中一个驱动器后如何增长RAID1分区。

ZFS规则,但受硬件select( ZFS稳定性 )的限制,因为C7是32位(维基百科声明使用x86指令集),ZFS可能不是您寻求的解决scheme。 如果您另有决定(它保护您免受数据损坏和磁盘故障),有一些有用的项目

RAIDarrays应该重build,当我用新的最小的驱动器,但将有可能从640GB增长到新的最低 – 1TB,而不会丢失数据?

不应该是一个问题(我从来没有使用FreeNAS),硬件RAID控制器,我做了很多次:

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

另外,如果你想完全无痛的dynamic调整数组的大小和巨大的冗余,得到一个Drobo (新型号明显更好) – 你不能运行这个作为一个简单的服务器,但是。 所以,你可以运行超低功耗的SheevaPlug作为服务器( 便宜的芯片 ),并插入Drobo。 这是我推荐的低功耗超可扩展解决scheme(仅受当前最大HDD容量的限制)。

从Linux内核版本2.6.11开始,您可以创build可resize的ext3共享。 我最近在一台CentOS 5.4服务器上做了这样的事情,这台服务器有一个使用300GB和500GB硬盘的raid1。 我想升级镜子,所以我买了一个1TB的驱动器来取代300GB的驱动器。

首先这里是我最初创build与300 + 500GB驱动器的raid1

我通常使用fdisk在驱动器上创build一个分区,将分区types标记为fd(linux RAID)。 接下来我使用mdadm创build一个软件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 

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

 lvcreate -l 59617 lvm-raid -n lvm0 

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

 mkfs.ext3 /dev/lvm-raid/lvm0 

…以下是我如何将raid1迁移到500GB + 1TB的驱动器

我把1TB驱动器作为热备份添加到raid1中,并将其作为成员同步。 一旦它同步我失败,然后删除300GB的驱动器。 这使我可以把raid1arrays提高到500GB,因为500GB驱动器现在是最小的arrays成员。 我在这一步的笔记是缺乏细节,但我认为我做了以下几点:

 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 

增加袭击到最大。 其余arrays成员的大小。 在这种情况下,我们在RAID 1中有一个500GB和一个1TB的硬盘,所以我们可以把RAID扩大到500GB。

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

一旦RAIDarrays高达500GB,我运行以下命令,以利用LVM中的额外空间,最终实际的ext3共享。

首先我得到了物理量来利用额外的空间。

 pvresize /dev/md0 

接下来,我运行命令pvdisplay / dev / md0来确定现在有多less“可用扩展盘区”可用。 在我的情况下,这是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