文章
服务器与存储管理
作者:Dominic Kay
2012 年 10 月发布
随着 Oracle Solaris 11 的问世,默认情况下,所有数据均存储在 ZFS 文件系统中。ZFS 也支持其他大部分 Oracle Solaris 11 功能,如引导、根文件系统、升级和更新。
|
从数据管理的角度看,可针对迁移数据至 ZFS 提出强有力的证据,尤其是在云中所需的数据管理的可扩展性和易用性以及大量可用的免费数据服务方面,如加密、压缩、重复数据删除、快照和远程复制。这些服务以及一定规模的 Oracle Solaris 11 高可用性和性能,是在该平台上进行整合的强烈诱因。
虽然 UFS 文件系统在 Oracle Solaris 11(作为根文件系统)中仍可用,但 ZFS 却是首选的存储机制,相比于 UFS,能够提供更高的可靠性和更强大的功能。
影子迁移使您能将数据从旧文件系统迁移到 ZFS 文件系统,同时在此过程中允许访问和修改数据。您可以使用影子迁移将本地或远程文件系统迁移到本地文件系统。具体而言,可以从 Oracle Solaris 11 主机上直接挂载的任意文件系统(UFS、ZFS、VxFS 等)迁移数据,也可以从可设为“只读”并能通过 NFS 挂载到 Oracle Solaris 11 主机上的任意远程文件系统迁移数据。这可延伸到 NetApp 等文件管理系统以及 AIX、HP-UX 和 Linux 等操作系统。
影子迁移的使用案例不仅仅是将数据移至 Oracle Solaris 11。当您要启用 ZFS 服务 — 如压缩、重复数据删除和加密 — 而需要进行数据转换时,在服务器的现有文件系统与新文件系统(随后重新命名)之间进行影子迁移可能是实现数据转换的最佳方法。
以下是影子迁移的主要设计要求:
下面快速演示影子迁移,您可以自行尝试。本示例从本地文件系统迁移数据。但是,原理同样适用于挂载在 NFS 上的远程文件系统。管理手册中提供了远程文件系统的语法(请参见“另请参见”部分)。
首先,创建要迁移的文件系统
root@solaris:~# zpool create oldstuff c3t4d0 root@solaris:~# zfs create oldstuff/forgotten
然后,填充一些文件:
root@solaris:~# cd /var/adm root@solaris:/var/adm# find . -print | cpio -pdv /oldstuff/forgotten
需要安装 shadow-migration 软件包,如清单 1 所示:
root@solaris:~# pkg install shadow-migration
Packages to install: 1
Create boot environment: No
Create backup boot environment: No
Services to change: 1
DOWNLOAD PKGS FILES XFER (MB)
Completed 1/1 14/14 0.2/0.2
PHASE ACTIONS
Install Phase 39/39
PHASE ITEMS
Package State Update Phase 1/1
Image State Update Phase 2/2
清单 1. 安装 shadow-migration 软件包
然后,启用 shadowd 服务:
root@solaris:~# svcadm enable shadowd root@solaris:~# svcs shadowd STATE STIME FMRI online 7:16:09 svc:/system/filesystem/shadowd:default
将要迁移的文件系统设为只读:
root@solaris:~# zfs set readonly=on oldstuff/forgotten
创建一个新的 ZFS 文件系统,将 shadow 属性设为要迁移的文件系统:
root@solaris:~# zfs create -o shadow=file:///oldstuff/forgotten mypool/remembered
用 shadowstat (1M) 命令查看迁移进度,如清单 2 所示:
root@solaris:~# shadowstat
EST
BYTES BYTES ELAPSED
DATASET XFRD LEFT ERRORS TIME
mypool/remembered 92.5M - - 00:00:59
mypool/remembered 99.1M 302M - 00:01:09
mypool/remembered 109M 260M - 00:01:19
mypool/remembered 133M 304M - 00:01:29
mypool/remembered 149M 339M - 00:01:39
mypool/remembered 156M 86.4M - 00:01:49
mypool/remembered 156M 8E - (completed)
清单 2. 查看迁移进度
如上所述,如果您已创建 /mypool/remembered 并加密,这将是对现有数据进行加密的首选方法。现有数据的压缩或重复数据删除也是如此。
生产数据的迁移需要在实时迁移之前进行备份和全面的测试。特别要注意以下事项:
影子迁移特性的性能取决于以下各项:
影子迁移的设计目标是弱化转换性能对客户端的重要性,重要的是客户端能继续快速访问所需的数据。但是,如果旧媒体和新媒体之间的转换的原始性能本身很重要,您可能不想使用影子迁移,因为它被设计为无缝且“不可见”,但本身不快。
Eric Schrock 在博客中介绍了影子迁移的动机和设计以及工程内部机制。影子迁移的正规处理方法包含在 Oracle Solaris 管理:ZFS 文件系统 手册中。
下面是其他一些资源:
Dominic Kay 是 Oracle Solaris 的首席产品经理,专注于 Oracle Solaris 数据管理技术。Dominic 于 2010 年随着 Oracle 收购 Sun Microsystems 而加入 Oracle。
| 修订版 1.0,2012 年 10 月 22 日 |