<code id='t32fm'><strong id='t32fm'></strong></code>

      <ins id='t32fm'></ins>
        <dl id='t32fm'></dl>
      1. <tr id='t32fm'><strong id='t32fm'></strong><small id='t32fm'></small><button id='t32fm'></button><li id='t32fm'><noscript id='t32fm'><big id='t32fm'></big><dt id='t32fm'></dt></noscript></li></tr><ol id='t32fm'><table id='t32fm'><blockquote id='t32fm'><tbody id='t32fm'></tbody></blockquote></table></ol><u id='t32fm'></u><kbd id='t32fm'><kbd id='t32fm'></kbd></kbd>
      2. <fieldset id='t32fm'></fieldset>
        <i id='t32fm'></i>
        <span id='t32fm'></span>

          <acronym id='t32fm'><em id='t32fm'></em><td id='t32fm'><div id='t32fm'></div></td></acronym><address id='t32fm'><big id='t32fm'><big id='t32fm'></big><legend id='t32fm'></legend></big></address>
            <i id='t32fm'><div id='t32fm'><ins id='t32fm'></ins></div></i>

            Linux系统SCSI磁盘扫描机制解析及命令详细介绍

            • 时间:
            • 浏览:22
            • 来源:124软件资讯网

                先容

                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