======================================================= LUN maniuplation in rhel ======================================================= :Title: LUN maniuplation in rhel :Author: Douglas O'Leary :Description: Commands/processes to manipulate luns in rhel :Date created: 08/2013 :Date updated: 08/2013 :Disclaimer: Standard: Use the information that follows at your own risk. If you screw up a system, don't blame it on me... Overview: ========= These commands are available on the web; but, I'm getting tired of hunting them down - and the ones to deallocate luns aren't out there, from what I've seen: Allocate new lun (without rebooting): ===================================== * Store a copy of the disks before any scans: ``cp /proc/partitions /tmp/pre`` * ID the number of controllers: ``ll /sys/class/scsi_host`` * Execute the scan by putting three '-' separated by spaces into the file called scan under each host# :: for i in $(seq 0 #) do echo '- - -' > /sys/class/scsi_host/host${i}/scan done * If the disks don't show up, and this is a new array that you're adding, execute a storage array scan :: for i in $(seq 0 #) do echo 1 > /sys/class/fc_host/host${i}/issue_lip done * ID any new disks. If no difference, reboot and check again :: cp /proc/partitions /tmp/post diff /tmp/pre /tmp/post * Add wwids to blaclist_exceptions section, if appropriate. Check :doc:`How to ID WWID from lun ` for details on identifying the wwid :: cd /etc; rcsdiff multipath.conf # check it in if differences. # for pv in $(diff /tmp/pre /tmp/post | grep sd | awk '{print $NF}') do scsi_id --page=0x83 --whitelisted --device=/dev/${pv} done| sort -u | while read wwid do print " wwid \"%s\"\n" ${wwid} done | tee -a /etc/multipath.conf vi /etc/multipath.conf # mv newly added wwids to blacklist_exceptions section. ci -l -m'updated blacklist_exceptions" multipath.conf Deallocate luns from a system: ============================== * Ensure luns are not in use: * VGs * Partitions * oracleasm * Get list of disks to remove. You'll need both lists: * If you have a list of sd's, ID multipath devs via ``multipath -ll ${sd}`` * If you have a list of multipath devs, ID the sds via ``multipath -ll ${mpath} | awk '{print $3}'`` * Clean up multipath.conf :: for pv in $(cat list-o-sds) do scsi_id --page=0x83 --whitelisted --device=/dev/${pv} done| sort -u | while read wwid do eval "perl -i -nle 'print unless (m{${wwid}})' /etc/multipath.conf" done * Flush mulitpath:: for mp in $(cat list-o-mpaths) do multipath -f ${mp} done * Eject the device:: for pv in $(cat list-o-sds) do echo 1 > /sys/bloc/${pv}/device/delete done * Possibly reboot if devices aren't gone from /proc/partitions.