스위치 없는 16G FC 홈랩: RHEL 8에서 qla2xxx qlini_mode=disabled가 무시되고 타깃 LUN이 안 뜸
집에서 스위치 없이 Fibre Channel 구성을 만들고 있어요: 한 대는 스토리지를 담고 있고 FC 타깃 역할을 해야 하고, 나머지 두 대는 그냥 initiator예요. 중간에 FC 스위치는 없고, HBA끼리 케이블로 직결했어요.
하드웨어:
- 스토리지 장비(타깃이 돼야 하는 쪽)에는 QLogic QLE2694
- 두 initiator 장비에는 QLogic QLE2690, QLE2692
- FTLF8529P4BCV-QL 16G SFP+ LC 광모듈, QLogic 코딩, 850nm 단거리용
- 포트 사이는 3m OM3 멀티모드 LC-LC 코드
광쪽은 전혀 문제가 없어요. 포트도 올라오고 카드끼리도 서로 인식하고, 양쪽 다 initiator로 있는 동안은 다 멀쩡해요. 문제는 스토리지 장비를 타깃 모드로 바꾸는 거예요. 모듈 옵션도 넣고, initramfs도 다시 빌드하고, 재부팅도 했는데 파라미터가 그냥 안 먹혀요:
# cat /etc/modprobe.d/qla2xxx.conf
options qla2xxx qlini_mode="disabled"
# after rebuilding the initramfs and rebooting
# cat /sys/module/qla2xxx/parameters/qlini_mode
enabled
targetcli는 잘 시작하는데, initiator 모드가 계속 켜져 있으니까 backstore를 걸 FC fabric 자체가 없어서 아무것도 export가 안 되고 initiator 쪽에는 빈 링크만 보여요.
시도해본 것:
- /etc/modprobe.d에 옵션을 넣어보고, 따로 커널 커맨드라인에도 넣어봤어요
- 바꿀 때마다 initramfs랑 부트 설정을 다시 생성했어요
- QLE2694만의 특이 동작인가 싶어서 스토리지 장비에 꽂힌 카드를 바꿔봤어요
이게 제가 쓰는 RHEL 8 기반 배포판의 드라이버 빌드 문제인 걸까요, 아니면 옵션 적용 과정에서 제가 뭔가 단계를 놓치고 있는 걸까요?
Comments 4
단계를 놓치신 게 아니라, 지금 돌리는 환경에서는 그 옵션이 애초에 동작할 수가 없어요. RHEL 8 이상은 initiator 모드를 끄는 기능이 빠진 qla2xxx 빌드를 쓰고 있어서,
qlini_mode="disabled"를 어디에 넣든 그냥 무시되고 카드는 계속 initiator로 남아요. QLE2694도, 광모듈도, 광케이블도 전혀 문제없어요.빠져나갈 방법은 두 가지예요: qla2xxx에 타깃 모드가 아직 남아 있는 배포판에서 타깃 호스트를 돌리거나, 직접 모듈을 빌드하는 건데 저라면 데이터를 담을 장비에서는 그렇게 안 할 거예요. 저는 첫 번째 방법을 택해서 타깃을 Fedora Server 39에 올렸어요.
그다음부터는 뻔한 순서예요:
이걸 modprobe.d에 넣고, initramfs랑 GRUB 설정을 다시 빌드하고, 재부팅한 다음 포트를 이걸로 확인하세요
targetcli랑 sysfsutils를 설치하고, FC 포트를 활성화한 다음, NVMe 위의 LVM 볼륨을 block backstore로 매핑하고, 포트 WWN에 바인딩하고, initiator마다 자기 ACL을 줘요. initiator 장비들은 지금 그대로 두시면 돼요, 이 제약은 타깃 쪽에만 걸리거든요.
나중에 이걸 해보실 분들을 위해 구매 팁 하나: Dell 브랜드 QLE2690, QLE2692, QLE2694를 고르세요. 문서에 타깃 모드가 실제로 나와 있어서 이것저것 추측할 일이 훨씬 줄어들어요.
누가 추측하기 전에 먼저 확인해야 할 게 두 가지 있어요.
첫째, qla2xxx가 실제로 어디서 온 건가요: 배포판 커널에 딸려 오는 in-box 모듈인가요, 아니면 벤더한테서 받아서 직접 컴파일한 out-of-tree 빌드인가요? RHEL 8 기반에서는 이 둘이 여기서 아주 다르게 동작하고, modprobe 문법보다 이게 훨씬 더 중요해요.
둘째, 스토리지 장비에서
systool -c fc_host -v결과를 올려주세요. 포트가 실제로 올라오는지, 어떤 속도로 올라오는지 알 수 있어서, 드라이버 문제랑 물리 계층 문제를 구분할 수 있어요.그리고 양쪽 광모듈도 확인해주세요. FTLF8529P4BCV-QL은 850nm 단거리용이라 멀티모드 광케이블이 필요한데, 싱글모드에서는 아예 아무것도 안 나올 거예요. 타깃 모드 얘기를 하기 전에 이것부터 배제하고 싶어요.
in-box 드라이버예요: 배포판 저장소에서 바로 받은 stock 커널이랑 stock qla2xxx고, 벤더한테서 받은 것도 손으로 컴파일한 것도 없어요.
systool -c fc_host -v를 보면 QLE2694의 포트 두 개 다 16G로 online이고, 같은 FTLF8529P4BCV-QL 모듈이 3m OM3 코드 양쪽 끝에 다 꽂혀 있어서 물리 계층은 정말 문제가 아니에요 - initiator로는 전부 다 잘 돼요.sysfs는 modprobe.d에 넣든 커널 커맨드라인에 넣든 상관없이 매번 다시 빌드하고 재부팅해도 계속 qlini_mode를 enabled로 보고해요. sysfsutils랑 targetcli는 설치돼 있고, targetcli 자체는 불만 없이 시작하는데, 그 안에 설정할 만한 FC 모양의 뭔가가 아예 없어요.
타깃 호스트를 다른 배포판으로 옮길 때 같이 기억해두면 좋은 비슷한 함정이 하나 있어요: 그 파라미터가 그 장비의 부트 경로가 실제로 읽는 위치에 들어가는지 확인하세요.
이거의 전형적인 사례가 광모듈을 안 받아주던 Proxmox 호스트예요. 관리자가
ixgbe.allow_unsupported_sfp=1을 modprobe.d에 넣고 GRUB 설정에도 넣었는데 둘 다 아무 효과가 없었어요, 그 장비가 EFI로 부팅해서 GRUB을 아예 안 거치거든요. 거기서는 파라미터를/etc/kernel/cmdline에 넣고pve-efiboot-tool refresh를 해줘야 해요.질문자님이랑 똑같은 실패 패턴이에요: 설정 파일은 이렇게 말하는데 sysfs는 다르게 말하고, 하드웨어를 의심하느라 저녁 시간을 날리게 돼요. 어떤 호스트든, 재부팅할 때마다
/sys/module/...에서 값을 다시 읽어서 그걸 믿으세요, 본인이 편집한 파일 말고요.