将数据从linux镜像移动到freebsd ZFS

我有一个3年的电脑,4GB RAM Dualcore / Intel,4个热插拔SATA硬盘(每个500GB,2 + 2 LINUX RAID-1configuration – 所以我有2 500GB镜像卷)。 每个卷都有大约60-70%的数据 – 总共600-700GB的数据。

现在,由于某种原因,我想用ZFS将整个系统移动到Freebsd 9.0中

我有另一个1TB的驱动器,所以我想结束与5个驱动器的zpool(根在ZFS上) – 但需要保留来自linux卷的数据。 所以,计划:

  • 将没有zfs的freebsd安装到新的1TB硬盘上(基本安装) – 或者在新的驱动器上创buildext3分区 – 但是我不确定它后来进入fbsd。
  • 启动当前的Linux,挂载1TB的freebsd硬盘(或ext3),并将所有数据从linux复制到新的1TB硬盘
  • 断开驱动器(确定)
  • 在某些RAIDconfiguration中将一个新的freebsd安装到4个500GB的硬盘驱动器中(请参见下面的qst文件)
  • 从ZFS启动新的freebsd
  • 连接1TB驱动器
  • 安装1TB硬盘并将所有数据复制到新的freebsd ZFS中
  • 使zfs快照
  • 最后想用zpool add命令将1TB驱动器添加到zpool中 – 我希望这是可能的和正确的步骤。

这个计划好吗?

肯定会更好的简单备份所有的数据,安装freebsd到5个驱动器,并恢复 – 不幸的是,外部备份驱动器将在下周进来,我不想等待。

  • 任何关于我需要照顾的事情?
  • 最后,configuration4个驱动器ZPOOL并添加另一个(更大)驱动器到池后的“最佳实践”是什么?

Thanx在advace的有用的意见。

Ps:我读过一些其他服务器故障的问题,比如关于FreeBSD上ZFS的build议作为一个NAS盒子? ,但也许有一些点我失踪…

我将从一个警告开始:即使在FreeBSD 9.0中,ZFS仍然是实验性的,所以如果你丢失了所有的数据,你就不能抱怨或者哭泣。 换句话说,请确保您随时都有适用的备份scheme。

首先:你要从Linux转到FreeBSD,所以你要用tar来备份旧系统中的数据。 只要将你的新硬盘安装在/ mnt上,然后把所有的东西都解压。 第二个警告与第一个有关:你把所有的鸡蛋放在一个篮子里。 这不好。 在安装新的操作系统时,您应该有两个单独的位置,用于移动数据。 我会build议购买一个便宜的外部USB驱动器,或从朋友借用一个。 将数据压缩到已格式化为MSDOS的新内部驱动器上,validationtar文件,然后将其解压到外部驱动器上。 使用find,xargs,md5sum和diff来比较外部驱动器上的数据与原始数据:

find olddirectory | xargs md5sum > olddata find newdirectory | xargs md5sum > newdata diff olddata newdata 

你想保留这些md5sum文件之一来检查事情,所以把它放在一个笔式驱动器或pastebin.com什么的。 我知道这是一个漫长的过程,但我必须至less告诉你正确的事情。 当你忽略它们,东西向南时,你就会受到警告。

接下来删除外部驱动器上的所有数据,并将tar文件复制到外部驱动器。 现在md5sum两个tar文件,并确保它们匹配。

现在,在四个驱动器上安装带有ZFS根目录和raidz池的FreeBSD 9.0。 将您的数据解压到新系统上,并根据您之前保存的md5sum文件进行检查。

现在,使用zpool add添加第五个磁盘。 确保从开始到结束阅读zpool(8),并在开始之前了解所有内容。 如果你有Virtualbox,你甚至可能想要在真正做到这一点之前运行一个小的模拟。 您不需要使vbox中的虚拟驱动器与您要使用的虚拟驱动器一样大。 FreeBSD 9.0需要大约4.5G,所以要做一个vbox实例,每个5G的4个硬盘。 在ZFS根configuration中安装FreeBSD 9.0。 然后进入vboxconfiguration并添加一个10GB的第五个磁盘。 将这个新磁盘添加到ZFS池。

如果你在vbox中完成了所有你需要做的事情,那么当你真正做到这一点的时候,你将会做好准备。 另外,vbox允许你拍摄实例的快照,所以如果你犯了一个错误,只要停止实例并返回到快照。