欢迎加入IT云增值在线QQ交流群:342584734
分类:
2006-08-27 10:13:54
作为Solaris10众多新特性中非常抢眼的“可预测性自恢复技术”组成部分之一的SMF,在实际的系统管理中如何运用呢?当你的系统中存在异常中止的服务,通过哪些命令和步骤可以迅速的解决呢?
“可预测性自恢复”技术包含了FMA和SMF两部分。前者主要针对硬件(CPU/Memory/IO)等错误,及时向用户提供详细的错误信息并进行隔离,后者则把精力放在了那些系统中运行的的服务上,比如Solaris系统服务svc:/system/system-log:default(即 syslogd),svc:/network/smtp:sendmail(sendmail),以及一些其他软件比如Sun Cluster的服务。SMF提供的这套机制能够统一管理系统的大部分服务,记录错误信息,并能够根据依赖关系自动重起服务使系统恢复正常运行。对于系统管理员来说,省去查找异常中止的服务、到不同路径下收集 log、原因分析以及修复后根据依赖关系手动重起服务的诸多繁琐操作,可以更加方便的管理系统中的各种服务。
下面总结了一些使用频率非常高的命令。
1.查看服务状态
svcs 服务的标识FMRI --- 列出该服务的状态、起动时间
svcs -p |grep 进程名 --- 显示所有服务的进程信息,可以查找你关注的进程
svcs -d FMRI 或svcs -D FMRI --- 查看指定服务的依赖关系
2.起动/停止服务
svcadm enable 服务FMRI --- 起动服务
svcadm disable 服务FMRI ---停止服务
svcadm refresh 服务FMRI ---更新服务配置
3.服务发生故障后的原因分析
svcs -x-v 找到系统中故障停止的服务,得到系统提示信息,根据提示的/var/svc/log/下的log路径察看log文件。log文件中会提示故障原因,比较详细。
一般服务停止很可能是以下几个原因之一
1)/lib/svc/method/下故障服务的起动脚本执行失败,可以手动执行一遍找到shell中的问题
2)依赖关系得不到满足,或者依赖关系不正确。可以结合svcs -d 看看它依赖的服务是否正常,如果有问题进行解决。
3)配置文件的错误等等
这些都可以在/var/svc/log下对应的目录和文件中找到明确的提示。
4.修正后服务的恢复
如果服务没有故障,只是修改了服务相关的配置文件,或者服务本身的依赖关系、起动脚本等,需要执行
svcadm refresh FMRI --- 更新配置
svcadm restart FMRI --- 重起服务
如果服务异常退出,并且管理员已经修复了错误,需要执行
svcadm clear FMRI
这时该服务会被svc.startd自动起动。
如果Solaris10不是你的开发平台,或者你对Solaris10了解不多,这些命令至少不会让你在服务发生错误的时候束手无策;如果你对*nix系统中服务管理并不陌生,通过系统管理手册或者其他途径(比如google)还可以找到很多关于SMF的技术文档。对这种新的管理方法熟悉之后,会渐渐体会到它的各种优点。我的感想是SMF提高了服务管理的统一性,各个服务独有的log能够更方便的获取信息。
就SMF的发展来看,与FMA结合实现系统故障的自恢复、将更多的服务纳入SMF管理机制以及今后向用户提供一些接口来更好的管理服务,无疑对于提高整个Solaris的系统的可用性都是有好处的。不要把它理解为抽象的技术,其实它是方便你更好的管理系统和服务的工具。