이번 포스팅은 ACI Bug Report 관련 내용입니다.

 

지난 포스팅(http://zigispace.net/957) 에 이어서, ACI OS Upgrade 중에 발생할 수 있는 Bug Report(CSCvb94260)입니다.

2.1미만의 버전에서 발생할 수 있다고 하기 때문에 2.1이상의 버전에서 더 상위 버전으로의 Upgrade에는 발생하지 않을 수 있습니다.

 

이 버그에 대한 증상은

 1. APIC 업그레이드 중에 먼저 진행된 APIC은 정상적으로 Upgrade가 완료되었으나, 이후에 업그레이드 되는 APIC의 상태가 75%에서 멈춰있게 됩니다.  이 경우 75%에서 멈춰있는 APIC에서 확인 할 때, 정상적으로 완료된 APIC의 정보가 기존 버전으로 표기

 

 2. 모든 APIC이 정상적으로 업그레이드가 되고, fully fit 상태까지 되었으나 각 장비에서 acidiag로 확인 시에는 local APIC에 대한 버전만 최신 버전이고 다른 APIC은 기존 버전으로 표기

 

상태를 확인해보면, APIC 2번기가 정상적으로 Upgrade된 상태에서 APIC 3번기가 Stuck이 걸려있을 때,

APIC 2번에서는 2번기 상태를 보면 정상적으로 Upgrade가 되어 있고

APIC 3번기에서 2번기를 상태를 보면, 기존 OS이고 time stamp도 정상적으로 업그레이드 된 시간보다 더 이후 시간으로 체크되어 있음.

 

apic2# acidiag avread | egrep "id=2.*version" | cut -d ' ' -f 7-10,20-21
appliance id=2 version=2.2(2k) lm(t):2(2017-07-25T11:24:01.244+10:00)

apic3# acidiag avread | egrep "id=2.*version" | cut -d ' ' -f 7-10,20-21
appliance id=2 version=2.0(2f) lm(t):2(2017-07-25T11:40:02.248+10:00)

 

2.1 이상에서는 해당 버그가 없기 때문에 2.1 미만의 버전에서만 발생합니다.

 

해당 버그가 발현될 경우에는

위의 예의 APIC 3에서 APIC 2의 정보를 정상적으로 가져오지 못한 상태가 되는 데,

APIC 2에서 "acidiag restart mgmt"를 통해서 APIC에 서비스를 재기동하면

APIC 3에서 APIC 2에 대한 정보가 업데이트 되면서, 정상적으로 Upgrade를 진행 할 수 있습니다.

 

 

 

Posted by 네떡지기

이번 포스팅은 ACI Bug Report 관련 내용입니다.

 

ACI OS Upgrade를 위해서 관리서버인 APIC을 먼저 OS Upgrade를 진행을 합니다.

APIC OS 업그레이드 과정 시, APIC의 재부팅을 하는 도중에 정상적으로 부팅을 하지 못하는 문제가 발생할 수 있습니다.

이 경우 장비에 Console을 붙여서 확인을 하면 다음과 같이 표기됨을 확인할 수 있습니다.

 

APIC 1 Console shows:
do_boot_cpu failed(-1) to wakeup CPU#2
do_boot_cpu failed(-1) to wakeup CPU#3
do_boot_cpu failed(-1) to wakeup CPU#4
do_boot_cpu failed(-1) to wakeup CPU#5
.
.
.
.
do_boot_cpu failed(-1) to wakeup CPU#23

 

 

관련하여 Bug Report(CSCvd84590:scale1-apic1: do_boot_cpu() failed at GRUB starting to boot the Kernel)가 있습니다.

 

해당 버그에 대해서 알려진 버전은 2.2(1.210a), 2.2(2i)이며,

fixed 버전은 3.1(1i), 3.1(0.154), 2.2(3.13)입니다.

 

실제 영향 받는 버전은 더 있을 것으로 보입니다.

 

해당 버그에 대한 조치 방법은 APIC 자체를 실제 전원까지 제거하여 Cold Reboot를 진행하시면 됩니다.

Posted by 네떡지기
네트워크/L4 Swtich2018.02.22 00:07

downStateFlush

서비스 또는 가상 서버가 Down 경우 기존 연결을 즉시 종료하도록 설정 (RST 발생)

  - downStateFlush (Default : Enabled)

  - Virtual Server 혹은 Service 설정

 

Down State Flush 활성화된 경우에 다음의 Connection 상태를 모두 정리(Session Table 삭제)

Connection Pending 서비스 (TCP handshake 정상적으로 완료되지 않은 상태)

ㆍ기존에 연결된 Connection (TCP handshake 완료된 상태)

Pending 요청 (HTTP 요청을 수신했으나 응답하지 않은 상태)

ㆍ진행 중인 요청(HTTP 요청을 수신하고 일정 응답을 받았지만, 전체 응답이 완료되지 않은 상태)

Surge Queue

 

서비스는 해당 서비스 Health 실패하게 되면 Down으로 되고, 가상 서버의 경우에는 가상 서버에 연결된 모든 서비스가 Down 되면 Down으로 됩니다.

 

가상 서버는 Down으로 체크 될때, 즉시 혹은 기존 서비스가 안전하게 종료될 있도록 허용하고 연결을 종료.

 

다음은 가상서버와 가상 서비스에서 downStateFlush 설정에 따른 연결 상태를 나타내는 표입니다.

 

가상서버

가상서비스

State of Connection

Enabled

Enabled

ㆍClient / Server Connection 모두 종료

Enabled

Disabled

ㆍTCP 같은 서비스는 Connection reuse 허용 안함

   - Client / Server Connection 모두 종료

ㆍHTTP 같은 서비스는 Connection reuse 허용

   - 트랜잭션이 활성화 상태 : Client / Server Connection 모두 종료

   - 트랜잭션이 비활성화 상태 : Client Connection 종료

Disabled

Enabled

ㆍTCP 같은 서비스는 Connection reuse 허용 안함

   - Client / Server Connection 모두 종료

ㆍHTTP 같은 서비스는 Connection reuse 허용

   - 트랜잭션이 활성화 상태 : Client / Server Connection 모두 종료

   - 트랜잭션이 비활성화 상태 : Server Connection 종료

 

Disabled

Disabled

ㆍClient / Server Connection 모두 종료 시키지 않음

 

서버나 클라이언트로 연결된 Connection 닫고자 때에는 서비스를 Disable .

 

Command line에서 설정 하는 방법

 set lb vserver <name> -downStateFlush <Value>

  Example

set lb vserver Vserver-LB-1 -downStateFlush enabled

 

GUI 설정 방법

1 Traffic Management > Load Balancing > Virtual Servers

2. Advanced Settings

3. Traffic Settings / Down State Flush.

Posted by 네떡지기
TAG Citrix, L4
분류없음2018.02.21 23:52

ACI 대한 접근 방법

GUI / API / CLI

 

fabric Node CLI 모드

CLI

      - NX-OS, Bash Shell 명령으로 스위치의 정보를 확인(Bash, iBash, iShell이라고 )

vsh_lc

      - Line card Shell.

      - ALE(Application Leaf Engine) ASIC Linecard Process, forwarding table 확인하는 사용

Broadcom Shell

      - Broadcom ASIC 대한 정보를 확인하는 Shell.

      - TAC에서 다루는 범위

VSH

      - NX-OS CLI Shell.

      - ACI 모드에서는 정확 있으며, 사용을 권고하지는 않음.

 

일반 Bash 명령

  CLI 모드를 사용하는 경우에 다음의 일반적인 Linux 명령을 사용 가능

     - man, what, ls, cd, cat, grep, ps, netstat, ip route show, pwd

 

일반 CLI 명령

Fabric Node에는 일반 NX-OS 명령어 외에 ACI 관련된 명령어가 추가로 있음

   - acidiag : controller fabric node 상태를 확인하기 위한 명령

                 acidiag avread(controller정보), acidiag fnvread(fabric node정보) 일반적으로 많이 사용 .

 

   - techsupport : CLI 통해서 장비의 techsupport 파일을 수집

   - attach : APIC에서 Leaf ssh 접근하기 위해서 사용

   - iping/itraceroute  : ping traceroute 대신해서 사용

 

기타

  CLI창에서 <ESC> 키를 두번 누르면, 기존 NX-OS 에서 '?' 처럼, 사용 가능한 키워드가 화면에 표기

    - VSH에서는 NX-OS Shell이기 때문에 동일하게 '?' 사용

 

Posted by 네떡지기

이번 포스팅은 Cisco ACI의 Bug Report (CSCvb42851)에 대한 공유입니다.

 

 

ACI 모드의 Spine과 Leaf의 특정 Process(stats_manager)에서의 Memory Leak에 대한 Bug 입니다 .

Memory Leak으로 인한 장비 자체가 Reload되는 Bug 입니다.

 

일시적인 해결 방법으로는 장비를 재기동하는 것으로 일시적으로 해소되지만,

근본적인 원인 해결은 Memory Leak 문제가 해결된 2.1(2g) 이상으로 OS Upgrade가 필요로 합니다.

 

현재 메모리 상태를 확인하기 위해서는 다음과 같이 확인이 가능합니다.

 

ZIGI_leaf1#ps aux| grep stats_manager| grep-v grep
root 8869 2.3 1.6 1884628 263536?Ss 2017 844:25/isan/bin/stats_manager

 

빨간색으로 표기되는 값이 VSZ(Virtual memory SiZe)이고, 파란색으로 표기된 값이 RSS(Resident Set Size)입니다.

VSZ는 프로세스의 가상 메모리의 크기를 나타내면, RSS를 프로세스가 사용하는 물리 메모리 크기를 나타내게 되는 데,

프로세스에서 메모리가 정상적으로 반환되지 않고 Memory Leak이 발생하는 경우에는 VSZ 값이 증가하게 됩니다.

이 값이 4,194,304에 도달하기 전에 장비가 재기동 되기 때문에 해당 메모리 사이즈 근처로 가기 전에 조치를 취해야 합니다.

 

실제 GUI의 Inventory에서 확인 가능한 stats_manager의 값은 RSS에 대한 값이기 때문에 정확한 값을 확인하기 위해서는

CLI에서 확인해야 합니다.

 

그리고, stats_manager의 해당 값으로 가지 않더라도 stats_manager 프로세스에서의 Memory Leak으로 인해서 전체 메모리

사용량이 올라가면서 메모리가 소진되면, Kernel Panic이 발생할 수도 있습니다.

전체 메모리 사용량은 다음과 같이 확인이 가능합니다.

 

ZIGI_leaf1#show system resources
Load average:1 minute:1.34 5 minutes:1.46 15 minutes:1.51
Processes:608 total, 1 running
CPU states:6.9%user, 3.0%kernel, 90.1%idle
Memory usage:24500980K total, 12353268K used, 12147712K free
Current memory status:OK

 

참고로 만약에 이 Bug로 장비가 재기동된 경우에 장비의 reset-reason을 확인하면 다음과 같이 나오게 됩니다.

ZIGI_leaf1#show system reset-reason
***************module reset reason(1)***********
0)At 2018-02-24T 13:00:00.312+09:00
Reason:reset-triggered-due-to-ha-policy-of-reset
Service:stats_manager hap reset
Version:12.0(2h)

 

Posted by 네떡지기
DevOps/Programmability2018.02.07 08:02

안녕하세요.

이번 포스팅은 Programmability for Networker의 25번째 포스팅입니다.

ACI Cobra를 이용하여 Port Channel 혹은 vPC Profile을 만들어주는 코드에 대해서 공유합니다.

세부적인 코드 설명은 포함되어 있지는 않지만, 현업에서 아래의 코드를 사용한다면

보다 쉽고, 빠르게 Profile을 만드실 수 있을겁니다.

이번 코드는  운영 중인 커뮤니티에서 진행된  '제 22회 네트워크 전문가 따라잡기 'N.EX.T''에서 발표하였던 코드이기도 합니다.

(정리해서 올리기로 하고.. 1년 가까이가 지났네요. ^^)

 

물론 포스팅 설명에 앞서서 한가지 미리 얘기를 드리면,

'왜 Port Channel이나 vPC Profile을 대량을 으로 만들어야 하지?' 라고 생각하실 수 있습니다.

ACI에 대한 포스팅을 준비만 하면서 계속하지 못하고 있어서 다루지 못한 부분이기는 하지만..

이 부분은 ACI를 어떻게 설계해서 사용하느냐에 따라서 많아질 수도.. 혹은 적어질 수도 있을 것이라고 생각합니다.

(물론 개인적인 생각은 최적화 된 Profile로 설계해서 사용한다면 그리 많지 않은 Profile로 모두 수용이 가능합니다.)

 

그럼 이제 본 내용을 시작합니다.

 


 

ACI에서 기본적으로 제공되는 APIC GUI에서 Click! Click을 이용해서 설정하는 방법 이외에

 

일괄적으로 대량을 설정을 하기 위해서는

JSON이나, XML 포맷의 파일을 미리 만들어 POST 하여 설정을 하거나,

ACI에서 제공되는 API를 이용해서 코드로 설정하는 방법이 있을 것입니다.  (CLI를 제외하고..)

 

하지만, 오늘 다룰 내용인 Interface Policies 항목에서는 POST를 할 수 있는 메뉴가 없습니다.

최상단의 Interface Policies에도 없고요.

 

 

 

 

 

 

하단의 Policy Groups에도 없습니다.

 

 

 

물론 그 하단인 Leaf Policy Groups에도 없습니다.

 

 

그래서 PC Profile이나 vPC Profile을 생성하기 위해서 ACI SDK인 Cobra를 이용하여 Port Channel이나 vPC Profile을 만들려고 합니다.

 

다음은 Port Channel이나 vPC Profile을 만드는 코드입니다.

 

 

위의 코드 이외에 Port Channel 혹은 vPC Profile의 이름이 선언된 info.txt라는 파일이 있어야 합니다.

info.txt에는 단순히 Profile에 사용할 이름만 한 줄씩 나열합니다.

 

그러면 info 파일에서 한 줄씩 읽어서 해당 이름으로 Profile을 생성하게 됩니다.

코드 본문에 있는 AEP 변수에서 사용하실 AEP 이름을 수정하시고

Port Channel을 사용할지, vPC를 사용할지에 따라서 AccBndlGrp 메서드 호출 시에 lagT에 대해서

 

Port Channel은 'link'로 설정하시고, vPC의 경우에는 'node'로 설정하시면 됩니다.

 

위의 코드에서는 Link Level Policy, Port Channel Policy, Attach Entity Profile에 대한 속성만 설정하였지만,

기타 그 밖의 설정을 추가할 수도 있습니다.

 

혹시라도 대량으로 PC, vPC Profile을 설정하셔야 하는 경우에 이 코드를 사용하시면 조금은 쉽게 설정이 가능하실 겁니다.

물론 자동화의 장점은 설정에 대한 편의성도 있지만, 잘못된 설정으로 인한 휴먼에러의 방지도 가능할 것입니다.

 

참고로, 위의 코드에서는 설정 시의 기본 예외처리만 만들었으며

기타 다른 상황에 대한 세부 예외 처리가 되어 있지 않기 때문에 더 보완해서 사용해보시는 것도 좋을 것 같습니다.

 

 

Posted by 네떡지기

티스토리 툴바