Einführung
Dieses Dokument enthält Informationen zur Architektur der Trivial File Transfer Protocol (TFTP)-Skalierung, die als Teil von Cisco Unified Communication Manager (CUCM) Version 11.5 als neueste Erweiterung für CUCM implementiert wurde. Dies ist eine rein technische Funktion, um den TFTP-Dienst hinsichtlich der Speichernutzung und der Art und Weise, wie er die Konfigurations- und statischen Dateien bedient, zu verbessern. Die Geschäftslogik bleibt unverändert, und es ergeben sich keine Auswirkungen auf andere von TFTP bereitgestellte Services.
Hintergrundinformationen
Gründe, weshalb diese Verbesserung erforderlich und integriert war
Probleme mit dem aktuellen Design
- Die Logik, wie TFTP die Konfigurationsdateien bereitstellt, wurde lange Zeit nicht geändert.
- Vor 11.5 erstellt der TFTP-Dienst die Konfigurationsdateien und speichert alle Konfigurationsdateien im Speicher.
- Da der CUCM mehr Kapazität in Bezug auf die Anzahl der unterstützten Telefone hinzugefügt wurde, stieg der Platzbedarf für den TFTP-Service linear an.
- Zukünftige Roadmaps erfordern zusätzliche Kapazitäten für Telefone, um in CUCM implementiert zu werden.
- Daher ist es wichtig, die Erhöhung der Speicherkapazität des TFTP-Service zu bewältigen.
Startzeit des Service
- In mittelgroßen bis großen Bereitstellungen mit konfigurierten Telefonen von 20.000 bis 40.000
- Wenn eine Änderung vorgenommen wird, die alle Telefone betrifft, erstellt TFTP alle betroffenen Konfigurationsdateien und erstellt den Cache neu.
- Dadurch wird die Zeit verlängert, die zum Starten des TFTP-Services benötigt wird.
- Wenn Telefone Konfigurationsdateien anfordern, wird eine Besetztzeichen-Antwort an das Telefon gesendet.
Übersicht der Funktionen
Die implementierte neue Funktion behebt die beiden oben genannten Probleme durch ein Cache-loses Design und die On-Demand-Erstellung der Konfigurationsdatei. Wenn eine Anfrage vom Telefon gesendet wird, erstellt der TFTP-Dienst die Konfigurationsdatei sofort und stellt sie in Echtzeit für das Telefon bereit. Die Konfigurationsdatei wird nicht im Arbeitsspeicher zwischengespeichert, wodurch wiederum die Servicestartzeit und der Arbeitsspeicherbedarf des TFTP-Services reduziert werden.
Design-Änderungen
Die vorgenommenen Designänderungen fallen in zwei Kategorien: "Connection Management" (Verbindungsverwaltung) und "Configuration File Generation" (Konfigurationsdateigenerierung). In der Tabelle unten sind die in den einzelnen Kategorien vorgenommenen Änderungen aufgeführt.
Verbindungsmanagement |
Erstellen von Konfigurationsdateien |
HTTP |
TFTP |
Framework hinzugefügt für On-Demand-Build- und signierte Konfigurationsdateien
|
Network Service Layer ist für die Verwendung von SDL zur Verarbeitung aller TCP-Verbindungen konzipiert. |
Keine Änderungen, wenn Telefone Konfigurationsdateien über UDP anfordern |
Leistungsverbesserungen
Im Folgenden finden Sie die Leistungsverbesserungen, die mit der Implementierung dieser neuen Funktion erzielt wurden.
- Deutliche Reduzierung des Arbeitsspeicherbedarfs des TFTP-Service
- Die Speicherkapazität des TFTP-Service beträgt ca. 600 MB.
- Die Startzeit für den Dienst ist geringer, da die Dateien nicht zwischengespeichert werden.
- Die Startzeit des Service ist von der Anzahl der im System bereitgestellten Telefone unabhängig.
Leistungskennzahlen
|
Anzahl der Telefone |
Zeit bis zur Version vor 11.5 |
Zeitaufwand in Version 11.5 |
Service-Startzeit |
20000 |
3 Minuten, 38 Sekunden |
0 Minuten 19 Sekunden |
Über HTTP bereitgestellte Dateien |
20000 |
7 Minuten, 24 Sekunden |
4 Minuten, 06 Sekunden |
Über TFTP bereitgestellte Dateien |
20000 |
5 Minuten, 36 Sekunden |
4 Minuten, 11 Sekunden |
Hinweis: Die obigen Zahlen stammen nicht nur aus einem Testlauf, sondern sind im Durchschnitt aus mehreren Testläufen.
Protokollanalyse:
Verwendete Geräte:
CUCM-Version 11.5.1.1000-6
Cisco IP Communicator Version 8.6.2
Anforderung von Konfigurationsdateien über HTTP in einer Version vor 11.5
Anforderung der Konfigurationsdatei vom Telefon
00593088.000 |21:58:11.698 |AppInfo | TID[da900b70] HTTPEngine::getRequest(),
[0xa0d6c90~7~10.65.64.132~54462] INFO:: socket(12), ReqTimeout[60],
Request[GET /SEP000C29ED3D88.cnf.xml HTTP/1.1
Da alle Dateien nach dem Erstellen zwischengespeichert werden, sucht TFTP die zwischengespeicherte Konfigurationsdatei
00593097.000 |21:58:11.698 |AppInfo |CReqContext::FindAndServe(1)[0xa0d6c90~7~10.65.64.132~54462]
,[(SEP000C29ED3D88.cnf.xml),(6779),(0xf388c2a8)] found in config cache
Die Konfigurationsdatei wird dem Telefon erfolgreich bereitgestellt.
00593102.000 |21:58:11.698 |AppInfo | HTTPEngine::sendResponse[0xa0d6c90~7~10.65.64.132~54462]
FileName[SEP000C29ED3D88.cnf.xml], Version[HTTP/1.1], Size[6779]
00593103.000 |21:58:11.698 |AppInfo | HTTPEngine::sendResponse[0xa0d6c90~7~10.65.64.132~54462]
INFO:: [85][HTTP/1.1 200 OK
Konfigurationsdateianforderung über HTTP in 11.5
Anforderung der Konfigurationsdatei vom Telefon
00000510.003 |21:47:40.683 |AppInfo | HTTPConnection::wait_SdlDataInd Printing the HTTPRequest :
msgBuffer size [148] --: GET /SEP000C29ED3D88.cnf.xml HTTP/1.1
ServeFile-Prozess sendet das Signal 'FileRequest' an ServeDynamicFile
00000511.010 |21:47:40.683 |AppInfo | ServeFile::wait_FileRequest Sending the
FileRequest signal to ProcessServeDynamicFile process
00000511.011 |21:47:40.683 |AppInfo |<--ServeFile::wait_FileRequest
00000512.000 |21:47:40.683 |SdlSig |FileRequest |wait
|ServeDynamicFile(1,600,25,1) |ServeFile(1,600,24,1) |1,600,14,4.3^*^* |*TraceFlagOverrode
Da das cachless-Design implementiert ist, sehen Sie, dass TFTP die Konfigurationsdatei erstellt.
00000512.027 |21:47:40.684 |AppInfo |TFTPList::GetSupportsFMT(), Pkid[9e9cb809-df9f-4bce-8a41-37cd5f7e4d21] Name[SEP000C29ED3D88] Class[1] Product[30041] Model[30016] Protocol[0], DevProfile[0] SUPPORTs[2], Value[2]
00000512.028 |21:47:40.684 |AppInfo |<--TFTPList::SelectByDeviceID[0,0]
00000512.029 |21:47:40.684 |AppInfo | ServeDynamicFile::wait_FileRequest
Build Config file for Device [SEP000C29ED3D88]
ServerDynamicFile-Prozess sendet das Signal 'FileResponse' an ServeFile
00000512.091 |21:47:40.686 |AppInfo |<--ServeDynamicFile::wait_FileRequest
00000513.000 |21:47:40.686 |SdlSig |FileResponse |wait
|ServeFile(1,600,24,1) |ServeDynamicFile(1,600,25,1) |1,600,14,4.3^*^* |*TraceFlagOverrode
00000513.002 |21:47:40.686 |AppInfo | ServeFile::wait_FileResponse File
Response signal received by ServeFile process
Die angeforderte Datei wird an das Telefon gesendet.
00000514.001 |21:47:40.686 |AppInfo |-->HTTPConnection::wait_FileResponse
00000514.002 |21:47:40.686 |AppInfo | HTTPConnection::wait_FileResponse Requested
file FOUND... Sending file Response
00000514.003 |21:47:40.686 |AppInfo |<--HTTPConnection::wait_FileResponse