{{note|1=When you are done, to exit <span class="code">screen</span>, press '<span class="code"><ctrl></span>' + '<span class="code">a</span>', release, then press '<span class="code">k</span>'. You will be prompted to kill the session, type '<span class="code">y</span>'.}}
{{note|1=When you are done, to exit <span class="code">screen</span>, press '<span class="code"><ctrl></span>' + '<span class="code">a</span>', release, then press '<span class="code">k</span>'. You will be prompted to kill the session, type '<span class="code">y</span>'.}}
= Port Assignment =
{{note|1=You could use a 48-port switch to host five ''Anvil!'' pairs, but it is '''NOT''' recommended. An important part of [[Intelligent Availability]] is to distribute risk. Multiple two-pair foundation packs serves that purpose best.}}
We will cover the port assignments for two scenarios;
#. Both ICX6540 and ICX6610 switches with 24x 1 Gbps ports configured for two ''Anvil!'' pairs.
#. Using the 10 Gbps ports on the ICX6610 to support one ''Anvil!'' node pair operating at 10 Gbps.
== ICX6450-24 (Applies to all 24-port switches) ==
In this example, we're showing how to cable up a pair of [http://www.brocade.com/products/all/switches/product-details/icx-6430-and-6450-switches/specifications.page ICX6450-24] switches in a very typical configuration. It can drive two [[Anvil!]] systems along with the usual foundation pack.
[[Image:brocade_icx6450-24_iso_01.png|thumb|center|800px|The table below represents a pair of these stacked together.]]
In this example, we're showing how to cable up a pair of [http://www.brocade.com/products/all/switches/product-details/icx-6610-switch/specifications.page ICX6610-48] switches in a rather unusual configuration. It is driving three [[Anvil!]] pairs. However, only the first is running at 10 Gbps while the second and third pair are running at 1 Gbps.
{{note|1=This is the only case where a foundation pack will support three ''Anvil!'' pairs. In all other cases, only two pairs should be used for any given foundation pack in order to maximise isolation in large installations.}}
[[Image:brocade_icx6610-24_iso_01.png|thumb|center|799px|The Brocade [http://www.brocade.com/en/products-services/switches/campus-network-switches/icx-6610-switch.html ICX 6610-24]. Picture by Brocade.]]
The Brocade-brand ICX-series switches, with a focus on the ICX6450 and ICX6610 switches, are great ethernet switches for use in an Anvil! system.
This mini-tutorial covers how to set them up to provide a stacked, hitless failover configuration with appropriate VLANs to isolate and protect the three networks.
Serial Access
Antaira UTS-1110A single-port USB to RS-232] serial adapter. Photo by Antaira.
By default, the APC AP7900 does not have an IP address assigned.
The easiest way to configure an IP address is to log into the PDU over a serial port. Most servers still come with a built-in 9-pin serial port, but most desktops and laptops do not. If you don't have one, many vendors sell USB to serial adapters. The one we've used quite successfully is the Antaira UTS-1110A, but almost any adapter you can find at your local computer store will work.
Note: The m2 Anvil! installs screen on both nodes and Striker dashboards.
We're going to use a program called screen to talk to the PDU over the serial port.
To do this, you need to know what device the PDU's serial cable is plugged into. Some common ones:
Type
Device path
Serial port 1
/dev/ttyS0
Serial port 2
/dev/ttyS1
USB-Connected port 1
/dev/ttyUSB0
USB-Connected port 2
/dev/ttyUSB1
... and so on.
In my case, I'm using the port on a USB to Serial adapter, so I will use '/dev/ttyUSB0'.
Knowing this, we're ready to go!
Open a terminal window and run:
screen/dev/ttyUSB0
Note: When you are done, to exit screen, press '<ctrl>' + 'a', release, then press 'k'. You will be prompted to kill the session, type 'y'.
Connecting
Note: The prompt will reflect the specific switch's model number. In the examples below, we will be working on an ICX6610.
Using the serial port, connect to the switch.
ICX6610-24 Switch>
Resetting To Factory Defaults
Warning: This will erase any loaded licenses. If you have loaded licenses, be sure you have them backed up before proceeding!
This tutorial assumes the switches are starting with a fresh configuration. To assist with that, lets start with the process of resetting the switches to their factory defaults.
ICX6610-24 Switch> erase startup-config
Erase startup-config Done.
dhcp server lease database is also removed
Note: Do not write memory! This will reload the running configuration back onto the system.
Now reboot.
ICX6610-24 Switch> reload
Are you sure? (enter 'y' or 'n'):
Sent SIGKILL to all processes
Requesting system reboot
Restarting syste
Once it comes back up, your switch will be as-new.
Assign IP to Switch
Note: In order to update the firmware or load licenses, you will need to be able to access the switch via an IP address.
Log into the switch over serial and switch to the configuration terminal:
ICX6610-48 Switch#configure terminal
Assign the IP address and subnet mask to the switch:
Note: Our router is at 10.20.255.254, which is what we will ping here. You can choose any target device on the same subnet instead.
Test by pinging an external device on the same subnet:
ICX6610-48 Switch#ping 10.20.255.254
Sending 1, 16-byte ICMP Echo to 10.20.255.254, timeout 5000 msec, TTL 64
Type Control-c to abort
Reply from 10.20.255.254 : bytes=16 time<1ms TTL=64
Success rate is 100 percent (1/1), round-trip min/avg/max=0/0/0 ms.
Good, save the changes:
ICX6610-48 Switch#write memory
Write startup-config done.
Automatic copy to member units: 2
Flash Memory Write (8192 bytes per dot) .
Flash to Flash Done.
Done!
Update the firmware
Warning: Be sure to have your switches on UPSes before flashing them! As with all devices, a power loss during the flash process may cause the switch to become unusable.
Selecting the Firmware Version
TODO: This is an old firmware example, update with newer versions.
Before we start, we need to decide what version of the firmware we want to install. To do this, start by logging in to your switch(es) and check their current firmware version.
ICX6610-48 Switch#show flash
Stack unit 1:
Compressed Pri Code size = 5370497, Version:07.3.00fT7f1 (/foundry/FGS/os/FCXS07300f.bin)
Compressed Sec Code size = 6905002, Version:07.3.00fT7f3 (/foundry/FGS/os/FCXR07300f.bin)
Compressed Boot-Monitor Image size = 370555, Version:07.3.02T7f5
Code Flash Free Space = 52822016
Stack unit 2:
Compressed Pri Code size = 5370497, Version 07.3.00fT7f1 (/foundry/FGS/os/FCXS07300f.bin)
Compressed Sec Code size = 6905002, Version 07.3.00fT7f3 (/foundry/FGS/os/FCXR07300f.bin)
Compressed Boot-Monitor Image size = 370555, Version 07.3.02T7f5
Code Flash Free Space = 52822016
Note that both switches are running the major version 07.3.00f. Being that we're interested in High Availability, we are going to be conservative and upgrade to the latest subversion available. Both switches are 7.3, so that is what we will use. If one had been 7.4, for example, then we would have upgraded both to the latest 7.4 version.
Layer 2 vs Layer 3
These switches have two firmwares;
Layer 2 (S); This is seen in the above output in the current version's flash file "/foundry/FGS/os/FCXS07300f.bin".
Layer 3 (R); This is seen in the above output in the current version's flash file "/foundry/FGS/os/FCXR07300f.bin".
We're only going to update the layer 2 "S" firmware. We don't use the layer 3 features for HA so we won't update them. If you want to updated them, that is fine. The upgrade process below is easily ported to the layer 3 firmware update process.
In the Download by select box, select Ethernet Switches.
Scroll down and click to expand the arrow to the left of "ICX6610" (or your switch model).
Click to expand the version of firmware you want to use. For this tutorial, we're going to be conservative and stay in the same "7.3" release, so we will expand 07300.
Click to expand the most recent subversion for your selected firmware major number. In my case, that is "07300j".
This takes you to a note about export restrictions. Ensure you meet the criteria and then click to acknowledge compliance, the click on "Submit".
You will see the EULA. Read it, understand it and then agree to it by clicking on "I Accept".
Save the file on your computer.
Extracting the Image
Navigate to the downloaded file. It will be a .zip file. Expand it. This will create several directories.
To upload the firmware, we need to copy the image to the root of our TFTP server (/var/lib/tftpboot/ on EL6).
Browse into the extracted 07300j/ICX/Images/ directory (or the matching directory for your firmware). You will see two file:
cd07300j/ICX/Images/
ls-lah
total 12M
drwxr-xr-x 2 root root 4.0K May 8 2014 .
drwxr-xr-x 8 root root 4.0K May 9 2014 ..
-rwxr-xr-x 1 root root 6.7M May 8 2014 FCXR07300j.bin
-rwxr-xr-x 1 root root 5.2M May 8 2014 FCXS07300j.bin
As discussed above, we will be upgrading the layer 2 "S" image. So this is the file we will copy to the TFTP root directory.
cpFCXS07300j.bin/var/lib/tftpboot/
ls -lah /var/lib/tftpboot/FCXS07300j.bin
Performing the Flash
Note: We will be flashing both switches at once as they are stacked.
We're ready to flash! So it's time to log into the switch.
Note: It takes a while to reboot because it will update the firmware of the second node. Please be patient.
ICX6610-48 Switch#show flash
Stack unit 1:
Compressed Pri Code size = 5430491, Version:07.3.00jT7f1 (FCXS07300j.bin)
Compressed Sec Code size = 6905002, Version:07.3.00fT7f3 (/foundry/FGS/os/FCXR07300f.bin)
Compressed Boot-Monitor Image size = 370555, Version:07.3.02T7f5
Code Flash Free Space = 52690944
Stack unit 2:
Compressed Pri Code size = 5430491, Version 07.3.00jT7f1 (FCXS07300j.bin)
Compressed Sec Code size = 6905002, Version 07.3.00fT7f3 (/foundry/FGS/os/FCXR07300f.bin)
Compressed Boot-Monitor Image size = 370555, Version 07.3.02T7f5
Code Flash Free Space = 52690944
Done!
Form the Stack
A "stack" is a way of linking the fabric of two switches, allowing seamless routing of data between the switches and to provide a common configuration and status interface.
The primary benefit, from the Anvil! perspective, is the common configuration interface. It makes it less likely to have differing configurations and thus provides a more reliable configuration. At the same time, the cables used to link the switches route traffic without regard for VLANs, meaning the one set can route traffic for all three networks.
Warning: The stacking cables must be cables up properly! See the connection maps above or consult the switch documentation. Incorrect cabling will prevent stacking from succeeding!
Note: The method of stacking the ICX-series switches is the same, save for the smaller 12-port switches not covered here. As such, this section will use the 6610 switch, but you can follow the steps exactly with the 6450.
Note: All commands can be run from one switch. Communication will be established with the other switch as appropriate.
First, connect to the serial interface and then log in.
ICX6610-24 Switch>enable
Switch to the configuration section:
ICX6610-24 Switch#configure terminal
Enable the stacking feature:
ICX6610-24 Switch(config)#stack enable
Enable stacking. This unit actively participates in stacking
stacking is enable. optical monitoring for stacking ports 1/2/1, 1/2/6 is not available.
Exit the configuration section:
ICX6610-24 Switch(config)#exit
Now start the stack configuration process:
ICX6610-24 Switch#stack secure-setup
Discovering the stack topology...
Current Discovered Topology - RING
Available UPSTREAM units
Hop(s) Id Type Mac Address
1 new ICX6610-24 xxxx.xxxx.xxxx
Available DOWNSTREAM units
Hop(s) Id Type Mac Address
1 new ICX6610-24 xxxx.xxxx.xxxx
Accept the stack topology:
Do you accept the topology (RING) (y/n)?: y
Selected Topology:
Active Id Type Mac Address
1 ICX6610-24 yyyy.yyyy.yyyy
Selected UPSTREAM units
Hop(s) Id Type Mac Address
1 2 ICX6610-24 xxxx.xxxx.xxxx
Selected DOWNSTREAM units
Hop(s) Id Type Mac Address
1 2 ICX6610-24 xxxx.xxxx.xxxx
Note: The process of switching the stack IDs is a little complicated and outside the scope of this tutorial. If you want to force the IDs, please refer to the switch's manual.
Accept the stack unit IDs:
Do you accept the unit id's (y/n)?: y
T=1d20h24m2.8: Election, was alone --> active, ID=1, pri=128, 2U(1-2), A=u1, nbr#=1 1,
T=1d20h24m3.5: Election, was active, no change, ID=1, pri=128, 2U(1-2), A=u1, nbr#=1 1,
reset unit 2: u2 diff bootup id=1
Unit 1 loses all neighbors.
Active unit 1 deletes u2 and its config because it is learned.
Config changed due to add/del units. Do write mem if you want to keep it
The switch will now reboot. Please just wait and watch the output.
T=1d20h26m43.2: Election, was active, no change, ID=1, pri=128, 2U(1-2), A=u1, nbr#=1 1,
Done hot swap: active controller unit 1 sets unit 2 to Ready.
Config changed due to add/del units. Do write mem if you want to keep it
Make the changes permanent:
ICX6610-24 Switch#write memory
Write startup-config done.
Automatic copy to member units: 2
Flash Memory Write (8192 bytes per dot) .
Flash to Flash Done.
A moment later, more boot messages. In this case, the 6610 has internal redundant power supplies, which will come online.
Stack unit 2 Power supply 1 is up
Stack unit 2 Power supply 2 is up
Assigned unit 2 to be standby
start running config sync
Running config sync to standby is complete
Now you can view the new stack topology:
ICX6610-24 Switch#show stack
alone: standalone, D: dynamic config, S: static config
ID Type Role Mac Address Pri State Comment
1 S ICX6610-24 active xxxx.xxxx.xxxx 128 local Ready
2 S ICX6610-24 standby yyyy.yyyy.yyyy 0 remote Ready
active standby
+---+ +---+
=2/1| 1 |2/6==2/1| 2 |2/6=
| +---+ +---+ |
| |
|------------------------|
Standby u2 - No hitless failover. Reason: hitless-failover not configured
Current stack management MAC is xxxx.xxxx.xxxx
Note: no "stack mac" config. My MAC will change after failover.
Warning: These are critical step for surviving switch recovery!
Configure the stack to handle switch "hitless" failure and recovery. This allows a switch to rejoin the stack without causing the existing switch to block traffic.
Switch to the configuration terminal again:
ICX6610-24 Switch#config terminal
Enable hitless-failover:
ICX6610-24 Switch(config)#hitless-failover enable
Note: Brocade's representation of MAC addresses is in 'aabb.ccdd.eeff' format, as opposed to the usual 'aa:bb:cc:dd:ee:ff' format.
We don't want the MAC address to change depending on which switch is master, so we need to specify a MAC address to use for the stack. In this case, I always copy stack unit 1's real MAC address.
ICX6610-24 Switch(config)#stack mac cc4e.24b9.5624
Last, switch to unit 2:
ICX6610-24 Switch(config)#stack unit 2
Change it's priority to match the priority of unit 1.
ICX6610-24 Switch(config-unit-2)#priority 128
Priority change needs 120 seconds to take effect.
Note that the changes will take two minutes. We don't need to wait, however. Switch back to switch 1.
ICX6610-24 Switch(config-unit-2)#exit
Make the changes permanent:
ICX6610-24 Switch(config)#write memory
Write startup-config done.
Automatic copy to member units: 2
Flash Memory Write (8192 bytes per dot) .
Flash to Flash Done.
Two minutes after you change the stack priority, the switch run an election.
Will do election in 30 sec due to priority change
Will do election in 10 sec due to priority change
T=1d20h35m20.2: Election, was active, no change, ID=1, pri=128, 2U(1-2), A=u1, nbr#=1 1,
Verify the stack is configured the way we want.
ICX6610-24 Switch(config)#show stack
alone: standalone, D: dynamic config, S: static config
ID Type Role Mac Address Pri State Comment
1 S ICX6610-24 active xxxx.xxxx.xxxx 128 local Ready
2 S ICX6610-24 standby yyyy.yyyy.yyyy 128 remote Ready
active standby
+---+ +---+
=2/1| 1 |2/6==2/1| 2 |2/6=
| +---+ +---+ |
| |
|------------------------|
Standby u2 - protocols ready, can failover or manually switch over
Current stack management MAC is xxxx.xxxx.xxxx
Excellent, done!
License Key Management
The ICX6610-series switches ship by default with ports X1 through X8 at 1 Gbps. To upgrade them to 10 Gbps ports, you need to buy a license. Each license allows four ports to be upgraded. In our case, we want to run all eight ports at 10 Gbps, so we will have two licenses per switch.
To get a license, you must purchase the license from a Brocade reseller. With it, you will get a spreadsheet containing a TRANSACTION KEY.
To convert this into a loadable license file, you will need to get the switch's 'LID', then create an account on "My Brocade". You can then combine the LID and the TRANSACTION KEY and Brocade will email you the license key.
Get the License ID (LID)
To get the LID, log into the switch over serial and run:
ICX6610-48 Switch#show version
Copyright (c) 1996-2013 Brocade Communications Systems, Inc.
UNIT 1: compiled on May 10 2013 at 16:48:26 labeled as FCXS07300f
(5370497 bytes) from Primary /foundry/FGS/os/FCXS07300f.bin
SW: Version 07.3.00fT7f1
UNIT 2: compiled on May 10 2013 at 16:48:26 labeled as FCXS07300f
(5370497 bytes) from Primary /foundry/FGS/os/FCXS07300f.bin
SW: Version 07.3.00fT7f1
Boot-Monitor Image size = 370555, Version:07.3.02T7f5 (grz07302)
HW: Stackable ICX6610-48
==========================================================================
UNIT 1: SL 1: ICX6610-48 48-port Management Module
Serial #: xxxxxxxxxxx
License: BASE_SOFT_PACKAGE (LID: yyyyyyyyyyy)
P-ENGINE 0: type E02B, rev 01
P-ENGINE 1: type E02B, rev 01
==========================================================================
UNIT 1: SL 2: ICX6610-QSFP 10-port 160G Module
==========================================================================
UNIT 1: SL 3: ICX6610-8-port Dual Mode(SFP/SFP+) Module
==========================================================================
UNIT 2: SL 1: ICX6610-48 48-port Management Module
Serial #: aaaaaaaaaaa
License: BASE_SOFT_PACKAGE (LID: bbbbbbbbbbb)
P-ENGINE 0: type E02B, rev 01
P-ENGINE 1: type E02B, rev 01
==========================================================================
UNIT 2: SL 2: ICX6610-QSFP 10-port 160G Module
==========================================================================
UNIT 2: SL 3: ICX6610-8-port Dual Mode(SFP/SFP+) Module
==========================================================================
800 MHz Power PC processor 8544E (version 0021/0023) 400 MHz bus
65536 KB flash memory
512 MB DRAM
STACKID 1 system uptime is 1 days 17 hours 8 minutes 17 seconds
STACKID 2 system uptime is 22 hours 36 minutes 24 seconds
The system : started=warm start reloaded=by "reload"
My stack unit ID = 1, bootup role = active
Note the LID for each switch.
Navigating Brocade's Website
TODO: Make sure this is still accurate now that their website has been updated.
Hover over the top-left 'License Management' button. A drop-down menu will appear. Hover over 'Brocade IP/ADP'. Another pop-out menu will appear, click on 'License Generation with Transaction Key'.
A form will appear. Fill it our as instructed. Check to accept the EULA and then click 'Add'.
IF YOU ARE ADDING TWO LICENSES TO ONE SWITCH:
Fill out the LID and Transaction key for the next license, again accept the EULA and click 'Add' again.
Once all licenses for the specified switch are added, click on 'Generate'.
If all was well, you will be shown a summary and an email with the license will be emailed to you.
Repeat as needed for each switch.
Installing Keys
Once you get the license file from Brocade, copy the key to the root of your TFTP server (/var/lib/tftpboot/ on EL6).
Note the LID number and which stack ID. In this case, I renamed the license files so that an-switch01_XXXXXXXXXXX.xml, where XXXXXXXXXXX is the switch's LID. In the example below, I will load two licenses, one for either switch in the stack.
First license:
ICX6610-24 Switch#copy tftp license 10.255.255.254 an-switch01_XXXXXXXXXXX.xml unit 1
Flash Memory Write (8192 bytes per dot) .
Copy Software License from TFTP to Flash Done.
T=1d20h6m27.7: Election, was active, no change, ID=1, pri=128, 2U(1-2), A=u1, nbr#=1 1,
Second license:
ICX6610-24 Switch#copy tftp license 10.255.255.254 an-switch02_XXXXXXXXXXX.xml unit 2
Flash Memory Write (8192 bytes per dot) .
Copy Software License from TFTP to Flash Done.
Copy software license to stack unit 2 success
Flash Memory Write (8192 bytes per dot) .
T=1d20h7m50.1: Election, was active, no change, ID=1, pri=128, 2U(1-2), A=u1, nbr#=1 1,
Show the licenses:
ICX6610-24 Switch#show license
Index License Name Lid License Type Status License Period License Capacity
Stack unit 1:
1 ICX6610-10G-LIC-POD xxxxxxxxxxx Normal Active Unlimited 8
Stack unit 2:
1 ICX6610-10G-LIC-POD aaaaaaaaaaa Normal Active Unlimited 8
Save the changes:
ICX6610-24 Switch#write memory
TODO: Does the user need to switch to switch 2 in the stack first?
Repeat for the second switch.
Enable 10 Gbps Ports
After installing license files to upgrade the eight 1 Gbps SFP+ ports to run as 10 Gbps, we need to actually enable the ports. This may seem silly, but consider that the upgrades are sold in lots of 4-ports at a time. This step would allow you to specify which four ports were upgraded. In our case, we upgraded them all.
Switch to the configuration terminal:
ICX6610-48 Switch#config terminal
Select the interfaces you want to upgrade. You can do one at a time, or multiple at once. We're upgrading all eight so we'll do them all at once:
ICX6610-48 Switch(config)#interface ethernet 1/3/1 to 1/3/8
Write startup-config done.
Automatic copy to member units: 2
ICX6610-48 Switch(config)#Flash Memory Write (8192 bytes per dot) .
Flash to Flash Done.
Deleting Keys
If you need to remove a key (ie: replacing a demo license), you can do so thusly:
ICX6610-24 Switch#license delete unit 1 index 1
ICX6610-24 Switch#show license
License record empty
Enable Jumbo Frames
Note: The ICX6610 support packets up to 10,240 bytes (10 KiB) and the ICX6450 supports 9,216 bytes (9 KiB). That is to say, if jumbo frames are enabled, the MTU of the switch is 9 or 10 KiB, depending on the model.
Jumbo frames are a way to increase performance on a network by allowing more data in a packet's payload, increasing transmission efficiency and reducing the number of packets needed for a given transmission. To work, however, you must be aware of the maximum transmission size of your network interfaces, switches and all other devices between your machine and the receiver. If you enable large MTUs (called "jumbo frames"), be certain to test that you really can use the requested MTU!
The easiest way to do this is to ping the remote machine(s) using 'ping -M do -s X', where 'X' is the desired MTU, minus 28 bytes for packet overhead. That is to say, if you set your MTU to '9216', test by pinging the target with 'ping -M do -s 9188'. See the manual page for 'ping' for more information.
Connect to the switch, log in and enter the configuration terminal:
ICX6610-48 Switch#configure terminal
Enable jumbo frames:
ICX6610-48 Switch(config)#jumbo
Jumbo mode setting requires a reload to take effect!
Save the changes:
ICX6610-48 Switch(config)#write memory
Write startup-config done.
Automatic copy to member units: 2
Flash Memory Write (8192 bytes per dot) .
Flash to Flash Done.
Exit the configuration terminal:
ICX6610-48 Switch(config)#exit
Finally, reboot the switch.
ICX6610-48 Switch#reload
Are you sure? (enter 'y' or 'n'): y
Reload request sent to attached stack member(s)...
Rebooting(0)...
Warning: Test fragmentless pings between all node and dashboard interfaces before starting the Anvil! system! If anything is misconfigured and the requested MTU is not working, the cluster can break!
Any questions, feedback, advice, complaints or meanderings are welcome.