소개
이 문서에서는 ACI(Application Centric Infrastructure) 업그레이드 문제를 해결하기 위한 단계와 업그레이드 프로세스 전/중 따라야 할 모범 사례에 대해 설명합니다.
ACI 업그레이드는 APIC(Application Policy Infrastructure Controller) 소프트웨어 및 스위치(리프 및 스파인)의 업데이트를 포함합니다.스위치 업그레이드는 일반적으로 매우 간단하지만 APIC 업그레이드에 클러스터 문제가 발생할 수 있습니다.다음은 업그레이드를 시작하기 전에 Cisco에서 준비할 것을 제안하는 몇 가지 사전 점검입니다.
업그레이드 전
ACI 업그레이드를 시작하기 전에 예기치 않은 행동을 방지하기 위해 몇 가지 사전 점검을 수행해야 합니다.
APIC 업그레이드 전에 해야 할 일
- 모든 결함 지우기
ACI 패브릭 상태의 많은 fault에서 유효하지 않거나 충돌 정책이 있거나 심지어 연결이 끊긴 인터페이스 등이 있습니다.업그레이드를 시작하기 전에 트리거를 파악하고 지웁니다.다음과 같은 결함을 인지하십시오. encap already been used
또는 Routed port is in L2 mode
예상치 못한 가동 중단이 발생할 수 있습니다.스위치를 업그레이드하면 APIC에서 모든 정책이 처음부터 다운로드됩니다.따라서 예기치 않은 정책이 운영 중단을 일으킬 수 있는 예상 정책을 인수할 수 있습니다.
- VLAN 풀 중복 지우기
VLAN 풀 중복은 동일한 VLAN ID가 둘 이상의 VLAN 풀에 속함을 의미합니다.동일한 VLAN ID가 서로 다른 VLAN 풀에 속한 여러 리프 스위치에 구축된 경우 이 스위치에서 다른 VXLAN ID를 갖게 됩니다.ACI는 포워딩에 VXLAN ID를 사용하므로 특정 VLAN으로 향하는 트래픽은 다른 VLAN에 도달하거나 삭제될 수 있습니다.leaf는 업그레이드 후 APIC에서 컨피그레이션을 다운로드하므로 VLAN이 구축되는 순서는 큰 역할을 합니다.따라서 일부 VLAN의 엔드포인트에 대한 중단 또는 간헐적인 연결 손실이 발생할 수 있습니다.
업그레이드를 시작하기 전에 VLAN ID 중복을 확인하고 수정해야 합니다.하나의 VLAN ID를 하나의 VLAN 풀에만 포함하고 필요한 경우 VLAN 풀을 재사용하는 것이 좋습니다.
- 지원되는 업그레이드 경로 확인
APIC 업그레이드는 내부적으로 수행되는 한 버전에서 다른 버전으로 데이터를 변환하는 과정을 포함합니다.데이터 변환이 성공하려면 몇 가지 버전 호환성 문제를 해결해야 합니다.Cisco가 현재 ACI 버전에서 업그레이드하려는 새 대상 버전으로 직접 업그레이드를 지원하는지 항상 확인하십시오.때때로 대상 버전에 도달하기 위해 여러 홉을 거쳐야 합니다.지원되지 않는 버전으로 업그레이드할 경우 클러스터 문제 및 컨피그레이션 문제가 발생할 수 있습니다.
지원되는 업그레이드 경로는 항상 Cisco ACI 업그레이드 가이드에 나와 있습니다.
- 백업 APIC 컨피그레이션
업그레이드를 시작하기 전에 컨피그레이션 백업을 원격 서버로 내보내야 합니다.모든 컨피그레이션이 손실되거나 업그레이드 후 데이터가 손상된 경우 이 내보낸 백업 파일을 사용하여 APIC에서 컨피그레이션을 다시 가져올 수 있습니다.
참고:백업에 대해 암호화를 활성화한 경우 암호화 키를 저장해야 합니다.그렇지 않으면 관리자 비밀번호를 포함한 모든 사용자 계정 비밀번호를 제대로 가져오지 않습니다.
- APIC CIMC 액세스 확인
Cisco CIMC(Integrated Management Controller)는 APIC에 대한 원격 콘솔 액세스를 얻는 가장 좋은 방법입니다.재부팅 후 APIC가 다시 나타나지 않거나 프로세스가 중단된 경우 APIC의 대역 외 또는 대역 내 관리를 통해 APIC에 연결하지 못할 수 있습니다.이 단계에서는 CIMC에 로그인하고 APIC에 대한 KVM 콘솔에 연결하여 몇 가지 검사를 수행하고 문제를 해결할 수 있습니다.
- CIMC 버전 호환성 확인 및 확인
ACI 업그레이드를 시작하기 전에 항상 대상 ACI 버전과 호환되는 Cisco 권장 CIMC 버전을 실행해야 합니다.권장 APIC 및 CIMC 버전을 참조하십시오.
- APIC 프로세스가 잠기지 않았는지 확인
APIC에서 실행되는 AE(Appliance Element)라는 프로세스는 APIC에서 업그레이드를 트리거합니다.CentOS IPMI(Intelligent Platform Management Interface)에 APIC의 AE 프로세스를 잠글 수 있는 알려진 버그가 있습니다.AE 프로세스가 잠겨 있으면 APIC 펌웨어 업그레이드가 시작되지 않습니다.이 프로세스는 10초마다 섀시 IPMI를 쿼리합니다.AE 프로세스가 지난 10초 동안 섀시 IPMI를 쿼리하지 않으면 AE 프로세스가 잠길 수 있습니다.
AE 프로세스의 상태를 확인하여 마지막 IPMI 쿼리를 알 수 있습니다.APIC CLI에서 명령을 입력합니다. date
을 눌러 현재 시스템 시간을 확인합니다.이제 명령을 입력합니다. grep "ipmi" /var/log/dme/log/svc_ifc_ae.bin.log | tail -5
AE 프로세스에서 IPMI를 마지막으로 쿼리한 시간을 확인합니다.마지막 쿼리가 시스템 시간의 10초 창 내에 있는지 확인하기 위해 시스템 시간과 시간을 비교합니다.
AE 프로세스가 시스템 시간의 마지막 10초 동안 IPMI를 쿼리하지 못한 경우 업그레이드를 시작하기 전에 APIC를 재부팅하여 AE 프로세스를 복구할 수 있습니다.
참고:클러스터 문제를 방지하기 위해 둘 이상의 APIC를 동시에 재부팅하지 마십시오.
- NTP 가용성 확인 및 확인
각 APIC에서 APIC 시간 불일치로 인해 알려진 문제가 발생하지 않도록 NTP 서버에 대한 연결을 ping 및 확인합니다.이에 대한 자세한 내용은 이 문서의 문제 해결 섹션에서 확인할 수 있습니다.
- APIC 상태 확인
업그레이드를 시작하기 전에 클러스터에서 APIC의 상태를 확인하고 확인합니다.상태 점수 255는 APIC가 건강하다는 것을 의미합니다.명령을 입력합니다. acidiag avread | grep id= | cut -d ' ' -f 9,10,20,26,46
APIC 상태를 확인하기 위해 모든 APIC CLI에서 APIC 상태를 확인합니다.APIC에 대한 상태 점수가 255가 아닌 경우 업그레이드를 시작하지 마십시오.
- 새 버전의 영향 평가
업그레이드를 시작하기 전에 대상 ACI 버전에 대한 릴리스 정보를 검토하고 패브릭 구성에 적용할 수 있는 동작 변경 사항을 파악하여 업그레이드 후 예기치 않은 결과가 발생하지 않도록 합니다.
- Lab에서 업그레이드 준비
Cisco는 새로운 버전의 업그레이드 및 동작을 익히기 위해 실제 프로덕션 패브릭에 앞서 랩 또는 테스트 패브릭에서 업그레이드를 시도하는 것이 좋습니다.이는 업그레이드 후 실행할 수 있는 가능한 문제를 평가하는 데에도 도움이 됩니다.
스위치 업그레이드 전 해야 할 일
- vPC(Virtual Port Channel) 및 리던던시 리프 쌍을 서로 다른 유지 관리 그룹에 배치
ACI APIC에는 vPC 쌍 리프 노드의 업그레이드를 특정 버전 이상에서 확인하고 유예하는 메커니즘이 있습니다.그러나 vPC 스위치 두 대가 동시에 재부팅되지 않도록 vPC 쌍 스위치를 서로 다른 유지 보수 그룹에 두는 것이 좋습니다.
경계 리프와 같이 이중화된 비 vPC 스위치의 경우 중단을 방지하기 위해 다른 포트 그룹에 배치해야 합니다.
업그레이드 문제 해결
업그레이드가 중단되거나 실패할 경우 항상 APIC1 문제 해결을 시작합니다.APIC1 업그레이드가 아직 완료되지 않은 경우 APIC2 및 APIC3에서 아무 작업도 수행하지 마십시오. APIC 업그레이드 프로세스는 증분 프로세스이므로 APIC2는 APIC1이 업그레이드를 완료하고 APIC2에 이를 알리는 등의 경우에만 업그레이드됩니다.따라서 이를 위반하면 클러스터가 손상된 데이터베이스로 손상된 상태로 전환될 수 있으며 클러스터를 다시 빌드해야 할 수도 있습니다.
시나리오:APIC ID 2 이상이 75%로 고정됨
이 시나리오에서는 APIC1이 성공적으로 업그레이드되었지만 APIC2는 여전히 75%로 고정되어 있습니다.이 문제는 APIC1 업그레이드 버전 정보가 APIC2 이상으로 전파되지 않은 경우 발생합니다.Cisco는 svc_ifc_appliance_director
프로세스는 APIC 간의 버전 동기화를 담당합니다.
문제 해결 방법
1단계:APIC1이 리프 스위치에서 트러블슈팅을 수행할지 아니면 APIC 자체에서 계속 진행할지를 결정하므로 나머지 APIC에 TEP(Tunnel End Point) IP 주소를 ping할 수 있는지 확인합니다.APIC1에서 APIC2에 ping을 수행할 수 없는 경우 TAC(Technical Assistance Center)에 전화하여 스위치 문제를 해결할 수 있습니다.APIC1이 APIC2에 ping할 수 있는 경우 두 번째 단계로 진행합니다.
2단계:APIC는 서로 ping할 수 있으므로 APIC1 버전 정보를 피어에 복제해야 하지만 피어에서 수락하지 않았습니다.버전 정보는 버전 타임스탬프로 식별됩니다.75%에서 대기 중인 CLI 및 APIC2 CLI에서 APIC1의 버전 타임스탬프를 확인할 수 있습니다.
APIC1에서
apic1# acidiag avread | grep id=1 | cut -d ' ' -f20-21
version=2.0(2f) lm(t):1(2018-07-25T18:01:04.907+11:00)
APIC2에서
apic2# acidiag avread | grep id=1 | cut -d ' ' -f20-21
version=2.0(1m) lm(t):1(2018-07-25T18:20:04.907+11:00)
이 예에서 버전 2.0(1m)을 실행하는 APIC2(18:20:04)의 버전 타임스탬프는 버전 2.0(2f)을 실행하는 APIC1(18:01:04)의 버전 타임스탬프보다 높습니다. 따라서 APIC2 설치 프로그램 프로세스는 APIC1 업그레이드가 아직 완료되지 않은 것으로 간주하고 75%까지 기다립니다.APIC1의 버전 타임스탬프가 APIC2의 버전 타임스탬프를 초과할 때 APIC2 업그레이드가 시작됩니다. 그러나 시간 차이를 기준으로 많은 대기 시간이 발생할 수 있습니다.이 상태에서 패브릭을 복구하려면 TAC 케이스를 열어 문제를 해결하고 APIC1에서 문제를 해결할 수 있는 지원을 받을 수 있습니다.