Skip to content

22_Advanced_System_Setup

Marc A. Smith edited this page Mar 3, 2017 · 4 revisions

Kernel Modules

The ESOS kernels (production / debug) are built with most drivers built-in. Generally the HBA, HCA, etc. drivers are left as modules in case the user would like to tweak any parameters via module options. The SCST core, device handlers, and target drivers are also modules.

If you do find you would like to customize any of the module parameters, first exit to the shell (Interface -> Exit to Shell) and then you can create the file '/etc/modprobe.conf' (which will be sync'd to USB if it exists). Below is an example to see the format of the file, we are not recommending you use these settings, its just a sample.

options scst scst_threads=20
options ib_srpt srpt_sq_size=32

You can see the valid parameters for a module using the modinfo command. See the SCST documentation for possible information on tweaking any module parameters.

Synchronize your configuration:

conf_sync.sh

Extra Configuration

If you find that you need to run any extra commands before or after starting SCST (via RA, or rc/init), there are two files you can create/edit in /etc:

  • /etc/pre-scst_xtra_conf
  • /etc/post-scst_xtra_conf

These files can be treated as shell scripts; if either exists, they will be executed during start-up with sh.

The first file ('/etc/pre-scst_xtra_conf') will be executed (if it exists) before any part of SCST is loaded. An example of something you may want to run before loading SCST is adjust the read-ahead value for a back-storage block device (eg, blockdev --setra 2048 /dev/sdb).

The second file ('/etc/post-scst_xtra_conf') will be executed (if it exists) after SCST is fully loaded and configured. If you want to adjust the SMP IRQ affinity for the system, this would probably be a good place for it.

Synchronize your configuration:

conf_sync.sh

InfiniBand Drivers

All of the InfiniBand drivers in ESOS are built as modules; they are all the in-line Linux kernel versions (not OFED). Most popular IB HCAs are supported including IP over InfiniBand (IPoIB). See the 03_Supported_Hardware.md wiki page for more details.

ESOS uses a /etc/rc.d/rc.openibd rc script, similar to the OFED init script, openibd. Like the OFED version, we employ the use of the '/etc/infiniband/openib.conf' module configuration file. Edit this file to control which hardware drivers, and IB modules are loaded. Note: IPoIB is disabled by default. When using Windows Server 2012 initiators with IPoIB, apparently Connected Mode (CM) is not supported.

Synchronize your configuration:

conf_sync.sh

InfiniBand Subnet Manager

The OpenSM IB subnet manager software is also included with ESOS. It is disabled by default, but can be enabled editing the /etc/rc.conf file and setting 'rc.opensm_enable' to 'YES'.

The OpenSM configuration files should be created in the /etc directory (/etc/opensm is the default location). For additional OpenSM IB subnet manager help/information, please see the related OFED documentation.

Synchronize your configuration:

conf_sync.sh

Enabling/Disabling System Services

Some of the ESOS system services can be enabled/disabled; typically this is needed if your specific configuration or setup has conflicting services. A common example is using DRBD on a stand-alone ESOS server, versus using DRBD in a ESOS cluster. In the latter scenario, you would typically want the cluster stack to manage the DRBD resources, so you would disable the 'rc.drbd' service.

Edit the '/etc/rc.conf' file and use 'YES' to enable a service, and 'NO' to disable a service. You can then use the following CLI command syntax to start/stop a service without rebooting:

/etc/rc.d/rc.service_name [start | stop]

Synchronize your configuration:

conf_sync.sh

Customize System Service Options

You can change the service/daemon options for most user-settable rc scripts using the "/etc/rc.conf" file; uncomment the default "rc.NAME_opts" variable and edit it to your liking.

Synchronize your configuration:

conf_sync.sh

NIC Bonding

Linux bonding (EtherChannel) is fully supported in ESOS; in order to configure a bond interface you'll need to initially create them using the shell (Interface -> Exit to Shell) like this (the name format bondX is a requirement):

echo +bond0 > /sys/class/net/bonding_masters

After your NIC bonding interfaces are created, you can then use the TUI to enslave interfaces to the bonding master interfaces (System -> Network Settings). When you choose a "Master" bonding interface in the TUI you can then select the slave interfaces. Then restart the networking when prompted to do so for the changes to take effect. When you select another interface as a slave, if it has any current IP configuration set, those settings will be removed since it will now be a slave to a master bonding interface.

NIC bonding interface parameters are also configured using the ESOS TUI in the Network Settings dialog (for a bonding master interface). The format for the "Bonding Options" box is exactly the same as RHEL's "BONDING_OPTS" setting. Use "key=value" pairs separated by a space (eg, "mode=1 miimon=100" in the text input box. See these pages for additional information on the Linux bonding driver parameters:

Be sure to use the naming format bondX for all NIC bonding interfaces!


Ethernet Bridging

Linux bridge support is also enabled in ESOS. New bridge interfaces need to be created from the CLI (Interface -> Exit to Shell) before using the TUI to configure them.

To add a new bridge interface (the name format brX is a requirement):

brctl addbr br0

Once you've created a bridge, you can then exit the shell, and from the TUI configure the bridge interface (System -> Network Settings). Select the bridge interface then you can select the IP setting (DHCP or static) and select the bridge member interfaces. Apply the settings by restarting the network stack when prompted.

Be sure to use the naming format brX for all bridge interfaces!


Ethernet Auto-negotiation (Speed/Duplex)

You can enable/disable auto-negotiating using the TUI to configure the speed/duplex settings of an interface manually. ESOS utilizes the ethtool utility to perform this configuration.

To disable auto-negotiation and set the speed to "100 Mbps" and duplex to "full", set the following under the "ethtool options" in the TUI (System -> Network Settings):

autoneg off speed 100 duplex full

You can also use this setting to configure additional interface options that are supported using "ethtool -s" -- see the ethtool manual page for details.


VLAN Support

VLAN interfaces can be created from the CLI from the CLI (Interface -> Exit to Shell) before using the TUI to configure them.

To create a new VLAN interface on physical interface "eno1" for VLAN ID "5" use a command like this:

vconfig add eno1 5

After the VLAN interface has been added, you can then exit the shell, and from the TUI configure the VLAN interface (System -> Network Settings). Select the VLAN interface then you can select the IP setting (DHCP or static). Apply the settings by restarting the network stack when prompted.


Next Steps

From here, you can now SSH into your ESOS storage server, configure your back-storage and setup your targets. Continue with 31_Hardware_RAID_Setup or 32_Software_RAID_Setup.