SAN 개요#

스위치는 크게 두 가지로 나뉜다. 이더넷 스위치와 SAN 스위치. 이더넷 스위치는 우리가 흔히 이야기하는 L2, L3 스위치를 이야기한다. 보통의 네트워크 엔지니어들은 이런 L2, L3, L4 스위치 및 방화벽, 라우터를 다룬다. 하지만 나는 그렇지 않다. 나는 SAN 스위치를 다루는 일을 한다. 오늘은 그 SAN 스위치에 대해 이야기해볼 것이다.

그러기 전에 우선 SAN, 보통 “샌” 이라고 읽는 물건에 대해 소개해야한다. SAN은 Storage Area Network 의 약자이다. 스토리지를 별도의 네트워크를 구성해서 연결한다는 뜻이다. Dell Powerflex 같은 스토리지 장비를 쓰기 위해서는 여러가지 방법이 있지만 지금까지 경험한 환경에서는 SAN을 사용했다. 서버에서 VM을 사용하거나 데이터베이스를 사용할 때 많은 양의 스토리지가 필요하다. 이것을 서버 디스크를 크게 할당해서 사용할 수도 있지만 대기업 쯤 되는 기관들을 그렇게 사용해도 모자르기 때문에 별도의 스토리지 장비를 구비한다. 1U 서버는 2.5인치 디스크를 보통 최대 10개까지 장착할 수 있고, 2U짜리는 서버는 보통 최대 24개까지 장착할 수 있다. 스토리지 장비도 마찬가지가 아닐까 하고 질문할 수 있는데 스토리지 장비는 대신 스토리지 장비끼리 클러스터를 맺어 사용하거나 (Dell powerflex), Netapp의 AFF 와 Disk Shelves 조합으로 스토리지 컨트롤러와 디스크 인클로저 조합으로 사용할 수도 있다. 이때 디스크 인클로저는 디스크만 장착하고 있는 노드로 컨트롤러에 연동되어 수평적으로 확장할 수 있다. 디스크 인클로저는 스토리지 어레이라고 부르기도 한다.

서버와 스토리지 장비를 연결하기 위해서는 네트워크로 연결되어 있어야한다.이때 전용망으로 연결하게 되는데 SAN Switch를 통해 연결되게 된다. SAN 스위치는 FC로 연결된다. FC는 이더넷과 다른 규격이다. FC는 이더넷과 달리 패킷으로 전송하는게 아니라 회선 교환을 통해 통신한다. 그렇기 때문에 더 안정적으로 통신할 수 있다. FC 포트라고 해서 새로운 케이블이 필요한 건 아니다. 다만 다른 것은 FC용 SFF Gbic은 10의 단위로 증가하는 이더넷 지빅과 다르게 1GFC, 2GFC, 4GFC, 8GFC, 16GFC, 32GFC 이렇게 증가한다. 이렇게 서버와 스토리지 간에 광케이블과 SFF를 이용해서 연결을 하고, 논리적인 Path를 구성해야한다. 이 논리적인 Path를 구성하는 일을 Zoning 이라고 하며 이런 논리적인 Path들을 Zone 이라고 부른다. 이런 Zone 들을 모아둔 것을 Cisco MDS에서는 Zoneset, Brocade에서는 Zone config 라고 부른다.

SAN 스위치 개요#

SAN 스위치를 구성하는 입장에선 사실 대다수의 업무는 Zone을 구성하고 SAN 스위치 로그 확인 및 정기점검을 하는 것이 90%이다. 하지만 엔지니어로서 조금 더 SAN 스위치에 대해서 소개해보려고 한다. 사실 SAN 스위치의 시장은 Brocade와 Cisco로 양분되어 있다. Brocade의 점유율이 높긴 하나 예전에는 IBM의 OEM을 할 정도로 성공적이었지만, 이더넷 스위치 시장에서 그닥 성공적이지 못했고, 지금은 Broadcom에 인수되었다. Cisco 같은 경우 사용하는 사례를 많이 못 보긴 했지만 SAN 스위치는 MDS 라는 라벨링을 붙여서 나오고 있다. 하지만 FC 스위칭을 Nexus 스위치에서도 지원한다. Nexus 스위치와 MDS 모두 NX-OS를 사용하며 이 NX-OS는 리눅스 커널 기반인데 기존의 SAN-OS에서 통합 관리하기 위해 NX-OS로 발전하였다. 따라서 Nexus 스위치는 이더넷 스위칭와 FC 스위칭을 모두 할 수 있는 반면 MDS 스위치는 FC 스위칭 기능만 지원한다.

Zoning 을 하는 방법은 크게 두 가지가 있다. WWN 조닝과 Port 조닝 이렇게 두 가지가 있다. WWN은 일종의 M.A.C 어드레스로 크게 두가지가 있다. pWWN은 Port에 대한 WWN이고, nWWN은 노드, 어댑터에 대한 WWN이다. 예를 들어 HBA카드가 4개의 포트를 가진다고 했을 때 1개의 nWWN과 4개의 pWWN을 가지게 된다. Port 조닝은 SAN 스위치 Port를 기준으로 조닝을 하는 방식이다. 따라서 WWN 조닝은 미리 서버 및 스토리지가 연결되어 있어서 SAN 스위치에서 WWN 검색이 가능할 때 할 수 있고, 포트 조닝은 미리 이 포트를 서버용, 스토리지용으로 협의했다면 해당 포트들만 조닝하면 된다. 현장에서는 보통 포트조닝을 많이 사용한다. Zoning을 할 때 Port Zoning은 SAN 스위치 입장에서의 Zoing 이므로 포트를 변경하면 다시 Zoing 해야하지만 WWN Zoing 같은 경우는 서버 및 스토리지 HBA를 교체하게 되면 다시 Zoing 해야한다. 보통 포트로 구분하고 관리하는게 편리해서 Port Zoing 을 사용한다.

조닝을 할 때는 보통 한 Zone에 두 개의 포트만 넣는다. Zone 이름은 보통 고객사에서 정해주는데 “서버장비명_HBA번호_서버와 연결된 SAN 포트_스토리지와 연결된 SAN 포트_스토리지구분_스토리지와 연결된 포트” 이런 식의 네이밍을 통해 관리의 편리를 돕니다. 예를 들어 Nahyun 서버 HBA 1번과 ABC_1234 스토리지 1번을 연결하는데 서버 HBA는 SAN 스위치 1번 포트, 스토리지는 10번 포트에 연결된다면 Nahyun_h1_p1_p10_ABC_1234_c1 이런 식으로 Zone 이름을 정하고 안에 서버 포트, 스토리지 포트 순서대로 넣는다.

보통 구성상 서버 2대, SAN 스위치 2대, 스토리지 2대, 스토리지 컨트롤러 2대 이렇게 이중화 구성을 하게 된다. 그럼 SAN 스위치 1대당 4개의 존을 만든다.

  1. 서버1-SAN1-스토리지1_컨트롤러1
  2. 서버2-SAN1-스토리지1_컨트롤러2
  3. 서버1-SAN1-스토리지2_컨트롤러1
  4. 서버2-SAN1-스토리지2_컨트롤러2

이렇게 Zone 을 구성하게 되며 SAN 스위치가 보통 이중화 구성으로 2대가 들어가므로 8개의 존을 만들고 적용한다.

이렇게 조닝을 한 다음에는 서로 통신을 하며, 회선 교환 방식이기 때문에 서로 데이터를 주고 확인하고 주고 확인하고 하는 절차를 거치게 된다. 이때 최초의 세션을 구축하는 프로세스는 다음과 같다.

Domain ID(FC-Domain)-FC-ID(FC-SW 식별자 + Node 식별자)-FLOGI Database(WWN 조회, FC-LOGIN 데이터베이스)-FCNS(FC 네트워크 서비스)- FSFP(노드 사이에 가장 빠른 경로 알고리즘)-ZONE 을 거쳐 서로 통신을 하게 된다.

ISL처럼 FC 스위치 간에 인터링크 연결을 하지 않는 이상 보통 점검 및 조닝에서는 FLOGI 데이터베이스에서 WWN 정도를 조회하게 되나, 인터링크를 구성하게 되면 각 FC Domain과 FC-ID 가 중요해진다.FC-Domain은 보통 하나의 스위치에 대한 하나의 VSAN에 대한 도메인으로 이해하면 되고, FC-ID는 이더넷 스위치에서의 IP 라고 이해하면 이해가 쉬울 것이다.

오늘은 이렇게 SAN 스위치, FC 스위치에 대해서 개요와 간략하게나마 기술적인 이야기를 하였다. 차근차근 시스코 MDS 기준으로 Zoning 하는 방법이나 ISL 구성하는 방법에 대해서도 글을 써보도록 하겠다.