CodingBox Q&A Ask question

QLE2692 옵틱은 link up인데 Proxmox VE 6.2가 LUN을 하나도 보여주지 않음: qla2xxx register_localport failed

Asked Active Viewed 53 AI translation from English
3

하이퍼바이저 두 대를 파이버 채널 스토리지로 옮기는 중인데, 카드를 VM에 넘기면 정확히 같은 하드웨어가 동작하는데도 호스트 하나는 LUN을 단 하나도 보여주지 않습니다.

  • QLogic QLE2692, ISP2722 기반 16/32Gb FC, 양쪽 포트 다 케이블 연결됨
  • 반대편에는 Fujitsu Eternus DX100 S5
  • Proxmox VE 6.2 호스트, 커널 5.4의 in-kernel qla2xxx
  • 같은 호스트에서 같은 카드를 Windows VM에 패스스루

호스트에서는 포트가 올라오고 옵틱에 빛도 들어오는데, 블록 디바이스는 전혀 나타나지 않습니다. 드라이버가 초기화될 때마다 dmesg에 이게 찍힙니다:

qla2xxx: register_localport failed: ret=ffffffea
WARNING in qla_nvme_register_hba

이미 해본 것:

  • 두 포트 사이에서 SFP+ 모듈과 패치 케이블을 서로 바꿔봄, 전혀 변화 없음
  • 카드 전체를 Windows VM에 패스스루함: DX100 LUN이 거기서는 바로 나타남, 그러니 배선, 옵틱, 어레이 쪽은 분명히 멀쩡함
  • lspci -k를 확인함, qla2xxx가 두 함수 모두에 바인딩되어 있고 카드를 두고 다투는 다른 건 없음

여기서 FC 상의 NVMe를 돌리려는 시도조차 안 하고 있고, 그냥 호스트에서 평범한 FC LUN을 쓰고 싶을 뿐입니다. 옵틱을 더 파헤칠 가치가 있을까요, 아니면 이건 완전히 호스트 드라이버 문제인가요?

Comments 5

옵틱을 다시 건드리기 전에 재미없는 디테일부터 테이블에 올려주세요. 그 두 줄 말고 dmesg 블록 전체를 올려주세요. probe부터 시작해서 그 경고까지 드라이버가 찍는 모든 것을요. registration 줄 하나만으로는 포트가 끝까지 올라왔는지 init 도중에 죽었는지 아무도 알 수 없습니다.

그리고 어레이가 NVMe 네임스페이스로 뭔가를 내놓고 있는지, 아니면 그냥 SCSI LUN만 내놓는지도 말씀해주세요. 붙여넣으신 메시지는 드라이버의 NVMe 쪽 절반에서 나오는 거라, 이 구성 어디에도 네임스페이스가 없다면 그것만으로도 뭐가 실패하고 있는지, 그래서 나머지 스택이 왜 같이 무너지는지 범위가 좁혀집니다.

2 South KoreanetrunnerKR Show original (English) AI translation

네임스페이스는 어디에도 없습니다. 어레이는 그냥 SCSI FC LUN만 서빙하고, 이 패브릭에서는 아무것도 NVMe를 쓰지 않습니다. 그래서 애초에 저 메시지가 저한테도 이상해 보였던 겁니다.

dmesg 블록은 짧고 별거 없습니다. 드라이버가 로드되고, 두 함수 모두 깔끔하게 probe되고, 포트가 올라오고, 그다음 register_localport failed: ret=ffffffea가 뜨고 바로 뒤에 WARNING in qla_nvme_register_hba가 따라옵니다. 타임아웃도 없고, 리셋도 없고, 그 사이에 패브릭 관련 내용도 전혀 없습니다. 부팅할 때마다 양쪽 포트에서 똑같이 반복되고, 그 뒤로 호스트에는 SCSI 디바이스가 단 하나도 나타나지 않습니다. 패스스루 VM에서는 같은 카드에 같은 모듈로 LUN이 바로 보입니다.

4 Chinacorebyte73CN Show original (English) AI translation

트랜시버는 그만 보세요, 이건 호스트 드라이버입니다. 5.4의 in-kernel qla2xxx는 어댑터를 올리는 과정에서 NVMe-FC 등록에 실패하는데, 이게 정확히 지금 보고 계신 register_localport failed: ret=ffffffea이고, 이 때문에 FC 포트는 다른 용도로도 전부 못 쓰게 됩니다. NVMe-FC를 어디서도 요청한 적이 없는데도 평범한 SCSI LUN이 전혀 나타나지 않는 이유가 그겁니다. 패스스루가 되는 건 Windows 드라이버가 이 코드와 아무 관계가 없기 때문입니다.

실질적인 해법은 다른 커널입니다. 같은 카드가 커널 5.3의 Proxmox 6.1에서는 잘 동작하고, 5.8에서도 다시 잘 동작하니, 업그레이드 계획에 맞는 쪽을 골라서 부팅하고, dmesg에서 registration 경고가 사라졌는지 확인한 다음 재스캔하세요. FC HBA 전반에 대해 들여둘 만한 습관: 모듈을 의심하기 전에 드라이버 쪽 에러부터 dmesg에서 grep해보세요. init 단계에서 죽는 드라이버는 스토리지 어레이를 들여다보고 있을 때 죽은 링크와 정확히 똑같이 보이니까요.

1 Franceedgenode83FR Show original (English) AI translation

그게 정답이었습니다. 호스트에 5.8을 부팅하니 dmesg에서 registration 경고가 사라졌고, 더 이상 아무것도 바꾸지 않은 채로 양쪽 경로에서 DX100 LUN이 열거됐습니다. 케이블도 모듈도 조닝도 그대로입니다. 확실히 하려고 두 번째 노드도 커널 5.3의 6.1로 되돌려봤는데 거기서도 동작해서, 이 하드웨어에서 문제는 정말로 5.4에 국한된 거였습니다. 카드와 옵틱은 그대로 두고, 이미 주문해둔 예비 모듈은 그냥 갖고 있으면 되게 됐습니다.

3 Chinacorebyte73CN Show original (English) AI translation

다른 각도에서 같은 패턴을 확인해드리자면: 저희는 커널 5.13의 Proxmox 7.1에서 정확히 이걸 겪었으니, 영향받는 게 5.4 하나뿐인 건 아니고 커널을 옮길 때마다 확인해볼 만합니다.

그나저나 Emulex도 별로 낫지 않습니다. 몇 달째 손 안 대고 돌아가던 LPe31000/LPe32000 포트 두 개가 커널이 5.15.64, 그다음 5.15.74로 올라간 뒤 LUN을 전혀 보지 못하게 됐는데, 로그에는 Enable MI Mailbox x9b (x1/xbf) failed, rc:x10 mi:x2와 CMF is disabled가 남았고 그 뒤로는 타깃을 하나도 못 찾았습니다. 케이블과 옵틱은 물론 손대지 않은 상태였습니다. 이건 lpfc 쪽 문제이고 5.15.60을 넘는 커널부터 들어왔습니다. 사람들에게 통한 탈출구는 두 가지였습니다. proxmox-boot-tool kernel pin 5.15.60-2-pve로 아직 동작하던 부팅 커널을 고정해두거나, 5.15 브랜치를 떠나도 괜찮다면 opt-in인 5.19 커널로 건너뛰는 것입니다. 수정은 5.15.77에 들어갈 예정이었지만 저는 그 빌드를 직접 시도해볼 기회는 없었습니다. 요점은, 유지보수 직후에 FC 링크가 죽은 것처럼 보이면 교체 모듈을 주문하기 전에 어떤 커널로 부팅했는지부터 보라는 겁니다.

1 Spainqsfpwolf31ES Show original (English) AI translation
Log in to comment. Log in