ESXi를 iSCSI SAN과 함께 사용할 경우 문제가 발생하지 않도록 VMware에서 제공하는 권장 사항을 따르십시오.

스토리지 시스템에서 Storage API - Array Integration 하드웨어 가속 기능을 지원하는지 여부는 스토리지 담당자에게 문의하십시오. 스토리지 시스템에서 이 기능을 지원하는 경우, 스토리지 시스템 측에서 하드웨어 가속 지원 기능을 사용하도록 설정하는 방법은 벤더 설명서에서 확인하십시오. 자세한 내용은 스토리지 하드웨어 가속의 내용을 참조하십시오.

iSCSI SAN 문제 방지

SAN과 함께 ESXi를 사용할 경우, SAN 문제를 방지하려면 특정 지침을 따라야 합니다.

다음 팁을 확인합니다.

  • 각 LUN에 VMFS 데이터스토어를 하나씩만 배치하십시오.
  • 경로 정책 변경이 어떤 영향을 미치는지 잘 모르는 경우에는 시스템에 설정된 경로 정책을 변경하지 마십시오.
  • 모든 사항을 문서화하십시오. 여기에는 구성, 액세스 제어, 스토리지, 스위치, 서버 및 iSCSI HBA 구성, 소프트웨어 및 펌웨어 버전 그리고 스토리지 케이블 계획에 관한 정보가 포함됩니다.
  • 장애에 대비한 계획:
    • 토폴로지 맵의 복사본을 여러 개 만드십시오. 각 요소에서 장애가 발생할 경우 SAN에 어떤 일이 발생하는지 고려해 보십시오.
    • 설계에서 중요한 장애 지점이 누락되지 않도록 다른 링크, 스위치, HBA 및 기타 요소를 제거하십시오.
  • 슬롯 및 버스 속도를 기반으로 iSCSI HBA가 ESXi 호스트의 올바른 슬롯에 설치되었는지 확인하십시오. 서버에 있는 사용 가능한 여러 버스 간에 PCI 버스 로드를 조정하십시오.
  • ESXi의 성능 차트, 이더넷 스위치 통계 및 스토리지 성능 통계를 포함하여 모든 가시 지점에서 스토리지 네트워크의 다양한 모니터 지점을 파악하십시오.
  • LUN에 배포된 VMFS 데이터스토어에 실행 중인 가상 시스템이 없을 때만 LUN ID를 변경합니다. ID를 변경하면 VMFS 데이터스토어에서 실행 중인 가상 시스템에 장애가 발생할 수 있습니다.

    LUN의 ID를 변경한 후 스토리지를 다시 검색하여 호스트에서 ID를 재설정해야 합니다. 다시 검색을 사용하는 방법에 대한 자세한 내용은 ESXi 스토리지에 대한 다시 검색 작업을 참조하십시오.

  • iSCSI 어댑터의 기본 iSCSI 이름을 변경해야 하는 경우에는 전 세계에서 고유한 올바른 형식의 이름을 입력해야 합니다. 스토리지 액세스 문제가 발생하지 않도록 하려면 서로 다른 호스트에 있는 어댑터일지라도 동일한 iSCSI 이름을 할당하지 마십시오.

iSCSI SAN 스토리지 성능 최적화

몇 가지 요소가 일반적인 SAN 환경을 최적화하는 데 영향을 미칩니다.

네트워크 환경이 적절히 구성되면 iSCSI 구성 요소가 iSCSI 이니시에이터 및 대상에 적절한 처리량과 충분히 짧은 지연 시간을 제공합니다. 네트워크가 정체되고 링크, 스위치 또는 라우터가 포화 상태가 되면 iSCSI 성능이 저하되어 ESXi 환경에 적합하지 않을 수 있습니다.

스토리지 시스템 성능

스토리지 시스템 성능은 전체 iSCSI 환경의 성능에 영향을 미치는 주요 요소 중 하나입니다.

스토리지 시스템 성능 문제가 발생한 경우 스토리지 시스템 공급업체의 설명서에서 모든 관련 정보를 참조하십시오.

LUN을 할당할 때 다수의 호스트에서 공유된 각 LUN에 액세스할 수 있으며 각 호스트는 다수의 가상 시스템을 실행할 수 있다는 것을 기억하십시오. ESXi 호스트에서 사용되는 하나의 LUN은 부동한 운영 체제에서 실행 중인 많은 부동한 애플리케이션으로부터의 I/O에 대해 서비스를 제공할 수 있습니다. 이렇게 다양한 워크로드로 인해 ESXi LUN을 포함하는 RAID 그룹은 I/O 사용량이 많은 애플리케이션용으로 ESXi를 실행하지 않는 다른 호스트가 사용하는 LUN을 포함하지 않아야 합니다.

읽기 캐시 및 쓰기 캐시를 사용하도록 설정합니다.

로드 밸런싱이란 사용 가능한 SP와 모든 관련 호스트 서버 경로를 이용해 서버 I/O 요청을 분산하는 과정을 의미합니다. 그 목표는 초당 입출력 작업 수, 초당 메가바이트, 응답 시간 등의 처리량 차원에서 성능을 최적화하는 것입니다.

SAN 스토리지 시스템은 모든 스토리지 시스템 경로에서 I/O 로드가 균형을 이루도록 지속적으로 설계를 개선하고 조정해야 합니다. 이러한 요구 사항을 충족시키려면 모든 SP에서 LUN 경로를 분산시켜 최적의 로드 밸런싱을 제공해야 합니다. LUN 배포를 수동으로 재조정해야 할 경우에는 모니터링 표시기를 닫습니다.

정적으로 균형된 스토리지 시스템을 조정한다는것은 특정 성능 통계(초당 I/O 작업 수, 초당 블록 수 및 반응 시간)를 모니터링하고 LUN 작업 부하를 배포하여 작업 부하를 모든 SP에 걸쳐 분산시킴을 의미합니다.

iSCSI를 사용한 서버의 성능

최적의 ESXi 호스트 성능을 보장하려면 몇 가지 요인을 고려해야 합니다.

각 서버 애플리케이션에는 다음과 같은 조건을 만족하는 지정된 스토리지에 대한 액세스 권한이 있어야 합니다.

  • 높은 I/O 속도(초당 I/O 작업의 수)
  • 높은 처리량(초당 메가바이트)
  • 최소 지연 시간(응답 시간)

애플리케이션마다 요구 사항이 다르기 때문에 스토리지 시스템에서 적절한 RAID 그룹을 선택하여 이러한 목표를 충족시킬 수 있습니다.

성능 목표를 달성하려면 다음 지침을 따르십시오.

  • 각 LUN을 필요한 성능 수준을 제공하는 RAID 그룹에 배치합니다. 할당된 RAID 그룹에 속한 다른 LUN의 작업과 리소스 사용을 모니터링합니다. I/O 작업을 수행하는 애플리케이션이 지나치게 많은 고성능 RAID 그룹은 ESXi 호스트에서 실행되는 애플리케이션에 필요한 성능 목표를 충족시키지 못할 수 있습니다.
  • 피크 시간 동안 호스트에 설치된 모든 애플리케이션의 성능을 극대화하려면 네트워크 어댑터 또는 iSCSI 하드웨어 어댑터를 충분히 설치합니다. 여러 포트에 I/O가 분산되면 각 애플리케이션이 더 빠른 처리 성능과 더 짧은 지연 시간을 갖게 됩니다.
  • 소프트웨어 iSCSI에 대한 중복성을 제공하려면 iSCSI 연결에 사용되는 모든 네트워크 어댑터에 이니시에이터가 연결되어 있는지 확인하십시오.
  • ESXi 시스템에 대해 LUN 또는 RAID 그룹을 할당하면 여러 운영 체제가 해당 리소스를 사용하고 공유합니다. ESXi 호스트의 경우 일반 물리적 시스템을 사용할 때보다 훨씬 높은 LUN 성능이 필요할 수 있습니다. 예를 들어 I/O 사용량이 많은 애플리케이션 4개를 실행하려면 ESXi LUN에 대해 4배의 성능 용량을 할당합니다.
  • vCenter Server와 함께 여러 ESXi 시스템을 사용하는 경우 스토리지 성능 요구 사항이 증가합니다.
  • ESXi 시스템에서 실행되고 있는 애플리케이션에 필요한 미결 I/O의 수는 SAN이 처리할 수 있는 I/O의 수와 일치해야 합니다.

네트워크 성능

일반적인 SAN은 스위치 네트워크를 통해 스토리지 시스템 모음에 연결된 컴퓨터 모음으로 구성되어 있습니다. 보통 여러 컴퓨터가 동일한 스토리지에 액세스합니다.

다음 그래픽에서는 단일 이더넷 스위치를 통해 스토리지 시스템에 연결된 여러 컴퓨터 시스템을 보여 줍니다. 이 구성에서는 각 시스템이 단일 이더넷 링크를 통해 스위치에 연결됩니다. 스위치는 단일 이더넷 링크를 통해 스토리지 시스템에 연결됩니다.

그림 1. 스토리지에 대한 단일 이더넷 링크 연결
이 그래픽에서는 단일 이더넷 스위치를 통해 스토리지 시스템에 연결된 여러 시스템을 보여 줍니다.

시스템이 스토리지에서 데이터를 읽을 때 스토리지는 충분한 데이터를 보내 스토리지 시스템과 이더넷 스위치 간의 링크를 채움으로써 응답합니다. 단일 시스템 또는 가상 시스템이 네트워크 속도를 모두 사용할 가능성은 적습니다. 그러나 많은 시스템이 하나의 스토리지 디바이스를 공유하는 경우 이러한 상황이 발생할 수 있습니다.

스토리지에 데이터를 쓰는 경우 여러 시스템 또는 가상 시스템이 링크를 채우려고 시도할 수 있습니다. 결과적으로, 시스템과 스토리지 시스템 간 스위치의 네트워크 패킷이 손실될 수 있습니다. 단일 링크로 전송할 수 있는 것보다 많은 트래픽을 스위치에서 스토리지 시스템으로 전송해야 하기 때문에 데이터 손실이 발생할 수 있습니다. 스위치에서 전송할 수 있는 데이터 양은 스위치와 스토리지 시스템 간 링크의 속도에 의해 제한됩니다.

그림 2. 손실된 패킷
이 그래픽에서는 서버와 스토리지 시스템 간 스위치에서 데이터가 손실되는 상황을 보여 줍니다.

손실된 네트워크 패킷의 복구로 인해 성능이 크게 저하됩니다. 데이터가 손실되었는지 확인하는 데는 시간이 걸릴 뿐 아니라 현재 트랜잭션에 사용할 수 있는 네트워크 대역폭을 재전송에 사용하게 됩니다.

iSCSI 트래픽은 네트워크에서 TCP(Transmission Control Protocol)를 통해 전송됩니다. TCP는 손실된 패킷을 재시도하여 결국 대상에 도달시켜 주는 신뢰할 수 있는 전송 프로토콜입니다. TCP는 손실된 패킷을 복구하도록 설계되었으며 복구된 패킷을 신속하고 원활하게 재전송합니다. 그러나 스위치에서 규칙적으로 패킷을 삭제한 경우에는 네트워크 처리량이 저하됩니다. 데이터 재전송 요청과 재전송된 패킷으로 인해 네트워크가 정체됩니다. 정체가 없을 때보다 적은 데이터가 네트워크에서 전송됩니다.

대부분의 이더넷 스위치는 데이터를 버퍼링 또는 저장할 수 있습니다. 이 기술을 통해 데이터를 전송하려는 모든 디바이스가 대상에 도달할 수 있는 동등한 기회를 갖습니다. 일부 전송을 버퍼링하는 기능과 많은 시스템에서 미결 명령 수를 제한하는 기능으로 인해 전송량이 소규모 버스트로 감소합니다. 여러 시스템의 버스트를 스토리지 시스템에 차례로 전송할 수 있습니다.

전송량이 많고 여러 서버가 단일 스위치 포트를 통해 데이터를 전송하는 경우 버퍼링 제한이 초과될 수 있습니다. 이 경우 스위치에서 전송할 수 없는 데이터가 손실되므로 스토리지 시스템은 손실된 패킷의 재전송을 요청해야 합니다. 예를 들어, 이더넷 스위치는 32KB를 버퍼링할 수 있지만 서버가 256KB를 스토리지 디바이스에 보내는 경우 일부 데이터가 손실됩니다.

대부분의 관리되는 스위치는 손실된 패킷에 대해 다음과 유사한 정보를 제공합니다.

*: interface is up
IHQ: pkts in input hold queue     IQD: pkts dropped from input queue
OHQ: pkts in output hold queue    OQD: pkts dropped from output queue
RXBS: rx rate (bits/sec)          RXPS: rx rate (pkts/sec)
TXBS: tx rate (bits/sec)          TXPS: tx rate (pkts/sec)
TRTL: throttle count
표 1. 샘플 스위치 정보
인터페이스 IHQ IQD OHQ OQD RXBS RXPS TXBS TXPS TRTL
* GigabitEthernet0/1 3 9922 0 0 476303000 62273 477840000 63677 0

Cisco 스위치와 관련된 이 예에서는 사용되는 대역폭이 476303000비트/초인데, 이는 회선 속도의 절반에도 미치지 못하는 수준입니다. 포트는 들어오는 패킷을 버퍼링하지만 몇몇 패킷이 손실되었습니다. 이 인터페이스 요약의 마지막 줄은 IQD 열에서 이 포트가 10,000개에 가까운 인바운드 패킷을 이미 손실했음을 나타냅니다.

이러한 문제를 방지하기 위해서는 여러 입력 이더넷 링크가 하나의 출력 링크로 집중되어 링크가 과다 구독되지 않도록 구성을 변경해야 합니다. 용량 제한에 가까운 데이터를 전송하는 여러 링크가 적은 수의 링크로 전환될 경우 과다 구독이 발생할 수 있습니다.

일반적으로 많은 데이터를 스토리지에 기록하는 애플리케이션 또는 시스템은 스토리지 디바이스에 대한 이더넷 링크를 공유해서는 안 됩니다. 이러한 유형의 애플리케이션은 스토리지 디바이스에 다중 연결을 사용해야 최적으로 수행됩니다.

스위치에서 스토리지로의 다중 연결은 스위치에서 스토리지로의 다중 연결을 보여 줍니다.

그림 3. 스위치에서 스토리지로의 다중 연결
그래프에 스위치에서 스토리지로의 다중 연결이 표시됩니다.

VLAN 또는 VPN을 사용해도 공유된 구성의 링크 과다 구독 문제에 대한 적절한 해결책이 제공되지는 않습니다. VLAN 및 네트워크의 기타 가상 파티셔닝을 통해 네트워크를 논리적으로 설계할 수 있습니다. 그러나 이를 통해 스위치 간의 링크와 트렁크의 물리적 기능은 변경되지 않습니다. 스토리지 트래픽 및 다른 네트워크 트래픽이 물리적 연결을 공유하는 경우 과다 구독 및 손실된 패킷이 발생할 수 있습니다. 인터스위치 트렁크를 공유하는 VLAN의 경우에도 마찬가지입니다. SAN에 대한 성능을 설계할 때는 논리적 할당이 아닌 네트워크의 물리적 제한을 고려해야 합니다.

이더넷 스위치 통계 확인

대부분의 이더넷 스위치는 서로 다른 방법으로 스위치 상태를 모니터링합니다.

스위치의 포트가 대부분의 시간 동안 최대 처리량에 달하는 수준으로 작동할 경우, 해당 스위치는 최적의 성능을 제공하지 못합니다. iSCSI SAN에서 최대 처리량에 달하는 수준으로 실행되는 포트가 있다면 처리 로드를 줄여야 합니다. 포트가 ESXi 시스템이나 iSCSI 스토리지에 연결되어 있으면 수동 로드 밸런싱을 사용하여 로드를 줄일 수 있습니다.

포트가 여러 스위치나 라우터 사이에 연결되어 있으면 이러한 구성 요소 사이에 추가적인 링크를 설치하여 더 많은 로드를 처리할 수 있습니다. 이더넷 스위치는 일반적으로 전송 오류, 대기열에 포함된 패킷 및 삭제된 이더넷 패킷에 대한 정보도 제공합니다. 스위치가 iSCSI 트래픽에 사용되는 포트에 대해 이러한 상태를 정기적으로 보고할 경우에는 iSCSI SAN의 성능이 저하될 수 있습니다.