文章
服务器与存储管理
作者:Alexandre Borges
2014 年 6 月发布
第 1 部分 — 使用 COMSTAR 和 ZFS 配置虚拟化存储环境
第 2 部分 — 使用交换监视和使用 ZFS 卷扩大交换空间
第 3 部分 — 使用 ZFS 影子迁移
第 4 部分 — 将 ZFS 数据集委托给非全局区域
第 5 部分 — 使用 ZFS 加密
第 6 部分 — 使用 ZFS 快照
假设我们有一些数据在运行 Oracle Solaris 11 的旧服务器上,我们需要将这些数据迁移到运行 Oracle Solaris 11.1 的新服务器。这是应用 Oracle Solaris 11 新特性“影子迁移”的典型案例。影子迁移还可用于从运行 Oracle Solaris 10 各版本的系统迁移数据。
|
使用影子迁移很容易;例如,我们可以通过 NFS 甚至本地文件系统迁移共享的 ZFS、UFS 或 VxFS (Symantec) 文件系统。
为了模拟使用影子迁移在两个系统之间迁移数据的例子,我们将使用两个在 Oracle VM Virtual Box 提供的虚拟环境中安装了 Oracle Solaris 11(solaris11-1 和 solaris11-2)的虚拟机。此外,我们将在 solaris11-2 主机中共享一个文件系统 (/solaris11-2-pool/migrated-filesystem) 并将此文件系统中的数据迁移到 solaris11-1 主机。
此过程的第一步是安装 shadow-migration 软件包:
root@solaris11-1:~# 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) SPEED
Completed 1/1 14/14 0.2/0.2 126k/s
PHASE ITEMS
Installing new actions 39/39
Updating package state database Done
Updating image state Done
Creating fast lookup database Done
可以看出,影子服务最初是停止的:
root@solaris11-1:~# svcs -a | grep shadow disabled 18:22:13 svc:/system/filesystem/shadowd:default
因此必须启动该服务:
root@solaris11-1:~# svcadm enable svc:/system/filesystem/shadowd:default root@solaris11-1:~# svcs -a | grep shadow online 18:23:17 svc:/system/filesystem/shadowd:default
在第二台计算机(文件系统影射源)上,必须使用 NFS 服务和只读属性 (ro) 共享该文件系统,避免在影射过程中更改其内容:
root@solaris11-2:~/SFHA601# share -F nfs -o ro /solaris11-2-pool/migrated-filesystem root@solaris11-2:~/SFHA601# share IPC$ smb - Remote IPC solaris11-2-pool_migrated-filesystem /solaris11-2-pool/migrated-filesystem nfs sec=sys,ro
使用影子迁移的好处是,当数据迁移开始时,任何访问源文件系统的 NFS 客户端均可自动迁移成访问目标文件系统。
在第一台计算机 (solaris11-1) 上,我们可以运行以下命令确认 solaris11-2 正在通过 NFS 提供文件系统:
root@solaris11-1:/# dfshares solaris11-2 RESOURCE SERVER ACCESS TRANSPORT solaris11-2:/solaris11-2-pool/migrated-filesystem solaris11-2 - -
现在可以创建一个名为 rpool/shadow_test 的文件系统,然后将 ZFS 文件系统从第二台计算机 (solaris11-2) 影射到第一台计算机 (solaris11-1):
root@solaris11-1:/rpool# zfs create -o shadow=nfs://solaris11-2/solaris11-2-pool/migrated-filesystem rpool/shadow_test
此过程可能很慢。之后应执行 shadowstat 命令:
root@solaris11-1:/rpool# shadowstat
EST
BYTES BYTES ELAPSED
DATASET XFRD LEFT ERRORS TIME
rpool/shadow_test 4.73M - - 00:00:04
rpool/shadow_test 46.0M - - 00:00:14
rpool/shadow_test 52.7M - - 00:00:24
rpool/shadow_test 55.1M - - 00:00:34
rpool/shadow_test 57.5M - - 00:00:44
rpool/shadow_test 58.1M - - 00:00:54
rpool/shadow_test 59.6M 128M - 00:01:04
rpool/shadow_test 62.8M 224M - 00:01:14
rpool/shadow_test 89.0M 187M - 00:01:24
rpool/shadow_test 92.7M 360M - 00:01:34
rpool/shadow_test 120M 168M - 00:01:44
rpool/shadow_test 163M 8E - 00:01:54
rpool/shadow_test 178M 8E - 00:02:04
rpool/shadow_test 178M 8E - 00:02:14
rpool/shadow_test 178M 8E - 00:02:24
rpool/shadow_test 178M 8E - 00:02:34
No migrations in progress
我们可以运行以下命令来验证迁移是否完成:
root@solaris11-1:/rpool# zfs get -r shadow rpool/shadow_test NAME PROPERTY VALUE SOURCE rpool/shadow_test shadow none -
好极了!一切按部就班。
也可以使用两个 ZFS 文件系统完成此过程。例如,可以创建一个名为 rpool/filesystem_source 的新文件系统,并将一个包含许多文件的目录复制到该系统:
root@solaris11-1:~# cp -r NetBackup_7.5_Solaris_x86/ /rpool/filesystem_source/
root@solaris11-1:~# zfs set readonly=on rpool/filesystem_source
root@solaris11-1:~# zfs create -o shadow=file:///rpool/filesystem_source rpool/filesystem_target
root@solaris11-1:~# shadowstat
EST
BYTES BYTES ELAPSED
DATASET XFRD LEFT ERRORS TIME
rpool/filesystem_target 107K - - 00:00:04
rpool/filesystem_target 51.2M - - 00:00:14
rpool/filesystem_target 114M - - 00:00:24
rpool/filesystem_target 114M - - 00:00:34
rpool/filesystem_target 114M - - 00:00:44
rpool/filesystem_target 114M - - 00:00:54
rpool/filesystem_target 114M 8E - 00:01:04
rpool/filesystem_target 114M 8E - 00:01:14
rpool/filesystem_target 114M 8E - 00:01:24
rpool/filesystem_target 672M 8E - 00:01:34
rpool/filesystem_target 672M 8E - 00:01:44
rpool/filesystem_target 672M 8E - 00:01:54
rpool/filesystem_target 672M 8E - 00:02:04
rpool/filesystem_target 672M 8E - 00:02:14
rpool/filesystem_target 672M 8E - 00:02:24
rpool/filesystem_target 672M 8E - 00:02:34
No migrations in progress
哇!!!我们重复了此过程,但使用适当的语法在两个本地 ZFS 文件系统之间进行影射。同样,可以确认影射操作已经完成。
以下是我撰写的其他一些文章的链接:
以下是有关 Oracle Solaris 11 的一些资源:
Alexandre Borges 是一位 Oracle ACE,曾于 2001 至 2010 年任职于 Sun Microsystems,并担任签约讲师,主要负责讲授 Oracle Solaris、Oracle Solaris Cluster、Oracle Solaris 安全性、Java EE、Sun 硬件和 MySQL 课程。目前,他为 Symantec、Oracle 合作伙伴、Hitachi 和 EC-Council 提供课程教学,并且讲授一些关于信息安全的非常专业的课程。此外,他还是 Linux Magazine Brazil 的特约撰稿人和专栏作家。
| 修订版 1.0,2014 年 4 月 9 日 |