从 Solaris 迁移到 AIX

文件系统管理和工具

现在您作为团队中的 UNIX® 专家已有许多年,并且高层管理在未听取您意见的情况下已决定从 Sun Microsystems 迁移到 IBM。除另谋高就外,您需要做什么呢?您是否能完成到 AIX® 的转换?作为 VERITAS 或 Solaris Volume Manager (SVM) 的备选方案,IBM 能提供什么?在本文中,使用 AIX 提供的文件系统管理和工具可使您的迁移工作更容易。

Ken Milberg (kmilberg@gmail.com), UNIX 顾问、技术作家和网站专家, Future Tech

Ken Milberg 是 techtarget.com 网站的技术作家和网站专家,并且在 searchopensource.com 网站提供 Linux 技术信息和支持。他还是《IBM 系统杂志(开放系统版)》的撰稿人和技术编辑。Ken 拥有马里兰大学计算机和信息科学学士学位以及技术管理硕士学位。他是长岛 POWER-AIX 用户组的创立者和负责人。多年以来,他在大小型企业工作过,并且担任过从 CIO 到高级 AIX 工程师的各种职位。现在,他在 Future Tech 工作,这是一家总部设在长岛的 IBM 业务合作伙伴。Ken 是一名通过 PMI 认证的项目管理专业人员 (PMP),还是一名通过 IBM 认证的高级技术专家(CATE,IBM System p5 2006),并且是通过 Solaris 认证的网络管理员 (SCNA)。您可以通过 kmilberg@gmail.com 与他联系。



2007 年 4 月 29 日

引言

您首先要做的事是转变您的思想。典型的 Solaris 管理员习惯于通过命令行执行其全部任务。尽管几乎所有 Solaris 命令都有与之等效的 AIX® 命令行操作,但是使用命令行也许并不是最佳方法。对于您所熟悉的那些 admintool(在 Solaris 10 中已完全移除),AIX 中与之相当的是系统管理工具(System Management Interface Tool,SMIT)。SMIT(或 Smitty)与 Solaris 管理控制台(Solaris Management Console,SMC)不同,后者是外观非常漂亮的图形工具,旨在以控制台或 X Windows 模式运行。尽管您可以通过外观漂亮的图形用户界面菜单来运行 SMIT,但是大多数情况下使用 ASCII 模式(使用 Smitty)来运行,因为它可以在任意计算机和任意会话中运行。

AIX 使用相当独特的系统:对象数据管理器(Object Data Manager,ODM)来管理设备和配置文件。尽管 Solaris 几乎完全依赖于编辑基于文本的配置文件,但是 AIX 将这些文件存储在 ODM 中。您可以将 ODM 描绘成一个内置于操作系统的数据库系统。当考虑到术语时,您还必须作出重大的调整。作为一名 Solaris 管理员,您对给系统分区、创建副本和运行大量命令为您的逻辑卷进行镜像极为熟悉。在 AIX 中,一个命令也许就能代替几十个 Solaris 命令。

了解系统管理员如何更好地利用他们的时间,而不是把时间浪费在从命令行键入无休止的命令。考虑到本文的目的,当比较镜像时,您需要对 Solaris 卷管理器 (SVM)(以前称为 Solstice DiskSuite)与 AIX 逻辑卷管理器 (LVM) 进行比较。虽然不如 VERITAS 卷管理器(被许多 Sun Microsystems 客户使用,其也可用于 AIX)可靠,但是它与 Solaris 一起免费提供,就这一点而言,它更接近同类比较。实际上您将发现,AIX LVM 更像 VERITAS,但是没有额外的费用和因第三方产生的问题。在本文的后面部分,我将比较 SVM 和 AIX LVM,并探索在这两种环境中进行基本的磁盘镜像会涉及哪些任务。最近,我有机会在 Solaris 10 和 AIX 5.3 两种系统中对磁盘进行镜像,坦白地说,在 Solaris 中需要数小时完成的任务在 AIX 中只需要几分钟。

配置磁盘——Solaris

只要是 Solaris 管理员,您就一定曾花费数小时的时间对磁盘进行分区,这通常使用 format 命令来完成。SVM 的卷由片(磁盘分区)构成。SVM 为您提供管理大量磁盘的能力,同时可以改进数据的可用性。SVM 使用虚拟磁盘 (metadevice) 来管理物理磁盘,从应用程序的角度来看,虚拟磁盘与物理磁盘相同。SVM 将来自 metadevice 的 I/O 请求转换为对与之相关的物理磁盘的请求。每个 metadevice 都是由实际的物理磁盘分区中的片构成的。您可以将来自任意物理磁盘的片添加到任意 metadevice,或者选择不添加。如果您计划将磁盘作为卷使用,请确保对其进行分区。然后,您必须创建您的状态数据库副本。SVM 状态数据库存储有关卷的配置和状态信息,包括热备份磁盘 (hot spares) 和磁盘集。该数据库副本确保状态数据库中的数据始终有效。SVM 将有关卷结构的所有信息都保存在一个称为副本 (replica) 的磁盘区中。AIX 中与之最为类似的是卷组描述符区域(Volume Group Descriptor Area,VGDA)、卷组状态区(Volume Group Status Area,VGSA)和逻辑卷控制块(logical volume control block,LVCB)。

我们首先创建三个状态副本(请参见清单 1)。

清单 1. 创建三个状态副本
# metadb -a -c 2 c1t3d0s1

完成此工作以后,标识可供 SVM 使用的片。在 SPARC 平台上镜像根 (/) 文件系统的步骤与镜像其他文件系统相似;但是,您需要运行 metaroot 命令来替代手动编辑 /etc/vfstab 文件。您还必须记录到备选根设备的路径,这样如果子镜像失败了,系统仍然可以启动。在本文中,我没有深入到格式化磁盘这样的细节,但是勿需赘言,这不是给胆小者准备的。您确实需要花一些时间来考虑您正在做什么,如果您把某些事情搞糟了,就可能会惹来大麻烦。在格式化完成之前,您不能创建镜像。我们假定您已经为磁盘分好了区,而且已经准备好继续下一个步骤。

首先,我们强制创建第一个镜像的卷(请参见清单 2),我将其称为 d1。该卷包含根文件系统。

清单 2. 强制创建第一个镜像的卷
# metainit -f d1 1 1 c0t0d0s0
d1: Concat/Stripe is setup

然后从 c0t1d0s0 创建第二个串联 d2,(请参见清单 3)。

清单 3. 创建第二个串联
# metainit d2 1 1 c0t1d0s0
d2: Concat/Stripe is setup

清单 4 中的命令(使用 -m 标志)使用包含根 (/) 的串联创建一个称为 d0 的单向镜像。

清单 4. 使用 -m 标志创建单向镜像
# metainit d0 -m d1
d0: Mirror is setup

清单 5 中的命令(只有在镜像根时使用)自动修改 /etc/vfstab 和 /etc/system 文件,这允许系统在 SVM 的控制下启动。

清单 5. 在 SVM 的控制下启动系统
# metaroot d0

运行 lockfs 可以确保在重新启动之前不进行任何更改(请参见清单 6)。

清单 6. 运行 lockfs
# lockfs -fa

通过键入 # reboot 重新启动系统。

重新启动以后,您需要发出清单 7 中的命令,将第二个子镜像附加到系统中。这会引起镜像同步,可能要花费一些时间才能完成(与 AIX 中的 mirrorvg 类似)。

清单 7. 附加第二个子镜像
# metattach d0 d2
d0: Submirror d2 is attached

在 Solaris 中,了解片和分区的概念极为重要。对于 AIX,这些概念有完全不同的含义,因为磁盘本身处于 LVM 的完全控制之下。对于 Solaris,您不需要使用 SVM 或 VERITAS。对于 AIX,LVM 始终在后台起作用。从文件系统的观点来看,以上所述就是 Solaris 与 AIX 之间的根本区别。对于 AIX,文件系统管理始终基于逻辑卷之上。在 Solaris 中,对您的磁盘的识别依赖于硬件和可用的驱动程序。用于使磁盘联机的命令包括 devfsadmcfgadm。对于 AIX,如果磁盘处于已定义 (Defined) 状态,那么您需要使用 cfgmgr 和 smitty 来使您的磁盘可用。

配置磁盘——AIX

您如何创建镜像?因为所有的磁盘都已在 LVM 的控制之下,所以您不需要分区或将磁盘定义为受卷管理器管理。您只需要确定第二个磁盘的名称的位置,然后发出一个命令。这就是全部。千真万确!我只是把事情略微简单化了,因为只能选择镜像根磁盘中特定的逻辑卷(如果他们选择这样做),方法是针对每个单独的逻辑卷使用 mklvcopy 命令。在镜像的过程中以及镜像结束后,您还可以使用其他一些命令。

首先,让我们看看在根卷组中有哪些磁盘(请参见清单 8)。

清单 8. 查看根卷组中的磁盘
# lsvg -p rootvg
rootvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk0            active            546         186         00..00..00..77..109

现在让我们看看系统中有多少磁盘(请参见清单 9)。

清单 9. 确认系统中的磁盘数目
# lspv
hdisk0          00cf4f5d02a3c139                    rootvg          active
hdisk1          00cf4f5da1ca9590                    none 
#

您需要将 hdisk1 加入到根卷组(请参见清单 10)。

清单 10. 将 hdisk1 加入到根卷组
# extendvg -f rootvg hdisk1

请确保磁盘处于活动状态(请参见清单 11)。

清单 11. 确保磁盘处于活动状态
# lspv
hdisk0          00cf4f5d02a3c139                    rootvg          active
hdisk1          00cf4f5da1ca9590                    rootvg          active

完成这项操作后,准备运行 mirror 命令。该命令镜像给定卷组中存在的所有逻辑卷(请参见清单 12)。

清单 12. 镜像给定卷组中存在的所有逻辑卷
# /usr/sbin/mirrorvg rootvg hdisk0 hdisk1

0516-1124 mirrorvg: Quorum requirement turned off, reboot system for this
to take effect for rootvg.
0516-1126 mirrorvg: rootvg successfully mirrored, user should perform
bosboot of system to initialize boot records. Then, user must modify
bootlist to include: hdisk0 hdisk1.

最后,在新磁盘上创建根映像,并将它放在 bootlist 中(请参见清单 13)。

清单 13. 在新磁盘上创建根映像
# bosboot -ad /dev/hdisk1

bosboot: Boot image is 25166 512 byte blocks.
bootlist -m normal hdisk0 hdisk1

清单 14 确认所有卷都在根映像中:

清单 14. 确认所有卷都在根映像中
# lsvg -p rootvg
rootvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE DISTRIBUTION
hdisk1            active            546         186         00..00..00..77..109
hdisk0            active            546        186         00..00..00..77..109

任务完成了!

逻辑卷管理器

在 UNIX® 的早期阶段,管理物理磁盘通常是一项艰巨的任务,这是由于对分配实际物理空间的限制而造成的。您必须定义物理分区,并且每个物理分区实际上都具有固定的大小。此外,一个物理磁盘只能拥有八个物理分区,因此用户在安装系统之前,必须为每个分区选择正确的大小。

物理分区的主要限制在于每个分区必须是连续的;这意味着不能跨多个驱动器。为了突破这种限制,开发出了一种管理磁盘分配的新颖而灵活的技术,该技术被称为逻辑卷。以下是逻辑卷的一些优势:

  • 逻辑卷解决了非连续空间问题。
  • 逻辑卷可以跨越多个磁盘。
  • 逻辑卷的容量可以动态增加。
  • 可以重新分配和镜像逻辑卷。

AIX 和 Solaris 提供不同的使用逻辑卷的方法。对于 Solaris,逻辑卷不是即时可用的。您需要确定使用哪个 LVM,以及决定是否使用 SVM 或 VERITAS。而 VERITAS 为 AIX 5L™ 提供 VERITAS Foundation 套件,该工具在 AIX 环境中通常没有使用,因为并不必要。VERITAS 卷管理器 (VxVM) 是一个存储管理子系统,它允许您以逻辑设备(称为卷)的形式管理物理磁盘。有必要重申此产品是第三方软件,您将为它支付可观的费用。

从版本 3 开始,LVM 就已成为 AIX 操作系统的功能之一,并且自动随操作系统安装。表 1 旨在展示 AIX 和 VERITAS 之间的差异,同时对命令进行比较(要查看完整表格,请参见参考资料)。虽然版本号会有所不同,但是概念和命令保持不变。

表 1. LVM 快速参考
任务AIX 5L Version 5Solaris 8/VxVM 3.2
存储结构磁盘由物理分区组成。

物理卷是一个物理磁盘,与磁盘所指事物相同。

卷组由物理卷组成。

卷组被划分为逻辑卷。

文件系统放置在逻辑卷中。


逻辑卷可以扩展,并可以驻留在多个卷上。

磁盘由分区或片组成。


文件系统放在分区中。



子磁盘(与 AIX 物理分区有些相似)由分区或片组成。

丛 (plex)(与 AIX 逻辑分区类似)由子磁盘组成。

卷(与 AIX 逻辑卷类似)由丛组成。VM 磁盘由子磁盘组成。

磁盘组(与 AIX 卷组类似)由 VM 磁盘组成。

在 GUI 环境中运行多个任务smit lvm
wsm
/opt/VRTSvmsa/bin/vmsa
将一个逻辑卷移动到另一个逻辑卷中migratepvvxassist move
创建逻辑卷mklvvxassist make
扩展逻辑卷extendlvvxassist growto
vxassist growby
vxresize(推荐用于文件系统)
移动逻辑卷rmlvvxassist remove
vxedit rm
创建卷组mkvgvxdg init
将磁盘从卷组中移除reducevgvxdg -g dgname rmdisk
将磁盘添加到卷组extendvgvxdiskadd
更改逻辑卷设置chlvvxedite set
显示卷组信息lsvgvxdg list
显示存储的性能统计信息lvmstatvxstat
管理卷chlv
mklv
rmlv
vxvol
将副本添加到现有卷mklvcopyvxassist -g dgname mirror

图 1 演示了物理磁盘与实际逻辑分区之间的关联方式。

图 1. AIX 逻辑卷到物理卷的映射
AIX 逻辑卷到物理卷的映射

文件系统

在这一部分,将比较 Solaris 与 AIX 的文件系统。让我们先看一看 Solaris 提供的不同文件系统。

Solaris

Solaris 的主文件系统是 UNIX 文件系统 (UFS)。UFS 非常成熟,并且对于在 Solaris 上运行的大多数应用程序而言,它都是优先选择的文件系统。它来源于 Berkeley 快速文件系统(可以追溯到 20 世纪 80 年代)。最近对其进行的增强包括增加元数据记录,从而改进可靠性和性能。要在不使用 VERITAS 的情况下镜像和使用 LVM,就必须让这些文件系统受 SVM 控制。最近对 SVM 进行的增强包括支持 Multiterabyte 卷和 Cluster Volume Manager,以及支持在每个物理磁盘上划分数千个分区。

任何有关 Solaris 文件系统的文章如果没有提到 Veritas 就算不上是完整的;VxFS:Veritas 公司推出的一种基于扩展的日志记录 (Extent-based logging) 文件系统。VxFs 比 UFS/SVM 组合更趋近企业就绪文件系统,这一点已被广泛认可,并且 VxFs 的扩展性要好得多。尽管它确实还存在一些问题,但它仍然是非常可靠的 LVM 实现。对于元数据的缓冲,VxFS 允许用户指定元数据(通常写回到磁盘上的日志中)不会被同步写回到磁盘。在此场景中,它存储在内存里。对写入例程的即时确认反馈优化了性能,尽管其中还存在重大的缺陷。问题在于当系统发生崩溃时,数据将会丢失,因为数据保存在内存中。由于 IBM 日志文件系统 (JFS) 和 IBM 增强日志文件系统 (JFS2) 不允许这种缓存,因此这显然是一个值得警觉的可靠性方面的问题。

最后,让我们讨论 Solaris Zettabyte 文件系统 (ZFS),Sun 称之为世界上最好的文件系统。ZFS 能否替代 UFS、SVM 或 VxFs?这要视情况而定。虽然它确实不需要独立的卷管理器,但它仍然无法替代 SVM 或 Veritas 所使用的卷管理器。您不能将它用于您的根卷组。ZFS 事实上提供无限制的数据可伸缩性,并且它是 128 位的文件系统。相对 32 或 64位文件系统而言,它提供超过其近 160 亿倍的容量。也就是说,ZFS 几乎支持任何内容:存储、文件系统、快照、目录条目,等等。它确实是对传统 UNIX 文件系统底层的创新性重新设计。它通过执行端到端校验和来保护数据免遭损坏,并使用简化的管理模型。ZFS 还完全消除了对卷管理器的需求,改为使用池存储,多个文件系统可以共享一个存储池。不幸的是,没有从 UFS/SVM 或 VxFS 转换到 ZFS 的工具。尽管 ZFS 可能代表了未来,但是现在使用它的人并不多,它仍然有很长的路要走。

Solaris 中的每个文件系统都对应于一个片或一个逻辑卷(如果您正在使用 Veritas)。要在以前定义的片上创建文件系统,需要使用 newfs 命令。newfs 命令是 mkfs 程序的前端,该命令在磁盘分区上创建 UFS 文件系统。可以在运行其他命令时使用 growfs 命令来增加文件系统的大小。

AIX

IBM 利用 AIX 3.1 的初始版本推出 JFS2001 年 5 月,IBM 推出了 JFS2。这两种文件类型都将其文件和目录数据链接到 AIX LVM 所使用的存储和检索结构中。JFS2 针对 64 位环境进行了优化。JFS2 的架构支持最多 4 个 PB 的文件系统,但是目前只针对最高 16 TB 容量的文件系统进行了测试。同样,对文件大小的限制是 16 TB。在文件系统中可以创建的索引节点的数目是动态变化的,并且只受到文件系统中剩余空间的限制。JFS2 支持缓冲 I/O、同步 I/O(带 O_SYNC 或 O_DSYNC 标志打开文件)、内核异步 I/O(通过使用 Async I/O 系统调用)、直接 I/O(如果使用 O_DIRECT 打开文件,则是在文件级别上执行;如果在文件系统安装时使用 dio mount 选项,则是在文件系统级别上执行),以及并发 I/O(如果使用 O_CIO打开文件,则是在文件级别上执行;如果在文件系统安装时使用 CIO mount 选项,则是在文件系统级别上执行)。对于 AIX,您可以使用 JFS 或 JFS2,因为它们都链接到 LVM。这两者都是日志式系统,并且不需要第三方文件系统。在 AIX 5L Version 5.1 中,每个文件系统对应一个逻辑卷。要创建日志文件系统,需要使用 smit 快速路径:从命令行输入 smitty crfscrfs。要增加文件系统的大小,除了使用 SMIT 之外,还要使用 chfs 命令。

结束语

在与许多从 Solaris 转换到 AIX 的管理员共事之后,发现的普遍规则是从 Solaris 转换到 AIX 要比反向转换简单得多。作为 Sun 管理员,您应该已非常熟悉命令行工具。您将发现 SMIT 让人耳目一新,并欣赏 AIX 文件系统与 LVM 的集成。要作出的选择和要编辑的文件更少了,因而犯的错误也就更少。这种自由使您成为更主动的系统管理员。希望您迁移成功!

参考资料

学习

获得产品和技术

  • IBM 试用软件:使用 IBM 试用软件开发您的下一个项目,可直接从 developerWorks 下载这些试用软件。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=AIX and UNIX
ArticleID=216286
ArticleTitle=从 Solaris 迁移到 AIX
publish-date=04292007