يوضح هذا المستند كيفية مزامنة مستودع التحكم في النسخ الاحتياطية (SVN) بين PCRFClient01 و PCRFClient02.
يتم تخزين جميع تكوينات النهج في منشئ النهج (PB) كمستودع SVN. لذلك، للحصول على توفر فائق (HA)، يلزمك الحصول على نفس معرف SVN الفريد العالمي (UUID) عبر كل من الأجهزة الظاهرية (VMs) ل PCRFClient. ومع ذلك، لا يتضمن الإصدار 7.x من Cisco Policy Suite (CPS) نفس UUID عبر أجهزة VMs PCRFClient. بمعنى أن إصدارات CPS الأعلى لها نفس UUID. تم إدخال خطأ تحسين، معرف تصحيح الأخطاء من Cisco CSCuu85319. يمكنك تحقيق HA إذا كان لديك نفس رقم المراجعة في كلا PCRFClient0X VMs.
بما أن UUID ليس هو نفسه عبر كلا من VMs PCRFClient، دخلت هذا أمر:
svn info http://pcrfclient01/repos/configuration
svn info http://pcrfclient02/repos/configuration
قد تلاحظ سجلات أخطاء مجموعة شبكة الكم (QNS) هذه. يمكن التحقق من رسائل الخطأ هذه باستخدام البرنامج النصي svn_uid_mismatch.sh. هذا النص مقدم في نهاية هذه المقالة.
==qns-1.log==
2015-06-10 00:51:15,058 [pool-4-thread-1] WARN
c.b.r.impl.ReferenceDataManager - SVN directory failed in updating
2015-06-10 01:51:44,050 [pool-4-thread-1] WARN
c.b.r.impl.ReferenceDataManager - SVN directory failed in updating
2015-06-10 03:52:41,061 [pool-4-thread-1] WARN
c.b.r.impl.ReferenceDataManager - SVN directory failed in updating
==Service-qns-1.log==
svn: Repository UUID '70e98d90-b9c7-4c5b-a3db-681dd68c62a6'
doesn't match expected UUID 'ed2f2f76-f588-443e-9bb8-3fb05abd903b'
svn: Repository UUID '70e98d90-b9c7-4c5b-a3db-681dd68c62a6'
doesn't match expected UUID 'ed2f2f76-f588-443e-9bb8-3fb05abd903b'
svn: Repository UUID '70e98d90-b9c7-4c5b-a3db-681dd68c62a6'
doesn't match expected UUID 'ed2f2f76-f588-443e-9bb8-3fb05abd903b'
كما هو موضح أدناه، يمكنك ملاحظة أن UUID مختلف عبر الأجهزة الافتراضية، ولكن يجب أن تظل الإصدارات كما هي. إذا كان إصدار SVN في كل من VMs الخاص ب PCRFClient متماثلا، فسيكون مزامنة مستودع SVN موجودا ومن ثم تصبح لديك إمكانية توفر عالية.
===PCRFClient01===
[root@pcrfclient01 ~]# svn info http://pcrfclient01/repos/configuration
Path: configuration
URL: http://pcrfclient01/repos/configuration
Repository Root: http://pcrfclient01/repos
Repository UUID: ed2f2f76-f588-443e-9bb8-3fb05abd903b
Revision: 392 <<<< revision number
Node Kind: directory
Last Changed Author: broadhop
Last Changed Rev: 392
Last Changed Date: 2015-06-01 15:52:12 -0600 (Mon, 01 Jun 2015)
===PCRFClient02===
[root@pcrfclient01 ~]# svn info http://pcrfclient02/repos/configuration
Path: configuration
URL: http://pcrfclient02/repos/configuration
Repository Root: http://pcrfclient02/repos
Repository UUID: 70e98d90-b9c7-4c5b-a3db-681dd68c62a6
Revision: 392 <<<< revision number
Node Kind: directory
Last Changed Author: broadhop
Last Changed Rev: 392
Last Changed Date: 2015-06-01 15:52:12 -0600 (Mon, 01 Jun 2015)
شرح القسم السابق كيفية التحقق من مزامنة مستودع SVN. يناقش هذا القسم كيفية إصلاح مزامنة SVN. بافتراض أن PCRFClient01 أساسي و PCRFClient02 ثانوي وأن مستودع PCRFClient02 SVN غير متزامن.
أتمت هذا steps in order to جعلت PCRFClient02 SVN مستودع يتزامن مع PCRFClient01:
crontab -e
Comment this cron job entry:
/usr/bin/svnsync sync http:// pcrfclient02/repos-proxy-sync
<Location /repos-proxy-sync>
DAV svn
SVNPath /var/www/svn/repos
Order deny,allow
Deny from all
Allow from pcrfclient01 <<< # customer host name of PCRFClient01 VM
</Location>
service httpd restart
/usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync
إذا تم الإبلاغ عن أخطاء التأمين، فأدخل هذا الأمر ثم أعد محاولة الأمر svnSync:
/usr/bin/svn propdel svn:sync-lock --revprop -r 0 http:// pcrfclient02/repos-proxy-sync
إذا كانت الأخطاء لا تزال مرئية، فقم بالمتابعة لإعادة تهيئة مزامنة SVN.
crontab -e
/usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync
قم بإجراء هذه الخطوات فقط إذا واجهت خطأ في الخطوة 4 في القسم إصلاح مزامنة مستودع SVN. إذا لم تواجه أي أخطاء في القسم السابق، يمكنك تجاهل هذه الخطوات.
listen svn_proxy lbvip02:80
mode http
balance roundrobin
option httpchk
option httpclose
option abortonclose
server pcrfclient01 pcrfclient01:80 check
#server pcrfclient02 pcrfclient02:80 check backup
/etc/init.d/heartbeat restart
listen svn_proxy lbvip02:80
mode http
balance roundrobin
option httpchk
option httpclose
option abortonclose
server pcrfclient01 pcrfclient01:80 check
#server pcrfclient02 pcrfclient02:80 check backup
/etc/init.d/heartbeat restart
tar -czf /var/tmp/repos.tar.gz /var/www/svn/repos
mkdir -p /var/www/svn/repos
rmdir /var/www/svn/repos
/usr/bin/svnadmin create /var/www/svn/repos
chown -R apache:apache /var/www/svn/repos
#!/bin/sh
#/var/www/svn/repos/hooks/pre-revprop-change
exit 0
chmod 700 /var/www/svn/repos/hooks/pre-revprop-change
chown apache:apache /var/www/svn/repos/hooks/pre-revprop-change
service httpd restart
/usr/bin/svnsync init http://pcrfclient02/repos-proxy-sync
http:// pcrfclient01/repos-proxy-sync
/usr/bin/svnsync sync http:// pcrfclient02/repos-proxy-sync
listen svn_proxy lbvip02:80
mode http
balance roundrobin
option httpchk
option httpclose
option abortonclose
server pcrfclient01 pcrfclient01:80 check
server pcrfclient02 pcrfclient02:80 check backup
/etc/init.d/heartbeat restart
listen svn_proxy lbvip02:80
mode http
balance roundrobin
option httpchk
option httpclose
option abortonclose
server pcrfclient01 pcrfclient01:80 check
server pcrfclient02 pcrfclient02:80 check backup
/etc/init.d/heartbeat restart
crontab -e/usr/bin/svnsync sync http://pcrfclient02/repos-proxy-sync
الرجاء وضع هذا البرنامج النصي في نظام CPS للتحقق من مزامنة SVN عبر أجهزة VMs PCRFClient.
#!/bin/bash
a=$(svn info http://pcrfclient01/repos/configuration | grep -i Revision | grep -o '[0-9]*')
b=$(svn info http://pcrfclient02/repos/configuration | grep -i Revision | grep -o '[0-9]*')
if [ "$a" == "$b" ]; then
echo -e "SVN repository Synchronization:\e[0;32m PASS \e[0m"
echo -e "PCRFClient01 SVN repository revision number is : \e[1;33m $a \e[0m"
echo -e "PCRFClient02 SVN repository revision number is : \e[1;33m $b \e[0m"
else
echo -e "SVN repository Synchronization :\e[0:31m FAIL \e[0m"
echo -e "PCRFClient01 SVN repository revision number is : \e[1;33m $a \e[0m"
echo -e "PCRFClient02 SVN repository revision number is : \e[1;33m $b \e[0m"
fi
الرجاء وضع هذا البرنامج النصي في نظام CPS الخاص بك لمراقبة رسائل الخطأ ذات الصلة بمعرف SVN من QNS VMs الفردية.
#!/bin/bash
for HN in `hosts.sh |grep qns`;
do echo -e "\e[1;32m $HN\e[0m";
echo -e "\e[1;33m===qns-1.log===\e[0m"
ssh $HN grep -wh "SVN directory failed" 2>/dev/null /var/log/broadhop/qns-1.log | tail -10;
echo -e "\e[1;33m===service-qns-1.log===\e[0m"
ssh $HN grep -wh "match expected UUID" 2>/dev/null /var/log/broadhop/service-qns-1.log | tail -10;
done
المراجعة | تاريخ النشر | التعليقات |
---|---|---|
1.0 |
31-Aug-2015 |
الإصدار الأولي |