概要
このドキュメントでは、Cisco Unified Communication Manager(CUCM)バージョン11.5の一部として実装されるトリビアルファイル転送プロトコル(TFTP)スケールアーキテクチャ機能について説明します。CUCMへの最新のアップリフトです。これは、メモリ使用量と、設定ファイルとスタティックファイルの処理方法に関するTFTPサービスを改善するための純粋なエンジニアリング機能です。ビジネスロジックは同じままであり、TFTPによって提供される他のサービスには影響しません。
背景説明
この改善が必要で組み込まれた理由
現在の設計の問題
- 長い間変更されていないコンフィギュレーションファイルをTFTPがどのように処理するかを示すロジック。
- 11.5より前のTFTPサービスでは、コンフィギュレーションファイルが構築され、すべてのコンフィギュレーションファイルがメモリ内にキャッシュされます。
- サポートされる電話機の数に関してCUCMに追加される容量が増えると、TFTPサービスのメモリフットプリントが直線的に増加します。
- 将来のロードマップでは、CUCMに実装するために電話機の追加キャパシティが必要になります。
- したがって、TFTPサービスのメモリフットプリントの増加に対処することが重要になります。
サービスの開始時刻
- 20,000 ~ 40,000台の電話機が設定された中規模から大規模の導入。
- すべての電話機に影響を与える変更が行われると、TFTPはすべての影響を受ける設定ファイルを構築し、キャッシュを再構築します。
- これにより、TFTPサービスの開始にかかる時間が長くなります。
- 電話機が設定ファイルを要求すると、ビジー応答が電話機に送信されます。
機能の概要
実装された新機能は、キャッシュレス設計によって上記の2つの問題に対処し、設定ファイルをオンデマンドで構築します。要求が電話から送信されると、TFTPサービスは設定ファイルをその場で構築し、リアルタイムで電話に提供します。設定ファイルをインメモリでキャッシュすることはできず、これによりサービスの開始時刻とTFTPサービスのメモリフットプリントが削減されます。
設計変更
設計の変更は、「接続管理」と「コンフィギュレーションファイルの生成」の2つのカテゴリに分類されます。 次の表に、各カテゴリで行われた変更を示します。
接続管理 |
設定ファイルの生成 |
HTTP |
TFTP |
オンデマンドビルドおよび署名済み構成ファイル用のフレームワークを追加
|
ネットワークサービス層は、すべてのTCP接続を処理するためにSDLを使用するように設計されています |
電話機がUDP経由で設定ファイルを要求する変更はありません |
パフォーマンスの向上
この新機能の実装によって実現されるパフォーマンスの向上を次に示します。
- TFTPサービスのメモリフットプリントを大幅に削減
- TFTPサービスのメモリフットプリントは約600 MB
- ファイルがキャッシュされないため、サービスの開始時刻が短くなります
- サービスの開始時刻は、システムに導入されている電話機の数に依存しません
パフォーマンス図
|
電話数 |
11.5より前のバージョンでは時間がかかる |
11.5バージョンの所要時間 |
サービス開始時刻 |
20,000 |
3分38秒 |
0分19秒 |
HTTP経由で提供されるファイル |
20,000 |
7分24秒 |
4分06秒 |
TFTP経由で提供されるファイル |
20,000 |
5分36秒 |
4分11秒 |
注:上記の数値は、1回のテスト実行からだけでなく、複数のテスト実行の平均です。
ログ分析:
使用デバイス:
CUCM バージョン 11.5.1.10000-6
Cisco IP Communicatorバージョン8.6.2
11.5より前のHTTPでのコンフィギュレーションファイル要求
電話機からの設定ファイルの要求
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
すべてのファイルは構築後にキャッシュされるため、TFTPはキャッシュされた設定ファイルを見つけます
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
コンフィギュレーションファイルが電話機に正常に提供されます
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
11.5のHTTP経由の設定ファイル要求
電話機からの設定ファイルの要求
00000510.003 |21:47:40.683 |AppInfo | HTTPConnection::wait_SdlDataInd Printing the HTTPRequest :
msgBuffer size [148] --: GET /SEP000C29ED3D88.cnf.xml HTTP/1.1
ServeFileプロセスは、シグナル'FileRequest'を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
キャッシュレス設計が実装されているため、TFTPによって設定ファイルが作成されます
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]
ServeDynamicFileプロセスは、シグナル'FileResponse'を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
要求されたファイルが電話機に送信される
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