본문 바로가기

서버이야기

SAN(Storage Area Network) 기본.

SAN관련 기본적인 내용들을 공부하면서 정리한 내용입니다.

워낙 기반지식이 많지 않은 관계로 틀린 내용들이 많을까.. 걱정이 됩니다. ^^;

처음 공부하시는 분들이 조금이나마 도움이 되길 바라며. ^^ 올려봅니다 .^^


 

 

SAN 용어

FCP : 파이버채널 프로토콜. SCSI 프로토콜을 전송하는 것을 염두에 두고 개발

         Layer 0 ~ 4로 구성

Fabric : FC 네트워크를 일반적으로 Fabric라고 부름

 

 

 

FC Layer 2

 WWN (World Wide Name)

    - 모든 Device가 고유하게 가지고 있는 주소 값. (MAC과 유사한 개념)

    - 128bit 구성되며, 64bitWWPN, WWNN으로 구성

 WWPN (World Wide Port Name)

    - FC Switch의 각 Port에 부여된 Fabric WWN. ( PortMAC 주소를 가진 것으로 이해)

 WWNN (World Wide Node Name)

    - Node 장비에 부여된 WWN

 

 

 

 

 

  FCID (Fibre Channel Identifier)

    - FC에서 IP와 같은 개념

    - 24bit로 구성되며, 8bitDomain, Area, Port로 구성

    - FCIDFC switch에서 분배하며, Domain에는 Switch 자신의 Domain을 넣어서 할당.

 

 

 Switch Name ServerWWNFCIDMapping

 

 

FCID & WWN

     - FCIDWWNMapping. (IPMACMapping과 유사 개념)

     - FC Switching에서는 FCID를 사용함.

 

 

 

 

Step 1. Fabric Login (FLOGI)

    - FC Device(Server/Storage)들이 SAN Switch와 연결될 때에 거치는 Login 과정

    - FCID를 얻기 위해 FC Device들이 자신의 WWNSwitch에 알려주고,  SwitchDomain Service에 등록되는 과정.

    - N_PortF_Port와 세션을 만들기 위한 과정.

    - HostWWNFCIDMapping . 따라서, 정상적으로 수행 불가 시 FC Device는 통신 불가.

    - Buffer-to-Buffer Credit을 초기화

 

Step 2. Port Login (PLOGI)

    - FC Device간의 연결을 구성하기 위한 Login 과정

    - N_PortN_Port간의 세션을 만들기 위한 과정.

    - P2P Topology에서의 Buffer-to-Buffer Credit 초기화

Process Login (PRLI)

    - FC-4 계층의 프로토콜에 MappingProcess 간의 세션을 만듬.

    - SCSI 프로토콜 사용 시에, PRLI를 사용

 

 

 

 

 

 

 

FC 일반

FCHop-by-Hop 단위로 전송을 하며, Hop을 연결하는 Port 간에 Buffer-to-Buffer Credit이라는 매커니즘을 가지고

  흐름제어를 담당한다. 기존의 End-to-End 간의 통신이 아닌 Hop별로 통신을 하면서 흐름제어를 하면서 손실이 발생하지

  않도록 할 수 있다.

 

Buffer-to-Buffer Credit

  Fibre Channel Flow Control 하는 매커니즘. 초기 Port 초기화 시에 Credit 수를 상호 확인하여 작은 Credit로 설정.

  패킷이 전송되면서, Credit를 하나씩 줄이고 0이 되면 패킷 전송을 중지한다.

 

Maximum Switch domains = 239

 

 

 

 

FC Routing

FSPF (Fabric Shortest Path First)

    - FCP에서 사용하는 Routing Protocol

    - Switching과 마찬가지로 FCID를 가지고 Hop-by-Hop으로 Routing

    - Device 간의 FCIDDomain 부분이 다른 경우에, 하나의 FC Switch를 지나서 통신해야 하기 때문에 FSPF로 찾아낸

      최적경로의 FCID를 가지고 Routing하게된다.

    - E_port 또는 TE_port에서 운영되며, Loop-FreeTopology를 제공

 

 

 

FC Nameserver

Name server

    - SAN Switch에서 동작하는 특별한 Logical Program

    - Device들이 어디에 위치해 있는지에 대한 정보(WWN)를 수집

    - Devicefabric의 다른 곳 Device와 통신하고자 할 때 정보를 Name server에 물어보면,

       Name Server에서 Device Address(WWN)을 알려준다

 

 FC Port Tytpe  

E_Port (Expansion Port)

       Switch 간의 연결된 Port Switch Fabric을 확장

○ T Port (Trunking Port)

       여러 개의 VSAN(Virtual SAN)을 전송하고자 할 경우에 사용되는 Trunking 포트

F_Port (Fabric port)

       Node와 연결된 point-to-point 연결된 Switch쪽의 Port.

N_Port: (Node Port)

       종단 Storage, Server와 연결된 Device Port

G_Port (Generic Port)

       E_portF_port 등으로 동작할 수 있는 Port로 현재 사용 중이지 않은 포트   

L_Port (Loop Port)

       Loop 구조가 가능한 NodeSwitch Port.  기존 Port Type에 함께 사용 (Ex FL, NL )

U_Port (Universal Port)

       G_Port 보다 보다 범용적으로 동작하는 Port이며, E_Port, F_Port, FL_Port로 동작 가능하다.

 

 

 

 

 

 

NPIV (N Port Id Virtualization)

일반적으로 Physical N_Port하나의 N_Port_ID(FCID)와 연결된다.

N_Port_IDFC Switch와의 FLOGI Process를 통해서 할당받는 24bit 주소로, N_Port의 하나의 WWPNMapping된다.

하지만, 가상화 서버의 경우에 각 VM들은 Physical N_Port1개이기 때문에 개별의 N_Port_ID할당받을 수 없게 된다.

이를 해결하기 위한 것이 NPIV이다. VM들은 VMWWPN을 설정하고 상단의 NPIV 기능이 활성화된 Port에 연결될 경우에 기존의 FLOGI 과정을 거쳐서 N_Port_ID할당받은 이후, NPIV까 활성화된 N_Port(Physical)에서는 FDISC를 통해서 더 많은 WWPN

등록하여 N_Port_ID할당받게 된다.

이렇게 각각의 VM별로 별도의 N_Port_ID할당받게 되고, 이를 통해 각 VMLUN설정도 가능하다.

 

※ Physical WWPNVirtual WWPN간에는 차이가 없기 때문에 동일하게 동작한다

 

 



Normally N_Port initialization proceeds like this:
##N_Port sends FLOGI to address 0xFFFFFE to obtain a valid address
##N_Port sends PLOGI to address 0xFFFFFC to register this address with the name server
##N_Port sends SCR to address 0xFFFFFD to register for state change notifications


However with NPIV it may continue like this:
##N_Port sends FDISC to address 0xFFFFFE to obtain an additional address
##N_Port sends PLOGI to address 0xFFFFFC to register this additional address with the name server
##N_Port sends SCR to address 0xFFFFFD to register for state change notifications.
##... (repeat FDISC/PLOGI/SCR for next address)


※ FDISC - "Discover Fabric Service Parameters"의 약어. 이는 일반 FLOGI처럼 동작합니다

 

 

 

NPV (N Port  Virtualization)

NPIVHOST기반의 가상화인 반면에, NPVSwitch 기반의 가상화이다.

NPV는 대규모의 SAN 환경에서 Switch 관리 및 오버헤드를 줄이기 위해 디자인 되었다.

NPVFC PortNP_Port라는 새로운 TypePort를 사용하고 이는 NPV가 활성화된 스위치와 연결된 N_Port에 대해 Proxy역할.

NPV가 활성화된 FC Switch PortN_port[HBA Port]가 연결된 경우를 보면, Node가 연결된 N_Port는 상단의 NPIV Switch

   연결된 NP_Port(Proxy N_Port)와 연결된다. NP_PortNPIV가 활성화된 SwtichF_PortFDICS수행한다.

NPV ModeFC Edge SwitchDomain ID할당받지 않기 때문에, Fabric Domain ID의 개수의 제한(239)로 인해서 확장이

   어려웠던 문제를 해결한다.

   *원래 SAN 스위치는 Fabirc Domain ID할당받기 때문에, 스위치의 확장 개수가 Domain ID 개수로 제한이 되지만,

    NPV는 마치 자신의 하단의 있는 서버들과 자신이 1대의 물리적인 DeviceVirtual Machine이 있는 것처럼 동작하기 때문에

    Domain ID할당받지 않게 된다.  NPV를 포함한 하단의 서버들이 하나의 가상화 Node처럼 동작