Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1143160
  • 博文数量: 286
  • 博客积分: 3124
  • 博客等级: 中校
  • 技术积分: 5186
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-24 23:42
个人简介

Bomi

文章存档

2015年(1)

2013年(1)

2012年(281)

2008年(3)

分类: 系统运维

2012-02-04 00:57:30

SMF简要介绍(对SMF熟悉的朋友略过此部分)1、
定义
   过去,UNIX 操作系统包含一组服务:这些服务是与任何交互式用户登录都不关联的软件程序,用于侦听和响应请求以执行特定的任务(如传送电子邮件、响应 ftp 请求,或允许执行远程命令)。这些传统服务通常是一些单独的应用程序,它们作为单个进程执行,在系统引导时启动,并在系统启动和运行时持续执行,可处理接收到的任何请求。
    如今,管理员必须管理一系列服务,这些服务的作用已经超出了此原始模型的作用范围。Sun 推出了 Service Management FacilitySMF,服务管理工具),以简化这些系统服务的管理。SMF 是Solaris 操作系统的一项新功能,为每个 Solaris 系统上的服务和服务管理创建支持的、统一的模型。它是 Solaris10 中预测性自我修复技术(PredictiveSelf-Healing technology)的核心部分,为软件和硬件故障以及管理错误提供自动恢复功能。
2、
SMF的特点SMF已经改进了 Solaris 管理模型的几个方面。一些最显著的更新包括:

  • 服务由可以进行查看(使用新的
    svcs(1)
    命令)和管理(使用
    svcadm(1M)

    svccfg(1M))的一级对象表示。
  • 无论失败的服务是由管理员错误、软件错误导致,还是受无法更正的硬件错误的影响,这些服务都将按照相关性顺序自动重新启动。
  • 可以获取有关配置错误或行为异常的服务的详细信息,包括对服务未运行的原因的说明(使用 "svcs -x"),以及每个服务单独的持久性日志文件。
  • 引导过程中出现的问题比较容易调试,因为在启动故障期间可以控制引导详细程度,记录服务启动消息,以及提供更可靠的控制台访问。
  • 自动拍摄服务配置快照,从而更容易备份、恢复和撤消对服务所做的更改。
  • 可以使用受支持的工具 (svcadm(1M)) 启用和禁用服务,从而允许更改不受升级和修补程序的影响而保留原样。
  • 管理员可以更容易地将任务安全地委派给非超级用户,这些任务包括配置、启动、停止或重新启动服务(如
    smf_security(5)
    手册页中所述)。
  • 根据服务的相关性并行启动服务,可以更快地引导大型系统。
3、
命令
SMF有一套简单而且强大的命令集,每一个命令都有一些可选项来管理Solaris系统,主要的SMF命令如表-1。

Command
描述

svcs
报告服务状态

svcadm
管理各个服务:启动终止某个服务

Table 1—SMF命令集
用SCFDOT项目来看OpenSoalaris0811的关系依赖图呵呵呵没有接触过SMF的朋友大体已经知道SMF是做什么的了。本文的目的是想探究一下OpenSolaris系统的服务之间的关系图。SCFDOT项目就是做这件事的,在介绍SCFDOT之前我们先来看看如何通过SMF命令看某一个服务的的依赖关系。
"-d"选项可显示某一服务所依赖的其他服务,而"-D"选项可显示依赖于某一服务的其他服务:
% svcs -d network/smtp:sendmail
STATE
STIME
FMRI
online
18:20:14 svc:/system/identity:domain
online
18:20:26 svc:/network/service:default
online
18:20:27 svc:/system/filesystem/local:default
online
18:20:27 svc:/milestone/name-services:default
online
18:20:27 svc:/system/system-log:default
online
18:20:30 svc:/system/filesystem/autofs:default
% svcs -D network/smtp:sendmail
STATE
STIME
FMRI
online
18:20:32 svc:/milestone/multi-user:default 不过这仅仅是看到了一个服务的依赖关系,如果我们想看到整个系统的依赖关系就需要scfdot的帮助了,scfdot是opensolaris社区的一个开源项目。

从这上面就可以拿到代码了。其代码的原理也是利用了上述的命令来生成所有的服务关系图。
下面的操作就比较简单了,在OpenSolaris 200811下编译执行,最后会生成一个dot文件,这时需要用到graphvic这款开源软件来解析dot文件将其生成一个关系图,这样就大功告成了。
可以看到Solaris的服务是分为4种的:system,network,milestone,application,对应图中的4种颜色。可以看到milestone是一个关键的服务,当系统的启动完成到一定程度就会出现一个milestone,可以从图中找到如下的milestone:single-user,device,multi-user,multi-user-server,sysconfig等,可以看到系统是逐级启动,最终达到的是multi-user-server这个milestone。
有了这个图,对于想了解OpenSolaris系统运行原理的朋友是不是轻松了一些~

阅读(543) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~