一、前言:

这个使用的是Oracle Solaris Live Upgrade工具。此工具具有以下功能:

■ 将UFS 根文件系统迁移到ZFS 根文件系统时,必须使用-p 选项指定现有ZFS 存储池。
■ 如果UFS 根文件系统在不同的片上具有组件,则会将这些组件迁移到ZFS 根池。
■ 可以迁移具有区域的系统,但在Solaris 10 10/08 发行版中支持的配置有限。

■ 在同一池中创建新的ZFS BE 时,Oracle Solaris Live Upgrade 可以使用ZFS 快照和克隆功能。

迁移的基本过程如下:

■ 在任何基于SPARC 或基于x86 的受支持系统上,安装Solaris 10 10/08、Solaris 105/09、Solaris 10 10/09 或Solaris 10 9/10 发行版,或者使用标准升级程序从先前的Solaris 10 发行版进行升级。
■ 运行最低Solaris 10 10/08 发行版时,为ZFS 根文件系统创建ZFS 存储池。
■ 使用Oracle Solaris Live Upgrade 将UFS 根文件系统迁移到ZFS 根文件系统。
■ 使用luactivate 命令激活ZFS BE。

迁移之前的注意事项:

■ Oracle Solaris 安装程序GUI 的标准升级选项不可用于从UFS 迁移到ZFS 根文件系统。要从UFS 文件系统迁移,必须使用Oracle Solaris Live Upgrade工具。
■ 在进行Oracle Solaris Live Upgrade 操作之前,必须创建将用于引导的ZFS 存储池。创建新池之前,必须使用片而不是整个磁盘创建ZFS 存储池,并且确保要用于池中的磁盘具有SMI (VTOC) 标签而不是EFI 标签,才能使ZFS 存储池可升级和可引导。如果使用的是EFI,在使用lucreate命令的时候会报错的。

■ 不能使用Oracle Solaris Live Upgrade 从ZFS BE 创建UFS BE。如果将UFS BE 迁移到ZFS BE,并且保留UFS BE,则可以从UFS BE 或ZFS BE 引导。
■ 请勿使用zfs rename 命令重命名ZFS BE,因为Oracle Solaris Live Upgrade 功能无法检测名称更改。后续命令(如ludelete)将会失败。实际上,如果有要继续使用的现有BE,则请勿重命名ZFS 池或文件系统。
■ 创建备用BE(主BE 的克隆)时,不能使用-f、-x、-y、-Y 和-z 选项从主BE 中包括或排除文件。在以下情况下,您仍可以使用包括和排除选项设置:
■ 虽然可以使用Oracle Solaris Live Upgrade 将UFS 根文件系统升级到ZFS 根文件系统,但不能使用Oracle Solaris Live Upgrade 升级非根或共享文件系统。
■ 不能使用lu 命令创建或迁移ZFS 根文件系统。

二、迁移过程:

1、查看当前文件系统的状态:

迁移solaris ufs根文件系统至zfs根文件系统_第1张图片

2、添加新硬盘并分区:

迁移solaris ufs根文件系统至zfs根文件系统_第2张图片

这里的c1t1d0是新添加的,用于创建zfs池。

迁移solaris ufs根文件系统至zfs根文件系统_第3张图片

3、创建zfs池rpool:

迁移solaris ufs根文件系统至zfs根文件系统_第4张图片

4、使用lucreate创建新的引导环境:

迁移solaris ufs根文件系统至zfs根文件系统_第5张图片

-c:如果系统之前没有创建引导环境,则指定一个主引导环境,其名称为ufsBE。

-n:新的引导环境名称。

-p:zfs池名称。

这个过程根据系统环境过程可能比较长,耐心等待吧。

5、查看BE状态:

迁移solaris ufs根文件系统至zfs根文件系统_第6张图片

处于激活状态的是ufsBE,并且可以引导。而zfsBE还未激活,所以状态是no并且可删除。

6、查看zfs组件:

迁移solaris ufs根文件系统至zfs根文件系统_第7张图片

这里的dump使用系统推荐的大小即可。

7、激活zfsBE:

迁移solaris ufs根文件系统至zfs根文件系统_第8张图片

迁移solaris ufs根文件系统至zfs根文件系统_第9张图片

上面提到了两点:

(1)、在此状况下只能使用shutdown或者init命令重启系统,否则系统是不能使用zfsBE引导的。

(2)、如果系统系统失败了,则可以使用上述屏幕输出的5条命令激活ufsBE,从ufsBE引导系统。

8、将系统重新引导至ZFS BE:

迁移solaris ufs根文件系统至zfs根文件系统_第10张图片

此过程会更新grub的menu.lst文件。

迁移solaris ufs根文件系统至zfs根文件系统_第11张图片

在引导的grub界面会多出上图中的zfsBE两行,此刻系统默认的引导环境是zfsBE。

9、系统起来后查看ZFS BE 是否处于活动状态:

迁移solaris ufs根文件系统至zfs根文件系统_第12张图片

这里的ufsBE可以删除掉了。

文件系统状态:

迁移solaris ufs根文件系统至zfs根文件系统_第13张图片

zfs池状态:

迁移solaris ufs根文件系统至zfs根文件系统_第14张图片

三、切换回ufsBE:

1、查看zfsBE是否处于激活状态:

迁移solaris ufs根文件系统至zfs根文件系统_第15张图片

2、执行luactive命令,激活ufsBE:

迁移solaris ufs根文件系统至zfs根文件系统_第16张图片

迁移solaris ufs根文件系统至zfs根文件系统_第17张图片

3、执行init 6重启系统:

迁移solaris ufs根文件系统至zfs根文件系统_第18张图片

迁移solaris ufs根文件系统至zfs根文件系统_第19张图片

迁移solaris ufs根文件系统至zfs根文件系统_第20张图片

4、系统起来后检查是否正常:

迁移solaris ufs根文件系统至zfs根文件系统_第21张图片

迁移solaris ufs根文件系统至zfs根文件系统_第22张图片

ufsBE已处于激活状态了。zfsBE可以删除了。

5、删除不需要的BE:

迁移solaris ufs根文件系统至zfs根文件系统_第23张图片

这个由于使用c1t1d0创建了zfs池,而且上面存在一个引导环境,所以报错。不过上面给出了提示,可以使用-f参数强制删除zfsBE。

迁移solaris ufs根文件系统至zfs根文件系统_第24张图片

完了之后重启下,是否存在问题:

迁移solaris ufs根文件系统至zfs根文件系统_第25张图片

四、补充:

使用lucreate命令的时候,它会将需要的文件放在/etc/lu下面,具体内容如下图所示:

迁移solaris ufs根文件系统至zfs根文件系统_第26张图片

其中GRUB_backup_menu是未执行lucreate命令之前的引导文件menu.lst,内容如图所示:

迁移solaris ufs根文件系统至zfs根文件系统_第27张图片

GRUB_backup_menu.prev是执行完lucreate命令之后的引导文件menu.lst,内容如图所示:

迁移solaris ufs根文件系统至zfs根文件系统_第28张图片

其他的一些文件,有兴趣的朋友可以研究下。