1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269
|
This document is a quickstart guide for a user connected to a Fibre Channel
Forwarder (FCF) and not a SW target. It covers the configuration of the kernel
and installation and configuration of Data Center Bridging (DCB), the HBA API
wrapper library, libhbalinux and fcoe-utils.
This document was written using Fedora 11 as the installed operating system.
The instructions may need adjustments for them to work on other
distributions.
##
# Dependencies
###############
git://open-fcoe.org/fcoe/hbaapi_build.git
git://open-fcoe.org/fcoe/libhbalinux.git
git://open-fcoe.org/fcoe/fcoe-utils.git
##
# Kernel Configuration and Compilation
######################################
1) Download kernel source
There are a number of good choices regarding the most appropriate
kernel source for your needs. fcoe-next.git is a repository that may be
unstable, but will have the latest code. Downloading a released kernel
from kernel.org will give you the most stable kernel, but you'll need to
get user space code that matches the kernel version you've chosen. You can
get user space code that matches stable kernels on the Open-FCoE.org
"Downloads" page or you can pull directly from the git repositories using
tags.
2) Configure the kernel
# make menuconfig
Select the following:
Networking Support -> Networking Options
Data Center Bridging
802.1Q VLAN Support
GVRP (GARP VLAN Registration Protocol) support
Networking Support -> Networking Options -> QoS and/or fair queuing
Multi Band Priority Queueing (PRIO)
Hardware Multiqueue-aware Multi Band Queuing (MULTIQ)
Elementary classification (BASIC)
Universal 32bit comparisons w/ hashing (U32)
Extended Matches
U32 key
Actions
SKB Editing
Device Drivers -> SCSI Device Support -> SCSI Low-level drivers
LibFC
LibFCoE
FCoE
Enable the block layer
Block layer SG support v4
Device Drivers -> Network Device Support -> Ethernet (10000 Mbit)
Intel(R) 10GbE PCI Express adapters support
Data Center Bridging (DCB) Support
[ Replace with desired driver if not using Intel adapter. ]
Exit Saving Changes
3) Compile the kernel
# make && make modules_install && make install
If you're going to build fcoe-utils, you can run 'make headers_install'
at this stage to skip a later step.
4) Configure Grub
Change the default kernel so that this new kernel is used when booting
# reboot
##
# DCB
#######
DEPENDENCIES
* libnl
* libconfig
* autoconf
* autotools
* sysconftool
* automake
* libtool
* gcc-c++
PROCESS
1) Obtain the latest source
git clone git://open-lldp.org/lldp/open-lldp
(note: fcoe-utils versions >= 1.0.20 require an lldpad version >= 0.9.43)
2) Obtain libconfig version 1.3.2 or greater included in distribution
devel packages source can be obtained directly from
http://www.hyperrealm.com/libconfig/
3) Build and install libconfig -- see libconfig documentation
4) Obtain and install devel netlink library (libnl) version 1.1 or greater
included in distribution devel packages source can be obtained directly
from http://www.infradead.org/~tgr/libnl/
5) Bootstrap, configure, make and make install
# cd open-lldp
# ./bootstrap.sh
# rpm --eval "%configure" | sh
# make
# make install
##
# HBA API Wrapper Library
##########################
DEPENDENCIES
* autoconf
* autotools
* sysconftool
* automake
* libtool
PROCESS
1) Obtain the source tarball from sourceforge
http://sourceforge.net/projects/hbaapi/
2) Untar the tarball and move its contents to hbaapi_build/
and change into its directory
# tar -xvzf hbaapi_src_2.2.tgz
# mv hbaapi_src_2.2/* hbaapi_build/
# rmdir hbaapi_src_2.2/
# cd hbaapi_build/
3) Bootstrap, configure, make and make install
# ./bootstrap.sh
# rpm --eval "%configure" | sh
# make
# make install
##
# libhbalinux
##############
DEPENDENCIES
* HBA API Wrapper
* autoconf
* autotools
* sysconftool
* automake
* libtool
* libpciaccess-devel
PROCESS
1) Bootstrap, configure, make and make install
# ./bootstrap.sh
# rpm --eval "%configure" | sh
# make
# make install
##
# fcoe-utils
############
DEPENDENCIES
* libnl (see DCB section)
* libhbalinux
* lldpad v0.9.26 or greater (optional configure flag to build without)
* autoconf
* autotools
* sysconftool
* automake
* libtool
PROCESS
1) Bootstrap, configure, make and make install
# ./bootstrap.sh
# rpm --eval "%configure" | sh
# make
# make install
##
# Example Configuration
#######################
This example configures interface eth3 to automatically connect to storage over
a discovered VLAN.
1) Configure FCoE on the interface
# cd /etc/fcoe/
# cp cfg-ethx cfg-eth3
2) Start lldpad and configure the interface for DCB.
# service lldpad start
# dcbtool sc eth3 dcb on
# dcbtool sc eth3 pfc e:1
# dcbtool sc eth3 app:fcoe e:1
As a convenience there is a script that will confirm if DCB has been
configured correctly for FCoE. The script is run as follows,
<fcoe-utils source>/debug/dcbcheck.sh eth3
(note: this is on the root device, not the VLAN)
Follow the suggestions and repeatedly run the script until it states that
DCB is configured correctly.
3) Start fcoe
# service fcoe start
After a few moments your storage should appear (assuming everything is
configured correctly on the fabric)
4) Setup lldpad and fcoe to start when booting
# chkconfig lldpad on
# chkconfig fcoe on
##
# Reporting Errors
##################
Most steps cannot be skipped. Resolve issues before moving forward.
Please run '<fcoe-utils-src>/debug/fcoedump.sh eth3.<VID>-fcoe &>dump.out'
and provide the dump.out file with the bug report. Defects can be filed
against the distribution used, reported to the Ethernet vendor of the
card in use, or mailed to devel@open-fcoe.org.
##
# Debugging Tools
###################
1) Discover VLANs manually
# fipvlan -a
Fibre Channel Forwarders Discovered
interface | VLAN | FCF MAC
------------------------------------
eth3 | 101 | 00:0d:ec:a3:3a:80
VLANs should be automatically discovered by the FCoE start up process which
adds a VLAN to the real device. The VLAN can be identified by the name
ethx.vid-fcoe.
2) fcping can be used to ping targets to verify connectivity.
# fcping -h eth3.<VID>-fcoe -F E10AEF -c 3
sending echo to 0xE10AEF
echo 1 REJECT received 0.116 ms
echo 2 REJECT received 0.222 ms
echo 3 REJECT received 0.226 ms
3 frames sent, 3 received 3 errors, 0.000% loss, avg. rt time 0.188 ms
|