分类: 服务器与存储
2008-06-13 15:41:37
“When communicating with SCSI-controlled robotic peripherals on an IBM RS6000 system, Media Manager utilizes a SCSI passthru driver called ovpass. ovpass is not required if the only device being used is the IBM 3590 B11 tape stacker.”
上面这段话引自《NetBackup Media Manager Device Configuration Guide for UNIX, Windows, and Linux》。正确创建ovpass设备,对NBU for AIX的实施来说是非常重要的。
NBU6.0是使用下面这个命令来创建的ovpass设备,和以前的NBU3.4,4.5,5.X没有任何差别。大家肯定都用过这个命令,其实从命令上看比较简单,但是如何正确的得到命令中所需的参数就比较麻烦了。
mkdev -c media_changer-s scsi -t ovpass -p controller -w id,lun
mkdev -c media_changer -s fcp -t ovpass -p controller -w scsi_id,lun
手册中对参数的解释如下:
◆ controller is the logical identifier of the drive’s SCSI adaptor, such as scsi0, scsi1 or vscsi1.
◆ id is the SCSI ID of the robotic connection.
◆ scsi_id is the fibre channel identifier for the N_Port address (D_ID) of the robotic connection.
◆ lun is the logical unit number of the robotic connection.
如果用户使用的是SCSI环境,问题不大都知道如何查id,lun。如果使用的光纤环境的话,scsi_id和lun就比SCSI环境难确定。在这篇文章中我们主要讨论在光纤环境下如何生成ovpass。
从机械手的物理连接上说有两种方法,一种是机械手和磁带机串在一起连到SNC上面,一种是机械手直接联到SAN的交换机上面。针对这两种不同的物理连接方法,我们可以采用如下的方法创建ovpass(类似IBM 3590 B11的带库不在这次的讨论范围)。
1. IBM的磁带库 (类似IBM 3590 B11的带库除外)
这种情况最简单,只要系统安装了Atape,系统就会自动生成机械手的设备文件smc0。根据smc0的设置就可以创建出ovpass。大家注意配置NBU的时候要用ovpass,不要使用smc。所以再创建ovpass前要删掉smc。操作过程忽略。
2. 机械手和磁带机串在一起连到SNC上面
在这种情况中难点是如何得到机械手正确的lun,对于机械手的scsi_id来说它和磁带机的相同,只要在系统能查到磁带机的scsi_id就行了。
a) 通过磁带机得到scsi_id:
#odmget -q "name=rmt0" CuAt
CuAt:
name = "rmt0"
attribute = "scsi_id" ――――》 可以看出scsi_id是:”0x21400”
value = "0x21400"
type = "R"
generic = "D"
rep = "s"
nls_index = 6
…………… <省略若干信息>;
#
b) 确定lun:
如果用户的环境是机械手和驱动器串到一起后再连接到SNC上面,我们可以通过SNC的管理软件就可以知道机械手的lun。强烈推荐使用这种方法。
如果没有SNC的管理界面,再磁带库的液晶面板上面可以查到机械手和驱动器的scsi id。经验之谈是:最好将机械手调到驱动器前,而且机械手和驱动器的scsi最好是连续的。
SNC一般都会占用lun0,其他设备从1开始排。我们只要将其他驱动器的lun找到,如果SNC和驱动器的lun是连续的,那么机械手的就是最大的lun+1。如果SNC和驱动器的lun不是连续的,缺的那个就是机械手的lun。(缺省情况SNC是自动映射lun的,如果用户修改了配置,就必须使用SNC的工具去查机械手的lun,否则很难猜)。
我们可以用这样的方法确定驱动器的lun。
#odmget -q "name=rmt0" CuAt
…………… <省略若干信息>;
CuAt:
name = "rmt0"
attribute = "lun_id" ――――》确定磁带机的lun为2
value = "0x2000000000000"
type = "R"
generic = "D"
rep = "s"
nls_index = 7
…………… <省略若干信息>;
再我这个环境中只有一个驱动器,lun是2,SNC缺省使用0,所以机械手的lun是1.
c) 确定Controll:
#lsdev -Cc tape
rmt0 Available 1A-08-01 Other FC SCSI Tape Drive - 得到卡的编号:1A-08
# lsdev -C |grep -i 1A-08-01
fscsi1 Available 1A-08-01 FC SCSI I/O Controller Protocol Device -- 得到控制器的设备名:fscsi1
hdisk2 Defined 1A-08-01 Other FC SCSI Disk Drive
hdisk3 Available 1A-08-01 Other FC SCSI Disk Drive
hdisk4 Available 1A-08-01 Other FC SCSI Disk Drive
现在就可以使用下面的命令创建ovpass:
mkdev -c media_changer -s fcp -t ovpass -p fscsi1 -w 0x21400,1
3. 机械手和驱动器分别直连或者通过SNC上的不同口连到SAN的交换机上面:
随着纯光纤的带库大批量的被用户使用,这种情况是比较普遍的。再这种环境下,查找机械手的scsi_id就比较麻烦了。方法只有一个,登陆到SAN交换机上,查看和机械手相连的端口的port id。如果机械手是直连SAN 的switch,lun一般为0,如果机械手是通过SNC转上来的,lun一般为1(前提是SNC没接其他设备,如果有就需要用上面介绍的方法找lun)。
switch1g:admin>; portshow 4
portFlags: 0x23805b PRESENT ACTIVE F_PORT G_PORT U_PORT LOGIN NOELP LED ACCEPT
portType: 3.1
portState: 1 Online
portPhys: 6 In_Sync
portScn: 6 F_Port
portRegs: 0x81030000
portData: 0x10f5c510
portId: 021400 ――――》就是scsi_id.
portWwn: 20:04:00:60:69:13:04:9e
Distance: normal
…………… <省略若干信息>;
上面就是最常用的几种方法创建ovpass,建好后要可以通过下面的方法验证ovpass是否能正常工作。
使用tpautoconf看看能否找到机械手,如果能还用用robtest测试一下是否能移带。
# tpautoconf -r
TPAC45 ADIC Scalar 100 3.22 ADIC9U0091A22 -1 -1 -1 -1 /dev/ovpass0 - -