Migrate Single Disk to RAID5 in QNAP 409 Pro
由于NAS上的硬盘即将告急,又赶上近期硬盘稍有降价。就趁机添置了2块1TB的硬盘,准备添加到NAS上使用。目前的情况是,当硬盘容量超过1TB时,一个好的灾难恢复机制就显得非常重要了。3块硬盘正好组建RAID5,可以容许1块硬盘损坏,但总容量则变为:最小单块容量×(硬盘数-1)。
QNAP 409 Pro号称有Online RAID Migration功能,我的理解就是,所谓Online,就是所有的服务都不需要停止,也不会在此过程中出现中断。然而,QNAP的RAID迁移过程,还是让我受了不少罪的。
Day 1:直接在Web管理界面上选择Single Disk,然后迁移到RAID5。迁移过程开始后,进度基本按照每半小时1%的速度进行着。在将近48小时的时候,未知原因,迁移过程中断。没有错误提示,没有日志,没有数据丢失。
Day 3:经过搜索论坛后,发现有人与我有类似的经历,解决的的方法是关掉所有的后台服务。依此进行,关掉全部AFP、SAMBA、MySQL等服务。仍然是在50%的位置中断。在SSH查看过程时,发现前10%有个mke2fs的进程;从11%到50%,则有一个cp -a的进程。
Day 5:重新启动NAS,确保kill掉所有的无关进程,重新迁移。从11%起,硬盘进入Read Only模式。但在50%时,再次中断。此时却发现_httpd_进程没有了,web管理页面自然也就没有了,重启后仍然没有。
Day 7:准备采取最后的方案,备份数据,然后重新设置服务器。在备份数据的时候,突然想到其他的方案。采用其他的迂回方案。首先remove以前的Single Disk,插入新的2块硬盘。在Web页面(经过换盘重启后不知道什么原因恢复了),创建新的RAID1(镜像)。然后在线插入以前的硬盘,识别后,通过SSH,将全部数据复制到新的Volume里面。接下来重新从Web管理页面将RAID1迁移到RAID5。然而,我却发现,这个迁移过程和之前的过程如出一辙,仍然是将RAID1的一块硬盘,与新硬盘组成一个新的Volume,然后把旧的数据复制进去。再进行迁移。可这次居然再50%之后没有停下来,Web页面能够看到迁移过程,提示剩余600分钟。。在此经过大约8小时,迁移完成,数据也没有丢失。
Single Disk to RAID 5的迁移过程
这个迁移的过程,貌似有些山寨:
- 新增的两块硬盘,组成新的Volume(degraded RAID5),加载点为/share/mdx_tmp(迁移过程的0%到10%)
- 通过cp,直接复制旧数据到新的volume,在此过程中,磁盘属于Read Only模式(迁移过程的11%到50%)
- 将旧的磁盘格式化,合并到新的volume里面
- 通过RAID5的sync,最终实现RAID5
RAID1迁移到RAID5的过程与之类似,因为RAID1两块硬盘互为镜像,所以迁移的过程中,可以直接断开一块硬盘,并执行上面的过程。
从这里看出来,这个迁移过程并不能算是完全的“online”。首先,需要停止所有的网络服务(包括SAMBA,AFP等);其次,即使可以不停止这些服务,迁移过程的11%~50%也是Read Only模式的,并不能实现完整的服务。
这里的经验是:
- 迁移之前,停止所有的服务,并且停止所有有访问硬盘的进程
- 备份,迁移之前备份还是非常重要的
- 大约1TB的数据,迁移的时间大约为72小时。其中创建degraded RAID5大约需要2个小时,复制数据需要48小时,剩下的大约24小时为最后的迁移和sync的过程











Recent Comments