If you were to zone 2 Qlogic or Emulex HBAs to see 4 separate fibre ports from the EMC array in the same zone then each path is a disk from the OS standpoint. So each of the following is a "path" even though each path goes to the same physical disk.
Server Array
HBA 1 Port 1 --> Port1 (director if Symmetrix)
HBA 1 Port 1 --> Port2
HBA 1 Port 1 --> Port3
HBA 1 Port 1 --> Port4
HBA 2 Port 1 --> Port1
HBA 2 Port 1 --> Port2
HBA 2 Port 1 --> Port3
HBA 2 Port 1 --> Port4
Or it could be you had if you were using 2 ports on each of the HBAs and 2 ports on the array:
Server Array
HBA 1 Port 1 --> Port1 (director if Symmetrix)
HBA 1 Port 1 --> Port2
HBA 1 Port 2 --> Port1
HBA 1 Port 2 --> Port2
HBA 2 Port 1 --> Port1
HBA 2 Port 1 --> Port2
HBA 2 Port 2 --> Port1
HBA 2 Port 2 --> Port2
A bizarre scenario might be 1 port on 1 HBA in the server to 8 ports on the array. The idea is that each route to the disk that has a unique element from other routes is a "path". You wouldn't really want to do a 1 to 8 like that - the point in multipathing is redundancy.
With mutipaths if you lose 1 port on the server or one port on the array you still have a path to the disk and so long as you're using a multipath setup (e.g. EMC's PowerPath emcpower pseudodevice) then your application or database won't even know it has lost a path as it can still read from and write to the disk.
With EMC's PowerPath you would create a pseudodevice called something like emcpowera (or emcpowerb or emcpowerc etc...) for each disk (or LUN) from the array. That pseudodevice is comprised of the individual paths you saw earlier.
For example on one my servers if I run "powermt display dev=all" I see in part:
Code:
powermt display dev=all
Pseudo name=emcpowerd
CLARiiON ID=APM000000000000 [Production RAC]
Logical device ID=600601608C701D002AD8DA85D480DC11 [LUN 103]
state=alive; policy=CLAROpt; priority=0; queued-IOs=0
Owner: default=SP A, current=SP A
==============================================================================
---------------- Host --------------- - Stor - -- I/O Path - -- Stats ---
### HW Path I/O Paths Interf. Mode State Q-IOs Errors
==============================================================================
2 qla2xxx sdaa SP A5 active alive 0 0
1 qla2xxx sdf SP A4 active alive 0 0
1 qla2xxx sdm SP B4 active alive 0 0
2 qla2xxx sdt SP B5 active alive 0 0
Pseudo name=emcpowerg
CLARiiON ID=APM000000000000 [Production RAC]
Logical device ID=600601608C701D00425A5FDAF6CADE11 [LUN 105]
state=alive; policy=CLAROpt; priority=0; queued-IOs=0
Owner: default=SP A, current=SP A
==============================================================================
---------------- Host --------------- - Stor - -- I/O Path - -- Stats ---
### HW Path I/O Paths Interf. Mode State Q-IOs Errors
==============================================================================
2 qla2xxx sdad SP A5 active alive 0 0
1 qla2xxx sdi SP A4 active alive 0 0
1 qla2xxx sdp SP B4 active alive 0 0
2 qla2xxx sdw SP B5 active alive 0 0
That shows me my pseudodevice emcpowerg is comprised of paths /dev/sdad, /dev/sdi, /dev/sdp and /dev/sdw. Also it shows I have two separate Qlogic HBAs (notice sdad and sdw are #2 while sdi and sdp are on #1) as well as two separate ports on my Clariion (SPs A & B). So I have 4 paths because I have 2 ports on each side. In my database I use /dev/emcpowerg and NOT any of the individual components shown above. That way if /dev/sdad, /dev/sdi and /dev/sdw all failed my disk (LUN) would still be working because /dev/sdp was still there in the emcpowerg pseudodevice.