목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

배경 정보

UPF란?

VPC-SI란?

KVM 하이퍼바이저란 무엇입니까?

ICSR이란?

문제

유지 보수 절차

소개

이 문서에서는 IMS(IP Multimedia Subsystem) 및 UPF(Data User Plane Function) 노드에서 유지 보수 작업을 수행하는 절차에 대해 설명합니다.

사전 요구 사항

요구 사항

다음 주제에 대한 지식을 보유하고 있으면 유용합니다.

- 5G-UPF

- RCM(Redundancy Configuration Manager)

- VPC(Virtual Packet Core) - 단일 인스턴스(SI)

- 커널 기반 KVM(가상 머신) 하이퍼바이저

사용되는 구성 요소

이 문서의 정보는 다음 소프트웨어 및 하드웨어 버전을 기반으로 합니다.

- Subscriber Microservices Infrastructure SMI) 2020.02.2.35

- Star OS 21.22

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

배경 정보

UPF란?

UPF(User Plane Interface)는 5G 코어 네트워크(5GC)의 네트워크 기능(NF) 중 하나이다. 5G 아키텍처에서 패킷 라우팅 및 포워딩, 패킷 검사, QoS 처리, 외부 PDU 세션 등을 담당하여 DN(Data Networks)을 상호 연결합니다.

VPC-SI란?

VPC-SI는 StarOS를 실행하는 물리적 Cisco ASR 5500 섀시의 운영을 상용 COTS(Off-the-Shelf) 서버에서 실행할 수 있는 단일 VM(Virtual Machine)으로 통합합니다. 각 VPC-SI VM은 독립적인 StarOS 인스턴스로 작동하며 물리적 섀시의 관리 및 세션 프로세스 기능을 통합합니다.

KVM 하이퍼바이저란 무엇입니까?

KVM(Kernel-based Virtual Machine)은 Linux에 내장된 오픈 소스 가상화 기술입니다. 특히 KVM을 사용하면 Linux를 하이퍼바이저로 전환하여 호스트 시스템이 게스트 또는 VM(가상 머신)이라고 하는 여러 개의 격리된 가상 환경을 실행할 수 있습니다.

ICSR이란?

ICSR(Interchassis Session Recovery)은 별도의 라이센스가 필요한 라이센스가 부여된 Cisco 기능입니다. 이 기능은 가입자 서비스를 중단하지 않고 연속 통화 프로세스를 위해 가능한 최고의 가용성을 제공합니다. 운영자는 ICSR을 사용하여 이중화를 위해 게이트웨이를 구성할 수 있습니다. 게이트웨이 장애가 발생할 경우 ICSR을 통해 세션을 장애 주위로 투명하게 라우팅할 수 있으므로 사용자 환경이 유지됩니다. 또한 ICSR은 세션 정보 및 상태를 보존합니다.

문제

하드웨어 장애 또는 소프트웨어/펌웨어 업그레이드 등의 하드웨어 유지 보수를 위해서는 서버의 다운타임이 필요합니다. UPF 베어 메탈 서버에서 유지 보수를 수행하려면 이 절차를 따라야 하며 UPF 애플리케이션에서 원치 않는 다운타임을 방지하기 위해 서비스를 정상적으로 전환하는 방법을 따라야 합니다.

유지 보수 절차

UPF 노드는 KVM 하이퍼바이저에서 호스팅되는 StarOS VM입니다. 하나의 KVM 하이퍼바이저가 2개의 VM 인스턴스를 호스팅합니다. IMS UPF에는 1:1 이중화가 있으며, 모든 활성 인스턴스에는 대기 인스턴스가 있습니다. SRP(Session Redundancy Protocol)와 함께 ICSR을 사용하여 이중화를 처리합니다. SRP는 ICSR 섀시 간에 hello 메시지를 교환하는 데 사용됩니다. 또한 활성/대기 섀시(체크포인트 데이터) 간에 세션 상태 정보를 교환합니다. 전체 가입자 세션 정보는 SRP 링크를 통해 CRR(Call Recovery Record) 형식으로 활성 섀시에서 대기 섀시로 전송됩니다.

KVM 노드에 로그인하고 KVM virsh 명령을 사용하여 VM 인스턴스를 나열합니다.

cloud-user@podname-upf-ims-kvmnode-1:~$ sudo virsh list --all

Id Name State

----------------------------------------------------

1 imsupf01 running

4 imsupf10 running

cloud-user@podname-upf-ims-kvmnode-1:~$

UPF 인스턴스에 로그인하고 섀시 상태를 확인합니다.

[local]imsupf10# show srp info

Friday July 22 15:50:24 UTC 2022

Service Redundancy Protocol:

-------------------------------------------------------------------------------

Context: srp

Local Address: 10.x.x.74

Chassis State: Standby

Chassis Mode: Backup

Chassis Priority: 2

Local Tiebreaker: 02-7E-35-53-F9-F1

Route-Modifier: 9

Peer Remote Address: 10.x.x.73

Peer State: Active

Peer Mode: Primary

Peer Priority: 1

Peer Tiebreaker: 02-11-59-73-87-35

Peer Route-Modifier: 8

Last Hello Message received: Fri Jul 22 15:50:21 2022 (3 seconds ago)

Peer Configuration Validation: Complete

Last Peer Configuration Error: None

Last Peer Configuration Event: Fri Jul 22 15:50:22 2022 (2 seconds ago)

Last Validate Switchover Status: None

Connection State: Connected

[local]imsupf01# show srp info

Friday July 22 15:31:20 UTC 2022

Service Redundancy Protocol:

-------------------------------------------------------------------------------

Context: srp

Local Address: 10.x.x.66

Chassis State: Active

Chassis Mode: Backup

Chassis Priority: 2

Local Tiebreaker: 02-7C-1A-62-FA-3C

Route-Modifier: 5

Peer Remote Address: 10.x.x.65

Peer State: Standby

Peer Mode: Primary

Peer Priority: 1

Peer Tiebreaker: 02-87-33-98-6D-08

Peer Route-Modifier: 6

Last Hello Message received: Fri Jul 22 15:31:20 2022 (1 seconds ago)

Peer Configuration Validation: Complete

Last Peer Configuration Error: None

Last Peer Configuration Event: Fri Jul 22 15:20:13 2022 (668 seconds ago)

Last Validate Switchover Status: None

Connection State: Connected

IMS UPF용 액티브-스탠바이 ICSR 쌍의 라인 수가 동일한지 확인합니다.

Active node

# show configuration | grep -n -E "^end$"

Thursday July 21 07:30:17 UTC 2022

14960:end

Standby Node

# show configuration | grep -n -E "^end$"

Thursday July 21 07:31:02 UTC 2022

14959:end

활성 UPF에서 SRP 스위치오버하기 전에 SRP essmgr이 활성 연결 상태인지 확인하고 보류 중 활성 상태가 없는지 확인합니다.

[local]imsupf01# show srp checkpoint statistics active

Thursday July 21 07:38:04 UTC 2022

Number of Sessmgrs: 20

Sessmgrs in Active-Connected state: 20

Sessmgrs in Standby-Connected state: 0

Sessmgrs in Pending-Active state: 0

대기 UPF에서 SRP 스위치오버 전에 SRP essmgr이 활성 연결 상태인지 확인하고 보류 중 활성 상태가 없는지 확인합니다

[local]imsupf02# show srp checkpoint statistics active

Thursday July 21 07:40:03 UTC 2022

Number of Sessmgrs: 20

Sessmgrs in Active-Connected state: 0

Sessmgrs in Standby-Connected state: 20

Sessmgrs in Pending-Active state: 0

이 둘 중 하나가 활성 상태인 경우 전환하기 전에 먼저 다음 작업을 수행해야 합니다.

[upf-ims]# save config /flash/xxx_production.cfg. --> Replace xxx with the desired name of the config

[upf-ims]# srp validate-configuration

[upf-ims]# srp validate-switchover

VM을 종료하기 전에 가입자가 정상적으로 전환되도록 액티브 인스턴스가 스탠바이로 전환되었는지 확인해야 합니다. 인스턴스가 이미 대기 상태인 경우 아무런 작업도 필요하지 않습니다. 인스턴스가 활성 상태이면 강조 표시된 값을 확인하고 대기 상태가 인수 준비 상태인지 확인합니다.

활성 UPF 인스턴스에서 현재 가입자를 확인합니다.

[local]imsupf01# show subscribers data-rate summary

Friday July 22 16:01:37 UTC 2022

Total Subscribers : 175024

Active : 175024 Dormant : 0

활성 인스턴스를 스탠바이로 전환합니다.

[context-name]<hostname># srp initiate-switchover

지금 활성 상태가 된 대기 상태를 확인하고 가입자 세션도 새 활성 인스턴스로 이동합니다. 이제 두 VM 인스턴스가 모두 대기 상태이므로 서버 유지 관리를 위해 다운되는 것이 좋습니다. 지정된 virsh 명령을 사용하여 VM 인스턴스를 종료하고 상태를 확인합니다.

cloud-user@podname-upf-ims-kvmnode-1:~$ sudo virsh shutdown imsupf01

Domain imsupf01 is being shutdown

cloud-user@podname-upf-ims-kvmnode-1:~$ sudo virsh shutdown imsupf10

Domain imsupf10 is being shutdown

cloud-user@podname-upf-ims-kvmnode-1:~$ sudo virsh list --all

Id Name State

----------------------------------------------------

1 imsupf01 shut off

4 imsupf10 shut off

cloud-user@podname-upf-ims-kvmnode-1:~$

유지 보수 후 서버가 복구되면 VM이 자동으로 시작됩니다. UPF 인스턴스는 대기 상태로 유지됩니다. 지정된 명령으로 확인합니다.

[local]imsupf10# show srp info

Friday July 22 15:50:24 UTC 2022

Service Redundancy Protocol:

-------------------------------------------------------------------------------

Context: srp

Local Address: 10.x.x.74

Chassis State: Standby

Chassis Mode: Backup

Chassis Priority: 2

Local Tiebreaker: 02-7E-35-53-F9-F1

Route-Modifier: 9

Peer Remote Address: 10.x.x.73

Peer State: Active

Peer Mode: Primary

Peer Priority: 1

Peer Tiebreaker: 02-11-59-73-87-35

Peer Route-Modifier: 8

Last Hello Message received: Fri Jul 22 15:50:21 2022 (3 seconds ago)

Peer Configuration Validation: Complete

Last Peer Configuration Error: None

Last Peer Configuration Event: Fri Jul 22 15:50:22 2022 (2 seconds ago)

Last Validate Switchover Status: None

Connection State: Connected

Data UPF는 N:M 이중화를 갖는 RCM을 사용합니다. 여기서 N은 10 미만의 활성 UPF의 수이고 M은 이중화 그룹의 대기 UP의 수입니다. RCM은 StarOS 기반 UPF(User Plane Function)에 대한 이중화를 제공하는 Cisco 전용 노드 또는 NF(Network Function)입니다. 모든 활성 UPF의 모든 필수 세션 정보를 저장하거나 미러링합니다. 전환 트리거에서 하나의 스탠바이 UPF를 선택하여 공통 위치에서 적절한 세션 데이터를 수신합니다. RCM은 VM의 K3 클러스터에서 실행됩니다. Ops Center에서 RCM 노드를 구성합니다.

데이터 UPF 노드는 IMS UPF 노드와 동일합니다. 유일한 차이점은 RCM 이중화 관리입니다.

KVM 노드에서 VM 상태를 확인합니다.

cloud-user@podname-upf-data-kvmnode-1:~$ sudo virsh list --all

Id Name State

----------------------------------------------------

1 dataupf20 running

2 dataupf11 running

cloud-user@podname-upf-data-kvmnode-1:~$

UPF 인스턴스에 로그인한 후 RCM 이중화 상태를 확인합니다. 인스턴스가 이미 대기 상태인 경우 아무런 작업도 필요하지 않습니다. 액티브 상태인 경우 스탠바이 모드로 전환해야 합니다.

[local]dataupf11# show rcm info

Friday July 22 17:23:17 UTC 2022

Redundancy Configuration Module:

-------------------------------------------------------------------------------

Context: rcm

Bind Address: 10.x.x.75

Chassis State: Active

Session State: SockActive

Route-Modifier: 26

RCM Controller Address: 10.x.x.163

RCM Controller Port: 9200

RCM Controller Connection State: Connected

Ready To Connect: Yes

Management IP Address: 10.x.x.149

Host ID: DATAUPF15

SSH IP Address: 10.x.x.158 (Activated)

SSH IP Installation: Enabled

[local]dataupf11#

모든 ssmgr이 활성 연결 상태인지 확인합니다.

local]dataupf11# show rcm checkpoint statistics active

Thursday July 21 07:47:03 UTC 2022

Number of Sessmgrs: 22

Sessmgrs in Active-Connected state: 22

Sessmgrs in Standby-Connected state: 0

Sessmgrs in Pending-Active state: 0

CIQ(Customer Information Questionnaire)에서 해당 RCM 노드를 식별하고 RCM 상태를 확인합니다. RCM 전환은 마스터 노드에서만 수행할 수 있습니다. 마스터 RCM에 로그인해야 합니다.

[podname-aio-1/dcrm01] rcm# rcm show-status

message :

{"status":"MASTER"}

[podname-aio-1/dcrm01] rcm#

지정된 명령(출력이 잘림)으로 활성 및 대기 UPF 노드를 찾습니다.

[podname-aio-1/dcrm01] rcm# rcm show-statistics controller

message :

{

"keepalive_version": "e7386cb81b1fefc3396dfd1d528e0d2a27de80d5de6a78364caf938a0d2149b6",

"keepalive_timeout": "20s",

"num_groups": 2,

"groups": [

{

"groupid": 1,

"endpoints_configured": 7,

"standby_configured": 1,

"pause_switchover": false,

"active": 6,

"standby": 1,

"endpoints": [

{

"endpoint": "10.x.x.75",

"bfd_status": "STATE_UP",

"upf_registered": true,

"upf_connected": true,

"upf_state_received": "UpfMsgState_Active",

"bfd_state": "BFDState_UP",

"upf_state": "UPFState_Active",

"route_modifier": 26,

"pool_received": true,

"echo_received": 142354,

"management_ip": "10.x.x.149",

"host_id": "DATAUPF15",

"ssh_ip": "10.x.x.158",

"force_nso_registration": false

....

....

{

"endpoint": "10.x.x.77",

"bfd_status": "STATE_UP",

"upf_registered": true,

"upf_connected": true,

"upf_state_received": "UpfMsgState_Standby",

"bfd_state": "BFDState_UP",

"upf_state": "UPFState_Standby",

"route_modifier": 50,

"pool_received": false,

"echo_received": 3673,

"management_ip": "10.x.x.153",

"host_id": "",

"ssh_ip": "10.x.x.186",

"force_nso_registration": false

},

관리 IP를 사용하여 대기 UPF 인스턴스에 로그인하고 상태를 확인합니다

[local]dataupf13# show rcm info

Friday July 22 17:36:04 UTC 2022

Redundancy Configuration Module:

-------------------------------------------------------------------------------

Context: rcm

Bind Address: 10.x.x.77

Chassis State: Standby

Session State: SockStandby

Route-Modifier: 50

RCM Controller Address: 10.x.x.163

RCM Controller Port: 9200

RCM Controller Connection State: Connected

Ready To Connect: Yes

Management IP Address: 10.x.x.153

Host ID:

SSH IP Address: 10.x.x.186 (Activated)

SSH IP Installation: Enabled

[local]dataupf13#

확인 후 액티브 를 스탠바이 로 원활하게 전환합니다. 관리 IP를 사용해야 합니다.

[podname-aio-1/dcrm01] rcm# rcm switchover-mgmt-ip source 10.x.x.149 destination 10.x.x.153

참고: 전환 후 새 Active UP Essmgr이 서버 상태에 머물러 있는 경우 Cisco 기술 지원을 활용하십시오. 문제가 있는 경우, sessmgr을 제거해야 하므로 올바른 클라이언트 소켓 상태로 RCM에 다시 연결하고 복구합니다. 모든 ssmgr은 CLIENT 상태여야 합니다. 지정된 명령(숨김 모드)으로 확인합니다.

# show session subsystem facility sessmgr all debug-info | grep -E "SessMgr|Mode:"

Thursday July 21 07:56:26 UTC 2022

SessMgr: Instance 5000

Mode: UNKNOWN State: SRP_SESS_STATE_SOCK_ACTIVE

SessMgr Activity Detected: FALSE

SessMgr: Instance 22

Mode: CLIENT State: SRP_SESS_STATE_SOCK_ACTIVE

SessMgr Activity Detected: TRUE

SessMgr: Instance 21

Mode: CLIENT State: SRP_SESS_STATE_SOCK_ACTIVE

SessMgr Activity Detected: TRUE

모든 sessmgr이 활성 및 준비 상태인지 확인하십시오.

# show rcm checkpoint statistics verbose

Thursday July 21 07:52:29 UTC 2022

smgr state peer recovery pre-alloc chk-point rcvd chk-point sent

inst conn records calls full micro full micro

---- ------- ----- ------- -------- ----- ----- ----- ----

1 Actv Ready 0 0 1731 68120 3107912 409200665

2 Actv Ready 0 0 1794 70019 3060062 408647685

3 Actv Ready 0 0 1753 68793 3078531 406227415

4 Actv Ready 0 0 1744 67585 3080952 410218643

5 Actv Ready 0 0 1749 69155 3096067 404944553

6 Actv Ready 0 0 1741 68805 3067392 407133464

7 Actv Ready 0 0 1744 67963 3084023 406772101

8 Actv Ready 0 0 1748 68702 3009558 408073589

9 Actv Ready 0 0 1736 68169 3030624 405679108

10 Actv Ready 0 0 1707 67386 3071592 406000628

11 Actv Ready 0 0 1738 68086 3052899 407991476

12 Actv Ready 0 0 1720 68500 3102045 408803079

13 Actv Ready 0 0 1772 69683 3082235 406426650

14 Actv Ready 0 0 1727 66900 2873736 392352402

15 Actv Ready 0 0 1739 68465 3032395 409603844

16 Actv Ready 0 0 1756 69221 3063447 411445527

17 Actv Ready 0 0 1755 68708 3051573 406333047

18 Actv Ready 0 0 1698 66328 3066983 407320405

19 Actv Ready 0 0 1736 68030 3037073 408215965

20 Actv Ready 0 0 1733 67873 3069116 405634816

21 Actv Ready 0 0 1763 69259 3074942 409802455

22 Actv Ready 0 0 1748 68228 3051222 406470380

가입자가 새 대기 모드로 이동되었는지 확인합니다.

[local]dataupf11# show subscribers data-rate summary

Friday July 22 17:40:18 UTC 2022

Total Subscribers : 62259

Active : 62259 Dormant : 0

두 인스턴스가 모두 대기 상태일 경우 VM은 virsh 명령을 사용하여 KVM에서 종료할 수 있습니다.

cloud-user@podname-upf-data-kvmnode-1:~$ sudo virsh shutdown dataupf20

Domain dataupf20 is being shutdown

cloud-user@podname-upf-data-kvmnode-1:~$ sudo virsh shutdown dataupf11

Domain dataupf11 is being shutdown

cloud-user@podname-upf-data-kvmnode-1:~$ sudo virsh list --all

Id Name State

----------------------------------------------------

1 dataupf20 shut off

4 dataupf11 shut off

cloud-user@podname-upf-data-kvmnode-1:~$

VM이 종료되면 유지 관리를 위해 KVM 노드(물리적 서버)를 종료할 수 있습니다. 완료되면 서버를 시작합니다. VM은 자동으로 실행됩니다. UPF 인스턴스는 스스로 대기 상태가 됩니다. 지정된 명령을 사용하여 동일한 내용을 확인합니다.

cloud-user@podname-upf-data-kvmnode-1:~$ sudo virsh list --all

Id Name State

----------------------------------------------------

1 dataupf20 running

2 dataupf11 running

cloud-user@podname-upf-data-kvmnode-1:~$

[local]dataupf11# show rcm info

Friday July 22 17:36:04 UTC 2022

Redundancy Configuration Module:

-------------------------------------------------------------------------------

Context: rcm

Bind Address: 10.x.x.77

Chassis State: Standby

Session State: SockStandby

Route-Modifier: 50

RCM Controller Address: 10.x.x.163

RCM Controller Port: 9200

RCM Controller Connection State: Connected

Ready To Connect: Yes

Management IP Address: 10.x.x.153

Host ID:

SSH IP Address: 10.x.x.186 (Activated)

SSH IP Installation: Enabled

[local]dataupf13#

RCM 노드에서 rcm 컨트롤러는 여전히 대기 UPF를 "대기 중"으로 표시할 수 있습니다. 대기 모드로 전환하는 데 최대 15~20분이 소요될 수 있습니다. 지정된 명령(출력이 잘림)으로 동일하게 확인합니다.

[podname-aio-1/dcrm01] rcm# rcm show-statistics controller

message :

{

"keepalive_version": "e7386cb81b1fefc3396dfd1d528e0d2a27de80d5de6a78364caf938a0d2149b6",

"keepalive_timeout": "20s",

"num_groups": 2,

"groups": [

{

"groupid": 1,

"endpoints_configured": 7,

"standby_configured": 1,

"pause_switchover": false,

"active": 6,

"standby": 1,

"endpoints": [

....

....

{

"endpoint": "10.x.x.77",

"bfd_status": "STATE_UP",

"upf_registered": true,

"upf_connected": true,

"upf_state_received": "UpfMsgState_Standby",

"bfd_state": "BFDState_UP",

"upf_state": "UPFState_Standby",

"route_modifier": 50,

"pool_received": false,

"echo_received": 3673,

"management_ip": "10.x.x.153",

"host_id": "",

"ssh_ip": "10.x.x.186",

"force_nso_registration": false

},