欢迎来到天天文库
浏览记录
ID:12072298
大小:40.50 KB
页数:6页
时间:2018-07-15
《linux系统scsi磁盘扫描》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Linux系统SCSI磁盘扫描机制解析及命令实例最近更新:2013-3-9 2760>之前一直在找除了reboot能识别出新添加lun的方式,偶然的一次机会在微博上发现了,在这里share出来,感谢EMCsupport网站!介绍Linux系统扫描SCSI磁盘有几种方式?Linux新增LUN之后,能否不重启主机就认出设备?如果安装了PowerPath,动态添加/删除LUN的命令是什么?本文总结了Linux主机对磁盘设备进行重新配置的方式,并附加命令实例。更多信息Linux系统提供多重机制以重新扫描SCSI
2、总线并重认系统中加入的SCSI设备。在2.4内核方案中,由于动态LUN扫描机制不具备一致性,往往需要中断I/O。2.6内核里,LUN扫描有了显著改进并添加了动态LUN扫描机制。Linux目前缺乏像drvconfig或ioscan那样允许动态SCSI通道重配的命令。Linux主机对磁盘设备进行重新配置的方式包括:重启系统卸载并重新加载HBA驱动模块Echo/proc下的SCSI设备列表通过/sys下的属性设置运行SCSI扫描通过HBA厂商脚本运行SCSI扫描 系统重启重启主机是检测新添加磁盘设备的可靠方式。
3、在所有I/O停止之后方可重启主机,同时静态或以模块方式连接磁盘驱动。系统初始化时会扫描PCI总线,因此挂载其上的SCSIhostadapter会被扫描到,并生成一个PCIdevice。之后扫描软件会为该PCIdevice加载相应的驱动程序。加载SCSIhost驱动时,其探测函数会初始化SCSIhost,注册中断处理函数,最后调用scsi_scan_host函数扫描scsihostadapter所管理的所有scsi总线。 重新加载HBA驱动通常情况下,HBA驱动在系统中以模块形式加载。从而允许模块被卸载并重
4、新加载,在该过程中SCSI扫描函数得以调用。通常,在卸载HBA驱动之前,SCSI设备的所有I/O都应该停止,卸载文件系统,多路径服务应用也需停止。如果有代理或HBA应用帮助模块,也应当中止。命令示例:例如,rac节点上某台服务器执行fdisk–l命令看不到共享磁盘,可尝试执行如下命令:#modprobe-rlpfc(卸载驱动)#modprobelpfc(加载驱动) /proc下SCSI扫描2.4内核中,/proc文件系统提供了可用SCSI设备的列表。如果系统中SCSI设备重新配置,那么所有这些改变通过ec
5、ho/proc接口反映到SCSI设备中。添加一个设备,主机,channel,targetID,以及磁盘设备的LUN编号会被添加到/proc/scsi/,需指定scsi编号。命令示例:#echo"scsiadd-single-device0123">/proc/scsi/scsi0:主机ID1:channelID2:targetID3:LUN编号该命令会将新磁盘设备添加到/proc/scsi/scsi文件中。如果没有找到相应文件,需为/dev路径下新增磁盘设备创建设备文件名。如果要删除一个磁盘设备,使用适当
6、的主机,channel,targetID及LUN编号运行如下格式命令:#echo"scsiremove-single-device0123">/proc/scsi/scsi0:主机ID1:channelID2:targetID3:LUN编号 /sys下SCSI扫描2.6内核中,HBA驱动将SCAN功能导出至/sys目录下,可用来重新扫描该接口下的SCSI磁盘设备。命令如下:#cd/sys/class/scsi_host/host4/#ls-alscan#echo‘---’>scan‘---’代表chann
7、el,target和LUN编号。以上命令会导致hba4下所有channel,target以及可见LUN被扫描。RHEL5或SUSE10:echo‘---’>/sys/class/scsi_host/host0/scan/sys/class/scsi_host/下面有几个host就扫描几次RHEL4或SUSE9:echo1>>/sys/class/scsi_host/host0/issue_lip同样是/sys/class/scsi_host/下面有几个host就执行几次echo‘---’>>/sys/cl
8、ass/scsi_host/host0/scan 在现有PowerPath环境中增加LUN:1.1.确保存储端已配置好LUN并输出给Linux主机2.2.通过powermt命令获得HBA卡列表,并扫描列表中所有的HBAecho‘---’>/sys/class/scsi_host/host#/scan例如,如果powermt显示列出HBA4和5,使用如下命令开始扫描:echo‘---’>/sys/class/scsi_host/
此文档下载收益归作者所有