상태 저장 애플리케이션의 안정성을 보장하기 위해 로드 밸런서는 관련된 모든 연결을 동일한 서버로 보내는 지속성을 구현합니다. 다양한 유형의 애플리케이션 요구 사항을 해결하기 위해 다양한 유형의 지속성이 지원됩니다.

일부 애플리케이션은 서버 상태(예: 쇼핑 카트)를 유지 보수합니다. 이러한 상태는 클라이언트마다 있을 수 있으며 클라이언트 IP 주소 또는 HTTP 세션별로 식별될 수 있습니다. 애플리케이션은 HTTP 세션 또는 동일한 클라이언트와 관련된 후속 연결을 처리하는 동안 이 상태에 액세스하거나 수정할 수 있습니다.

소스 IP 지속성 프로파일은 소스 IP 주소를 기반으로 세션을 추적합니다. 클라이언트가 소스 주소 지속성을 사용하는 가상 서버에 대한 연결을 요청하면, 로드 밸런서는 해당 클라이언트가 이전에 연결되었는지 확인하여 연결한 적이 있으면 클라이언트를 동일한 서버에 반환합니다. 그렇지 않으면 로드 밸런서가 풀 로드 밸런싱 알고리즘을 기준으로 서버 풀 멤버를 선택합니다. 소스 IP 지속성 프로파일은 계층 4 및 계층 7 가상 서버에 사용됩니다.

규칙 지속성, 쿠키 지속성 및 서버 연결 유지가 모두 구성된 경우 로드 밸런서는 규칙 지속성 > 쿠키 지속성 > 서버 연결 유지의 우선 순위를 따릅니다.

쿠키 지속성 프로파일은 3가지 모드를 제공합니다.
  • 쿠키 삽입 - 로드 밸런싱 기능은 클라이언트에 대한 서버 응답에 풀 멤버 정보(인코딩되었거나 인코딩되지 않음)를 포함하는 자체 쿠키를 삽입합니다. 클라이언트는 후속 요청에서 수신된 쿠키를 전달하고(포함된 NSX 쿠키) 로드 밸런서는 해당 정보를 사용하여 풀 멤버 지속성을 제공합니다. NSX 쿠키는 풀 멤버에 전송될 때 클라이언트 요청에서 트리밍됩니다.
  • 쿠키 접두사 - 로드 밸런서는 클라이언트에 대한 서버 응답에 풀 멤버 정보(인코딩되었거나 인코딩되지 않음)를 추가합니다. 그러면 클라이언트는 후속 요청에서 수신된 HTTP 쿠키를 전달하고(NSX가 접두사로 포함된 정보) 로드 밸런서는 해당 정보를 사용하여 풀 멤버 지속성을 제공합니다. NSX 쿠키 접두사는 풀 멤버에 전송될 때 클라이언트 요청에서 트리밍됩니다.
  • 쿠키 재작성 - 로드 밸런서는 클라이언트에 대한 서버 응답에서 서버 쿠키 값을 풀 멤버 정보(인코딩되었거나 인코딩되지 않음)로 대체합니다. 그러면 클라이언트는 후속 요청에서 수신된 HTTP 쿠키를 전달하고(NSX가 접두사로 포함된 정보) 로드 밸런서는 해당 정보를 사용하여 풀 멤버 지속성을 제공합니다. 원본 서버 쿠키는 풀 멤버에 전송될 때 클라이언트 요청에서 대체됩니다.
쿠키 지속성은 L7 가상 서버에서만 사용할 수 있습니다. 쿠키 이름의 공백은 지원되지 않습니다.

일반 지속성 프로파일은 HTTP 요청의 HTTP 헤더, 쿠키 또는 URL을 기준으로 지속성을 지원합니다. 따라서 세션 ID가 URL의 일부인 경우 애플리케이션 세션 지속성을 지원합니다. 이 프로파일은 가상 서버에 직접 연결되어 있지 않습니다. 요청 전달 및 응답 재작성에 대한 로드 밸런서 규칙을 구성할 때 이 프로파일을 지정합니다.

일반 지속성 프로파일의 다이어그램

프로시저

  1. 브라우저에서 관리자 권한으로 NSX Manager(https://<nsx-manager-ip-address>)에 로그인합니다.
  2. 네트워킹 > 로드 밸런싱 > 프로파일 > 지속성 > 지속성 프로파일 추가를 선택합니다.
  3. 소스 IP를 선택하여 소스 IP 지속성 프로파일을 추가하고 프로파일 세부 정보를 입력합니다.
    기본적인 소스 IP 프로파일 설정을 수락할 수도 있습니다.
    옵션 설명
    이름 및 설명 소스 IP 지속성 프로파일에 대한 설명과 이름을 입력합니다.
    지속성 공유 이 프로파일과 연결된 모든 가상 서버가 지속성 테이블을 공유할 수 있도록 버튼을 전환하여 지속성을 공유합니다.

    가상 서버와 연결된 소스 IP 지속성 프로파일에 지속성 공유를 사용하도록 설정되어 있지 않으면 프로파일이 연결되어 있는 각각의 가상 서버는 개인 지속성 테이블을 유지 보수합니다.

    지속성 항목 시간 초과 지속성 만료 시간(초)을 입력합니다.

    로드 밸런서 지속성 테이블은 클라이언트 요청이 동일한 서버로 전송되는 것을 기록하는 항목을 유지합니다.

    새 클라이언트 IP에서의 첫 번째 연결은 로드 밸런싱 알고리즘을 기준으로 풀 멤버에 대해 로드 밸런싱됩니다. NSX는 CLI 명령(get load-balancer <LB-UUID> persistence-tables)을 통해 활성 T1-LB를 호스팅하는 Edge 노드에서 볼 수 있는 LB 지속성 테이블에 해당 지속성 항목을 저장합니다.

    • 해당 클라이언트에서 VIP로의 연결이 있는 경우 지속성 항목은 유지됩니다.
    • 해당 클라이언트에서 VIP로의 연결이 더 이상 없는 경우 지속성 항목은 "지속성 항목 시간 초과" 값에 지정된 타이머 카운트다운을 시작합니다. 타이머가 만료되기 전에 해당 클라이언트에서 VIP로의 새 연결을 설정하지 않으면 해당 클라이언트 IP에 대한 지속성 항목이 삭제됩니다. 항목을 삭제한 후 해당 클라이언트가 다시 돌아오면 로드 밸런싱 알고리즘을 기준으로 풀 멤버에 대해 다시 로드 밸런싱됩니다.
    가득 차면 항목 제거

    시간 초과 값이 크면 트래픽이 과도할 경우 지속성 테이블이 빠르게 채워질 수 있습니다. 이 옵션을 사용하도록 설정하면 최신 항목을 수용하기 위해 가장 오래된 항목부터 삭제됩니다.

    이 옵션을 사용하지 않도록 설정하면 소스 IP 지속성 테이블이 가득 찰 경우 새 클라이언트 연결이 거부됩니다.

    HA 지속성 미러링 버튼을 전환하여 지속성 항목을 HA 피어와 동기화합니다. HA 지속성 미러링을 사용하도록 설정하면 로드 밸런서 페일오버 시 클라이언트 IP 지속성이 유지됩니다.
    태그 더 쉬운 검색을 위해 태그를 입력합니다.

    태그를 지정하여 태그의 범위를 설정할 수 있습니다.

  4. 쿠키 지속성 프로파일을 선택하고 프로파일 세부 정보를 입력합니다. 쿠키 지속성은 L7 가상 서버에서만 사용할 수 있습니다. 쿠키 이름의 공백은 지원되지 않습니다.
    옵션 설명
    이름 및 설명 쿠키 지속성 프로파일에 대한 설명과 이름을 입력합니다.
    지속성 공유 버튼을 전환하여 동일한 풀 멤버와 연결된 여러 가상 서버에서 지속성을 공유합니다.

    쿠키 지속성 프로파일은 <name>.<profile-id>.<pool-id> 형식으로 쿠키를 삽입합니다.

    가상 서버와 연결된 쿠키 지속성 프로파일에서 공유된 지속성을 사용하도록 설정하지 않은 경우, 각 가상 서버에 대한 개인 쿠키 지속성이 사용되며 풀 멤버에 의해 자격이 부여됩니다. 로드 밸런서는 <name>.<virtual_server_id>.<pool_id> 형식으로 쿠키를 삽입합니다.

    쿠키 모드 드롭다운 메뉴에서 모드를 선택합니다.
    • 삽입 - 세션을 식별하는 고유한 쿠키를 추가합니다.
    • 접두사 - 기존 HTTP 쿠키 정보에 추가합니다.
    • 재작성 - 기존 HTTP 쿠키 정보를 재작성합니다.
    쿠키 이름 쿠키 이름을 입력합니다. 쿠키 이름의 공백은 지원되지 않습니다.
    쿠키 도메인 도메인 이름을 입력합니다.

    HTTP 쿠키 도메인은 삽입 모드에서만 구성 할 수 있습니다.

    쿠키 대체 쿠키가 [사용 안 함] 또는 [종료] 상태인 서버를 가리키는 경우 클라이언트 요청이 거부되도록 버튼을 전환합니다.

    쿠키가 [사용 안 함] 또는 [종료] 상태인 서버를 가리키는 경우 클라이언트 요청을 처리할 새 서버를 선택합니다.

    쿠키 경로 쿠키 URL 경로를 입력합니다.

    HTTP 쿠키 경로는 삽입 모드에서만 설정할 수 있습니다.

    쿠키 왜곡 버튼을 전환하여 암호화를 사용하지 않도록 설정합니다.

    왜곡을 사용하지 않도록 설정하면 쿠키 서버 IP 주소 및 포트 정보가 일반 텍스트 형식입니다. 쿠키 서버 IP 주소 및 포트 정보를 암호화합니다.

    쿠키 유형 드롭다운 메뉴에서 쿠키 유형을 선택합니다.

    세션 쿠키 - 저장되지 않습니다. 브라우저가 닫히면 손실됩니다.

    지속성 쿠키 - 브라우저에서 저장됩니다. 브라우저가 닫혀도 손실되지 않습니다.

    HttpOnly 플래그 이 옵션을 사용하도록 설정하면 브라우저에서 실행 중인 스크립트에서 쿠키에 액세스할 수 없게 됩니다.

    HttpOnly 플래그는 삽입 모드에서만 사용할 수 있습니다.

    보안 플래그 이 옵션을 사용하도록 설정하면 웹 브라우저가 https를 통해서만 쿠키를 전송합니다.

    보안 플래그는 삽입 모드에서만 사용할 수 있습니다.

    최대 유휴 시간 쿠키가 만료되기 전에 쿠키 유형이 유휴 상태일 수 있는 시간(초 단위)을 입력합니다.
    최대 쿠키 사용 기간 세션 쿠키 유형에 대해 쿠키를 사용할 수 있는 시간(초 단위)을 입력합니다.
    태그 더 쉬운 검색을 위해 태그를 입력합니다.

    태그를 지정하여 태그의 범위를 설정할 수 있습니다.

  5. 일반을 선택하여 일반 지속성 프로파일을 추가하고 프로파일 세부 정보를 입력합니다.
    옵션 설명
    이름 및 설명 소스 IP 지속성 프로파일에 대한 설명과 이름을 입력합니다.
    지속성 공유 버튼을 전환하여 가상 서버 간에 프로파일을 공유합니다.
    지속성 항목 시간 초과 지속성 만료 시간(초)을 입력합니다.

    로드 밸런서 지속성 테이블은 클라이언트 요청이 동일한 서버로 전송되는 것을 기록하는 항목을 유지합니다.

    새 클라이언트 IP에서의 첫 번째 연결은 로드 밸런싱 알고리즘을 기준으로 풀 멤버에 대해 로드 밸런싱됩니다. NSX는 CLI 명령(get load-balancer <LB-UUID> persistence-tables)을 통해 활성 T1-LB를 호스팅하는 Edge 노드에서 볼 수 있는 LB 지속성 테이블에 해당 지속성 항목을 저장합니다.

    • 해당 클라이언트에서 VIP로의 연결이 있는 경우 지속성 항목은 유지됩니다.
    • 해당 클라이언트에서 VIP로의 연결이 더 이상 없는 경우 지속성 항목은 "지속성 항목 시간 초과" 값에 지정된 타이머 카운트다운을 시작합니다. 타이머가 만료되기 전에 해당 클라이언트에서 VIP로의 새 연결을 설정하지 않으면 해당 클라이언트 IP에 대한 지속성 항목이 삭제됩니다. 항목을 삭제한 후 해당 클라이언트가 다시 돌아오면 로드 밸런싱 알고리즘을 기준으로 풀 멤버에 대해 다시 로드 밸런싱됩니다.
    HA 지속성 미러링 버튼을 전환하여 지속성 항목을 HA 피어와 동기화합니다.
    태그 더 쉬운 검색을 위해 태그를 입력합니다.

    태그를 지정하여 태그의 범위를 설정할 수 있습니다.