CentOS 서버 클러스터가 있고 모두 iSCSI를 통해 NAS 장치에 연결되어 있습니다. 제가 추가해야 할 최신 NAS는 LenovoEMC px4-400r입니다. 이 Lenovo NAS에서 iSCSI가 활성화되면 모든 네트워크 인터페이스에서 활성화됩니다. Lenovo 측에서는 하나의 네트워크 인터페이스에서만 iSCSI를 비활성화할 수 있는 방법이 없습니다. 관리 네트워크가 있고 iSCSI 트래픽이 필요하지 않기 때문에 이는 문제가 됩니다.
iSCSI VLAN은 10.100.100.0/24 및 10.100.101.0/24입니다. 관리 VLAN은 10.50.55.0/24입니다.
먼저 iSCSI 검색을 수행합니다.
# iscsiadm -m discovery -t st -p 10.100.100.16
10.100.100.16:3260,1 iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0
10.100.101.16:3260,1 iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0
10.50.55.16:3260,1 iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0
보시다시피 세 네트워크 모두에서 iSCSI 대상을 검색했습니다. 정상적으로 진행하여 이 노드에 로그인하면 multipathd는 세 경로를 모두 사용합니다.
# iscsiadm -m node -l
Logging in to [iface: default, target: iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0, portal: 10.50.55.16,3260] (multiple)
Logging in to [iface: default, target: iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0, portal: 10.100.100.16,3260] (multiple)
Logging in to [iface: default, target: iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0, portal: 10.100.101.16,3260] (multiple)
Login to [iface: default, target: iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0, portal: 10.50.55.16,3260] successful.
Login to [iface: default, target: iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0, portal: 10.100.100.16,3260] successful.
Login to [iface: default, target: iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0, portal: 10.100.101.16,3260] successful.
# multipath -ll
mpathj (35005907fe5a778fb) dm-3 SCST_FIO,lun0
size=7.2T features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=enabled
| `- 4:0:0:0 sdc 8:32 active ready running
|-+- policy='round-robin 0' prio=1 status=active
| `- 9:0:0:0 sdt 65:48 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 10:0:0:0 sdu 65:64 active ready running
multipath.conf에서 경로를 블랙리스트에 추가할 수 있는 가능성을 조사했지만 경로를 블랙리스트에 추가하는 방법은 없고 전체 장치만 블랙리스트에 추가할 수 있습니다. 시도해 보니 다중 경로가 NAS에 대한 경로를 전혀 생성하지 않습니다.
제가 찾은 작동하지 않는 가장 가능성 있는 해결책은 관리 네트워크의 iSCSI 세션을 "수동" 로그인으로 설정하는 것입니다. 나는 이걸했다:
iscsiadm -m node -T iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0 -p 10.50.55.16 -o update -n node.startup -v manual
그런 다음 세션에서 로그아웃하고 iSCSI VLAN의 세션이 여전히 존재하는지 확인합니다.
# iscsiadm -m node -u -T iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0 -p 10.50.55.16:3260
Logging out of session [sid: 9, target: iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0, portal: 10.50.55.16,3260]
Logout of [sid: 9, target: iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0, portal: 10.50.55.16,3260] successful.
# iscsiadm -m session
tcp: [10] 10.100.100.16:3260,1 iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0 (non-flash)
tcp: [11] 10.100.101.16:3260,1 iqn.2012-07.com.lenovoemc:storage.onapp-lenovo.lun0 (non-flash)
이는 작동하지만 다음 중 하나가 발생할 때까지 일시적으로만 작동합니다.
- 나는 다음을 통해 더 많은 목표를 기록했습니다.
iscsiadm -m node -l
- 서버가 다시 시작되었습니다
동일한 LUN에 대한 iSCSI 세션을 영구적으로 차단하는 좋은 방법을 아는 사람이 있습니까?
답변1
사용할 수 있는 한 가지 접근 방식은 방화벽 체인 iptables
에 필터를 추가하는 것입니다 (체인에 적절하게 배치됨).INPUT
OUTPUT
-A INPUT -s 10.50.55.0/24 -p tcp -m tcp --sport 3260 -j DROP
-A OUTPUT -d 10.50.55.0/24 -p tcp -m -tcp --dport 3260 -j DROP
이는 최소한의 변경이므로 관리 네트워크의 다른 컴퓨터가 iSCSI LUN에 액세스하는 것을 방해하지 않습니다. 제가 즉각적으로 생각할 수 있는 유일한 다른 접근 방식은 NAS의 관리 인터페이스 앞에 브리지 서버/방화벽을 배치하는 것입니다. 여기서 유일한 작업은 그곳에서 iSCSI 트래픽을 필터링하는 것입니다.