2012年7月28日

入手三台6T WD My Book II,折腾两天,彻底搞定定期备份事宜

前一阵子,我们组之前最好的服务器Lavender1的四块硬盘坏掉一块。恰好,我的几乎全部实验数据都在这块盘上。前后耗费两个月时间委托一家非常专业的数据恢复公司来帮我恢复数据,最终结论是这块盘顺坏太严重,无法恢复。为此,数据备份事宜再次在我的平时工作中提高了优先级。

为了解决这个问题,我得到了一块2T的移动硬盘来备份相关数据,但随着最近琢磨新的翻译系统,需要备份的数据超过了2T大小。最终买了三台目前能买到的最大备份硬盘,牌子是WD My Book Studio Edition II,每台都是6T大小。从准备买到拿到这三个盘又花费了一个多月的时间。其中原因主要是因为研究所相关的财务审批和购买流程比较严格。

拿到硬盘后查看说明书,糟糕,这中硬盘居然只支持Windows和Mac,而且默认的磁盘格式居然是Apple的HFS+。我主要的备份目的就是用在Linux上。怎么办?我发现我越发像一个Geek了,网上查了大量的解决方案,折腾了好几种办法后,最终我自己瞎琢磨试验成功了一种方法,哈哈,而且这种方法对于WD My Book II居然没有人弄过。特备份和分享如下:
---------------------------------
将硬盘连到Mac笔记本上,打开磁盘管理工具,将硬盘格式化为exFat。然后就可以直接在Linux、Windows、Mac上都能使用了。
---------------------------------

其实还有一种办法就是在Mac的磁盘管理工具里将硬盘的磁盘日志功能关闭,只是我一直没能成功,意外的发现重新格式化为exFat(Fat32的升级版,支持闪存很好)就可以了。


我的Ubuntu系统有个Bug,就是不能识别超过2T大小的硬盘。再次Geek了一下,网上下载Linux内核源代码修改了一个地方后重新编译Linux内核就可以了,详细log如下
-----------------------------------
sudo apt-get install hfsplus hfsutils hfsprogs
sudo rmmod hfsplus
uname -r         //查出Linux内核的版本
apt-get install linux-headers-2.6.32-41-generic linux-source-2.6.32
sudo apt-get install linux-headers-2.6.32-41-generic linux-source-2.6.32
cd /usr/src/linux-headers-2.6.32-41
sudo mkdir linux-source-2.6.32
mv linux-source-2.6.32.tar.bz2 linux-source-2.6.32
sudo mv linux-source-2.6.32.tar.bz2 linux-source-2.6.32
cd linux-source-2.6.32/
tar xfvp linux-source-2.6.32.tar.bz2 
sudo tar xfvp linux-source-2.6.32.tar.bz2 
cd linux-source-2.6.32/
cd fs/
cd hfsplus/
sudo vi wrapper.c 

        if ((u64)part_start + part_size > 0x100000000ULL) {
                pr_err("hfs: volumes larger than 2TB are not supported yet\n");
                //return -EINVAL;          // 注释掉这行就行了   
        }

cd ../..
kernver=$(uname -r)
kernextraver=$(echo $kernver | sed "s/$kernbase\(.*\)/\1/")
sed -i "s/EXTRAVERSION = .*/EXTRAVERSION = $kernextraver/" Makefile
sudo sed -i "s/EXTRAVERSION = .*/EXTRAVERSION = $kernextraver/" Makefile
sudo cp /usr/src/linux-headers-2.6.32-41-generic/Module.symvers .
sudo cp /boot/config-2.6.32-41-generic .
cd ../cd linux-source-2.6.32/
sudo make oldconfig
sudo make prepare
sudo make modules_prepare
sudo make SUBDIRS=fs/hfsplus/ modules
sudo insmod fs/hfsplus/hfsplus.ko
-----------------------------------


解决上面两个问题后,我的每月定期增量式备份方案如下
先通过sshfs将服务器上的相关文件夹映射到本地台式机上
然后通过pdumpfs实现增量式的备份,这个工具很好用,第一次备份时间较长,随后每次都是将有变化的文件备份一下,以前用这个软件好一年多了,效果贼好的说 :)


哈哈,这下子我的备份方案终于全部搞定。备份与此。