第五章 管理硬件
1.用sysman查看、管理硬件
sysman可以查看、管理的硬件信息内容包括:
查看硬件层次(View hardware hierarchy)
查看群集信息(View cluster)
查看设备信息(View device information)
查看CPU信息(View central processing unit (CPU) information)
管理CPU(Manage CPUs)
Online Addition/Replacement (OLAR) policy information
2.查看硬件层次(hardware hierarchy)
# /sbin/hwmgr view hierarchy
HWID: hardware component hierarchy
----------------------------------------------
53: platform AlphaServer ES40
2: cpu CPU0
5: bus pci1
6: connection pci1slot4
10: scsi_adapter isp0
11: scsi_bus scsi0
44: disk bus-0-targ-0-lun-0 dsk0
8: connection pci1slot6
12: network ee0
13: bus pci0
14: connection pci0slot1
24: graphics_controller comet0
54: connection pci0slot2
……
通过上面的命令,可以查看硬件的层次信息,包括总线(bus)、控制器等等。输出内容包括:
1)HWID:硬件编号
2)component:组件名称
3)组件的basename
4)硬件的物理位置属性。例如bus-0-targ-0-LUN-0
举例:
查看存储硬件
# hwmgr view hierarchy|grep disk
44: disk bus-0-targ-0-lun-0 dsk0
58: disk bus-1-targ-0-lun-0 dsk8
48: disk bus-2-targ-0-lun-1 dsk3
52: disk bus-2-targ-0-lun-2 dsk7
39: disk fdi0-unit-0 floppy0
59: disk bus-3-targ-0-lun-0 cdrom1
或者用hwmgr view device也可以查看设备信息
3.查看某个硬件的详细信息
# hwmgr get attr -id idnumber
上面的idnumber是HWID,就是hwmgr view hierarchy查看到的HWID内容。
举例:
查看网卡物理地址。假设HWID为12的硬件是网卡。
# hwmgr get attr -id 12|grep MAC
MAC_address = 00-50-8B-BD-4E-8D
查看网卡物理地址也可以这样:
hwmgr get attr -category network|grep MAC
4.查看哪些硬件属性可以修改
我们知道,可以通过hwmgr get attr来获得所有的硬件的属性,也可以用hwmgr get attr | grep settable来获得哪些属性可以修改。
5.查看群集(cluster)
# /sbin/hwmgr view cluster
Member ID State Member HostName
--------- ----- ---------------
1 UP ernie.zok.paq.com (localhost)
2 UP bert.zok.paq.com
3 DOWN bigbird.zok.paq.com
6.查看设备(Devices)
用hwmgr view dev可以查看有哪些设备,包括硬盘、光驱、软驱等。例如:
# hwmgr view dev
HWID: Device Name Mfg Model Location
-----------------------------------------------------------------------
3: scp (unknown) (unknown)
4: /dev/kevm
39: /dev/disk/floppy0c 3.5in floppy fdi0-unit-0
44: /dev/disk/dsk0c COMPAQ BD009122C6 bus-0-targ-0-lun-0
48: /dev/disk/dsk3c DEC HSZ80 bus-2-targ-0-lun-1
52: /dev/disk/dsk7c DEC HSZ80 bus-2-targ-0-lun-2
58: /dev/disk/dsk8c KingStor KR5112U bus-1-targ-0-lun-0
59: /dev/disk/cdrom1c COMPAQ CRD-8402B bus-3-targ-0-lun-0
7.删除SCSI设备
在某些情况下,你可能想从系统中删除某个SCSI设备,例如SCSI设备出错了,而必须替换。用hwmgr的delete选项可以从硬件管理数据库中删除SCSI组件的所有信息。这个操作从内核中撤消设备的注册,删除数据库中这个设备的所有条目,删除设备相关文件。当你删除SCSI设备后,相应的/dev目录下的文件也会被删除。你无法删除当前打开的SCSI组件,如果设备被加载(mount),同样不能删除。
首先我们用hwmgr show scsi来显示scsi设备信息
# hwmgr show scsi
SCSI DEVICE DEVICE DRIVER NUM DEVICE FIRST
HWID: DEVICEID HOSTNAME TYPE SUBTYPE OWNER PATH FILE VALID PATH
--------------------------------------------------------------------------------------------------------------
23: 0 bert disk none 2 1 dsk0 [0/3/0]
24: 1 bert cdrom none 0 1 cdrom0 [0/4/0]
25: 2 bert disk none 0 1 dsk1 [1/2/0]
30: 4 bert tape none 0 1 tape2 [1/6/0]
31: 3 bert disk none 0 1 dsk4 [1/4/0]
34: 5 bert disk none 0 1 dsk7 [2/5/0]
35: 6 bert disk none 0 1 dsk8
在这个例子中,DEVICE OWNER可以看出设备是否被占用。如果DEVICE OWNER不是0,则表示正在使用。另外我们还可以看出dsk8这个设备有问题,因为该设备没有分配有效的路径。这个设备的scsi deviceid是6,我们可以通过下面的命令来删除这个设备。
# hwmgr del scsi -did 6
hwmgr: The delete operation was successful.
8.替换一个出了故障的SCSI设备
当一个SCSI硬盘出了故障的时候,你可能想通过某种方法将故障盘替换掉,例如有一个RAID库,一块硬盘坏了,就可以将换盘热换掉,用hwmgr的redirect选项进行SCSI设备替换。注意,要替换的硬盘不能处于AdvFS或者LSM应用的管理中,替换前必须先从应用中将硬盘从应用中撤出来。下面的例子演示了怎样重新定位设备。
首先查看哪个设备出现了问题:
# hwmgr show scsi
SCSI DEVICE DEVICE DRIVER NUM DEVICE FIRST
HWID: DEVICEID HOSTNAME TYPE SUBTYPE OWNER PATH FILE VALID PATH
--------------------------------------------------------------------------------------------------------------
23: 0 bert disk none 2 1 dsk0 [0/3/0]
24: 1 bert cdrom none 0 1 cdrom0 [0/4/0]
25: 2 bert disk none 0 1 dsk1 [1/2/0]
30: 4 bert tape none 0 1 tape2 [1/6/0]
31: 3 bert disk none 0 1 dsk4
上面显示出HWID为31,DID为3的硬盘disk4坏了。接下来,按照正确的步骤换上好的硬盘。然后用hwmgr scan scsi来重新扫描一下SCSI设备。然后就可以再次用hwmgr show scsi来看新加的SCSI设备信息了。假设新加的设备的did是36,则用下面的命令完成替换:
# /sbin/hwmgr redirect scsi -src 3 -dest 36
9.管理设备特殊文件(device special file)
在绝大多数情况下,设备特殊文件是由系统自己管理的。在操作系统的完全安装过程中,系统会为每个SCSI硬盘和SCSI磁带创建设备特殊文件。当你添加SCSI硬盘或者SCSI磁带的时候,设备会被自动发现并识别,添加到硬件管理数据库。在系统第一次重起的时候,自动调用dsfmgr来为此设备创建设备特殊文件。dn_setup是位于/sbin目录下的一个脚本。这个脚本在系统启动的过程中被自动调用,创建设备特殊文件名。通常,不需要使用dn_setup。用这个命令可以来修复设备名问题或者损坏的设备特殊文件或者数据库文件。
dn_setup的对管理员有用使用选项是-sanity_chck,其他的应该看相关说明。如下:
ü-sanity_check
这个选项检查设备特殊文件和目录层次的一致性。如果检查成功则显示passed。例如:
# dn_setup -sanity_check
Passed.
10.检查和修复设备数据库
在某些情况下,设备数据库有可能被破坏或者设备特殊文件被意外从系统中删除。你可能遇到某个设备不再有效的错误,但是硬件本身可能并没有损坏。如果你怀疑可能是设备特殊文件出现了问题,那么可以用dsfmgr -v命令。用这个命令如果发现存在问题,就可以用dsfmgr -v -F 来修复问题。我特意把/dev/disk/cdrom*给删除了,测试用这个命令来修复。下面是演示:
# dsfmgr -v
dsfmgr: verify all datum for system at /
Default File Tree:
OK.
Device Class Directory Default Database:
OK.
Device Category to Class Directory Database:
OK.
Dev directory structure:
OK.
Device Status Files:
OK.
Dev Nodes:
ERROR node does not exist: /dev/disk/cdrom2b
ERROR node does not exist: /dev/rdisk/cdrom2b
ERROR node does not exist: /dev/disk/cdrom2d
……
Errors: 12
Total errors: 12
# dsfmgr -v -F
dsfmgr: verify with fix all datum for system at /
Default File Tree:
OK.
Device Class Directory Default Database:
OK.
Device Category to Class Directory Database:
OK.
Dev directory structure:
OK.
Device Status Files:
OK.
Dev Nodes:
WARNING node does not exist: /dev/disk/cdrom2b
WARNING node does not exist: /dev/rdisk/cdrom2b
WARNING node does not exist: /dev/disk/cdrom2d
……
OK.
Total warnings: 12
# dsfmgr -v
dsfmgr: verify all datum for system at /
Default File Tree:
OK.
Device Class Directory Default Database:
OK.
Device Category to Class Directory Database:
OK.
Dev directory structure:
OK.
Device Status Files:
OK.
Dev Nodes:
OK.
11.移动设备特殊文件
例如,你有个dsk0,但是你希望dsk0名字应该叫dsk10,那么可以用dsfmgr -m选项来实现。
# /sbin/dsfmgr -m dsk0 dsk10
12.scu的几个常用方法举例
scu是SCSI设备配置实用程序,功能很多,这里举几个我常用的例子。
1)用scu查看有哪些SCSI设备
我们知道可以用hwmgr show scsi来查看SCSI设备,但是在一些老版本中没有hwmgr命令,我们可以用scu show edt来替代。
# scu show edt
CAM Equipment Device Table (EDT) Information:
Bus/Target/Lun Device Type ANSI Vendor ID Product ID Revision N/W
-------------- ----------- ------ --------- ---------------- -------- ---
0 0 0 Direct SCSI-3 COMPAQ BD07265A22 3B00 W
0 1 0 Direct SCSI-3 COMPAQ BD07289BB8 HPB1 W
0 2 0 Direct SCSI-3 COMPAQ BD07289BB8 HPB1 W
0 3 0 Direct SCSI-3 COMPAQ BD07289BB8 HPB1 W
1 0 0 CD-ROM SCSI-2 COMPAQ CD-224E 9.5B N
2)用scu查看某块硬盘容量
首先用scu show edt或者hwmgr show scsi来查看SCSI硬盘信息,得到设备通道情况。比如我们要查bus为0,target为1,lun为0的硬盘的信息,按照如下步骤进行:
# scu
scu> set nexus bus 0 target 1 lun 0
Device: BD07289BB8, Bus: 0, Target: 1, Lun: 0, Type: Direct Access
scu> show capacity
Disk Capacity Information:
Maximum Capacity: 142264000 (69464.844 megabytes)
Block Length: 512
从上面的输出中可以看出这块硬盘的容量大约是70G。(标称73G)
3)测试硬盘介质是否有逻辑坏块。
# scu
scu> set nexus bus 2 target 0 lun 1
Device: HSZ80, Bus: 2, Target: 0, Lun: 1, Type: Direct Access
scu> verify media
Verifying 497680785 blocks (0 - 497680784) on [2/0/1] (HSZ80), please be patient
...
Verifying blocks [ 0 through 65534 ]...
scu: Verify error at logical block number 35971 (0x8c83).
scu: 'verify data' failed on device 'HSZ80' at nexus [2/0/1]
scu: Sense Key = 3 = MEDIUM ERROR - Nonrecoverable medium error, Sense Code/Qual
ifier = (0x80, 0)
scu: Error number 1 occurred on Wed Feb 28 14:41:20 2007
用scu的verify media来检测介质是否有坏块的时候,会检测整个硬盘,遇到错误的时候停止并报错。上面的例子中,报告逻辑块35971有错误。如果报告有错误,并不一定说明硬盘一定有物理坏块了,备份数据后可以将硬盘重做一下再来检测。
用简单的方法解决复杂的问题。
苟日新,日日新,又日新。
---最近比较忙---
欢迎光临我的BLOG:[color=red]游来游去[/color]
http://turner.itpub.net/