LU solaris patch(1) LU原理

本文深入解析Solaris LiveUpgrade的原理,通过介绍Solaris分区系统及df-h输出,阐述了LiveUpgrade如何实现在线升级,避免传统升级模式的服务器停机时间,显著提升业务连续性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LU是什么?

LU patch,顾名思义,在线升级。也就是说不用像传统的升级方式那样,把服务器设置到单用户模式来升级。这样就减少了服务器的down time,减少对业务的影响。

我们知道打Patch是像操作系统中添加一些补丁文件,对操作系统会产生较大的改动,为了安全起见,通常要在单用户模式下进行patch,这样是为了保证在patch的过程中不会受到其他用户和进程等的干扰。那么为什么Live Upgrade这种模式可以不进入单用户模式呢? 其原理如下:

LU的原理

要说Live Upgrade的原理首先要明白solaris的分区概念。 solaris有0-7共8个分区。其中2号分区是固定为代表整个磁盘。其他几个分区各有各的作用。比如说以下面这台机器为例:

bash-3.00# cat /etc/vfstab
#device         device          mount           FS      fsck    mount   mount
#to mount       to fsck         point           type    pass    at boot options
/dev/md/dsk/d1  -       -       swap    -       no      -
/dev/md/dsk/d0  /dev/md/rdsk/d0 /       ufs     1       no      nologging
/dev/md/dsk/d4  /dev/md/rdsk/d4 /var    ufs     1       no      nologging
/dev/md/dsk/d6    /dev/md/rdsk/d6       /opt/oracle    ufs     2       yes     logging
我们看到

d1用于 SWAP

d0用于 /
d4用于 /var

d6用于/opt/oracle

这4个分区加上已知的d2用于代表整个磁盘。还剩下 d7 d3 d5不明确他们的作用。实际上因为我们采用了磁盘镜像的方式来设计存储,那么要有一块盘存储metadb的信息,这块盘就是d7。 如下:

bash-3.00# metadb
        flags           first blk       block count
     a m  p  luo        16              8192            /dev/dsk/c3t500000E017CBA860d0s7
     a    p  luo        8208            8192            /dev/dsk/c3t500000E017CBA860d0s7
     a    p  luo        16400           8192            /dev/dsk/c3t500000E017CBA860d0s7
     a    p  luo        16              8192            /dev/dsk/c3t500000E017CB21A0d0s7
     a    p  luo        8208            8192            /dev/dsk/c3t500000E017CB21A0d0s7
     a    p  luo        16400           8192            /dev/dsk/c3t500000E017CB21A0d0s7

那么这时候就剩下d3 d5不明确他们的用途了。而d3 , d5正是我们这个环境中LU的关键。我们看一下系统的df -h输出

bash-3.00# df -h
Filesystem             size   used  avail capacity  Mounted on
/dev/md/dsk/d0          16G   7.9G   7.7G    51%    /
/dev/md/dsk/d4         7.9G   3.8G   4.0G    50%    /var
swap                   2.0G    22M   2.0G     2%    /tmp
/dev/md/dsk/d6          12G   7.5G   4.2G    64%    /opt/oracle
其实这是一个简化的结果,但是也能帮助我们说明问题了。我们看到其实只有/ 和 /var是我们的solaris正常运行所需要的。至于/opt/oracle,它是外部软件,没有这部分内容solaris一样能够运行。而对于/tmp,它对应的其实应该是一个虚拟文件系统,也就是说,关闭计算机之后,这部分内容就会消失。所以,要让solaris最小化运行起来我们只需要/和/var。

这是LU的原理就好理解了。它的原理就是把当前的/和/var也就是d0和d4看做是一个BE(boot environment),而d3和d5这两块盘看成另一个BE。在LU的过程中,我们实际上是先把当前BE的所有内容拷贝到另一个BE上,也就是d3,d5上。这样我们就相当于拥有了当前操作系统的一份拷贝。然后对d3和d5进行打patch。当patch完毕后,我们把操作系统重启一下,但是重启到d3 , d5上。这样,我们就相当于拥有了一份原来系统的升级版本,也就是打过patch的版本。这样整个LU的过程中,所需要的down time只是重启切换的那一小段时间。 打patch的过程中服务器不需要关闭。不需要切换到单用户模式,这样就实现了我们所谓的LU。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值