BigAdmin System Administration Portal
특집 기사
Print-friendly VersionPrint-friendly Version

주목 받는 Solaris 10 OS 기능: 예측적 자가 치유

Amy Rich, 2004년 11월

목차:

일반적으로 Solaris 시스템에 하드웨어 또는 소프트웨어 고장이 발생하면 메시지가 보통 /etc/syslog.conf에 지정된 적절한 장치에 기록되고, 진단 및 복구와 같은 나머지 작업은 관리자에게 위임됩니다. 예측적 자가 치유 기술은 Solaris 10 OS에서 도입되었으며, Solaris 프로그램용 Software Express를 통한 검토용으로 사용할 수 있습니다. 또한 이 기술은 새로 설계된 결합력 있는 아키텍처 및 방법론으로 소프트웨어와 하드웨어의 오류 상태를 자동으로 진단하고, 보고하며, 처리할 수 있습니다. 이 새로운 기술에서는 하드웨어 또는 소프트웨어 문제를 디버깅하는 데 필요한 시간에 대해 학습하고, 각 오류에 대한 자세한 데이터를 관리자와 Sun 기술 지원에 제공합니다. 아키텍처는 이벤트 관리 프로토콜, Fault Manager, 소프트웨어 오류 처리 소프트웨어 및 Solaris Service Manager로 구성됩니다.


Solaris Fault Manager

하드웨어 오류가 발생하면 예측적 자가 치유는 원래 소프트웨어와 상관 관계에 있는 이진 원격 이벤트를 발행하여 일반 syslog 메시지를 보완합니다. 그리고 나면 원래 소프트웨어에서는 오류를 자동으로 진단하고, 관리자에게 이를 알려 가능한 경우 수정 조치를 취합니다. 또한 Sun Fault Manager는 오류 코드를 제공하고, 적절한 경우 http://www.sun.com/msg/의 해당 기술 자료 기사로 관리자를 안내합니다. Sun Fault Manager의 첫 번째 구현에서는 다양한 SPARC CPU, 메모리 및 I/O 버스 넥서스 구성 요소에 대해 다룹니다. 이후의 릴리스에는 x86 플랫폼에 Solaris OS용 모듈이 포함될 예정입니다.

시스템 관리자와 Sun Fault Manager의 주된 상호 작용은 Fault Manager 데몬인 fmd(1M)를 통해 발생됩니다. fmd(1M)는 부트 시 시작되며, 백그라운드로 분기되어(보다 자세한 내용은 fmd(1M) 매뉴얼 페이지 참조) 실행 중인 시스템을 계속 모니터합니다. 구성 요소에 오류가 발생하면 오류 관리 시스템이 이 오류를 처리하고 오류 보고서 데이터와 이전 오류 보고서 및 기타 관련 정보와 서로 관련시켜 원래 오류를 진단하고 이 오류에 대응합니다. 진단이 수행되고 나면 Fault Manager는 이 문제를 시스템 집합 전체에서 문제를 식별하는 UUID(Universal Unique Identifier)에 할당합니다. 가능한 경우 fmd(1M)는 실패한 구성 요소를 자가 치유하는 단계를 초기화합니다. 또한 fmd(1M) 프로그램은 오류를 syslogd에 기록하거나 적절한 경우 관리자에게 이를 알립니다.

Fault Managed Resource Identifier

FMRI(Fault Managed Resource Identifier)는 오류 이벤트 전파를 목적으로 Fault Manager 내부에 있는 리소스를 식별합니다. FMRI가 URI 하위 클래스인 Fault Manager 이름 지정 스키마는 RFC 2396에서 정의된 URI 구문을 기반으로 합니다. FMRI 구문에는 임의의 다양한 스키마가 있으며 각각 관련된 리소스의 트리 이름을 지정합니다. FMRI는 URI 문자열 또는 구성 요소 이름 값 쌍으로 표시할 수 있습니다. 예를 들어 DIMM 0, 메모리 뱅크 1, 메모리 모듈 2, 시스템 보드 3, Sun Fire 15K 서버의 도메인 A에 대한 FMRI가 다음 URI 문자열로 나타날 수 있습니다. (참고: 실제 사용 시 행은 끊어지면 안 됩니다.)

hc://chasis-id=138A2036,product-id=SunFire15000,domain-id=A/system-board=3/cpu-
module=2/memory-bank=1/dimm=0

또는 다음 구성 요소 이름 쌍으로 나타납니다.

구성 요소 이름 쌍
이름 유형
이름 유형
스키마 hc string
권한 chassis-id: 138A2036
product-id: SunFire15000
domain-id: A
authority
시스템 보드 3 uint32_t
cpu 모듈 2 uint32_t
메모리 뱅크 1 uint32_t
dimm 0 uint32_t
 

Fault Manager는 모든 FMRI를 사용하여 다음 상태 중 하나를 연결합니다.

  • ok: 리소스가 표시되고 사용 중이며, 알려진 문제가 없습니다.
  • unknown: 리소스가 표시되지 않거나 사용할 수 없지만 알려진 문제가 없습니다. 이는 리소스가 비활성화되어 있거나, 관리자가 이 리소스를 구성하지 않았음을 나타낼 수 있습니다.
  • degraded: 리소스가 표시되고 사용할 수 있지만 하나 이상의 문제가 진단되었습니다.
  • faulted: 리소스가 표시되지만 하나 이상의 복구 불가능한 문제가 진단되어 사용할 수 없습니다. 이 리소스는 시스템에 추가 손상을 주지 않도록 비활성화되었으며, 수동 개입이 필요합니다.

Fault Manager 명령줄 도구

Fault Manager의 Solaris 구현에는 여러 개의 명령줄 도구가 포함되어 fmd(1M)의 동작과 모듈을 관찰하고 수정할 수 있습니다. 관리자가 가장 일반적으로 사용하는 도구는 fmadm(1M), fmdump(1M)fmstat(1M) 도구입니다.

fmadm(1M) 유틸리티는 모듈을 보고, 로드하고, 언로드할 수 있으며, 리소스 캐시를 보고 업데이트할 수 있습니다. 또한 fmd(1M)에서 오류가 있다고 판단한 모든 리소스를 표시하는 방법을 시스템 관리자에게 제공합니다. 가장 일반적인 fmadm(1M) 하위 명령(자세한 내용은 fmadm(1M) 매뉴얼 페이지 참조)은 다음과 같습니다.

  • config: 모듈 이름, 버전 및 각 구성 요소 모듈에 대한 설명을 비롯하여 구성을 표시합니다.
  • faulty [-ai]: 오류가 있다고 현재 판단되는 리소스 목록을 표시합니다. 진단의 UUID, FMRI 및 리소스 상태는 각 리소스에 나열됩니다. 기본적으로 fmadm faulty 명령은 현재 표시되고 오류가 있는 리소스에 대한 출력만 나열합니다. -a 옵션이 지정되면 Fault Manager에 의해 캐시된 모든 리소스 정보가 나열되며, 여기에는 시스템에서 더 이상 표시되지 않는 구성 요소 정보도 포함됩니다. -i 옵션이 지정되면 가장 최신 상태와 UUID 대신, Fault Manager의 각 리소스에 대한 영구 캐시 식별자가 표시됩니다.
  • load path: 지정된 모듈을 로드합니다. 지정된 경로는 절대 경로여야 하며, 모듈에서 정의된 디렉토리 중 하나에 표시되는 모듈을 참조해야 합니다.
  • unload module: 지정된 모듈을 언로드합니다. 모듈 이름은 fmadm config 출력에서 지정된 이름입니다. Fault Manager는 보통 시스템 구성을 기준으로 모듈을 자동으로 로드 및 언로드합니다. 따라서 이 명령은 거의 사용되지 않습니다.
  • rotate errlog | fltlog: 지정된 Fault Manager 로그 파일 회전을 예약합니다. 로그 파일은 이 하위 명령을 사용하는 logadm(1M) 구성 파일의 항목에 의해 자동으로 회전됩니다.

fmdump(1M) 프로그램을 사용하면 시스템 관리자는 fmd(1M)와 연결된 로그 파일을 어느 것이든 볼 수 있으며, 특정 진단의 세부 정보를 검색할 수 있습니다. 기본적으로 fmdump(1M) 명령에서는 오류 로그(fault log)를 표시하지만 -e 명령줄 전환이 지정되면 오류 로그(error log)를 표시합니다. fmdump(1M) 명령은 명령줄 옵션을 가져와 특정 이벤트만 선택할 수도 있습니다(자세한 내용은 fmdump(1M) 매뉴얼 페이지 참조).

  • -c class: 지정된 클래스와 일치하는 이벤트를 선택합니다.
  • -t time: 지정된 시간 또는 그 이후에 발생한 이벤트를 선택합니다.
  • -T time: 지정된 시간 또는 그 이전에 발생한 이벤트를 선택합니다.
  • -U UUID: UUID와 일치하는 이벤트를 선택합니다.

-v 또는 -V를 지정하면 어떤 명령에서든지 상세 출력을 더욱 더 얻을 수 있습니다.

fmstat(1M) 프로그램은 오류 관리 시스템의 통계를 보고하기 위해 설계되었습니다. -m module 인수가 지정되면 fmstat(1M)에서는 지정된 module에 의해 유지되는 통계를 보고합니다. -m이 지정되지 않으면 fmstat(1M)는 각 모듈에 대해 다음 통계 값을 보고합니다(자세한 내용은 fmstat(1M) 매뉴얼 페이지 참조).

  • module: fmadm config에서 보고된 모듈 이름
  • ev_recv: 모듈에서 수신하는 이벤트 수
  • ev_acpt: 진단과 관련된 모듈에서 허용하는 이벤트 수
  • wait: 모듈의 검사 수행을 대기하는 평균 이벤트 수
  • svc_t: 모듈에서 수신하는 이벤트의 평균 서비스 시간(단위: 밀리초)
  • %w: 처리를 대기하는 이벤트가 있었던 시간(%)
  • %b: 모듈이 이벤트 처리로 인해 사용 중이었던 시간(%)
  • open: 모듈에서 소유하는 활성 케이스 수
  • solve: 모듈이 로드된 이후 모듈에서 해결한 케이스 수
  • memsz: 모듈에서 현재 할당하는 동적 메모리 양
  • bufsz: 모듈에서 현재 할당하는 영구 버퍼 공간 양

예측적 자가 치유의 Fault Manager 예

CPU 오류가 발생하고 나면 관리자는 콘솔과 syslog에 기록된 다음 메시지를 볼 수 있습니다.

SUNW-MSG-ID: SUN4U-8000-6H, TYPE: Fault, VER: 1, SEVERITY: Major
EVENT-TIME: Sun Oct 17 14:15:50 PDT 2004
PLATFORM: SUNW,Sun-Blade-1000, CSN: -, HOSTNAME: myhost
EVENT-ID: 64fe6c23-12b7-ccd1-f0a7-b531941738f8
DESC: The number of errors associated with this CPU has exceeded acceptable levels. 
Refer to http://sun.com/msg/SUN4U-8000-6H for more information.
AUTO-RESPONSE: An attempt will be made to remove the affected CPU from service.
IMPACT: Performance of this system may be affected.
REC-ACTION: Schedule a repair procedure to replace the affected CPU. Use fmdump 
-v -u <EVENT_ID> to identify the CPU.

CPU 상태가 ok에서 faulted로 변경되고, 이 CPU를 사용하는 프로세스가 종료되며, CPU가 오프라인 상태로 됩니다. CPU 상태는 psrinfo(1M) 명령을 사용하여 확인할 수 있습니다.

psrinfo

0	on-line   since 09/27/2004 16:57:30
1	faulted   since 10/17/2004 14:15:50

오류에 대한 보다 자세한 내용을 참조하려면 EVENT-ID를 사용하여 오류 메시지에서 나열된 fmdump(1M) 명령을 실행합니다. 출력에서는 CPU 1에 문제가 있으며, Slot 1의 구성 요소를 교체해야 한다고 표시됩니다. 결함 있는 부분의 위치를 나타내는 텍스트 Slot 1은 마더보드에서 실크 스크린된 상태로 찾을 수 있습니다.

fmdump -v -u 64fe6c23-12b7-ccd1-f0a7-b531941738f8

TIME                 UUID                                 SUNW-MSG-ID
Oct 17 14:15:50.1630 64fe6c23-12b7-ccd1-f0a7-b531941738f8 SUN4U-8000-6H
  100%  fault.cpu.ultraSPARC-III.l2cachedata
         FRU: hc:///component=Slot 1
        rsrc: cpu:///cpuid=1/serial=1107C270C8A

CPU 교체품이 배송되고 나면 Slot 1에서 결함 있는 CPU를 교체하고 다시 활성화할 수 있습니다.


Solaris Service Manager

소프트웨어 오류를 좀 더 잘 처리하기 위해 Sun은 서비스를 시작하고 모니터하는 방식을 다시 설계했습니다. 기존의 /etc/init.d 시작 스크립트를 대신하여 Solaris Service Manager의 서비스 관리 프레임워크(smf)를 사용하여 프로그램을 시작, 중지, 수정 및 모니터할 수 있도록 Solaris 10 OS의 많은 프로그램이 변환되었습니다. 또한 Service Manager는 소프트웨어의 상호 종속성을 식별하고, 서비스가 정확한 순서대로 시작되는지 확인하는 데 사용됩니다. sendmail과 같은 서비스가 갑자기 중지되면 Service Manager는 자동으로 모든 sendmail 서비스 요구 사항이 실행 중인지 확인하고, 필요한 프로그램을 다시 만듭니다. 하드웨어 오류가 발생하여 하드웨어가 오프라인 상태가 되는 경우 Service Manager는 서비스에서 하드웨어 제거를 위해 중지해야 했던 프로그램을 Service Manager 제어 하에 다시 시작할 수 있습니다.

Service Manager의 제어 영역에 있는 각 서비스는 매니페스트라고 하는 XML 구성 파일에 의해 제어되며, 이 파일에는 서비스 이름, 유형, 종속성 및 기타 중요 정보가 정의되어 있습니다. 이러한 매니페스트는 리포지토리에 저장되어 리포지토리 데몬인 svc.configd(1M)에 의해 확인되고 수정될 수 있습니다. 마스터 재시작기 데몬인 svc.startd(1M)에서 리포지토리를 읽습니다. 이 데몬은 종속성을 평가하고 필요한 경우 서비스를 초기화합니다. 기존의 inetd 서비스는 이제 Service Manager에 포함됩니다. Service Manager에서 활성화된 다른 프로그램과 같은 메커니즘을 통해 inetd 서비스를 활성화하고, 비활성화하거나 다시 시작할 수 있습니다.

Service Manager 명령줄 도구

Service Manager는 다양한 프로그램으로 구성되어 있으며, 이 중 일부는 관리자에 의해 서비스와 서비스 등록 정보를 보고 관리하는 데 사용됩니다. 이러한 명령에는 svcadm(1M), svcprop(1), svcs(1)svccfg(1M)가 포함되어 있습니다. 또한 명령 inetconv(1M)inetadm(1M)이 있어, 기존의 inetd 서비스를 전환하고 Service Manager 프레임워크에서 이 서비스를 관리하는 데 도움이 됩니다.

svcadm(1M) 명령에서는 서비스 구성 리포지토리에 있는 서비스 인스턴스 활성화, 비활성화 및 상태 조작이 허용됩니다. 이러한 등록 정보를 수정하면 담당 위임 재시작기가 적절한 상태로 서비스 인스턴스를 이동하는 조치를 취하게 됩니다. 서비스가 위임되지 않으면 마스터 재시작기가 이 기능을 수행합니다. -v 전환은 표준 출력에 상세 정보를 인쇄합니다. svcadm(1M)에 대한 유효한 하위 명령은 다음과 같습니다.

  • disable [-t] [FMRI | pattern]: 피연산자에 의해 지정된 서비스 인스턴스를 비활성화합니다. -t 옵션이 지정되면 인스턴스는 재부트 시 이전에 사용한 설정(비활성화되어 있을 수 있음)으로 되돌립니다.
  • enable [-rt] [FMRI | pattern]: 피연산자에 의해 지정된 서비스 인스턴스를 활성화합니다. -r 옵션이 지정되면 인스턴스가 활성화되어 순환적으로 종속성도 활성화됩니다. -t 옵션이 지정되면 인스턴스는 재부트 시 이전에 사용한 설정(활성화되어 있을 수 있음)으로 되돌립니다.
  • refresh [FMRI| pattern]: 피연산자에 의해 지정된 서비스 인스턴스를 새로 고칩니다. 인스턴스는 구성을 다시 읽어야 합니다.
  • restart [FMRI| pattern]: 피연산자에 의해 지정된 서비스 인스턴스를 다시 시작합니다.
  • delegate restarter_FMRI [FMRI | pattern]: 지정된 인스턴스의 재시작기 할당을 restarter_FMRI 등록 정보에서 지정한 재시작기로 변경합니다. 인스턴스를 svc.startd(1M)로 다시 위임하는 경우도 이에 해당합니다. 다시 위임을 수행하려면 재시작 작업을 적용해야 합니다. 일부 재시작기에서는 동일한 기존 응용 프로그램 모델을 지원하지 않습니다. 따라서 잠재적인 위임 중 일부에서는 작동 중인 서비스 인스턴스가 발생합니다.
  • mark [-It] instance_state [FMRI| pattern]: 피연산자에 의해 지정된 서비스 인스턴스를 지정된 instance_state인 성능 저하됨 또는 유지 보수로 이동합니다. 서비스는 성능 저하됨 상태에서 사장되도록 온라인 상태에 있어야 합니다. -I 옵션이 지정되면 서비스 인스턴스가 지정된 상태로 즉시 이동합니다. -t 옵션이 지정되어 있으면 사장은 일시적으로 현재 시스템 인스턴스의 수명에서만 존재합니다. 일시적 사장 옵션은 성능 저하됨 상태에서는 사용할 수 없습니다.
  • milestone [-d] milestone_FMRI: 시스템을 지정된 마일스톤으로 이동합니다. 지정된 마일스톤이 직/간접적으로 의존하지 않는 모든 서비스는 일시적으로 비활성화됩니다. -d 옵션이 지정되면 지정된 마일스톤이 기본 마지막 마일스톤이 되어 재부트 중에 존재합니다.
  • clear [FMRI| pattern]: 유지 보수 상태에 있는 서비스의 경우 각 피연산자에서 지정한 서비스 인스턴스를 초기화되지 않음 상태로 만들어 다시 온라인 상태로 설정할 수 있습니다. mark 하위 명령으로 성능 저하됨 상태에 배치된 서비스의 경우에는 서비스를 다시 온라인 상태로 만듭니다.

svcprop(1) 프로그램은 서비스 구성 리포지토리의 등록 정보 값을 인쇄합니다. 이 등록 정보는 -p 옵션과 FMRI 피연산자에 의해 선택됩니다. 기본적으로 단일 등록 정보가 선택되어 있으면 값은 단일 행에서 공백으로 구분되어 인쇄됩니다. 지원되는 옵션은 다음과 같습니다.

  • -c: 현재 등록 정보 값을 컴퍼지션 없이 검색합니다.
  • -f: FMRI별로 등록 정보를 지정합니다. 옵션 -t의 기능을 포함하고 있습니다.
  • -p [name/]name: 피연산자에 의해 지정된 등록 정보 그룹, 인스턴스 또는 서비스 각각에 대해 이름이 지정된 등록 정보 또는 등록 정보 그룹 값을 인쇄합니다.
  • -q: 변화가 없습니다. 어떤 출력도 발생하지 않습니다.
  • -s snapshot: 이름이 지정된 스냅샷을 사용하여 지정된 등록 정보 또는 등록 정보 그룹을 검색합니다. 지정된 등록 정보 그룹이 스냅샷에 표시되지 않으면 현재 등록 정보 값이 검사됩니다.
  • -t: 멀티 등록 정보 출력 형식을 사용합니다.
  • -v: 자세한 표시입니다. 옵션 -q가 사용되더라도 존재하지 않는 등록 정보에 대한 오류 메시지를 인쇄합니다.
  • -w: 선택한 등록 정보 그룹 또는 등록 정보가 인쇄 전 변경될 수 있도록 대기합니다.

svcs(1) 명령은 서비스 구성 리포지토리에 기록된 대로 서비스 인스턴스에 대한 정보를 표시합니다. svcs(1) 명령의 3가지 양식은 다음과 같습니다.

 
svcs [-aHpv?] [-o col[,col]...] [-R instance_FMRI]... 
              [-sS col]... [FMRI | pattern] ...

svcs {-d | -D}  [-Hpv?] [-o col[,co= l]...]  [-sS col]... 
                [FMRI | pattern] ...

svcs -l [FMRI | pattern] ...

첫 번째 양식에서는 인수에 의해 지정된 서비스 인스턴스에 대해 한 줄로 된 상태 나열을 인쇄합니다. 각 인스턴스는 인수 없이 한 번씩만 나열됩니다. 즉, 일시적으로 비활성화 상태여도 모든 활성화된 서비스 인스턴스가 나열됩니다. 두 번째 명령 양식에서는 인수에 의해 지정된 서비스 인스턴스의 종속성에 대해 한 줄로 된 상태 나열을 인쇄하고, 세 번째 양식에서는 특정 서비스 및 인스턴스에 대한 상세 정보를 인쇄합니다. 3개의 명령 설명에서 위에 표시된 옵션은 다음과 같습니다.

  • -?: 열 지정자를 포함한 확장된 사용 메시지를 표시합니다.
  • -a: 비활성화된 서비스 인스턴스도 선택합니다.
  • -d: 지정된 서비스 인스턴스가 의존하는 서비스 또는 서비스 인스턴스를 나열합니다.
  • -D: 지정된 서비스 또는 서비스 인스턴스에 의존하는 서비스 인스턴스를 나열합니다.
  • -H: 열 헤더를 생략합니다.
  • -l: 각 행에 서비스 속성 한 개가 표시된 상태에서 선택한 서비스 및 서비스 인스턴스에 대한 사용 가능한 모든 정보를 표시합니다. 다양한 인스턴스 정보는 빈 행에 의해 구분됩니다.
  • -o col[,col]...: 지정된 열을 인쇄합니다. 각 col은 열 이름이어야 합니다.
  • -p: 각 서비스 인스턴스와 연결된 프로세스를 나열합니다. 서비스 인스턴스에는 연결된 프로세스가 없을 수도 있습니다. 프로세스 ID, 시작 시간 및 명령 이름(ps(1)PID, STIMECMD 필드)이 각 프로세스별로 표시됩니다.
  • -R instance_FMRI: 재시작기로 지정된 서비스 인스턴스가 있는 서비스 인스턴스를 선택합니다.
  • -s col: 열별로 출력을 정렬합니다. col은 열 이름이어야 합니다. 여러 개의 옵션이 부수적으로 작동합니다.
  • -S col: 옵션과 반대 방향으로 col별로 정렬합니다.
  • -v: 자세한 열을 표시합니다(STATE, NSTATE, STIME, CTIDFMRI).

svcs(1) 명령으로 사용되는 열 이름은 대소문자를 구분하며, 다음과 같습니다.

  • CTID: 서비스 인스턴스의 주 계약 ID입니다(계약이 있는 경우).
  • DESC: 템플릿 요소에서의 서비스에 대한 간략한 설명입니다. 서비스에는 사용할 수 없는 설명이 없을 수도 있습니다. 이 경우 하이픈이 빈 값을 나타내도록 사용됩니다.
  • FMRI: 서비스 인스턴스의 FMRI입니다.
  • INST: 서비스 인스턴스의 인스턴스 이름입니다.
  • NSTA: STA 열 설명에서 지정한 대로 서비스 인스턴스의 축약된 다음 상태입니다. 하이픈은 인스턴스가 전환하고 있지 않음을 나타내며, 그렇지 않은 경우에는 STA와 같습니다.
  • NSTATE: 서비스의 다음 상태입니다. 하이픈은 인스턴스가 전환하고 있지 않음을 나타내는 데 사용되며, 그렇지 않은 경우에는 STATE와 같습니다.
  • SCOPE: 서비스 인스턴스의 범위 이름입니다.
  • SVC: 서비스 인스턴스의 서비스 이름입니다.
  • STA: 서비스 인스턴스의 축약된 상태입니다.
  • STATE: 서비스 인스턴스의 상태입니다. NSTA 또는 NSTATE 열이 표시되지 않은 경우에도 전환 중에 인스턴스에 별표가 추가됩니다.
  • STIME: 서비스 인스턴스가 지난 24시간 내에 현재 상태를 입력했으면 이 열에서는 입력한 시간이 나타납니다. 그렇지 않은 경우에는 입력한 날짜가 나타나며 공백 대신 밑줄로 인쇄됩니다.

svccfg(1M) 명령은 리포지토리의 서비스 구성을 가져오고, 내보내고, 수정하는 데 사용됩니다. 하위 명령을 지정하거나 일련의 하위 명령이 포함되어 있는 명령 파일을 지정하여 대화식으로 호출할 수 있습니다. 3가지 양식의 호출은 다음과 같습니다.

/usr/sbin/svccfg [-v]

/usr/sbin/svccfg [-v] subcommand [args...]

/usr/sbin/svccfg [-v] -f command-file

사용 가능한 모든 하위 명령의 전체 목록은 svccfg(1M) 매뉴얼 페이지를 읽어보십시오.

inetconv(1M) 프로그램은 inetd.conf 항목을 smf(5) 매니페스트로 변환하고, 리포지토리로 가져옵니다. 지정된 입력 파일의 서비스 행과 결과로 생성된 구성 파일 간 일대일 매핑이 있습니다. 기본적으로 구성 파일은 다음 템플릿을 사용하여 이름이 지정됩니다.

<svcname>-<proto>.xml

<svcname> 토큰은 서비스 이름으로 대체되고, <proto> 토큰은 서비스 프로토콜로 대체됩니다. 서비스 이름 또는 프로토콜의 서비스 행에 있는 슬래시 문자는 밑줄로 대체됩니다. 각 결과 매니페스트에는 주석으로 서비스 행이 포함되어 있습니다. 전환 프로세스 중에 서비스 행이 잘못되거나 내부 inetd용으로 발견되는 경우에는 매니페스트가 생성되지 않고, 입력 파일에서 해당 서비스 행은 건너뜁니다. inetconv(1M) 프로그램에서 허용되는 명령줄 옵션은 다음과 같습니다.

  • -?: 사용 메시지를 표시합니다.
  • -e: 입력 파일에서 활성화된 smf(5) 서비스를 활성화합니다.
  • -f: 생성된 매니페스트와 이름이 동일한 서비스 매니페스트가 대상 디렉토리에 있는 경우 이 옵션이 지정되면 inetconv(5)가 해당 매니페스트를 덮어씁니다. 그렇지 않으면 오류 메시지가 생성되어 해당 서비스의 변환이 수행되지 않습니다.
  • -i srcfile: 대체 입력 파일 srcfile의 사양이 허용됩니다. 이 옵션이 지정되지 않으면 inetd.conf(4) 파일이 입력 파일로 사용됩니다.
  • -n: 변환 프로세스 중에 생성된 매니페스트의 자동 가져오기 설정을 해제합니다. 나중에 smf(5) 리포지토리로 생성된 매니페스트를 가져오려면 svccfg(1M) 유틸리티를 사용하여 수행할 수 있습니다.
  • -o destdir: 생성된 구성 파일에 대한 대체 대상 디렉토리 destdir의 사양이 허용됩니다. 이 옵션이 지정되지 않으면 매니페스트가 RPC 서비스인 경우에 /var/svc/manifest/network/rpc에 배치되고, 그렇지 않은 경우에는 /var/svc/manifest/network에 배치됩니다.

inetadm(1M) 프로그램은 inetd에서 제어되는 서비스를 확인하고 구성합니다. 지원되는 옵션은 다음과 같습니다.

  • -?: 사용 메시지를 표시합니다.
  • -l FMRI: name=value 쌍에서 지정된 서비스 인스턴스에 대한 모든 등록 정보를 나열합니다. 또한 등록 정보 값이 inetd에서 제공된 기본값으로부터 상속되면 name=value 쌍은 토큰(기본값)에 의해 식별됩니다. 등록 정보 상속은 등록 정보에 지정된 서비스 인스턴스 기본값이 없는 경우에 발생합니다.
  • -e FMRI: 지정된 서비스 인스턴스를 활성화합니다.
  • -d FMRI: 지정된 서비스를 비활성화합니다.
  • -p: inetd에서 제공된 모든 기본 inet 서비스 등록 정보 값을 name=value 쌍의 양식으로 나열합니다. 값이 부울 유형인 경우에는 TRUE 또는 FALSE로 나열됩니다.
  • -m FMRI property_name=value [property_name=value...]: 식별된 서비스 인스턴스의 지정된 등록 정보 값을 변경합니다. 등록 정보는 공백으로 구분된 name=value 쌍으로 지정됩니다. 인스턴스별 값을 제거하고 등록 정보의 기본값을 허용하려면 값이 없는 등록 정보를 지정하기만 하면 됩니다.
  • -M property_name=value [property_name=value...]: 지정된 inetd 기본 등록 정보 값을 변경합니다. 등록 정보는 공백으로 구분된 name=value 쌍으로 지정됩니다.

예측적 자가 치유의 Service Manager 예

svcs(1)를 사용하여 시스템에서 서비스를 확인합니다.

svcs

....
online         Oct_31   svc:/system/filesystem/local:default
online         Oct_31   svc:/network/rpc/bind:default
online         Oct_31   svc:/system/cron:default
online         Oct_31   svc:/system/sac:default
online         Oct_31   svc:/system/system-log:default
online         Oct_31   svc:/network/inetd:default
online         Oct_31   svc:/network/nis/client:default
online         Oct_31   svc:/network/rpc/keyserv:default
online         Oct_31   svc:/network/rpc/gss:ticotsord
online         Oct_31   svc:/network/security/ktkt_warn:ticotsord
online         Oct_31   svc:/milestone/multi-user:default
....

svcs -p를 사용하여 서비스 및 프로세스 간 관계를 찾아봅니다. 이 예에서는 NFS 서버 서비스를 보여 줍니다.

svcs -p nfs/server 

STATE          STIME    FMRI
online         Oct_12   svc:/network/nfs/server:default
               Oct_31     103729 mountd
               Oct_31     103731 nfsd

서비스에 문제가 있으면 Service Manager 도구를 사용하여 이 문제를 진단하고, 제안되는 조치를 검토하여 문제를 수정합니다. 예를 들어 svcs -x 옵션은 실행 중이 아닌 모든 서비스에 대한 정보와 그 이유에 대해 다음과 같이 나열합니다.

svcs -x

svc:/application/print/server:default (LP Print Service)
 State: disabled since Tue Oct 05 22:27:55 2004
Reason: Disabled by an administrator.
   See: http://sun.com/msg/SMF-8000-05
   See: lpsched(1M)
Impact: 1 service is not running.

http://www.sun.com/msg/에서는 문제 유형에 대한 추가 정보를 제공하고, 추가 데이터를 얻어 문제를 수정하는 단계를 제안합니다.

svccfg(1)를 사용하여 SMTP 서버의 등록 정보를 보고 서버의 종속성을 확인합니다.

svccfg

svc:> select network/smtp
svc:/network/smtp> listprop

system-log                  dependency
system-log/entities         fmri     svc:/system/system-log
system-log/grouping         astring  optional_all
system-log/restart_on       astring  none
system-log/type             astring  service
identity                    dependency
identity/entities           fmri     svc:/system/identity:domain
identity/grouping           astring  require_all
identity/restart_on         astring  refresh
identity/type               astring  service
name-services               dependency
name-services/entities      fmri     svc:/milestone/name-services
name-services/grouping      astring  require_all
name-services/restart_on    astring  refresh
name-services/type          astring  service
network-service             dependency
network-service/entities    fmri     svc:/network/service
network-service/grouping    astring  require_all
network-service/restart_on  astring  none
network-service/type        astring  service
fs-local                    dependency
fs-local/entities           fmri     svc:/system/filesystem/local
fs-local/grouping           astring  require_all
fs-local/restart_on         astring  none
fs-local/type               astring  service
general                     framework
general/entity_stability    astring  Unstable
general/single_instance     boolean  true

리소스

Comments (latest comments first)

Discuss and comment on this resource in the BigAdmin Wiki

Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License.


BigAdmin
  
 
BigAdmin Upgrade Hub