初始化Veritas VM VM软件的初始化由处于VM控制下的至少一个磁盘使用程序vxinstall来完成。这个过程由以下几个阶段:l 自动排除磁盘l 参数选择l 启动盘封装l 初始化选择l 系统重配置
初始化Veritas VM
只有至少一个磁盘处于VM的控制之下,VM软件在系统启动时才能够正确启动。这个初始化由命令:vxinstall来执行。理解这个过程是很重要的,特别是对于软件升级来说。
--------------------------------------------------------------------------------------------------
注意----命令:vxinstall只有在你执行并应用了一个summary之后,才会使得改变生效(summary在这个过程的后期生成)。
--------------------------------------------------------------------------------------------------
封装和初始化
只有当一个包含了至少一个磁盘的磁盘组(disk group)----rootdg被命名后,VM软件才会启动。这是Veritas VM软件的标准功能。你可以两种方式来达到这个要求:
n 封装系统启动磁盘
n 初始化磁盘,并在rootdg磁盘组中进行替代
封装过程
当任何磁盘被VM封装时,已经存在的文件系统将会被保留,并且磁盘上一个小的分区将由VM来使用。如果这个磁盘是系统的启动盘,VM会意识到这一点,并且刻意的保存所有数据。更细节的信息请参阅附录B。
初始化过程
当任何磁盘由VM进行初始化时,磁盘被重新分配一个VM的标准配置。初始化的磁盘只有两个片(slice),slice 3和slice 4。一个slice是非常小的,用来存储VM的配置记录,其它的片包含磁盘剩余。
当一个磁盘由VM进行初始化,所有数据都将丢失。
关于程序vxinstall
程序vxinstall第一次搜索连接在系统上的控制器,然后提示你进行一个安装选择----快速安装(Quick)或定制安装(Custom)。你必须要理解每个选择的含义。
--------------------------------------------------------------------------------------------------
警告----程序vxinstall只运行一次!!如果它运行了多次,VM的启动看上去就会有问题了。如果你在使用vxinstall的过程中忘记了增加一个磁盘,不要再次运行vxinstall,你可以在以后的GUI界面或命令行(CLI)方式来增加它。
--------------------------------------------------------------------------------------------------
排除磁盘和控制器
你可以通过创建文件:/etc/vx/disks.exclude来包含你不想由VM控制的磁盘列表。每个磁盘的入口必须是一个独立的行。你也可以创建一个文件:/etc/vx/cntrls.exclude来排除你不想在安装中使用的控制器。
--------------------------------------------------------------------------------------------------
注意----你不能不包括所有磁盘:在vxinstall的过程中至少增加一个磁盘,任何不包括的磁盘可以在以后通过使用VM的GUI或CLI进行增加。
--------------------------------------------------------------------------------------------------
vxinstall的启动顺序
vxinstall程序扫描系统并试图标识所有磁盘控制器接口。控制器列出了能够包含你的系统启动磁盘和其他已经加载文件系统的磁盘。
初始化过程中,你要仔细处理。在开始之前,你必须理解你的系统硬件配置。
# vxinstall
Generating list of attached controllers....
-/|\-/|\-/|\-/|\-/|\
Volume Manager Installation
Menu: Volume Manager/Install
The Volume Manager names disks on your system using the controller and disk number of the disk, substituting them into the following pattern:
c; t; d;
If the Multipathing driver is installed on the system then for the disk devices with multiple access paths, the controller number represents a multipath pseudo controller number. For example, if a disk has 2 paths from controllers c0 and c1, then the Volume Manager displays only one of them such as c0 to represent both the controllers.
Some examples would be:
c0t0d0 - first controller, first target, first disk
c1t0d0 - second controller, first target, first disk
c1t1d0 - second controller, second target, first disk
The Volume Manager has detected the following controllers on your system:
c0:
c2:
c4:
Hit RETURN to continue.
程序vxinstall 参数选择
在标识了所有有效的磁盘控制器后,vxinstall提示你进行一个安装参数选择:
Volume Manager Installation
Menu: Volume Manager/Install
You will now be asked if you wish to use Quick Installation or Custom Installation. Custom Installation allows you to select how the Volume Manager will handle the installation of each disk attached to your system.
Quick Installation examines each disk attached to your system and attempts to create volumes to cover all disk partitions that might be used for file systems or for other similar purposes.
If you do not wish to use some disks with the Volume Manager, or if you wish to reinitialize some disks, use the Custom Installation option Otherwise, we suggest that you use the Quick Installation option.
Hit RETURN to continue.
Volume Manager Installation Options
Menu: Volume Manager/Install
1 Quick Installation
2 Custom Installation
? Display help about menu
?? Display help about the menuing system
q Exit from menus
Select an operation to perform: 2
快速安装(Quick)是不被推荐的,默认的,封装所有磁盘,包括root磁盘。这个参数包含了以下功能:
u 执行所有连接到系统的磁盘,封装已经存在的分区(在VM下替代这些分区,并维护数据的完整性)或初始化那些不包含分区的磁盘。
u 增加所有磁盘到默认的磁盘组----rootdg
u 更新 /etc/vfstab 来确保预先加载到磁盘分区上的文件系统将由卷来代替加载。
定制安装(Custom)允许进行磁盘的封装和初始化。
启动磁盘封装
在定制安装中,vxinstall对包含功能数据的磁盘很敏感。
Volume Manager Custom Installation
Menu: Volume Manager/Install/Custom
The c0t0d0 disk is your Boot Disk. You can not add it as a new disk. If you encapsulate it, you will make your root filesystem and other system areas on the Boot Disk into volumes. This is required if you wish to mirror your root ilesystem or system swap area.
Encapsulate Boot Disk [y,n,q,?] (default: n) n
Volume Manager Custom Installation
Menu: Volume Manager/Install/Custom/c0
Generating list of attached disks on c0....
;
No disks were found attached to controller c0 !
Hit RETURN to continue.
--------------------------------------------------------------------------------------------------
注意----封装过程与简单的初始化相比,是很复杂的,将在后续章节中继续讨论。
--------------------------------------------------------------------------------------------------
选择安装
如果你不能确定哪个磁盘进行初始化,选择参数:Install one disk at a time 。
The Volume Manager has detected the following disks on controller c2:
c2t33d0 c2t35d0 c2t37d0 c2t50d0 c2t52d0
Installation options for controller c2
Menu: Volume Manager/Install/Custom/c2
1 Install all disks as pre-existing disks(encapsulate)
2 Install all disks as new disks. (discards data on disks!)
3 Install one disk at a time.
4 Leave these disks alone.
Select an operation to perform: 3
Installation options for disk c2t33d0
Menu: Volume Manager/Install/Custom/c2/c2t33d0
1 Install as a pre-existing disk. (encapsulate)
2 Install as a new disk. (discards data on disk!)
3 Leave this disk alone.
Select an operation to perform: 2
Are you sure (destroys data on c2t33d0) [y,n,q,?] (default: n) y
Enter disk name for c2t33d0 [;,q,?] (default: disk01) newroot
选择初始化
对于每个控制器,你将会有如下的选项:
n Install all disks as pre-existing disks(encapsulate)----如果你选择了这个参数,将会创建一个卷,它将封装这个磁盘的所有分区。文件:/etc/vfsbab将会更新以确保原先加载到磁盘上的分区将由卷来代替加载。
n Install all disks as new disks. (discards data on disks!)----在这个控制器上的所有磁盘将被重新初始化,这将毁掉磁盘上的所有数据并将其作为空闲空间来分配新卷或作为已经存在的卷的镜像。
n Install one disk at a time----对于每一个磁盘,不管你是封装它,还是以新磁盘来安装,或是使它独立,你都将被提示。
n Leave these disks alone----这些磁盘将不会处于VM控制之下,如果有一些应用正在使用这些磁盘,并且你不想由VM对它进行管理,可以选择此项,这样应用会继续对这些磁盘的访问而不受任何改变。
默认的,在vxinstall过程中,所有的磁盘都被增加到磁盘组:rootdg
中。如果你想创建附加的磁盘组,使用定制安装中的使得一些磁盘独立(leave alone)可以很容易的实现,这样,以后可以使用GUI或CLI来增加不包括在内的磁盘来创建不同的磁盘组。注意,在vxinstall的安装过程中,你必须要增加至少一个磁盘到rootdg中。
完成(completion)
vxinstall只有在选择过程完成时才对磁盘进行初始化或改变。你可以在过程结束之前的任何时刻选择退出。
The following is a summary of your choices.
c2t33d0 New Disk
Is this correct [y,n,q,?] (default: y) y
The Volume Manager is now reconfiguring (partition phase)...
Volume Manager: Partitioning c2t33d0 as a new disk.
The Volume Manager is now reconfiguring (initialization phase)...
Volume Manager: Adding newroot(c2t33d0) as a new disk.
The Volume Daemon has been enabled for transactions.
The system now must be shut down and rebooted in order to continue the reconfiguration.
Shutdown and reboot now [y,n,q,?] (default: n) y
VM磁盘管理 当Veritas VM使磁盘处于它的控制之下,它在磁盘上创建两个区域:l 私有区域l 公共区域
VM磁盘管理
物理磁盘分层
如图3_1所示,已经由VM初始化的物理磁盘包含两个部分被称为:私有(private)区域和公共(public)区域:
n 私有区域被配置信息所使用
n 公共区域被用来数据存储
默认的,VM使用分区3和4来做为私有分区和公共分区。VM将为私
有区域使用一个柱(cylinder),它的大小依赖于磁盘的几何参数。在较大的磁盘上,一个柱可以存储超过一个Mbyte的数据。
公共区域被配置为使用物理磁盘所剩余的所有空间。
私有区域的使用 一个由VM初始化的磁盘包含以下的管理信息:l 磁盘头(Disk Header)l 配置数据库l 内核日志
私有区域的使用
磁盘头(Disk Header)
在一个磁盘的私有区域,磁盘头是以块来存储的,它定义了以下这些磁盘的导入(import)属性。
n 当前主机对磁盘的所有权
当一个磁盘是一个磁盘组的一部分,它由一个特定主机所使用,这个磁盘被标识(stamp)了主机的hostname。
如果另一个系统试图访问这个磁盘,它将检测到一个非匹配的host ID(hostname),并被禁止访问,除非第一个系统不再继续使用这个磁盘为止。
n 磁盘标识(Disk Identifer)
当一个物理磁盘的私有区域被初始化时,将分配给它一个64位的唯一标识。
配置数据库
配置数据库(有时被称为configdb)包含特定磁盘组的配置信息。默认的,VM保存每个磁盘组的4个配置数据库的拷贝来防止任何丢失磁盘组信息的可能。
每个配置数据库的拷贝包含以下的信息:
n dgname----由管理员分配的磁盘组的名字
n dgid----当磁盘组被创建时分配给它的64-byte的唯一标识符。这个标识不同于dgname,那是由管理员来分配的。Dgid(磁盘组id)用来检测那些被管理员标识为相同名字,但实际上是完全不同的磁盘组。
n Records----记录用来描述在一个磁盘组中被创建的VM结构。
--------------------------------------------------------------------------------------------------
注意----并不是所有的私有区域都有一个配置数据库的拷贝
--------------------------------------------------------------------------------------------------
内核日志
内核日志保存在磁盘的私有区域并由VM内核写入。日志包含的记录描述了动作的具体类型如,事务委托(transaction commit),从I/O失败中分离丛的结果(plex detaches resulting fomr I/O failure),脏区日志失败(dirty region log failures),卷的第一次写入,和卷的关闭。在系统崩溃或清除性重启(crash or clean reboot)后,使用它来恢复磁盘组之前的状态。
VM环境 在VM安装过程中,软件被分布安装到几个位置。你要熟知以下这些:l VM启动文件的位置和功能l VM系统启动信息和过程l 重要的二进制和脚本文件的位置
VM环境
一旦VM软件被安装和初始化,如果你要进行有效的管理,你必须要熟知以下环境:
VM系统启动文件
在VM的安装过程中,对文件:/etc/system作了如下改动,并且VM启动文件被增加到目录:/etc/rcX.d中。
/etc/system文件的改变:
在 /etc/system中增加的入口来强迫加载vx设备驱动(vxio, vxspec, vxdmp)
/etc/rcX.d中增加的脚本文件
一定数量的VM脚本文件被增加到目录:/etc/rcX.d目录中,用来在启动时启动VM软件
l /etc/rcS.d/S25vxvm-sysboot----这个文件在启动的顺序中被较早运行来配置 / 和 /usr 卷。这个文件也包含了可配置的诊断参数。
l /etc/rcS.d/S35vxvm-startup1----这个文件在运行 / 和 /usr后有效,并使得在Solaris启动顺序中需要较早运行的其它卷有效。
l /etc/rcS.d/S85vxvm-startup2----这个文件启动了I/O守护进程,重建目录 /dev/vx/dsk和 /dev/vx/rdsk,导入所有磁盘组,并启动所有在启动顺序中还未启动的卷。
l /etc/rcS.d/S86vxvm-reconfig----这个文件包含命令来执行fsck在root分区。
l /etc/rc2.d/S95vxvm-recover----这个文件连接了plexs并且启动了VM监视进程(watch daemon)。
l /etc/rc2.d/S96vxvm-server----这个文件启动了新的VM命令服务器来应答远端客户软件。
系统启动信息
当Solaris系统已启动并且VM启动文件已经执行,几个重要的启动信息将会显示出来:
Rebooting with command: boot
Boot device: disk File and args:
SunOS Release 5.7 Version Generic 64-bit [UNIX(R) System V Release 4.0]
Copyright (c) 1983-1998, Sun Microsystems, Inc.
VxVM starting in boot mode...
configuring network interfaces: hme0.
Hostname: devsys1
VxVM general startup...
The system is coming up. Please wait.
checking ufs filesystems
/dev/rdsk/c0t0d0s3: is clean.
starting routing daemon.
starting rpc services: rpcbind keyserv
keyserv done.
Setting default interface for multicast: add net 224.0.0.0: gateway
devsys1
syslog service starting.
Print services started.
volume management starting.
Starting RMI Registry
Starting Veritas VM Command Server
Starting Veritas VM Server
The system is ready.
系统启动过程
vxconfigd
卷配置守护进程(vxconfigd),由脚本/etc/rcS.d/S25vxvm-sysboot在启动顺序中被较早的启动。在VM软件运行前需要先运行它,必须配置默认的磁盘组rootdg才可以正常启动这个守护进程。
vxrelocd 或 vxsparccheck
在启动过程中,脚本S95vxvm-recover启动一个或其他。
vxnotify
这个守护进程由脚本vxrelocd或vxsparccheck来启动
vxrecover
这个进程在系统启动过程中,依赖于卷的修复程度,可以由不同的脚本来执行:S35vxvm-startup1, S85vxvm-startup2, S95vxvm-recover。
vmsa_server
脚本S96vxvm-server后台启动文件:/opt/VRTSvmsa/bin/vmsa_server 脚本vmsa_server启动2个Java进程(jre)和1个cmdserver进程。
系统和用户执行文件
位于目录 /opt中的VM软件
这包括:
l /opt/VRTSvxvm ---- Veritas的二进制文件
l /opt/VRTSvmsa ---- Veritas的服务器软件
位于目录 /usr/sbin中的VM软件
主要包括:
vxassist vxdctl vxdg vxdisk vxdiskadd
vxdiskadm vxedit vxinfo vxinstall vxiod
vxlicense vxmake vxmend vxnotify vxplex
vxprint vxrecover vxrelayout vxsd vxserial
vxstat vxtask vxtrace vxvol
位于目录 /etc/vx/bin中的VM软件
主要包括:
egettxt strtovoff vxapslice vxbootsetup
vxcap-part vxcap-vol vxcheckda vxchksundev
vxckdiskrm vxcntrllist vxdevlist vxdiskrm
vxdisksetup vxdiskunsetup vxdmpadm vxedvtoc
vxeeprom vxencap vxevac vxmirror
vxmkboot vxmksdpart vxnewdmname vxparms
vxpartadd vxpartinfo vxpartrm vxpartrmall
vxprtvtoc vxr5check vxr5vrfy vxreattach
vxrelocd vxresize vxroot vxrootmir
vxslicer vxspare vxsparecheck vxswapreloc
vxtaginfo vxunroot
--------------------------------------------------------------------------------------------------
注意----在启动时,卷配置守护进程 /sbin/vxconfigd启动
--------------------------------------------------------------------------------------------------
VM重配置 VM目标状态的改变将会被检测到并被记录在如下的VM配置记录:l vxio驱动检测并报告设备错误l vxio驱动更新内存中的记录l vxconfigd守护进程更新磁盘中的记录
卷管理(VM)的重配置
Veritas VM保存位于内存和写入一个或多个磁盘的卷信息拷贝的更新。这个状态会随时更新,当卷配置或有效性发生改变时。
主要涉及的元素:
u vxio软件驱动
u vxconfigd配置守护进程
当一个磁盘组被导入并被标识为活动状态时,在内存中创建了一个
configdb的拷贝,并使用它来跟踪所有卷中配置或状态的改变。如图3_2所示,当vxio驱动更新了位于内存中的configdb拷贝时,vxconfigd更新磁盘端的configdb拷贝。
当试图访问一个虚拟结构时,vxio驱动检查内核配置表。磁盘端的
拷贝可以不需执行。
初始化卷配置
当VM启动时,vxconfigd导入属于VM 服务器的磁盘组。
当磁盘组被导入后,vxconfigd读取位于磁盘端的configdb记录来创建内
核配置表。
卷重配置
当vxio接收到一个硬件设备错误通知,它禁用它正在试图访问的卷,并更新VM内核配置表。它同时也通知vxconfigd发生了一个配置改变。