解释一下QNAP“在线RAID……”是如何实现的!
本帖最后由 zongyongchun 于 2009-5-1 10:44 编辑解释一下QNAP“在线RAID容量扩充”和“在线RAID组态迁移”是如何实现的!
目前已经测试完“在线RAID容量扩充”,“在线RAID组态迁移”稍后补充。
全部技术基于Linux Mdadm,LVM2。 应该有点像网件的x-raid功能吧,比如四个盘位的你用了3个盘位1t的容量做raid5,那么当你要再加一个1t的硬盘的时候,本身已经做了raid5,如果没有这个技术那么就得整个raid重新做过才行,而有这个功能那么就不用他可以把新的硬盘自动加入raid5里面,这样就不用去迁移数据了。 在线RAID容量扩充
RAID容量扩充让您可在保留所有数据、不停机的情况下,一步一步地顺利的进行RAID容量扩充。
在线RAID组态迁移
在线RAID组态迁移让您透过简易步骤,在不停机且保留数据的状态下进行RAID等级迁移。 组态迁移就是把比如raid1换成raid5,而不用重新做raid。 一个简单的概念,厂家咋搞的那么复杂,官方解释也没有一点水平。 是不是堆叠呢?把两个nas合并起来? 概念,我都很清楚的,我是做企业级存储的,这些功能在企业级存储里是很常见的,但我也一直没有深入研究,一直认为这是需要借助 硬件RAID来实现的。我这里问的是“实现”,一个可以在Linux里模拟出来的“技术”。
淘宝的卖家告诉我 Synology、QNAP、Thecus 都是 Soft RAID。
大家也都知道这些NAS产品是Linux做的,X-Raid 我不清楚,但是我想Qnap还不至于为了“实现”这些功能去写新的代码,利用现有的技术应该就可以做到了。但是,这话又说回来,如果真是这样的话,Synology、Thecus 岂不是也可以做到? 哪位可以解释一下QNAP“在线RAID容量扩充”和“在线RAID组态迁移”是如何实现的?
哦,这论坛感觉好冷清啊!
zongyongchun 发表于 2009-4-16 14:42 http://nas1.cn/images/common/back.gif在线RAID的要求是你以前做过RAID了,以后更换硬盘,只要"扩充容量"就行了,你可以到这个http://duangx.cn/819.html(我的博客)里看看. 本帖最后由 老李菜刀 于 2009-4-30 09:48 编辑
在线RAID组态迁移
在线RAID组态迁移让您透过简易步骤,在不停机且保留数据的状态下进行RAID等级迁移。
仔细看了一下qnap raid管理工具那页的说明,在线RAID组态迁移过程中有:所有硬盘数据会清除,是否继续的选项
在线RAID容量扩充之硬盘容量扩充没看到这样的选项,但linux的mdadm确实没这样的功能,我估计也不会保留原有数据,下次等我容量用完后换更大的硬盘试试,不过试之前一定要备份数据,理论上保留原有数据确实不可能 或许是用了网件的专利技术X-raid吧 我自己用旧PC和Linux做了一个4*1.5TB的NAS,Soft-Raid5,已经因为SATA接口或线缆的原因,中断了2次了,也就是需要Recover 2次。
这两天查了一下,mdadm--grow 应该是可以实现在线RAID扩容的,等我用虚拟机测试好了,再贴上来吧。
而且 mdadm --re-add 也比较有意思,值得去研究一下。
感谢楼上两位! 在线RAID的要求是你以前做过RAID了,以后更换硬盘,只要"扩充容量"就行了,你可以到这个http://duangx.cn/819.html(我的博客)里看看.
fttbcm 发表于 2009-4-26 10:07 http://nas1.cn/images/common/back.gif
没有看到你的关于 “容量扩充”的部分啊? mdadm -G 我用过在线扩充整个阵列容量,但在线扩充阵列里的每个硬盘的容量不知道行不行
你说的后面那个命令还没用过
有时间也用vm试试看 本帖最后由 zongyongchun 于 2009-5-1 00:21 编辑
mdadm -G 我用过在线扩充整个阵列容量,但在线扩充阵列里的每个硬盘的容量不知道行不行
你说的后面那个命令还没用过
有时间也用vm试试看
老李菜刀 发表于 2009-4-30 12:36 http://nas1.cn/images/common/back.gif
在线扩充阵列里的每个硬盘的容量?什么意思?
就是挨个换大的硬盘的意思? 本帖最后由 zongyongchun 于 2009-5-1 00:29 编辑
贴一下 QNAP 官网的 关于在线扩容 和 在线RAID模式升级 的介绍:
http://www.qnap.com/cht/pro_features_RLM.asp
下面的实验,模拟上面链接里 250GB*4 RAID5 在线扩充为 1TB*4 RAID5的例子。
在换前3块盘的时候,总容量是没有任何改变的;当更换最后一块盘以后,总容量才改变。
这个例子似乎与X-Raid不同。
http://www.qnap.com/images/products/Application/TS409/AP01_01.jpg 本帖最后由 zongyongchun 于 2009-5-1 00:35 编辑
先不考虑现实中热插拔硬盘的支持部分。
实验完毕,贴一下:
1.创建4个100MB和1个50MB的文件,预备作为虚拟磁盘。
# dd if=/dev/zero of=01.img bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.202768 seconds, 517 MB/s
# dd if=/dev/zero of=02.img bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.833963 seconds, 126 MB/s
# dd if=/dev/zero of=03.img bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.20868 seconds, 502 MB/s
# dd if=/dev/zero of=04.img bs=1M count=100
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.217478 seconds, 482 MB/s
# dd if=/dev/zero of=05.img bs=1M count=50
50+0 records in
50+0 records out
52428800 bytes (52 MB) copied, 0.109192 seconds, 480 MB/s
2.
# losetup /dev/loop0 01.img
# losetup /dev/loop1 02.img
# losetup /dev/loop2 03.img
# losetup /dev/loop3 04.img
# losetup /dev/loop4 05.img
3.用3个100MB和一个50MB的“盘”做一个RAID5,模拟成QNAP上面扩容的第4幅图的场景。这时的RAID大小为3*50MB = 150MB大小的盘。
# mdadm -CR /dev/md0 -l5 -n4 /dev/loop /dev/loop4 --assume-clean (-b internal)(bitmap模式)
mdadm: largest drive (/dev/loop0) exceed size (51136K) by more than 1%
mdadm: array /dev/md0 started.
# cat /proc/mdstat
Personalities :
md0 : active raid5 loop4 loop2 loop1 loop0
153408 blocks level 5, 64k chunk, algorithm 2
unused devices: <none>
# mdadm -D /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Thu Apr 30 21:15:09 2009
Raid Level : raid5
Array Size : 153408 (149.84 MiB 157.09 MB)
Used Dev Size : 51136 (49.95 MiB 52.36 MB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Apr 30 21:15:09 2009
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 8194e2d6:843e2352:c335957f:1051c266
Events : 0.1
Number Major Minor RaidDevice State
0 7 0 0 active sync /dev/loop0
1 7 1 1 active sync /dev/loop1
2 7 2 2 active sync /dev/loop2
3 7 4 3 active sync /dev/loop4
4.模拟换最后一块100MB的盘(即删除50MB,加入100MB的盘)。
# mdadm -f /dev/md0 /dev/loop4
mdadm: set /dev/loop4 faulty in /dev/md0
# mdadm -r /dev/md0 /dev/loop4
mdadm: hot removed /dev/loop4
# mdadm -a /dev/md0 /dev/loop3
mdadm: added /dev/loop3
这时会有同步过程发生,同步完之前是不接受扩容命令的。这时的容量仍是150MB。
# mdadm -D /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Thu Apr 30 21:15:09 2009
Raid Level : raid5
Array Size : 153408 (149.84 MiB 157.09 MB)
Used Dev Size : 51136 (49.95 MiB 52.36 MB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Apr 30 21:16:29 2009
State : clean, degraded, recovering
Active Devices : 3
Working Devices : 4
Failed Devices : 0
Spare Devices : 1
Layout : left-symmetric
Chunk Size : 64K
Rebuild Status : 54% complete
UUID : 8194e2d6:843e2352:c335957f:1051c266
Events : 0.4
Number Major Minor RaidDevice State
0 7 0 0 active sync /dev/loop0
1 7 1 1 active sync /dev/loop1
2 7 2 2 active sync /dev/loop2
4 7 3 3 spare rebuilding /dev/loop3
5.最后一步,扩容成功,300MB。(这里会有一个区别,如果不是bitmap模式,又会有一个同步过程;如果是bitmap模式,完全不需要同步。)(使用bitmap模式,在RAID突然中断,但其中的盘没有损坏,后面又加入阵列时不需要完全同步,只需要增量同步。而bitmap不是默认的,个人觉得应该使用bitmap模式。)
# mdadm -G /dev/md0 -z max
# mdadm -D /dev/md0
/dev/md0:
Version : 00.90.03
Creation Time : Thu Apr 30 21:15:09 2009
Raid Level : raid5
Array Size : 307008 (299.86 MiB 314.38 MB)
Used Dev Size : 102336 (99.95 MiB 104.79 MB)
Raid Devices : 4
Total Devices : 4
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Apr 30 21:17:29 2009
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : left-symmetric
Chunk Size : 64K
UUID : 8194e2d6:843e2352:c335957f:1051c266
Events : 0.8
Number Major Minor RaidDevice State
0 7 0 0 active sync /dev/loop0
1 7 1 1 active sync /dev/loop1
2 7 2 2 active sync /dev/loop2
3 7 3 3 active sync /dev/loop3
逻辑卷、文件系统的在线扩容在这里省略不写。 个人感觉 --re-add 并没有直接的用途,主要取决于是否采用 bitmap 模式,如果采用了bitmap模式,当其中一个盘中断又回到阵列中时,-a 会自动变成 --re-add,增量同步。 好
就是你说的那个意思 9# 老李菜刀
我刚刚做完了RAID组态迁移(RAID1 到 RAID5);
和RAID在线扩容(RAID5 3盘到4盘),数据都完整保存。
功能很好。
至于提示“硬盘数据丢失”,是指你新插入的硬盘。 你可以参考一下这个网址,里面有详细的案例解释,http://www.qnap.com/cn/pro_features_RLM.asp
页:
[1]
2