탐색 링크 건너뛰기 | |
인쇄 보기 종료 | |
Oracle Solaris 관리: 장치 및 파일 시스템 Oracle Solaris 11 Information Library (한국어) |
다음 섹션에서는 Oracle Solaris OS에서 장치를 관리하는 기능에 대한 개요 정보를 제공합니다. 장치 액세스에 대한 자세한 내용은 장치 액세스를 참조하십시오.
장치 감지 도구를 사용하여 이 Oracle Solaris 릴리스에서 x86 하드웨어가 지원되는지 여부를 식별할 수 있습니다. 자세한 내용은 다음 사이트를 참조하십시오.
http://www.oracle.com/webfolder/technetwork/hcl/hcts/device_detect.jsp
컴퓨터는 일반적으로 다양한 주변 장치와 대용량 저장 장치를 사용합니다. 예를 들어 대부분의 시스템은 디스크 드라이브, 키보드와 마우스 및 자기 백업 매체를 사용합니다. 일반적으로 사용되는 기타 장치에는 다음이 포함됩니다.
DVD 드라이브
프린터 및 플로터
라이트 펜
터치 스크린
디지타이저
태블릿과 스타일러스
Oracle Solaris 소프트웨어는 이러한 모든 장치와 직접 통신하지 않습니다. 각각의 장치 유형에는 서로 다른 데이터 형식, 프로토콜 및 전송 속도가 필요합니다.
장치 드라이버는 운영 체제가 특정 하드웨어와 통신할 수 있게 해 주는 저급 프로그램입니다. 드라이버는 해당 하드웨어에 대해 운영 체제의 "인터프리터" 역할을 담당합니다.
Oracle Solaris 11 릴리스에서는 드라이버 사용자 정의를 /etc/driver/drv 디렉토리에서 수행하며, 이전 릴리스와 같이 /kernel 디렉토리에서 수행하지 않습니다. 이 향상으로 인해 시스템을 업그레이드할 때 드라이버 사용자 정의를 겹쳐 쓰지 않습니다. 업그레이드를 진행하는 동안 /etc/driver/drv 디렉토리에 있는 파일은 보존됩니다.
드라이버 구성을 사용자 정의한다는 것은 보통 장치별 매개변수 또는 모든 장치에 영향을 미치는 전역 등록 정보가 추가되었거나 수정되었음을 의미합니다.
# cp /kernel/drv/sd.conf /etc/driver/drv/sd.conf
예를 들어 sd.conf에는 대상 0, lun 0의 sd 장치에 대한 다음 항목이 포함되어 있습니다.
name="sd" class="scsi" target=0 lun=0;
이 장치에 retries 매개변수를 추가하려면 기존 항목을 다음과 같이 수정합니다.
name="sd" class="scsi" target=0 lun=0 retries=4;
# prtconf -u sd, instance #1 Admin properties: name='retries' type=int items=1 value=00000004
커널은 플랫폼별 구성 요소가 있는 작은 일반 코어와 모듈 세트로 구성됩니다. Oracle Solaris 릴리스에서는 커널이 자동으로 구성됩니다.
커널 모듈은 시스템에서 특정 작업을 수행하는 데 사용되는 하드웨어 또는 소프트웨어 구성 요소입니다. 로드 가능한 커널 모듈의 예로는 장치에 액세스할 때 로드되는 장치 드라이버가 있습니다.
플랫폼 독립 커널은 /kernel/genunix입니다. 플랫폼 특정 구성 요소는 /platform/`uname -m`/kernel/unix입니다.
커널 모듈에 대해서는 아래 표에 설명되어 있습니다.
표 5-2 Solaris 커널 모듈 설명
|
부트 시에 연결되는 장치는 시스템에서 결정합니다. 그러면 커널이 동적으로 자체 구성되며 필요한 모듈을 메모리에 로드합니다. 이때 디스크 장치 및 테이프 장치와 같은 장치에 액세스하면 장치 드라이버가 로드됩니다. 모든 커널 모듈이 필요할 때 자동으로 로드되기 때문에 이 프로세스를 자동 구성이라고 합니다.
/etc/system 파일을 수정하면 커널 모듈의 로드 방법을 사용자 정의할 수 있습니다. 이 파일의 수정에 대한 지침은 system(4)을 참조하십시오.
자동 구성의 이점은 다음과 같습니다.
모듈이 필요할 때 로드되므로 주 메모리가 더 효율적으로 사용됩니다.
새 장치가 시스템에 추가될 때 커널을 재구성할 필요가 없습니다.
커널을 재구성하고 시스템을 재부트하지 않아도 드라이버를 로드 및 테스트할 수 있습니다.
자동 구성은 시스템에 새 장치(및 드라이버)를 추가할 때 사용됩니다. 이전 릴리스에서는 종료된 시스템에 장치를 추가할 경우 재구성 부트를 수행해야 했습니다. 이제는 장치 구성의 향상된 기능으로 종료된 시스템에 장치를 추가해도 재구성 부트를 수행할 필요가 없습니다.
시스템 구성 요소가 핫 플러그 기능을 지원하는 경우에는 시스템이 아직 실행 중인 동안 Oracle Solaris OS에서 장치를 추가, 제거 또는 교체할 수 있습니다. 장치의 핫 플러그 기능에 대한 자세한 내용은 6 장동적으로 장치 구성(작업)을 참조하십시오.
Oracle Solaris 릴리스에는 다양한 표준 장치를 지원하는 데 필요한 장치 드라이버가 포함되어 있습니다. 이러한 드라이버는 /kernel/drv 및 /platform/`uname -m`/kernel/drv 디렉토리에서 찾을 수 있습니다.
그러나 지원되지 않는 장치를 구입한 경우에는 장치를 올바르게 설치, 유지 및 관리하는 데 필요한 소프트웨어를 제조업체에서 제공해야 합니다.
최소한 이 소프트웨어에는 장치 드라이버와 관련 구성(.conf) 파일이 포함됩니다. .conf 파일은 drv 디렉토리에 상주합니다. 장치가 Oracle Solaris 유틸리티와 호환되지 않을 가능성이 있기 때문에 이 소프트웨어에 사용자 정의 유지 관리 및 관리 유틸리티가 포함될 수도 있습니다.
지원되지 않는 장치에 필요한 사항에 대한 자세한 내용은 장치 제조업체에 문의하십시오.
시스템 및 장치 구성 정보를 표시하는 경우에는 세 개의 명령이 사용됩니다.
|
시스템에서 장치 식별에 사용되는 장치 이름에 대한 자세한 내용은 장치 이름 지정 규약을 참조하십시오.
prtconf 및 sysdef 명령에서 다음과 같은 드라이버 관련 메시지가 표시될 수 있습니다.
device, instance #number (driver not attached)
이 메시지가 항상 이 장치에 드라이버를 사용할 수 없다는 것을 의미하는 것은 아닙니다. 이 메시지는 이 노드에 장치가 없거나 장치가 사용되지 않기 때문에 현재 장치 인스턴스에 연결된 드라이버가 없다는 것을 의미합니다. 장치에 액세스하면 드라이버가 자동으로 로드됩니다. 장치가 사용되지 않는 동안은 언로드됩니다.
다음 유틸리티는 지정된 장치를 사용 중인 경우를 감지합니다.
dumpadm
format
mkfs 및 newfs
swap
이러한 향상된 기능에 따라 위의 유틸리티에서 다음과 같은 몇 가지 사용 시나리오를 감지할 수 있습니다.
장치가 ZFS 저장소 풀의 일부인 경우
장치가 덤프 또는 스왑 장치인 겨우
마운트된 파일 시스템 또는 장치에 대한 항목이 /etc/vfstab 파일에 있을 경우
예를 들어, format 유틸리티를 사용하여 활성 장치에 액세스하려고 하면 다음과 비슷한 메시지가 표시됩니다.
# format Searching for disks...done AVAILABLE DISK SELECTIONS: 0. c1t0d0 <FUJITSU-MAY2073RCSUN72G-0401 cyl 8921 alt 2 hd 255 sec 63> /pci@0,0/pci1022,7450@2/pci1000,3060@3/sd@0,0 /dev/chassis/SYS/HD0/disk 1. c1t1d0 <FUJITSU-MAY2073RCSUN72G-0401-68.37GB> /pci@0,0/pci1022,7450@2/pci1000,3060@3/sd@1,0 /dev/chassis/SYS/HD1/disk Specify disk (enter its number): 0 selecting c1t0d0 [disk formatted] /dev/dsk/c1t0d0s0 is part of active ZFS pool rpool. Please see zpool(1M). FORMAT MENU: . . .
prtconf 및 sysdef 명령의 출력을 사용하여 시스템에 연결된 디스크, 테이프 및 DVD 장치를 식별합니다. 이러한 명령의 출력은 장치 인스턴스 옆에 driver not attached 메시지를 표시합니다. 이러한 장치는 항상 시스템 프로세스에 의해 모니터되므로 driver not attached 메시지는 보통 해당 장치 인스턴스에 장비가 없다는 것을 나타냅니다.
sysdef 명령을 사용하여 의사 장치, 로드 가능한 모듈 및 선택된 커널 매개변수를 포함하는 시스템 구성 정보를 표시합니다.
시스템에 연결된 모든 장치를 표시합니다.
예를 들어, SPARC 시스템의 다음 prtconf -v 출력은 시스템에 연결된 디스크 장치를 식별합니다. 자세한 디스크 정보는 장치 보조 노드 섹션에서 설명합니다.
$ /usr/sbin/prtconf -v | more Memory size: 32640 Megabytes System Peripherals (Software Nodes): SUNW,SPARC-Enterprise-T5220 . . . location: /dev/chassis/SUN-Storage-J4400.0918QAKA24/SCSI_Device__2/disk Device Minor Nodes: dev=(27,40) dev_path=/pci@0/pci@0/pci@8/pci@0/pci@a/LSILogic,sas@0/sd@2,0:a spectype=blk type=minor dev_link=/dev/dsk/c4t2d0s0 dev_path=/pci@0/pci@0/pci@8/pci@0/pci@a/LSILogic,sas@0/sd@2,0:a,raw spectype=chr type=minor dev_link=/dev/rdsk/c4t2d0s0 Device Minor Layered Under: mod=zfs accesstype=blk dev_path=/pseudo/zfs@0 Minor properties: name='Nblocks' type=int64 items=1 dev=(27,40) value=0000000074702c8f name='Size' type=int64 items=1 dev=(27,40) value=000000e8e0591e00 . . .
시스템에 연결된 특정 장치 하나의 정보를 표시합니다.
예를 들어, SPARC 시스템의 다음 prtconf 출력은 /dev/dsk/c4t2d0s0의 sd 인스턴스 번호를 표시합니다.
# prtconf -v /dev/dsk/c4t2d0s0 | grep instance sd, instance #5
시스템에 연결된 장치만 표시합니다.
# prtconf | grep -v not
장치 사용 정보를 표시합니다.
예를 들어 다음 fuser 명령은 /dev/console 장치에 액세스하는 프로세스를 표시합니다.
# fuser -d /dev/console /dev/console: 5742o 2269o 20322o 858o
예 5-1 시스템 구성 정보 표시
다음 prtconf 출력은 x86 기반 시스템에 표시됩니다.
# prtconf System Configuration: Oracle Corporation i86pc Memory size: 8192 Megabytes System Peripherals (Software Nodes): i86pc scsi_vhci, instance #0 pci, instance #0 pci108e,4843, instance #0 pci8086,25e2, instance #0 pci8086,3500, instance #7 pci8086,3510, instance #9 pci8086,3518, instance #10 pci108e,4843, instance #0 pci108e,4843, instance #1 pci8086,350c, instance #8 pci8086,25e3 (driver not attached) pci8086,25f8, instance #2 pci108e,286, instance #0 disk, instance #0 disk, instance #2 disk, instance #3 disk, instance #1 pci8086,25e5 (driver not attached) pci8086,25f9 (driver not attached) pci8086,25e7 (driver not attached) pci108e,4843, instance #0 (driver not attached) pci108e,4843, instance #1 pci108e,4843, instance #2 (driver not attached) pci108e,4843 (driver not attached) pci108e,4843 (driver not attached) pci108e,4843 (driver not attached) pci108e,4843 (driver not attached) pci8086,2690, instance #6 pci108e,125e, instance #2 pci108e,125e, instance #3 pci108e,4843, instance #0 pci108e,4843, instance #1 device, instance #0 keyboard, instance #0 mouse, instance #1 pci108e,4843, instance #2 pci108e,4843, instance #3 pci108e,4843, instance #0 storage, instance #0 disk, instance #4 . . .
다음 sysdef 출력은 x86 기반 시스템에서 표시됩니다.
# sysdef * Hostid * 29f10b4d * * i86pc Configuration * * * Devices * +boot (driver not attached) memory (driver not attached) aliases (driver not attached) chosen (driver not attached) i86pc-memory (driver not attached) i86pc-mmu (driver not attached) openprom (driver not attached) options, instance #0 packages (driver not attached) delayed-writes (driver not attached) itu-props (driver not attached) isa, instance #0 motherboard (driver not attached) pnpADP,1542, instance #0 asy, instance #0 asy, instance #1 lp, instance #0 (driver not attached) fdc, instance #0 fd, instance #0 fd, instance #1 (driver not attached) kd (driver not attached) kdmouse (driver not attached) . . .
장치 회수 방식의 경우, FMA(고장 관리 프레임워크)에 따라 장치를 고장으로 격리합니다. 이 기능을 사용하면 고장난 장치를 안전하게 자동으로 비활성화하여 데이터 손실, 데이터 손상, 패닉 및 시스템 정지를 방지할 수 있습니다. 장치가 제거된 후 시스템의 안정성을 고려하여 제거 프로세스가 안전하게 완료됩니다.
중요한 장치는 제거되지 않습니다. 제거된 장치를 수동으로 교체해야 하는 경우 수동 교체 단계를 수행하는 것 이외에 시스템에서 장치가 교체된 것을 인식할 수 있도록 장치를 교체한 후 fmadm repair 명령을 사용합니다.
자세한 내용은 fmadm(1M)을 참조하십시오.
제거된 장치를 인식할 수 있도록 콘솔에 장치 제거에 대한 일반 메시지가 나타나고 /var/adm/messages 파일에 기록됩니다. 예를 들면 다음과 같습니다.
Aug 9 18:14 starbug genunix: [ID 751201 kern.notice] NOTICE: One or more I/O devices have been retired
prtconf 명령을 사용하여 제거된 특정 장치를 식별할 수 있습니다. 예를 들면 다음과 같습니다.
# prtconf . . . pci, instance #2 scsi, instance #0 disk (driver not attached) tape (driver not attached) sd, instance #3 sd, instance #0 (retired) scsi, instance #1 (retired) disk (retired) tape (retired) pci, instance #3 network, instance #2 (driver not attached) network, instance #3 (driver not attached) os-io (driver not attached) iscsi, instance #0 pseudo, instance #0 . . .
다음 단계에 따라 고장난 장치 또는 회수 장치를 해결합니다.
zpool status 또는 fmdump 명령을 사용하여 ZFS 장치 문제나 오류 정보를 검토할 수도 있습니다. ZFS 장치 문제 또는 오류 정보의 경우 Oracle Solaris 관리: ZFS 파일 시스템의 11 장, Oracle Solaris ZFS 문제 해결 및 풀 복구를 참조하십시오.
# fmadm faulty --------------- ------------------------------------ -------------- --------- TIME EVENT-ID MSG-ID SEVERITY --------------- ------------------------------------ -------------- --------- May 06 03:38:06 0376b4b6-fce7-c0f0-ffd9-a0a685376284 ZFS-8000-D3 Major Host : neo-2 Platform : Sun-Fire-X4140 Chassis_id : 0904QAD02C Product_sn : Fault class : fault.fs.zfs.device Affects : zfs://pool=tank/vdev=c26c72a8ffcff889 faulted and taken out of service Problem in : zfs://pool=tank/vdev=c26c72a8ffcff889 faulted and taken out of service Description : A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. Response : No automated response will occur. Impact : Fault tolerance of the pool may be compromised. Action : Run 'zpool status -x' and replace the bad device.
ZFS 저장소 풀에서 고장난 장치를 교체한 후에 장치 오류를 해결합니다. 예를 들면 다음과 같습니다.
# zpool clear rpool c4t0d0s0
간헐적으로 장치 오류가 발생하는데 장치를 교체하지 않은 경우에는 위에 표시된 것과 같이 오류를 해결할 수 있습니다.
# fmadm repair 0376b4b6-fce7-c0f0-ffd9-a0a685376284
# fmadm faulty