欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


Linux下的AWK入门教程
CentOS自动化安装实战
Linux系统中的内存清理和释放命令归纳
ubuntu 命令行中文乱码问题的解决方法
Ubuntu下VirtualBox的vdi文件克隆方法
linux ftp服务器架设配置教程
linux下vim 语法高亮显示方法
linux shell字母转换写法
win7系统u盘被写保护该如何解除
linux 修改文件名
Linux系统SCSI磁盘扫描机制解析及命令详细介绍
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

   介绍

  Linux系统扫描SCSI磁盘有几种方式?Linux新增LUN之后,能否不重启主机就认出设备?如果安装了PowerPath,动态添加/删除LUN的命令是什么?本文总结了Linux主机对磁盘设备进行重新配置的方式,并附加命令实例。

  更多信息

  Linux系统提供多重机制以重新扫描SCSI总线并重认系统中加入的SCSI设备。在2.4内核方案中,由于动态LUN扫描机制不具备一致性,往往需要中断I/O。

  2.6内核里,LUN扫描有了显著改进并添加了动态LUN扫描机制。Linux目前缺乏像drvconfig或ioscan那样允许动态SCSI通道重配的命令。

  Linux主机对磁盘设备进行重新配置的方式包括:

  ◦重启系统

  ◦卸载并重新加载HBA驱动模块

  ◦Echo /proc下的SCSI设备列表

  ◦通过/sys下的属性设置运行SCSI扫描

  ◦通过HBA厂商脚本运行SCSI扫描

  系统重启

  重启主机是检测新添加磁盘设备的可靠方式。在所有I/O停止之后方可重启主机,同时静态或以模块方式连接磁盘驱动。系统初始化时会扫描PCI总线,因此挂载其上的SCSI host adapter会被扫描到,并生成一个PCI device。之后扫描软件会为该PCI device加载相应的驱动程序。加载SCSI host驱动时,其探测函数会初始化SCSI host,注册中断处理函数,最后调用scsi_scan_host函数扫描scsi host adapter所管理的所有scsi总线。

  重新加载HBA驱动

  通常情况下,HBA驱动在系统中以模块形式加载。从而允许模块被卸载并重新加载,在该过程中SCSI扫描函数得以调用。通常,在卸载HBA驱动之前,SCSI设备的所有I/O都应该停止,卸载文件系统,多路径服务应用也需停止。如果有代理或HBA应用帮助模块,也应当中止。

  命令示例:

  例如,rac节点上某台服务器执行fdisk –l命令看不到共享磁盘,可尝试执行如下命令:

  # modprobe -r lpfc(卸载驱动)

  # modprobe lpfc(加载驱动)

  /proc下SCSI扫描

  2.4内核中,/proc文件系统提供了可用SCSI设备的列表。如果系统中SCSI设备重新配置,那么所有这些改变通过echo /proc接口反映到SCSI设备中。添加一个设备,主机,channel,target ID,以及磁盘设备的LUN编号会被添加到/proc/scsi/,需指定scsi编号。

  命令示例:

  # echo "scsi add-single-device 0 1 2 3" > /proc/scsi/scsi

  0:主机ID

  1:channel ID

  2:target ID

  3:LUN编号

  该命令会将新磁盘设备添加到/proc/scsi/scsi文件中。如果没有找到相应文件,需为/dev路径下新增磁盘设备创建设备文件名。

  如果要删除一个磁盘设备,使用适当的主机,channel,target ID及LUN编号运行如下格式命令:

  # echo "scsi remove-single-device 0 1 2 3" > /proc/scsi/scsi

  0:主机ID

  1:channel ID

  2:target ID

  3:LUN编号

  /sys下SCSI扫描

  2.6内核中,HBA驱动将SCAN功能导出至/sys目录下,可用来重新扫描该接口下的SCSI磁盘设备。命令如下:

  # cd /sys/class/scsi_host/host4/

  # ls -al scan

  # echo ‘- - -’ > scan

  ‘- - -’代表channel,target和LUN编号。以上命令会导致hba4下所有channel,target以及可见LUN被扫描。

  RHEL5 或SUSE10:

  echo ‘- - -’ > /sys/class/scsi_host/host0/scan

  /sys/class/scsi_host/ 下面有几个host 就扫描几次

  RHEL4 或SUSE9:

  echo 1 >> /sys/class/scsi_host/host0/issue_lip

  同样是/sys/class/scsi_host/ 下面有几个host 就执行几次

  echo ‘- - -’ >> /sys/class/scsi_host/host0/scan

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号
淳安分站 淳安分站