从Linux到Solaris(备份恢复,故障诊断)

  第九章:备份恢复

linux使用dump和restore命令执行文件系统的备份和恢复作业,在solaris中则使用ufsdump和ufsrestore.

QUOTE:
  • linux
#/sbin/dump -0u -f /dev/st0 /home
# cd /home
# restore rf /dev/st0
  • solaris
# ufsdump 0uf /dev/rmt/0 /export/home
# cd /export/home
# ufsrestore rf /dev/rmt/0

solaris 10的zfs则使用快照功能:
zfs snapshot tank/home@ss_monday

上述命令将生成文件系统tank/home的快照ss_monday,然后通过快照进行备份:
zfs send tank/home@ss_monday > /dev/rmt/0

上述命令将把快照数据备份到磁带上。

  • linux和solaris还经常通过tar和cpio命令对文件系统进行备份
  • 此外还有许多第三方的备份工具,在两种操作系统上都可以使用,比如开源软件Amanda。比如著名的备份软件NBU(veritas netbackup)。
  • solaris也发布了Sun StorageTek Enterprise Backup Software和其他一些与存储管理相关的工具。Sun同时也转售Legato Networker和IBM Tivoli。

第十章:故障诊断

正所谓天有不测风云,即使你按照各种技术指导文档努力的非常严谨且认真的按部就班的进行操作,依然会不时的遇到各种意外现象。本文将尽力帮助各位在遇到各种故障时进行分析与诊断。内容包括:
  • 安装
  • 系统启动
  • Core Files
  • 内核崩溃转储
  • 日志
  • 命令丢失
  • root密码恢复
  • 网络
  • NFS共享
  • 诊断和调试工具
1、安装

QUOTE:
从USB-CDROM安装
即使x86机器支持从USB-CDROM启动,从USB-CDROM安装solaris 10 x86也并不见得总是能够顺利完成。有时候在安装时会出现系统找不到USB-CDROM的情况。解决方法如下:
1、安装时选择交互式文本安装类型"Solaris Interactive Text (Console session)"
     按安装步骤操作直到安装程序出现以下错误提示,并跳到shell提示符:
             ERROR:The disc you inserted is not a Solaris OS CD/DVD


2、查看并记录/dev/dsk目录下可用的设备
3、拔出USB-CDROM,等待数秒再次插入
4、查看新认知的设备,比如c1t0d0XXXX.
5、挂接USB-CDROM
         mount -F hsfs /dev/dsk/c1t0d0p0 /cdrom,注意设备名最后必须是p0(分区0)
6、运行/sbin/install-solaris继续开始安装

作者保留版权,转载请注明出处,来自 cu-yuhuohu.

2、系统启动

QUOTE:
系统启动
如果遇到和系统启动有关的问题,可以通过以下方法采集所需的信息:
1、svcs -x FMRI
solaris 10系统可通过svcs命令查看任何(未启动的)服务实例(solaris 10称之为FMRI,故障管理资源标识)的详细参考信息

2、查看/var/adm/messages文件,通常情况下这个文件包含了所有的系统日志消息记录。
3、确定/etc/rc*.d目录中的脚本没有错误

修复引导文件
  • 如果在启动时遇到"panic:cannot mount boot archive"消息,说明可能丢失了引导文件(boot_archive)。在同时打多个需要重新引导文件的补丁时经常会出现这种故障。
  • 要修复这个问题,需要启动系统进入"failsafe"模式。通常情况下,failsafe模式会提示你更新引导文件。如果确实是这样的话,更新后重启系统即可恢复。

还有另外一种常见的方法:
  • 把跟分区挂接到某目录,比如/a:mount -F ufs /dev/dsk/c1d0t0s0 /a
  • 然后用以下命令重建引导文件:/a/boot/solaris/bin/create_ramdisk -R /a
  • 重启系统

3、Core Files

QUOTE:
当系统异常退出时会创建Core file(核心文件)。Core File提供的信息能够帮助查找导致应用中断的原因。可通过coreadm工具来定义solaris所产生的core file的位置,名字,以及内容。
有几个常用的应用可用来从core file中提取信息:
pflags 查看"tracing flags"
pcred 查看credential(证书)
pldd 查看链接到进程的动态库
pstack 查看每个进程的LWP的十六进制的"symbolic stack trace"
"tracing flags","stack trace"是开发类术语,大家可google一下.

4、kernel crash dump

QUOTE:
如果Linux机器发生内核死机(kernel panic),会生成一个oops消息,通过这个消息可判断导致故障的原因,linux内核并不会产生实际的崩溃转储文件(crash-dump-file)
  • 【注】redhat enterprise linux 5安装时可选择是否启动生成crash-dump-file.
如果solaris内核死机,将会在/var/crash/hostname目录下生成一个崩溃转储文件。技术人员将通过这个文件分析系统崩溃的原因。

5、日志

QUOTE:
当遇到问题时,首先查看各种相关日志文件是一个好习惯。有几个重要的系统日志文件如下:
/var/adm/messages 主要的系统日志
/var/log/syslog sendmail日志及其他
/var/cron/log 自动作业(cron tab) 的日志信息
/var/lp/logs/lpsched 打印机服务器日志
此外,有些应用有专用的日志文件:
/var/samba/log
/var/apache/log
/var/apache2/log

6、命令丢失

QUOTE:
命令可能会在多个目录中存放,有些命令可能需要单独安装,甚至如果命令不可用可能需要重新移植(编译)
首先要检查当前shell的路径变量$PATH。命令可能存放的目录请参见前文。
如果命令还未安装,可通过配套CD,sunfreeware.com,blastwave.org下载提供该命令的软件包的开源版本,或用源码进行编译安装。

如果该命令没有solaris版本,可能你需要进行移植或编写solaris版本

7、root密码恢复

QUOTE:
如果忘记了root密码或接手一台没人知道root密码的机器时,可从solaris的安装盘启动,选择进入单用户模式,然后把根分区挂接到/a目录,修改/a/etc/shadow文件,把root账号的密码字段清空,然后重启系统即可

8、网络

QUOTE:
如果遇到网络连接问题,可使用以下常用工具进行调试诊断工作:
traceroute 查看包在网络中的路由情况可或者那个跳点(路由器)出了问题
/usr/sbin/ping 检测远程机器是否可达
netstat 查看网络状态信息
snoop 报文捕捉工具,类似于tcpdump
tcpdump 有适用于各种操作系统的版本,solaris的配套CD上有提供

9、NFS共享问题

QUOTE:
有时候,在solaris 10上挂接从linux系统共享出来的文件系统时,可能会出现以下错误信息:
$ mount linxu-nfs-server:/export /mnt
nfs mount: mount: /mnt: not owner


这是由于solaris 10NFS客户端默认使用NFS v4协议来挂接共享文件系统,而Linux的NFS不支持NFSv4
要解决这个问题,可修改solaris 10的NFS 客户端默认使用的NFS协议:
编辑/etc/default/nfs加入一行:
NFS_CLIENT_VERSMAX=3

另外,如果你不希望solaris nfs服务器使用NFSv4,可以修改/etc/default/nfs文件如下:
NFS_SERVER_VERSMAX=3

这样solaris系统的NFS服务器将最高只能支持到NFS协议的v3版本

10、诊断和调试工具

QUOTE:
DTrace是solairs 10中新增的一个非常有力的工具,dtrace使进行系统故障诊断的过程变得更加容易。dtrace能够探测系统的各个方面,包括网络、IO、函数调用(function call),以及应用在CPU中的启动和停止.有许多地方可获取dtrace脚本,最常见的是openSolaris dtrace community: http://opensolaris.org/os/community/dtrace/ 。其中"dtrace toolkit"提供了许多专注于故障诊断的脚本。

另外两个有用的工具是

  • truss,用于追踪应用的系统调用情况
  • apptrace,用户追踪应用的函数调用(function call)情况
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值