设置

我们将使用的示例系统具有基于 SVM 的镜像根。

查看更多教程 https://on  itroad.com

补丁安装

  1. 将服务器引导到单用户模式。
# init 0
ok> boot -s
  1. 解压缩补丁集包并查找密码。
# unzip -q sol10_Recommended.zip
# grep PASSCODE sol10_Recommended/sol10_Recommended.README
  1. 安装补丁集群。
# cd sol10_Recommended
# ./installcluster --[passcode]
  1. 检查安装过程中是否有任何错误或者警告。
    在没有发现错误的情况下,以多用户模式重新启动服务器。
# init 6

重新挂接镜像盘

一旦我们成功安装了补丁集包并确保继续使用它,我们就可以使用镜像重新镜像根磁盘。

  1. 在根镜像磁盘上创建元数据库副本。
# metadb -a -c 3 c1t1d0s7
  1. 重新创建并添加根和交换镜像。
# metainit d12 1 1 c1t1d0s0
# metainit d22 1 1 c1t1d0s1
# metattach d10 d12
# metattach d20 d22
# metastat | grep -i sync   (check sync status)

准备

  1. 检查所有元数据库副本 (metadbs) 和 SVM 元设备的健康状况。
# metastat
# metastat -c
# metadb -i
  1. 检查当前启动设备。
# prtconf -vp | grep -i boot
	bootpath: '/pci@0,0/pci15ad,1976@10/sd@0,0:a' 
	boot-device: 'pci@0,0/pci15ad,1976@10/sd@0,0:a disk0:a'
  1. 从格式输出中确认启动盘和镜像盘。
# echo | format
Searching for disks...done
AVAILABLE DISK SELECTIONS:
       0. c1t0d0 
          /pci@0,0/pci15ad,1976@10/sd@0,0
       1. c1t1d0 
          /pci@0,0/pci15ad,1976@10/sd@1,0
Specify disk (enter its number): Specify disk (enter its number):

如上所示,这里的根磁盘是 c1t0d0 ,镜像根磁盘是 c1t1d0 。

  1. 备份重要的命令输出。
# df -h
# netstat -nrv
# ifconfig -a
# metastat -c
# metastat
# swap -l
# cat /etc/vfstab
# uname -a
# showrev -p
  1. 在根镜像盘c1t1d0中安装bootblock,确保可以启动。
# installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c1t1d0
  1. 分离并删除 SVM 镜像。
# metadetach -f d10 d12       ## detach root mirror
# metadetach -f d20 d22       ## detach swap mirror
# metaclear d12
# metaclear d22
  1. 清除根镜像磁盘中的元数据库副本。
# metadb -d /dev/dsk/c1t1d0sX    ## X is the slice on which metadb was created on root mirror disk
  1. 挂载镜像根磁盘并替换/etc/vfstab 和/etc/system 中的SVM 相关条目,以防止SVM 从根镜像磁盘启动。
# mount /dev/dsk/c1t1d0 /mnt
# vi /etc/fstab
#device         device          mount           FS      fsck    mount   mount
#to mount       to fsck         point           type    pass    at boot options
#
fd      -       /dev/fd fd      -       no      
/proc   -       /proc   proc    -       no      
/dev/dsk/c1t1d0s1        -       -       swap    -       no      
/dev/dsk/c1t1d0s0 /dev/rdsk/c1t1d0s0        /       ufs     1       no      
/devices        -       /devices        devfs   -       no      
sharefs -       /etc/dfs/sharetab       sharefs -       no      
ctfs    -       /system/contract        ctfs    -       no      
objfs   -       /system/object  objfs   -       no      
swap    -       /tmp    tmpfs   -       yes

从 /etc/system 文件中删除与 SVM 相关的条目。

# vi /etc/system
* Begin MDD root info (do not edit)
rootdev:/pseudo/md@0:0,10,blk
* End MDD root info (do not edit)
set md:mirrored_root_flag = 1

9、确认服务器是否从未封装的SVM根镜像盘启动。

# init 0
ok> boot rootmirror      (root mirror is a devalias at OBP)
使用 SVM 修补 Solaris 10 传统方法(非实时升级)

像许多其他人一样,在升级/修补 solaris 时,我非常喜欢实时升级。
这篇文章适用于出于任何原因仍想使用传统修补方法的系统管理员。

回滚

如果打补丁出错,或者打补丁后应用程序无法正常工作,我们可以随时回滚打补丁并从旧补丁级别启动。
这样做的方法是,我们将未封装的 rootmirror 磁盘重新封装在 SVM 下,并将其与原始 root 磁盘进行镜像。
一旦完成,这应该如下图所示。

  1. 从未封装的 SVM 根镜像磁盘启动。
# init 0
ok> boot rootmirror
  1. 将分区表从rootmirror 磁盘复制到root 磁盘。
# prtvtoc /dev/rdsk/c1t1d0s2 | fmthard -s - /dev/rdsk/c1t0d0s2
  1. 创建状态数据库副本(metadbs)。
# metadb -afc 3 c1t1d0s7 c1t0d0s7
  1. 创建子镜像元设备。
# metainit -f d11 1 1 c1t1d0s0
# metainit -f d12 1 1 c1t0d0s0

5.为root创建镜像d10.

# metainit d10 -m d11
# metaroot d10
  1. 在 /etc/system 文件中添加以下条目,允许系统以少于或者等于总元数据库一半的情况启动。
vi /etc/system
set md:mirrored_root_flag = 1
  1. 重启系统
# init 6
  1. 将子镜像d12添加到镜像d10以同步数据。
# metattach d10 d12

9.在根分区下重新创建swap。

# swap -l
swapfile             dev  swaplo blocks   free
/dev/dsk/c1t1d0s1   30,1       8 1548280 1548280
# swap -d /dev/dsk/c1t1d0s1
# metainit d22 1 1 c1t0d0s1
# metainit d21 1 1 c1t1d0s1
# metainit d20 -m d21
# metattach d20 d22
Change the /etc/vfstab entry for the new swap.
/dev/dsk/c1t1d0s1      -       -       swap    -       no      
to:
/dev/md/dsk/d20        -       -       swap    -       no

再次添加交换并设置为转储设备。

# swap -a /dev/md/dsk/d20
# dumpadm -d swap
  1. 设置 OBP 变量以反映新别名
# ls -l /dev/dsk/c1t0d0s0
lrwxrwxrwx   1 root     root          46 Nov 16 12:35 /dev/dsk/c1t0d0s0 -> ../../devices/pci@0,0/pci15ad,1976@10/sd@0,0:a
# ls -l /dev/dsk/c1t1d0s0
lrwxrwxrwx   1 root     root          46 Nov 16 12:35 /dev/dsk/c1t1d0s0 -> ../../devices/pci@0,0/pci15ad,1976@10/sd@1,0:a
# eeprom "nvramrc=devalias rootmirror /devices/pci@0,0/pci15ad,1976@10/sd@0,0:a rootdisk /devices/pci@0,0/pci15ad,1976@10/sd@1,0:a"
  1. 在新的镜像盘上安装bootblock。
# installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c1t0d0s0
日期:2020-09-17 00:15:17 来源:oir作者:oir