-
Notifications
You must be signed in to change notification settings - Fork 1
/
README
70 lines (53 loc) · 2.8 KB
/
README
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
Fibre Channel Transport Services on Linux
###############################################
The purpose of this daemon is to add FC network intelligence in host and
host intelligence in FC network. This daemon would interoperate with
Brocade FC fabric in order to improve the response time of the MPIO failovers.
In future, it can also collect the congestion related details and perform
workload analysis, and provide QOS at application level by interoperating with
application performance profiling software.
Prerequisites
For this daemon to be fully functional, following devices are required.
1. A Linux host with FC HBA attached.
2. A Brocade FC network switch which sends the FPIN-LI ELS frame.
3. The FC HBA driver which passes through the FPIN-LI ELS sent from switch
to host.
Usage:
This daemon cannot be launched without HBA driver support.
Currently, the daemon suports only the marginal path failover.
Steps performed during daemon execution:
1. The FC networking switch sends an FPIN-LI ELS frame,
to the HBA port. This frame currently contains the port ID of the HBA port.
2. The HBA driver passes the ELS frame up to the FCTXPTD daemon.
3. The daemon, on receiveing the ELS frame, extracts the HBA port ID in the
frame and translates it to Port WWN. This is done by parsing the
/sys/class/fc_host/host* directory, where one directory is created per HBA
port to the host. This host directory contains the Port ID, Port WWN,
symbolic link to target LUNs etc.
4. Port WWNs of the targets to be failed is populated in a list. These WWNs are
sent by FC networking switch through FPIN-LI ELS frame.
5. Once the WWNs are populated above, the daemon populates all the target IDs
which are visible from the HBA port on which the ELS frame was received.
They will be in the form of targetx:x:x.
6. With the list of targets populated, the daemon parses through the
/sys/class/fc_transport directory, where all the targets which are visible
through HBA ports are stored. Only the targets in the list populated in
point 4, is parsed to get the sd* and dm-* information. A list of sd* which
are to be failed is populated here.
7. Finally, the list populated above is used to set the path to marginal
using multipath libraries.
8. Once the link integrity issues are fixed ,user needs to do port toggling
i.e port disable and port enable to transition the marginal paths to normal.
9. On receving the LINKUP/RSCN events, the daemon will set the marginal paths associated
with host number to normal.
10. User can run the below command to check the status of a path
multipathd show paths format "%d %t %M" .
The sample o/p is below
dev dm_st marginal_st
sda undef normal
sdb active normal
sdc active marginal
Steps to compile:
Please install udev,pthread ,devmapper libraries before we start compiling.
make clean
make