This article describes how to troubleshoot the common problems on Linux/Unix platform.
Question 1: Could you please introduce how to migrate and expand LUN on Linux step by step?
LUN migration between different storage arrays and migration within the same storage are different. You could choose data copy based on array, or host-end software(for example: LVM).
As for LUN expansion, if you choose LVM:
1. Expand LUN capacity on storage side, ususally CLARiiON/VNX/Symmetrix support on linx expansion.
2. Host need to re-scan HBA, so that host could recognize the new capacity of the LUN.
3. LVM should be capable of recognizing the new added capacity of the physical LUN, if not, you need to umount the file system, migrate the data from the original LUN to the new physical LUN, then remove the original LUN from VG, and added the new LUN to VG, so the VG capacity could be expanded accordingly.
4. After VG expansion, you need to add LV capacity.
5. Then you need to consider the file system expansion. If the file systems support online expansion, you could use command line expand them to the whole LV after LV expansion, otherwise, you need to umount the file system and use the file system expansion commands. For those do not support self-expansion, you need to backup the file system, re-create the file system on the expanded LV, and restore the backup file system to the new created file system.
Question 2: When we add a new LUN on Linux (new version), do we need to re-scan to recognize the new disk?
Even on the latest RHEL 7 Linux, you still need to execute the command manually, in order to let the system recognize the new added disks.
The command is:
echo "- - -" > /sys/class/scsi_host/host#/scan
host# represents HBA instance, such as host1.
Or you could re-boot the system.
Question 3: As for “echo "- - -" > /sys/class/scsi_host/host#/scan”, how to find the physical HBA port corresponding to the command? For example, how could I find which port is host1?
After you install the HBA driver on the server, Linux will allocate an instance name for each HBA port, which is Host#. All the allocated HBA instance name information is under /sys/class/fc_host.
For example, you find host3 and host4 under the directory, which means there are two HBA ports(two ports on a HBA or two single port HBA).
Enter the corresponding HBA port directory, the WWPN information of the HBA port is included in the port_name file, you could find the HBA via the WWPN information. (Provided that each WWPN has been recorded before installing the HBA)
Author: Jiawen Zhang
This is helpful. I am a storage admin working with a RHEL/Linux admin that reports hosts can not see LUN 0. All the other devs, 1 - 199, the host sees. I know the host could be configured to see LUN 0 or that the Admin could define it as another number - what do I tell him to do? Hosts are using native multi-pathing.
He is asking me to pull the devs and renumber them, by passing 0. I think he should edit the multipath files.
any advisements or redirection is appreciated.
Did you try rebooting the host? Sometimes rebooting the host could help resolve the issue。
There may be compatibility issue with LUN 0 on some hosts. For example, when a VMware host sees a LUN Z, and the host is subsequently attached to a storage group with a real Host LUN 0, the VMware storage devices must be rescanned TWICE. The first rescan will delete the LUN Z, but it does not add the real Host LUN 0. A second rescan is necessary to put in place the real HLU LUN 0.