التبديل

في SKOOR 6.2، تغيرت دلالات الأمر "switch" بشكل كبير. في الإصدارات السابقة، كان الأمر "switch" يعكس أدوار الأساسي والاحتياطي تمامًا. منذ SKOOR 6.2، لا يقوم الأمر "switch" إلا بتحويل الفشل من الأساسي إلى الاحتياطي. للحصول على نسخة متماثلة تعمل مرة أخرى، يجب إجراء "createslave" يدويًا على الأساسي الجديد. وهذا يغطي حالات الاستخدام الشائعة بشكل أفضل من خلال توفير تحويلات فشل أسرع بكثير.

التحويل

يمكن تحقيق ذلك عن طريق تشغيل الأمر التالي على الجهاز الاحتياطي أو الأساسي الحالي. إذا لم يعد الجهاز الأساسي متاحًا، فيجب تشغيله على الجهاز الاحتياطي:

# /opt/eranger/bin/eranger-server-replication.pl switch

10.1.0.89 
10.1.0.89 checking ssh for user reranger


localhost (10.1.0.89) is slave, master 10.1.0.88 is up

will convert localhost to master
and 10.1.0.88 to slave

press ENTER to continue, Ctrl-C to abort >

اضغط على Enter للمتابعة. يجب أن يبدو الناتج كما يلي:

10.1.0.89 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.89 pre s2m
10.1.0.88 calling eranger-server-syncfs.sh 10.1.0.89
10.1.0.88 calling eranger-server-sync-collector-bin.pl
10.1.0.88 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.89 pre m2s
10.1.0.88 OK> 10.1.0.90 removed from eth0
10.1.0.89 from slave to master
10.1.0.89 current master: 10.1.0.88
10.1.0.89 eranger start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 httpd already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-report (service eranger-report )..
10.1.0.89 done
10.1.0.89 eranger start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-server (service eranger-server )..
10.1.0.89 done
10.1.0.89 eranger start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-ethd (service eranger-ethd )..
10.1.0.89 done
10.1.0.89 eranger start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-eth-alerter (service eranger-eth-alerter )..
10.1.0.89 done
10.1.0.89 eranger start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-collector (service eranger-collector )..
10.1.0.89 delete /opt/eranger/collector/ringbuffer1.bin
10.1.0.89 done
10.1.0.89 eranger start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-agent already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-ic-alerter (service eranger-ic-alerter )..
10.1.0.89 done
10.1.0.89 eranger start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 httpd already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-report already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-server already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-ethd (service eranger-ethd )..
10.1.0.89 done
10.1.0.89 eranger start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-eth-alerter (service eranger-eth-alerter )..
10.1.0.89 done
10.1.0.89 eranger start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-collector already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 eranger-agent already running (not starting)
10.1.0.89 done
10.1.0.89 eranger start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.89 start eranger-ic-alerter (service eranger-ic-alerter )..
10.1.0.89 done
10.1.0.89 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.89 post s2m
10.1.0.89 OK> 10.1.0.90 added to eth0.
10.1.0.89 OK> 10.1.0.90 configured in /etc/sysconfig/network-scripts/ifcfg-eth0:0.
10.1.0.88 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.89 post m2s
10.1.0.89 
10.1.0.89 checking ssh for user reranger

سيقوم البرنامج النصي بما يلي:

  • جعل الجهاز الاحتياطي الحالي هو الجهاز الأساسي الجديد

  • تشغيل أي نصوص برمجية مسبقة إذا كانت محددة في eranger-replication.cfg 

  • إلغاء تنشيط مزامنة نظام الملفات (خدمة syncfs) على الجهاز الأساسي القديم

  • إيقاف خدمات eranger-server و eranger-collector و eranger-report على النظام الأساسي القديم 

  • بدء خدمات eranger-server و eranger-collector و eranger-report على النظام الأساسي الجديد 

  • بدء تشغيل httpd و eranger-agent إذا لم يكونا قيد التشغيل بالفعل على الخادم الرئيسي والخادم الاحتياطي

  • تسجيل الدخول إلى جميع أجهزة التجميع الخارجية وتغيير eranger-collector.cfg بحيث تقوم بتسليم بياناتها إلى الخادم الأساسي الجديد (لا يعمل مع معلمة server<n>_address التي تحدد عنوان http)

  • قم بتشغيل أي برامج نصية لاحقة إذا كانت محددة في eranger-replication.cfg 

قم بتنشيط النسخ المتماثل بين الخادم الرئيسي الجديد والقديم

يجب تنفيذ هذه الخطوة فقط عندما يكون الخادم الرئيسي القديم لا يزال متاحًا ويُخطط للعودة إلى النظام القديم مرة أخرى.

للحصول على نسخ متماثل قيد التشغيل من الخادم الأساسي الجديد إلى الخادم الاحتياطي الجديد، يجب إجراء createstandby على الخادم الأساسي الجديد.

/opt/eranger/bin/eranger-server-replication.pl createslave

عنوان IP الظاهري

تم تنفيذ المثال أعلاه بينما كان الخادم الأساسي القديم لا يزال يعمل ومتاحًا. بعد نجاح التبديل، يجب إخطار المستخدمين النهائيين باستخدام عنوان IP أو اسم DNS للخادم الأساسي الجديد بدلاً من ذلك.

يتم دعم تعيين عنوان IP افتراضي ونقله إلى الخادم الأساسي النشط باستخدام الاسم المستعار IP (انظر إعداد عنوان IP افتراضي باستخدام البرامج النصية قبل وبعد) ويتم استخدام البرنامج النصي قبل وبعد vip-switch.sh المقابل في المثال أعلاه.

العودة

قبل العودة إلى الخادم الأساسي القديم، يجب إجراء createslave على الخادم الأساسي الجديد.

لا يلزم تشغيل العنصر الأساسي الحالي حتى يتمكن العنصر الاحتياطي من تولي المهمة. يمكن أيضًا إصدار التبديل على العنصر الاحتياطي عندما يكون العنصر الأساسي الحالي معطلاً (غير متاح). يجب توخي الحذر عند إعادة العنصر الأساسي القديم إلى وضع الاتصال بالإنترنت لأنه لا يزال مكونًا كعنصر أساسي. أوقف العمليات eranger-server و eranger-collector و eranger-scheduler على الخادم الأساسي القديم وأصدر الأمر createslave على الخادم الأساسي النشط الحالي. للعودة إلى الأدوار الافتراضية، أصدر الأمر switch مرة أخرى.

من المفترض أن التبديل مؤقت فقط وأنه بعد إعادة تشغيل الجهاز الأساسي مرة أخرى، يتم إجراء تبديل آخر إلى الجهاز الأساسي الأصلي. لذلك، لا يتم تبديل عناوين IP للجهاز الأساسي والجهاز الاحتياطي في eranger-replication.cfg عند إجراء التبديل. لا يزال التبديل يعمل مع هذا الإعداد، فقط عند إجراء عملية createslave جديدة من الجهاز الأساسي الجديد، يجب تبديل عناوين IP في eranger-replication.cfg.

حالة محرك SKOOR بعد التبديل

بعد التبديل، يعرض الأمر eRanger.sh status الناتج التالي على الخادم الأساسي الجديد:

# /opt/eranger/bin/eRanger.sh status
Running /opt/eranger/bin/eRanger.sh with root privileges...
eRanger Server installation...

Current eRanger Status:

Status postgresql:              started
Status postgresql replication:  started
Status postfix:                 started
Status rsyslog:                 started
Status snmptrapd:               stopped
Status http server:             started
Status eRanger Server:          started
Status eRanger Collector:       started
Status eRanger Report:          started
Status eRanger Agent:           started
Status eRanger Webservice:      started

والناتج التالي على الجهاز الاحتياطي الجديد:

# /opt/eranger/bin/eRanger.sh status
Running /opt/eranger/bin/eRanger.sh with root privileges...
eRanger Server installation...

Current eRanger Status:

Status postgresql:              started
Status postgresql replication:  started
Status postfix:                 started
Status rsyslog:                 started
Status snmptrapd:               stopped
Status http server:             started
Status smsd:                    stopped
Status eRanger Server:          stopped (postgresql slave)
Status eRanger Collector:       stopped (postgresql slave)
Status eRanger Report:          stopped (postgresql slave)
Status eRanger Agent:           stopped
Status eRanger Webservice:      started

الوضع غير التفاعلي

يمكن تشغيل التبديل في وضع غير تفاعلي عن طريق إضافة الخيار -f. استخدم هذا الخيار إذا كان البرنامج النصي يحتاج إلى التشغيل دون مراقبة وفي حالة وجود إصدار SKOOR مثبت على أحد أو بعض أجهزة التجميع غير مطابق للإصدار المثبت على الجهاز الأساسي والاحتياطي. فيما يلي الناتج عند تشغيل التبديل باستخدام -f، على الجهاز الاحتياطي الحالي، أي الجهاز الأساسي الأصلي. يعيد أمر التبديل الثاني الأدوار الأصلية للجهاز الأساسي والجهاز الاحتياطي.

# /opt/eranger/bin/eranger-server-replication.pl -f switch
10.1.0.88 
10.1.0.88 checking ssh for user reranger


localhost (10.1.0.88) is slave, master 10.1.0.89 is up

will convert localhost to master
and 10.1.0.89 to slave
10.1.0.88 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.88 pre s2m
10.1.0.89 calling eranger-server-syncfs.sh 10.1.0.88
10.1.0.89 calling eranger-server-sync-collector-bin.pl
10.1.0.89 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.88 pre m2s
10.1.0.89 OK> 10.1.0.90 removed from eth0
10.1.0.88 from slave to master
10.1.0.88 current master: 10.1.0.89
10.1.0.88 eranger start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 httpd already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-report (service eranger-report )..
10.1.0.88 done
10.1.0.88 eranger start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-server (service eranger-server )..
10.1.0.88 done
10.1.0.88 eranger start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-ethd (service eranger-ethd )..
10.1.0.88 done
10.1.0.88 eranger start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-eth-alerter (service eranger-eth-alerter )..
10.1.0.88 done
10.1.0.88 eranger start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-collector (service eranger-collector )..
10.1.0.88 delete /opt/eranger/collector/ringbuffer1.bin
10.1.0.88 done
10.1.0.88 eranger start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-agent already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-ic-alerter (service eranger-ic-alerter )..
10.1.0.88 done
10.1.0.88 copied file to /var/lib/pgsql/data/
NOTICE:  pg_stop_backup complete, all required WAL segments have been archived
10.1.0.88 eranger start httpd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 httpd already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-report at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-report already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-server at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-server already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-ethd at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-ethd (service eranger-ethd )..
10.1.0.88 done
10.1.0.88 eranger start eranger-eth-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-eth-alerter (service eranger-eth-alerter )..
10.1.0.88 done
10.1.0.88 eranger start eranger-collector at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-collector already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-agent at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 eranger-agent already running (not starting)
10.1.0.88 done
10.1.0.88 eranger start eranger-ic-alerter at /opt/eranger/bin/eranger-server-replication.pl line 1717.
10.1.0.88 start eranger-ic-alerter (service eranger-ic-alerter )..
10.1.0.88 done
10.1.0.88 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.88 post s2m
10.1.0.88 OK> 10.1.0.90 added to eth0.
10.1.0.88 OK> 10.1.0.90 configured in /etc/sysconfig/network-scripts/ifcfg-eth0:0.
10.1.0.89 calling script /opt/eranger/sbin/vip-switch.sh 10.1.0.88 post m2s
10.1.0.88 
10.1.0.88 checking ssh for user reranger