Home / HOW TO ARTICLES- LINUX / How to scan new FC LUNS and SCSI disks in Linux ?

How to scan new FC LUNS and SCSI disks in Linux ?

How to scan new FC LUNS and  SCSI disks in Redhat Linux without rebooting the server?  Most of the Linux beginners have wondering how to do this and this article will be for them.It may look like very simple as we perform this in daily operation to scan luns but system has many work to do in background when you execute storage scanning commands. Redhat says this type of scan can be distributive,since it can cause delays while I/O operation timeout and remove devices unexpectedly from OS.So perform this scan when really you want to scan the disks and LUNS.

Scanning FC-LUN’s in Redhat Linux

1.First find out how many disks are visible in “fdisk -l” .

# fdisk -l 2>/dev/null | egrep '^Disk' | egrep -v 'dm-' | wc -l

2.Find out how many host bus adapter configured in the Linux box.you can use “systool -fc_host -v” to verify available FC in the system.

# ls /sys/class/fc_host
host0  host1

In this case,you need to scan host0 & host1 HBA.

3.If the system virtual memory is too low ,then do not proceed further.If you have enough free virtual memory,then you can proceed with below command to scan new LUNS.

# echo "1" > /sys/class/fc_host/host0/issue_lip
# echo "- - -" > /sys/class/scsi_host/host0/scan
# echo "1" > /sys/class/fc_host/host1/issue_lip
# echo "- - -" > /sys/class/scsi_host/host1/scan

Note: You need to monitor the “issue_lip” in /var/log/messages to determine when the scan will complete.This operation is an asynchronous operation.

 

You can also use rescan-scsi-bus.sh script to detect new LUNS.

# yum install sg3_utils
# ./rescan-scsi-bus.sh


4.Verify if the new LUN is visible or not by counting the available disks.

# fdisk -l 2>/dev/null | egrep '^Disk' | egrep -v 'dm-' | wc -l

If any new LUNS added ,then you can see more count is more then before scanning the LUNS.

Scanning SCSI DISKS in Redhat Linux

1.Finding the existing disk from fdisk.

[root@mylinz1 ~]# fdisk -l |egrep '^Disk' |egrep -v 'dm-'
Disk /dev/sda: 21.5 GB, 21474836480 bytes

2.Find out how many SCSI controller configured.

[root@mylinz1 ~]# ls /sys/class/scsi_host/host
host0 host1 host2

In this case,you need to scan host0,host1 & host2.

3.Scan the SCSI disks using below command.

[root@mylinz1 ~]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@mylinz1 ~]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@mylinz1 ~]# echo "- - -" > /sys/class/scsi_host/host2/scan

4.Verify if the new disks are visible or not.

[root@mylinz1 ~]# fdisk -l |egrep '^Disk' |egrep -v 'dm-'
Disk /dev/sda: 21.5 GB, 21474836480 bytes
Disk /dev/sdb: 1073 MB, 1073741824 bytes
Disk /dev/sdc: 1073 MB, 1073741824 bytes

From Redhat Linux 5.4 onwards, redhat introduced “/usr/bin/rescan-scsi-bus.sh” script to scan all the SCSI bus and update the SCSI layer to reflect new devices.

But most of the time,script will not be able to scan new disks and you need go with echo command.

Do not forget to check out Redhat Enterprise Linux 7 Tutorial .

Here is the step by step guide to scan FC LUNS on Solaris.

Thank you for reading this article.

VMTURBO-CLOUD-CAPACITY

7 comments

  1. Great Article and Keep it up .thx

  2. Thanks ! this helped me a lot!

  3. good one !~~!……!……..!

  4. Good article . Thank you

  5. Hi ,

    Very good explanation , thank you very much….

    Keep it up..

    Thanks.

  6. what has to at “- – -” of command
    echo “- – -” > /sys/class/scsi_host/host0/scan
    or it is the same command we have to execute as it is with host name replacement?
    please let me know, I am new to Linux.

    • Ramakrishna Talluri

      Hi Naresh,
      host# is the available HBA representation you can find the HBA in below location.

      ls /sys/class/fc_host

      if the server has 3 HBA then they will be host0 host1 host2

      then you can scan them using below command as mentioned above

      [root@mylinz1 ~]# echo “- – -” > /sys/class/scsi_host/host0/scan
      [root@mylinz1 ~]# echo “- – -” > /sys/class/scsi_host/host1/scan
      [root@mylinz1 ~]# echo “- – -” > /sys/class/scsi_host/host2/scan

Leave a Reply

Your email address will not be published. Required fields are marked *