[失敗談] Fedora Server で FC-SAN ターゲットを構築（Emulex）

## はじめに

Fedora Server 41 上で Emulex の FC HBA (LPe1250) を使い、FC ターゲットを構築しようとしたところ、結果としてうまく行きませんでした。その際に調べた内容や実行ログなどをまとめています。同じように試される方の参考になれば幸いです。

## 環境

| 項目      | 内容                                        |
|-----------|---------------------------------------------|
| OS        | Fedora Server 41                           |
| HBA       | Emulex LPe12002 (LPe1250 2ポート)                    |
| ターゲット | LIO (`targetcli`) を使用 (FC ターゲット構築を目標) |
| 接続プロトコル | Fibre Channel (FC)                        |

---

## 1. `targetcli` のインストール

以下のようにして `targetcli` のインストールを行いました。

```bash
dnf install -y python3-targetcli
```

インストール後は `targetcli ls` が使えるようになりました。

---

## 2. `/fabric/fc` が表示されない

インストール後、下記のように `targetcli ls` を実行すると、iSCSI や loopback は見えても `/fabric/fc` が表示されません。

```bash
[root@localhost ~]# targetcli ls
o- / ..................................................................... [...]
  o- backstores .......................................................... [...]
  | o- block .............................................. [Storage Objects: 0]
  | o- fileio ............................................. [Storage Objects: 0]
  | o- pscsi .............................................. [Storage Objects: 0]
  | o- ramdisk ............................................ [Storage Objects: 0]
  o- iscsi ........................................................ [Targets: 0]
  o- loopback ..................................................... [Targets: 0]
  o- vhost ........................................................ [Targets: 0]
```

当然ながら、`targetcli /fabric/fc create wwn=20:00:00:11:22:33:44:55` としても

```bash
No such path /fabric
```

というエラーになります。

---

## 3. HBA ドライバのターゲットモード有効化が不明

Emulex (lpfc) ドライバでイニシエータモードを無効にしてターゲットモードを有効にするためのパラメータを探しましたが、**Broadcom の公式ドキュメントでは以下のように記載**されておりました。

```
> lpfc_enable_fc4_type When enabled, defines the FC4 types that are supported.
> The possible values are:
> ■ 1 = Enables just FCP.
> ■ 3 = Enables both FCP and NVMe (default).
> The default value is 3.
```

その他、ターゲットモードを有効化する公式なパラメータは見当たりませんでした。

---

## 4. モジュールのロード状況

以下のログのように、`tcm_fc` はロードされ、`configfs` もマウントされていました。カーネル設定で `CONFIG_TCM_FC=m` となっていることも確認済みです。

```bash
[root@localhost ~]# lsmod | grep tcm_fc
tcm_fc                 49152  0
libfc                 237568  1 tcm_fc
target_core_mod       593920  3 tcm_fc,iscsi_target_mod

[root@localhost ~]# mount | grep configfs
configfs on /sys/kernel/config type configfs (rw,nosuid,nodev,noexec,relatime)

[root@localhost ~]# grep -i TCM_FC /boot/config-$(uname -r)
CONFIG_TCM_FC=m
```

しかし、`targetcli ls` しても `/fabric/fc` は一切表示されず、dmesg にも特にエラーは出ていない状況。

---

## 5. 調べた情報

1. [Fibre Channel in the Homelab (kenmoini.com)](https://kenmoini.com/post/2024/05/fibre-channel-in-the-homelab/)
   - QLogic HBA 用のターゲットモード有効化パラメータが紹介されており、Emulex とは異なるためそのまま参考にはなりませんでした。
2. [Emulex/Broadcom Fibre Channel Hardware on Linux - Level1Techs Forum](https://forum.level1techs.com/t/emulex-broadcom-fibre-channel-hardware-on-linux/171093/2)
   - Emulex カードでターゲットモードが動くという報告がなく、イニシエータ運用のみ。
3. [Emulex Drivers for Linux Users Guide](https://docs.broadcom.com/doc/elx_DRVLin-UG144-100.pdf)
   - Broadcom 社による Emulex Driver の Linux 向けユーザガイド。

なお、LPe1250 で使えたという確実な情報ソースは見つかりませんでした。「噂程度」はあるようですが、具体的な URL やログが提示されていないため、この記事では記載を控えます。

---

## 6. 結果

- Fedora Server 41 で Emulex LPe1250 をターゲットモードで使おうと試みたが、**公式ドキュメントに有効なパラメータが見当たらない**。
- `tcm_fc` はロードされるが、`/fabric/fc` がまったく表示されず、実質ターゲットを作成できない。
- Emulex の古いカード (LPe1200 系) でターゲットモードがサポートされている確証は得られない。

**結論として、Emulex の LPe1250 で FC ターゲットを構築することは出来ない** と判断しました。もし FC ターゲットを運用したい場合、QLogic HBA や別の手段 (iSCSI 等) を検討するのが無難と考えられます。今後、同じ環境で FC ターゲットを作成しようとする方がいたら、ご注意ください。