-   Linux - Enterprise (
-   -   Deploying server as Fiber Channel Storage Server on CentOS 7/8 (

kanyoz 05-29-2020 03:58 AM

Deploying server as Fiber Channel Storage Server on CentOS 7/8
I am a bit new to CentOS and have a project coming up where we need to deploy:
1. 3 x PowerEdge R640 servers (in which we propose to install vSphere ESXi 6.7 into each and will be independent hosts)
2. Brocade FC Switch (proposed switch to interconnect the ESXi servers and R740 XD storage server)
3. PowerEdge R740 XD (proposed to install bare-metal CentOS 7/8 with LVM volume management, configured as storage server and the storage presented to the hosts via FC). This is the only part I'm new to and a bit unsure about.

Before proceeding with project, could someone please confirm to me whether they have ever been able to configure a server as a storage target on CentOS and successfully presented to ESXi hosts via Fiber Channel switch (not ISCSI)?

Really need to be sure if this design can work and if possible and if there are any steps that i need to be keen on to ensure to do?

smallpond 05-29-2020 10:12 AM

I was doing this about 10 years ago on RedHat 6. You need target-mode drivers for the FC cards that you plan to use. I was using QLogic 1G and 2G cards with the tcm_fc module for target fabric support. Most target tools are more geared for iSCSI, so I had to go low-level to get stuff set up properly, but it worked well.

Have to ask why do this when setting up a dedicated 10Gbe iSCSI storage network would be the more typical way to do it these days?

kanyoz 05-30-2020 04:15 PM

Thank you so much for your reply smallpond. To answer your question, the equipment and project is unfortunately being funded and provided by a different party who did not consult me when designing the solution (i would have definately opted for ISCSI) and stuff is now already purchased. So we now kinda have to work with the equipment provided.

I have the following steps so far:
1. Install CentOS onto the server
2. Configure Logical Volume Manager
3. Disable initiator mode via options qla2xxx qlini_mode="disabled"
4. Invoke targetcli

Now my questions start from here. For step 5, Should I create a new backstore or is it better to use previously created backstore? Then when creating the FC target next after that step, can i use any wwnn/wwpn or am I required to use the server's specific wwnn/wwpn?

Kindly advise...

smallpond 06-01-2020 10:42 AM

Wow. Now you're stressing my memory. My limited notes say we had several things associated:

Logical volume
iblock mapping of LVM to name and lun
TPG has server portname
TPG ACL has client portname and lun mapping

For multipathing you need to have both server ports in the TPG. You most likely don't care about ALUA.

We had some weirdness involving Persistent Reservations surviving reboots, but I think the end result was have a UPS and don't reboot.

I was always a little fuzzy on WWPN and WWNN. Portname makes sense since it is like MAC for ethernet. Nodename is not so well defined. What would it be when you have FC cards from two different vendors in your system?

kanyoz 06-08-2020 07:16 AM

3 Attachment(s)
Hi smallpond,

1. So i created a logical volume (lv1) in VG (cl) then created a backstore device (my_disk) and mapped it to lv1. (see pic 1).
2. Then i went on to try and instantiate a FC target on the backstore device with command (/qla2xxx create 21:00:00:24:ff:31:4c:48) but
brought back error message "Could not create Qla2xxxFabricModule in configFS". (see pic 2).
3. Kinda stuck here now. Is there something i missed?

Additional info:
1. Already added (options qla2xxx qlini_mode="disabled") into the /etc/modprobe.d/qla2xxx.conf: and cat /sys/module/qla2xxx/parameters/qlini_mode query shows result as disabled.
2. Using targetcli shell version 2.1.fb49, copyright 2011-2013.
3. FC cards are all QLogic cards so vendor difference eliminated.
4. Kernel version running is 4.18.0-147.el8.x86_64

smallpond 06-12-2020 12:19 PM

Not sure about the error. Can you check lsmod to make sure tcm_fc is loaded?

All times are GMT -5. The time now is 10:48 AM.