How to Configure Oracle Linux to Support 1024 LUNs (Doc ID 1533686.1)

Last updated on MARCH 03, 2016

Applies to:

Linux OS - Version Oracle Linux 4.4 and later
Oracle VM - Version 3.0.3 and later
Generic Linux

Goal

There are several limits in the Linux kernel and the storage protocols that affect the number of LUNs that can be addressed on a single target.

 - It depends on the transport. Fibre Channel (FC) and iSCSI support lots of LUNs, parallel SCSI does not.

 - It depends on the programming Host Bus Adapter (HBA)'s interface. Even through the FC protocol itself supports huge LUN counts, the HBA interfaces generally do not expose the full 8-byte LUN ID. Each HBA driver has a module parameter that can be tweaked up to a certain limit. Typically somewhere between 256 and 16K.

 - The SCSI layer also has a limit which can be tweaked via a module parameter. That limit is there because not all devices support the REPORT LUNS command. And we do not want to incrementally scan every target for millions of LUNs. So by default it is capped at 512. "systool" command will give the number of maximum LUNs. It is provided by "sysfsutils" package.


The gating factor for the max LUN count is typically the HBA driver/firmware interface. So while we could go out and say that Unbreakable Enterprise Kernel (UEK) supports N LUNs it is really a question for the HBA vendors to answer. The core SCSI infrastructure in Linux does support thousands of LUNs with a bit of tweaking.

This document describes how to increase the maximum number of LUNs for Linux to 1024.

When Is It Required

If the system needs more LUNs, then a similar message to the following will be received:

kernel: scsi: host 1 channel 0 id 0 lun1005 has a LUN larger than allowed by the host adapter

 

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms