• <tr id='gxkn6'><strong id='gxkn6'></strong><small id='gxkn6'></small><button id='gxkn6'></button><li id='gxkn6'><noscript id='gxkn6'><big id='gxkn6'></big><dt id='gxkn6'></dt></noscript></li></tr><ol id='gxkn6'><table id='gxkn6'><blockquote id='gxkn6'><tbody id='gxkn6'></tbody></blockquote></table></ol><u id='gxkn6'></u><kbd id='gxkn6'><kbd id='gxkn6'></kbd></kbd>

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

            <span id='gxkn6'></span>

            <acronym id='gxkn6'><em id='gxkn6'></em><td id='gxkn6'><div id='gxkn6'></div></td></acronym><address id='gxkn6'><big id='gxkn6'><big id='gxkn6'></big><legend id='gxkn6'></legend></big></address>
          1. <fieldset id='gxkn6'></fieldset>

            <i id='gxkn6'><div id='gxkn6'><ins id='gxkn6'></ins></div></i><ins id='gxkn6'></ins>
            <dl id='gxkn6'></dl>
            <i id='gxkn6'></i>

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

            • 时间:
            • 浏览:4
            • 来源: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