المحتويات

المقدمة

معلومات أساسية

هيلث شيك

النسخ الاحتياطي

تحديد الأجهزة الافتراضية المستضافة في عقدة OSD-Compute

إيقاف تشغيل الطاقة الرشيقة

ترحيل ESC إلى وضع الاستعداد

حذف عقدة OSD-Compute

حذف من Overcloud

حذف عقدة OSD-Compute من قائمة الخدمات

حذف عوامل النترونات

حذف من قاعدة بيانات Nova و Ironic

تثبيت عقدة الحوسبة الجديدة

إضافة عقدة OSD-Compute الجديدة إلى OverCloud

إستعادة الأجهزة الافتراضية

إضافة إلى قائمة تجميع نوفا

إسترداد ESC VM

المقدمة

يصف هذا المستند الخطوات المطلوبة لاستبدال خادم أجهزة كمبيوتر معيب في إعداد Ultra-M يستضيف وظائف شبكة (VNF) مجموعة سياسات Cisco (CPS) الظاهرية.

معلومات أساسية

هذا المستند مخصص لأفراد Cisco المطلعين على نظام Cisco Ultra-M الأساسي وهو يفصل الخطوات المطلوبة ليتم تنفيذها على مستوى OpenStack و CPS VNF في وقت إستبدال خادم نظام التشغيل OSD-Compute.

ملاحظة: يتم النظر في الإصدار Ultra M 5.1.x لتحديد الإجراءات الواردة في هذا المستند.

هيلث شيك

قبل إستبدال عقدة OSD-Compute، من المهم التحقق من الحالة الحالية لبيئة النظام الأساسي Red Hat OpenStack. من المستحسن فحص الحالة الحالية لتجنب المضاعفات عند تشغيل عملية إستبدال الكمبيوتر.

من موقع أوكسبد

[root@director ~]$ su - stack

[stack@director ~]$ cd ansible

[stack@director ansible]$ ansible-playbook -i inventory-new openstack_verify.yml  -e platform=pcrf

الخطوة 1. تحقق من صحة النظام من تقرير UltraTram-health الذي يتم إنشاؤه كل خمس عشرة دقيقة.

[stack@director ~]# cd /var/log/cisco/ultram-health

تحقق من ملف ultram_health_os.report.

الخدمات الوحيدة التي يجب أن تظهر كحالة XXX هي عميل Neutron-sriov-nic.service.

الخطوة 2. تحقق مما إذا كان Rabbitmq يعمل لكافة وحدات التحكم، والتي تعمل بدورها من OSPD.

[stack@director ~]# for i in $(nova list| grep controller | awk '{print $12}'| sed 's/ctlplane=//g') ; do (ssh -o StrictHostKeyChecking=no heat-admin@$i "hostname;sudo rabbitmqctl eval 'rabbit_diagnostics:maybe_stuck().'" ) & done

الخطوة 3. تحقق من تمكين المكدس.

[stack@director ~]# sudo pcs property show stonith-enabled

تحقق كافة وحدات التحكم من حالة أجهزة الكمبيوتر

- يتم بدء تشغيل جميع عقد وحدات التحكم تحت نسخ-بروكسي

- جميع عقد وحدات التحكم الرئيسية تحت غاليرا

- تم بدء تشغيل جميع عقد وحدات التحكم تحت Rabbitmq

- عقدة وحدة التحكم هي رئيسي و 2 تابع تحت الأحمر

من موقع أوكسبد

[stack@director ~]$ for i in $(nova list| grep controller | awk '{print $12}'| sed 's/ctlplane=//g') ; do (ssh -o StrictHostKeyChecking=no heat-admin@$i "hostname;sudo pcs status" ) ;done

الخطوة 4. تحقق من أن جميع خدمات OpenStack نشطة، من OSPD التي تشغل هذا الأمر:

[stack@director ~]# sudo systemctl list-units "openstack*" "neutron*" "openvswitch*"

الخطوة 5. تحقق من أن حالة CEPH هي HEALTH_OK لوحدات التحكم.

[stack@director ~]# for i in $(nova list| grep controller | awk '{print $12}'| sed 's/ctlplane=//g') ; do (ssh -o StrictHostKeyChecking=no heat-admin@$i "hostname;sudo ceph -s" ) ;done

الخطوة 6. التحقق من سجلات مكون OpenStack. ابحث عن أي خطأ:

Neutron:

[stack@director ~]# sudo tail -n 20 /var/log/neutron/{dhcp-agent,l3-agent,metadata-agent,openvswitch-agent,server}.log

Cinder:

[stack@director ~]# sudo tail -n 20 /var/log/cinder/{api,scheduler,volume}.log

Glance:

[stack@director ~]# sudo tail -n 20 /var/log/glance/{api,registry}.log

الخطوة 7. من OSPD قم بهذه عمليات التحقق ل API.

[stack@director ~]$ source

[stack@director ~]$ nova list

[stack@director ~]$ glance image-list

[stack@director ~]$ cinder list

[stack@director ~]$ neutron net-list

الخطوة 8. التحقق من صحة الخدمات.

Every service status should be “up”:

[stack@director ~]$ nova service-list

Every service status should be “ :-)”:

[stack@director ~]$ neutron agent-list

Every service status should be “up”:

[stack@director ~]$ cinder service-list

النسخ الاحتياطي

في حالة الاسترداد، توصي Cisco بإجراء نسخ إحتياطي لقاعدة بيانات OSPD باستخدام هذه الخطوات.

الخطوة 1. خذ مقلب Mysql.

[root@director ~]# mysqldump --opt --all-databases > /root/undercloud-all-databases.sql

[root@director ~]# tar --xattrs -czf undercloud-backup-`date +%F`.tar.gz /root/undercloud-all-databases.sql

/etc/my.cnf.d/server.cnf /var/lib/glance/images /srv/node /home/stack

tar: Removing leading `/' from member names

تضمن هذه العملية إمكانية إستبدال عقدة دون التأثير على توفر أي مثيلات.

الخطوة 2. لإجراء نسخ إحتياطي لوحدات CPS VM من برنامج Cluster Manager VM:

[root@CM ~]# config_br.py -a export --all /mnt/backup/CPS_backup_$(date +\%Y-\%m-\%d).tar.gz

or

[root@CM ~]# config_br.py -a export --mongo-all --svn --etc --grafanadb --auth-htpasswd --haproxy /mnt/backup/$(hostname)_backup_all_$(date +\%Y-\%m-\%d).tar.gz

تحديد الأجهزة الافتراضية المستضافة في عقدة OSD-Compute

التعرف على الأجهزة الافتراضية (VM) المستضافة على خادم الكمبيوتر:

الخطوة 1. يحتوي خادم الحوسبة على وحدة التحكم المرنة في الخدمات (ESC).

[stack@director ~]$ nova list --field name,host,networks | grep osd-compute-1

| 50fd1094-9c0a-4269-b27b-cab74708e40c | esc | pod1-osd-compute-0.localdomain

| tb1-orch=172.16.180.6; tb1-mgmt=172.16.181.3

ملاحظة: في الإخراج المبين هنا، يتوافق العمود الأول مع المعرف الفريد العالمي (UUID)، بينما يمثل العمود الثاني اسم الجهاز الظاهري (VM)، أما العمود الثالث فهو اسم المضيف الذي يوجد به الجهاز الظاهري. سيتم إستخدام المعلمات من هذا الإخراج في الأقسام التالية.

ملاحظة: إذا كانت عقدة حوسبة OSD التي سيتم إستبدالها معطلة تماما ولا يمكن الوصول إليها، فقم بالمتابعة إلى القسم المعنون "إزالة عقدة OSD-Compute من قائمة Nova Aggregate". وإلا، فعليك المتابعة من القسم التالي.

الخطوة 2. تحقق من توفر قدرة CEPH للسماح بإزالة خادم OSD واحد.

[root@pod1-osd-compute-0 ~]# sudo ceph df

GLOBAL:

SIZE       AVAIL      RAW USED     %RAW USED

13393G     11804G        1589G         11.87

POOLS:

NAME        ID    USED      %USED     MAX AVAIL     OBJECTS

rbd         0          0         0         3876G           0

metrics     1     4157M      0.10         3876G      215385

images      2     6731M      0.17         3876G         897

backups     3         0         0         3876G           0

volumes     4      399G      9.34         3876G      102373

vms         5      122G      3.06         3876G       31863

الخطوة 3. تحقق من وجود حالة شجرة الإعداد على خادم OSD-compute.

[heat-admin@pod1-osd-compute-0 ~]$ sudo ceph osd tree

ID WEIGHT   TYPE NAME                         UP/DOWN REWEIGHT PRIMARY-AFFINITY

-1 13.07996 root default

-2  4.35999     host pod1-osd-compute-0

0  1.09000         osd.0                          up  1.00000          1.00000

3  1.09000         osd.3                          up 1.00000          1.00000

6  1.09000         osd.6                          up  1.00000          1.00000

9  1.09000         osd.9                          up  1.00000          1.00000

-3  4.35999     host pod1-osd-compute-2

1  1.09000        osd.1                          up  1.00000          1.00000

4  1.09000         osd.4                          up  1.00000          1.00000

7  1.09000         osd.7                          up  1.00000          1.00000

10  1.09000         osd.10                         up  1.00000          1.00000

-4  4.35999     host pod1-osd-compute-1

2  1.09000         osd.2                          up  1.00000          1.00000

5  1.09000         osd.5                          up  1.00000          1.00000

8  1.09000         osd.8                          up  1.00000          1.00000

11  1.09000         osd.11                         up  1.00000          1.00000

الخطوة 4. تكون عمليات CEPH نشطة على خادم OSD-compute.

[root@pod1-osd-compute-0 ~]# systemctl list-units *ceph*

UNIT                              LOAD   ACTIVE SUB     DESCRIPTION

var-lib-ceph-osd-ceph\x2d11.mount loaded active mounted /var/lib/ceph/osd/ceph-11

var-lib-ceph-osd-ceph\x2d2.mount  loaded active mounted /var/lib/ceph/osd/ceph-2

var-lib-ceph-osd-ceph\x2d5.mount  loaded active mounted /var/lib/ceph/osd/ceph-5

var-lib-ceph-osd-ceph\x2d8.mount  loaded active mounted /var/lib/ceph/osd/ceph-8

ceph-osd@11.service               loaded active running Ceph object storage daemon

ceph-osd@2.service                loaded active running Ceph object storage daemon

ceph-osd@5.service                loaded active running Ceph object storage daemon

ceph-osd@8.service                loaded active running Ceph object storage daemon

system-ceph\x2ddisk.slice         loaded active active  system-ceph\x2ddisk.slice

system-ceph\x2dosd.slice          loaded active active  system-ceph\x2dosd.slice

ceph-mon.target                   loaded active active  ceph target allowing to start/stop all ceph-mon@.service instances at once

ceph-osd.target                   loaded active active  ceph target allowing to start/stop all ceph-osd@.service instances at once

ceph-radosgw.target               loaded active active  ceph target allowing to start/stop all ceph-radosgw@.service instances at once

ceph.target                       loaded active active  ceph target allowing to start/stop all ceph*@.service instances at once

الخطوة 5. قم بتعطيل كل مثيل إعداد وإيقافه وإزالة كل مثيل من OSD وإلغاء تحميل الدليل. كرر لكل مثيل ترتيب.

[root@pod1-osd-compute-0 ~]# systemctl disable ceph-osd@11

[root@pod1-osd-compute-0 ~]# systemctl stop ceph-osd@11

[root@pod1-osd-compute-0 ~]# ceph osd out 11

marked out osd.11.

[root@pod1-osd-compute-0 ~]# ceph osd crush remove osd.11

removed item id 11 name 'osd.11' from crush map

[root@pod1-osd-compute-0 ~]# ceph auth del osd.11

updated

[root@pod1-osd-compute-0 ~]# ceph osd rm 11

removed osd.11

[root@pod1-osd-compute-0 ~]# umount /var/lib/ceph/osd/ceph-11

[root@pod1-osd-compute-0 ~]# rm -rf /var/lib/ceph/osd/ceph-11

( أو )

الخطوة 6. يمكن إستخدام برنامج نصي Clean.sh لأداء المهمة المذكورة أعلاه مرة واحدة.

[heat-admin@pod1-osd-compute-0 ~]$ sudo ls /var/lib/ceph/osd

ceph-11 ceph-3 ceph-6 ceph-8

[heat-admin@pod1-osd-compute-0 ~]$ /bin/sh clean.sh

[heat-admin@pod1-osd-compute-0 ~]$ cat clean.sh

#!/bin/sh

set -x

CEPH=`sudo ls /var/lib/ceph/osd`

for c in $CEPH

do

i=`echo $c |cut -d'-' -f2`

sudo systemctl disable ceph-osd@$i || (echo "error rc:$?"; exit 1)

sleep 2

sudo systemctl stop ceph-osd@$i || (echo "error rc:$?"; exit 1)

sleep 2

sudo ceph osd out $i || (echo "error rc:$?"; exit 1)

sleep 2

sudo ceph osd crush remove osd.$i || (echo "error rc:$?"; exit 1)

sleep 2

sudo ceph auth del osd.$i || (echo "error rc:$?"; exit 1)

sleep 2

sudo ceph osd rm $i || (echo "error rc:$?"; exit 1)

sleep 2

sudo umount /var/lib/ceph/osd/$c || (echo "error rc:$?"; exit 1)

sleep 2

sudo rm -rf /var/lib/ceph/osd/$c || (echo "error rc:$?"; exit 1)

sleep 2

done

sudo ceph osd tree

بعد ترحيل/حذف كافة عمليات OSD، يمكن إزالة العقدة من السحابة الزائدة.

ملاحظة: عند إزالة CEPH، ينتقل RAID VNF HD إلى الحالة المخفضة ولكن يجب الوصول إلى القرص الثابت.

إيقاف تشغيل الطاقة الرشيقة

ترحيل ESC إلى وضع الاستعداد

الخطوة 1. قم بتسجيل الدخول إلى ESC المستضاف في عقدة الكمبيوتر وتحقق مما إذا كان في الحالة الرئيسية. إذا كانت الإجابة بنعم، فقم بتبديل ESC إلى وضع الاستعداد.

[admin@esc esc-cli]$ escadm status

0 ESC status=0 ESC Master Healthy

[admin@esc ~]$ sudo service keepalived stop

Stopping keepalived:                                       [  OK  ]

[admin@esc ~]$ escadm status

1 ESC status=0 In SWITCHING_TO_STOP state. Please check status after a while.

[admin@esc ~]$ sudo reboot

Broadcast message from admin@vnf1-esc-esc-0.novalocal

(/dev/pts/0) at 13:32 ...

The system is going down for reboot NOW!

الخطوة 2. إزالة عقدة OSD-Compute من قائمة تجميع Nova.

- قم بسرد التجميعات والتعرف على التجميع المطابق لخادم الحوسبة استنادا إلى VNF الذي يستضيفه. وتكون عادة بالتنسيق <vnfname>-em-mgmt<x> و<vnfname>-cf-mgmt<x>

[stack@director ~]$ nova aggregate-list

+----+------+-------------------+

| Id | Name | Availability Zone |

+----+------+-------------------+

| 3 | esc1 | AZ-esc1 |

| 6 | esc2 | AZ-esc2 |

| 9 | aaa | AZ-aaa |

+----+------+-------------------+

في حالتنا، ينتمي خادم OSD-compute إلى esc1. إذا، فإن المجاميع التي تتوافق ستكون esc1

الخطوة 3. قم بإزالة عقدة OSD-Compute من التجميع المحدد.

nova aggregate-remove-host

[stack@director ~]$ nova aggregate-remove-host esc1 pod1-osd-compute-0.localdomain

الخطوة 4. تحقق من إزالة عقدة OSD-compute من التجميعات. الآن، تأكد من عدم إدراج المضيف ضمن التجميعات.

nova aggregate-show

[stack@director ~]$ nova aggregate-show esc1

[stack@director ~]$

حذف عقدة OSD-Compute

الخطوات المذكورة في هذا القسم شائعة بغض النظر عن الأجهزة الافتراضية (VMs) المستضافة في عقدة الحوسبة.

حذف من Overcloud

الخطوة 1. قم بإنشاء ملف برنامج نصي باسم delete_node.sh مع المحتويات كما هو موضح. تأكد من أن القوالب المذكورة هي نفسها التي تستخدم في البرنامج النصي deploy.sh المستخدم لنشر المكدس.

delete_node.sh

openstack overcloud node delete --templates -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-sriov.yaml -e /home/stack/custom-templates/network.yaml -e /home/stack/custom-templates/ceph.yaml -e /home/stack/custom-templates/compute.yaml -e /home/stack/custom-templates/layout.yaml -e /home/stack/custom-templates/layout.yaml --stack

[stack@director ~]$ source stackrc

[stack@director ~]$ /bin/sh delete_node.sh

+ openstack overcloud node delete --templates -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-sriov.yaml -e /home/stack/custom-templates/network.yaml -e /home/stack/custom-templates/ceph.yaml -e /home/stack/custom-templates/compute.yaml -e /home/stack/custom-templates/layout.yaml -e /home/stack/custom-templates/layout.yaml --stack pod1 49ac5f22-469e-4b84-badc-031083db0533

Deleting the following nodes from stack pod1:

- 49ac5f22-469e-4b84-badc-031083db0533

Started Mistral Workflow. Execution ID: 4ab4508a-c1d5-4e48-9b95-ad9a5baa20ae

real   0m52.078s

user   0m0.383s

sys    0m0.086s

الخطوة 2. انتظر حتى يتم نقل عملية مكدس OpenStack إلى حالة COMPLETE.

[stack@director ~]$  openstack stack list

+--------------------------------------+------------+-----------------+----------------------+----------------------+

| ID                                   | Stack Name | Stack Status    | Creation Time        | Updated Time         |

+--------------------------------------+------------+-----------------+----------------------+----------------------+

| 5df68458-095d-43bd-a8c4-033e68ba79a0 | pod1 | UPDATE_COMPLETE | 2018-05-08T21:30:06Z | 2018-05-08T20:42:48Z |

+--------------------------------------+------------+-----------------+----------------------+----------------------

حذف عقدة OSD-Compute من قائمة الخدمات

احذف خدمة الحوسبة من قائمة الخدمات.

[stack@director ~]$ source corerc

[stack@director ~]$ openstack compute service list | grep osd-compute-0

| 404 | nova-compute     | pod1-osd-compute-0.localdomain     | nova     | enabled | up    | 2018-05-08T18:40:56.000000 |

openstack compute service delete

[stack@director ~]$ openstack compute service delete 404

حذف عوامل النترونات

احذف عامل النترونات القديم المقترن وعامل Open Vswitch لخادم الكمبيوتر.

[stack@director ~]$ openstack network agent list | grep osd-compute-0

| c3ee92ba-aa23-480c-ac81-d3d8d01dcc03 | Open vSwitch agent | pod1-osd-compute-0.localdomain     | None              | False  | UP    | neutron-openvswitch-agent |

| ec19cb01-abbb-4773-8397-8739d9b0a349 | NIC Switch agent   | pod1-osd-compute-0.localdomain     | None              | False  | UP    | neutron-sriov-nic-agent   |

openstack network agent delete

[stack@director ~]$ openstack network agent delete c3ee92ba-aa23-480c-ac81-d3d8d01dcc03

[stack@director ~]$ openstack network agent delete ec19cb01-abbb-4773-8397-8739d9b0a349

حذف من قاعدة بيانات Nova و Ironic

احذف عقدة من قائمة نوفا مع قاعدة البيانات المفارقة، ثم تحقق من ذلك.

[stack@director ~]$ source stackrc

[stack@al01-pod1-ospd ~]$ nova list | grep osd-compute-0

| c2cfa4d6-9c88-4ba0-9970-857d1a18d02c | pod1-osd-compute-0 | ACTIVE | -          | Running     | ctlplane=192.200.0.114 |

[stack@al01-pod1-ospd ~]$ nova delete c2cfa4d6-9c88-4ba0-9970-857d1a18d02c

nova show

| grep hypervisor

[stack@director ~]$ nova show pod1-osd-compute-0 | grep hypervisor

| OS-EXT-SRV-ATTR:hypervisor_hostname  | 4ab21917-32fa-43a6-9260-02538b5c7a5a

ironic node-delete

[stack@director ~]$ ironic node-delete 4ab21917-32fa-43a6-9260-02538b5c7a5a

[stack@director ~]$ ironic node-list (node delete must not be listed now)

تثبيت عقدة الحوسبة الجديدة

يمكن الرجوع إلى الخطوات الخاصة بتثبيت خادم UCS C240 M4 جديد وخطوات الإعداد الأولية من: دليل خدمة وتثبيت خادم Cisco UCS C240 M4

الخطوة 1. بعد تثبيت الخادم، قم بإدراج الأقراص الثابتة في الفتحات ذات الصلة كالخادم القديم.

الخطوة 2. تسجيل الدخول إلى الخادم باستخدام CIMC IP.

الخطوة 3.قم بإجراء ترقية BIOS إذا لم تكن البرامج الثابتة متوافقة مع الإصدار الموصى به المستخدم سابقا. تم توضيح خطوات ترقية BIOS هنا: دليل ترقية BIOS للخادم المركب على حامل Cisco UCS C-Series

الخطوة 4. تحقق من حالة محركات الأقراص المادية. يجب أن يكون جيدا غير مقصور.

الخطوة 5. إنشاء محرك أقراص ظاهري من محركات الأقراص المادية باستخدام RAID المستوى 1.

الخطوة 6. انتقل إلى قسم التخزين وحدد وحدة التحكم RAID النمطية Cisco 12G SAS طراز 12G وتحقق من حالة وحدة التحكم RAID وصحتها كما هو موضح في الصورة.

ملاحظة: تعد الصورة الواردة أعلاه بهدف التوضيح فقط، ففي وحدة التحكم في الوصول للبنية الأساسية (CIMC) باستخدام نظام التشغيل OSD-Compute فعليا، يمكنك مشاهدة سبعة محركات أقراص مادية في الفتحات [1 و 2 و 3 و 7 و 8 و 9 و 10] في حالة جيدة غير واضحة حيث لا يتم إنشاء محركات أقراص افتراضية منها.

الخطوة 7. قم الآن بإنشاء محرك أقراص ظاهري من محرك أقراص فعلي غير مستخدم من معلومات وحدة التحكم، أسفل وحدة التحكم SAS النمطية Cisco 12G SAS RAID.

الخطوة 8. انتقيت ال VD وشكلت مجموعة كجزمة محرك أقراص.

الخطوة 9. قم بتمكين IPMI عبر LAN من خدمات الاتصالات ضمن علامة التبويب "مسؤول".

الخطوة 10. قم بتعطيل برنامج Hyper-Threading من تكوين BIOS المتقدم تحت عقدة Compute كما هو موضح في الصورة.

الخطوة 11. مثل Bootos VD الذي تم إنشاؤه باستخدام محركي الأقراص الماديين 1 و 2، قم بإنشاء أربعة محركات أقراص افتراضية أخرى ك

دفتر اليومية - من رقم محرك الأقراص الفعلي 3

OSD1 - من الرقم 7 لمحرك الأقراص المادي

OSD2 - من محرك الأقراص المادي رقم 8

OSD3 - من محرك الأقراص المادي رقم 9

OSD4 - من الرقم 10 لمحرك الأقراص الفعلي

الخطوة 7. وفي النهاية، يجب أن تكون محركات الأقراص المادية ومحركات الأقراص الافتراضية متماثلة.

ملاحظة: ترتبط الصورة الموضحة هنا وخطوات التكوين المذكورة في هذا القسم بالإصدار 3.0(3e) من البرنامج الثابت، وقد تكون هناك إختلافات طفيفة إذا كنت تعمل على إصدارات أخرى.

إضافة عقدة OSD-Compute الجديدة إلى OverCloud

الخطوات المذكورة في هذا القسم عامة بغض النظر عن VM المستضاف من قبل عقدة الكمبيوتر.

الخطوة 1. إضافة خادم حوسبة باستخدام فهرس مختلف.

قم بإنشاء ملف add_node.json مع تفاصيل خادم الكمبيوتر الجديد الذي ستتم إضافته فقط.  تأكد من عدم إستخدام رقم الفهرس الخاص بخادم OSD-Compute الجديد من قبل. في العادة، زيادة أعلى قيمة حوسبة تالية.

على سبيل المثال: تم إنشاء OSD-compute-0 الأعلى سابقا لذلك تم إنشاء OSD-compute-3 في حالة نظام 2vnf.

ملاحظة: ضع في اعتبارك صيغة json.

[stack@director ~]$ cat add_node.json

{

"nodes":[

{

"mac":[

"<MAC_ADDRESS>"

],

"capabilities": "node:osd-compute-3,boot_option:local",

"cpu":"24",

"memory":"256000",

"disk":"3000",

"arch":"x86_64",

"pm_type":"pxe_ipmitool",

"pm_user":"admin",

"pm_password":"<PASSWORD>",

"pm_addr":"192.100.0.5"

}

]

}

الخطوة 2. إستيراد ملف json.

[stack@director ~]$ openstack baremetal import --json add_node.json

Started Mistral Workflow. Execution ID: 78f3b22c-5c11-4d08-a00f-8553b09f497d

Successfully registered node UUID 7eddfa87-6ae6-4308-b1d2-78c98689a56e

Started Mistral Workflow. Execution ID: 33a68c16-c6fd-4f2a-9df9-926545f2127e

Successfully set all nodes to available.

الخطوة 3. قم بتشغيل إدخال العقدة باستخدام UUID الذي تمت ملاحظته من الخطوة السابقة.

[stack@director ~]$ openstack baremetal node manage 7eddfa87-6ae6-4308-b1d2-78c98689a56e

[stack@director ~]$ ironic node-list |grep 7eddfa87

| 7eddfa87-6ae6-4308-b1d2-78c98689a56e | None | None                                 | power off   | manageable         | False       |

[stack@director ~]$ openstack overcloud node introspect 7eddfa87-6ae6-4308-b1d2-78c98689a56e --provide

Started Mistral Workflow. Execution ID: e320298a-6562-42e3-8ba6-5ce6d8524e5c

Waiting for introspection to finish...

Successfully introspected all nodes.

Introspection completed.

Started Mistral Workflow. Execution ID: c4a90d7b-ebf2-4fcb-96bf-e3168aa69dc9

Successfully set all nodes to available.

[stack@director ~]$ ironic node-list |grep available

| 7eddfa87-6ae6-4308-b1d2-78c98689a56e | None | None                                 | power off   | available          | False       |

الخطوة 4. إضافة عناوين IP إلى custom-templates/layout.yml ضمن OsdComputeIPs. في هذه الحالة، وأنت تقوم باستبدال osd-compute-0، فإنك تضيف هذا العنوان إلى نهاية القائمة لكل نوع.

OsdComputeIPs:

internal_api:

- 11.120.0.43

- 11.120.0.44

- 11.120.0.45

- 11.120.0.43   <<< take osd-compute-0 .43 and add here

tenant:

- 11.117.0.43

- 11.117.0.44

- 11.117.0.45

- 11.117.0.43   << and here

storage:

- 11.118.0.43

- 11.118.0.44

- 11.118.0.45

- 11.118.0.43   << and here

storage_mgmt:

- 11.119.0.43

- 11.119.0.44

- 11.119.0.45

- 11.119.0.43   << and here

الخطوة 5. قم بتشغيل البرنامج النصي deploy.sh الذي تم إستخدامه مسبقا لنشر المكدس، لإضافة عقدة الحوسبة الجديدة إلى مكدس الشبكات الزائدة.

[stack@director ~]$ ./deploy.sh

++ openstack overcloud deploy --templates -r /home/stack/custom-templates/custom-roles.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/puppet-pacemaker.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/storage-environment.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/neutron-sriov.yaml -e /home/stack/custom-templates/network.yaml -e /home/stack/custom-templates/ceph.yaml -e /home/stack/custom-templates/compute.yaml -e /home/stack/custom-templates/layout.yaml --stack ADN-ultram --debug --log-file overcloudDeploy_11_06_17__16_39_26.log --ntp-server 172.24.167.109 --neutron-flat-networks phys_pcie1_0,phys_pcie1_1,phys_pcie4_0,phys_pcie4_1 --neutron-network-vlan-ranges datacentre:1001:1050 --neutron-disable-tunneling --verbose --timeout 180

…

Starting new HTTP connection (1): 192.200.0.1

"POST /v2/action_executions HTTP/1.1" 201 1695

HTTP POST http://192.200.0.1:8989/v2/action_executions 201

Overcloud Endpoint: http://10.1.2.5:5000/v2.0

Overcloud Deployed

clean_up DeployOvercloud:

END return value: 0

real   38m38.971s

user   0m3.605s

sys    0m0.466s

الخطوة 6. انتظر حتى اكتمال حالة مكدس OpenStack.

[stack@director ~]$  openstack stack list

+--------------------------------------+------------+-----------------+----------------------+----------------------+

| ID                                   | Stack Name | Stack Status    | Creation Time        | Updated Time         |

+--------------------------------------+------------+-----------------+----------------------+----------------------+

| 5df68458-095d-43bd-a8c4-033e68ba79a0 | pod1       | UPDATE_COMPLETE | 2017-11-02T21:30:06Z | 2017-11-06T21:40:58Z |

+--------------------------------------+------------+-----------------+----------------------+----------------------+

الخطوة 7. تحقق من أن عقدة OSD-compute الجديدة في الحالة "نشط".

[stack@director ~]$ source stackrc

[stack@director ~]$ nova list |grep osd-compute-3

| 0f2d88cd-d2b9-4f28-b2ca-13e305ad49ea | pod1-osd-compute-3    | ACTIVE | -          | Running     | ctlplane=192.200.0.117 |

[stack@director ~]$ source corerc

[stack@director ~]$ openstack hypervisor list |grep osd-compute-3

| 63 | pod1-osd-compute-3.localdomain    |

الخطوة 8. قم بتسجيل الدخول إلى خادم OSD-Compute الجديد وتحقق من عمليات الإعداد. في البداية تكون الحالة في HEALTH_WARN مع إسترداد CEPH.

[heat-admin@pod1-osd-compute-3 ~]$ sudo ceph -s

cluster eb2bb192-b1c9-11e6-9205-525400330666

health HEALTH_WARN

223 pgs backfill_wait

4 pgs backfilling

41 pgs degraded

227 pgs stuck unclean

41 pgs undersized

recovery 45229/1300136 objects degraded (3.479%)

recovery 525016/1300136 objects misplaced (40.382%)

monmap e1: 3 mons at {Pod1-controller-0=11.118.0.40:6789/0,Pod1-controller-1=11.118.0.41:6789/0,Pod1-controller-2=11.118.0.42:6789/0}

election epoch 58, quorum 0,1,2 Pod1-controller-0,Pod1-controller-1,Pod1-controller-2

osdmap e986: 12 osds: 12 up, 12 in; 225 remapped pgs

flags sortbitwise,require_jewel_osds

pgmap v781746: 704 pgs, 6 pools, 533 GB data, 344 kobjects

1553 GB used, 11840 GB / 13393 GB avail

45229/1300136 objects degraded (3.479%)

525016/1300136 objects misplaced (40.382%)

477 active+clean

186 active+remapped+wait_backfill

37 active+undersized+degraded+remapped+wait_backfill

4 active+undersized+degraded+remapped+backfilling

الخطوة 9. ومع ذلك، بعد فترة قصيرة (20 دقيقة)، يعود CEPH إلى حالة HEALTH_OK.

[heat-admin@pod1-osd-compute-3 ~]$ sudo ceph -s

cluster eb2bb192-b1c9-11e6-9205-525400330666

health HEALTH_OK

monmap e1: 3 mons at {Pod1-controller-0=11.118.0.40:6789/0,Pod1-controller-1=11.118.0.41:6789/0,Pod1-controller-2=11.118.0.42:6789/0}

election epoch 58, quorum 0,1,2 Pod1-controller-0,Pod1-controller-1,Pod1-controller-2

osdmap e1398: 12 osds: 12 up, 12 in

flags sortbitwise,require_jewel_osds

pgmap v784311: 704 pgs, 6 pools, 533 GB data, 344 kobjects

1599 GB used, 11793 GB / 13393 GB avail

704 active+clean

client io 8168 kB/s wr, 0 op/s rd, 32 op/s wr

[heat-admin@pod1-osd-compute-3 ~]$ sudo ceph osd tree

ID WEIGHT   TYPE NAME                         UP/DOWN REWEIGHT PRIMARY-AFFINITY

-1 13.07996 root default

-2        0     host pod1-osd-compute-0

-3  4.35999     host pod1-osd-compute-2

1  1.09000         osd.1                          up  1.00000          1.00000

4  1.09000         osd.4                          up  1.00000          1.00000

7  1.09000         osd.7                          up  1.00000          1.00000

10  1.09000         osd.10                         up  1.00000          1.00000

-4  4.35999     host pod1-osd-compute-1

2  1.09000         osd.2                          up  1.00000          1.00000

5  1.09000         osd.5                          up  1.00000          1.00000

8  1.09000         osd.8                          up  1.00000          1.00000

11  1.09000         osd.11                         up  1.00000          1.00000

-5  4.35999     host pod1-osd-compute-3

0  1.09000         osd.0                          up  1.00000          1.00000

3  1.09000         osd.3                          up  1.00000          1.00000

6  1.09000         osd.6                          up  1.00000          1.00000

9  1.09000         osd.9                          up  1.00000          1.00000

إستعادة الأجهزة الافتراضية

إضافة إلى قائمة تجميع نوفا

قم بإضافة عقدة OSD-Compute إلى البيئات المضيفة المجمعة وتحقق من إضافة المضيف.

nova aggregate-add-host

[stack@director ~]$ nova aggregate-add-host esc1 pod1-osd-compute-3.localdomain

nova aggregate-show

[stack@director ~]$ nova aggregate-show esc1

+----+------+-------------------+----------------------------------------+------------------------------------------+

| Id | Name | Availability Zone | Hosts | Metadata |

+----+------+-------------------+----------------------------------------+------------------------------------------+

| 3 | esc1 | AZ-esc1 | 'pod1-osd-compute-3.localdomain' | 'availability_zone=AZ-esc1', 'esc1=true' |

+----+------+-------------------+----------------------------------------+------------------------------------------+

إسترداد ESC VM

الخطوة 1. تحقق من حالة ESC VM من قائمة نوفا وقم بحذفها.

stack@director scripts]$ nova list |grep esc

| c566efbf-1274-4588-a2d8-0682e17b0d41 | esc                                                | ACTIVE | -          | Running     | VNF2-UAS-uas-orchestration=172.168.11.14; VNF2-UAS-uas-management=172.168.10.4                                                                                                 |

[stack@director scripts]$ nova delete esc

Request to delete server esc has been accepted.

If can not delete esc then use command: nova force-delete esc

الخطوة 2. في OSPD، انتقل إلى دليل ECS-Image وتأكد من وجود bootvm.py و qcow2 لإصدار ESC، إن لم يكن نقلها إلى دليل.

[stack@atospd ESC-Image-157]$ ll

total 30720136

-rw-r--r--. 1 root  root       127724 Jan 23 12:51 bootvm-2_3_2_157a.py

-rw-r--r--. 1 root  root           55 Jan 23 13:00 bootvm-2_3_2_157a.py.md5sum

-rw-rw-r--. 1 stack stack 31457280000 Jan 24 11:35 esc-2.3.2.157.qcow2

الخطوة 3. إنشاء الصورة.

[stack@director ESC-image-157]$  glance image-create --name ESC-2_3_2_157 --disk-format "qcow2" --container "bare" --file /home/stack/ECS-Image-157/ESC-2_3_2_157.qcow2

الخطوة 4. تحقق من وجود صورة ESC.

stack@director ~]$ glance image-list

+--------------------------------------+--------------------------------------+

| ID                                   | Name                                 |

+--------------------------------------+--------------------------------------+

| 8f50acbe-b391-4433-aa21-98ac36011533 | ESC-2_3_2_157|

| 2f67f8e0-5473-467c-832b-e07760e8d1fa | tmobile-pcrf-13.1.1.iso              |

| c5485c30-45db-43df-831d-61046c5cfd01 | tmobile-pcrf-13.1.1.qcow2            |

| 2f84b9ec-61fa-46a3-a4e6-45f14c93d9a9 | tmobile-pcrf-13.1.1_cco_20170825.iso |

| 25113ecf-8e63-4b81-a73f-63606781ef94 | wscaaa01-sept072017                  |

| 595673e8-c99c-40c2-82b1-7338325024a9 | wscaaa02-sept072017                  |

| 8bce3a60-b3b0-4386-9e9d-d99590dc9033 | wscaaa03-sept072017                  |

| e5c835ad-654b-45b0-8d36-557e6c5fd6e9 | wscaaa04-sept072017                  |

| 879dfcde-d25c-4314-8da0-32e4e73ffc9f | WSP1_cluman_12_07_2017               |

| 7747dd59-c479-4c8a-9136-c90ec894569a | WSP2_cluman_12_07_2017               |

+--------------------------------------+--------------------------------------+

[stack@ ~]$ openstack flavor list

+--------------------------------------+------------+--------+------+-----------+-------+-----------+

| ID                                   | Name       |    RAM | Disk | Ephemeral | VCPUs | Is Public |

+--------------------------------------+------------+--------+------+-----------+-------+-----------+

| 1e4596d5-46f0-46ba-9534-cfdea788f734 | pcrf-smb   | 100352 |  100 |         0 |     8 | True      |

| 251225f3-64c9-4b19-a2fc-032a72bfe969 | pcrf-oam   |  65536 |  100 |         0 |    10 | True      |

| 4215d4c3-5b2a-419e-b69e-7941e2abe3bc | pcrf-pd    |  16384 |  100 |         0 |    12 | True      |

| 4c64a80a-4d19-4d52-b818-e904a13156ca | pcrf-qns   |  14336 |  100 |         0 |    10 | True      |

| 8b4cbba7-40fd-49b9-ab21-93818c80a2e6 | esc-flavor |   4096 |    0 |         0 |     4 | True      |

| 9c290b80-f80a-4850-b72f-d2d70d3d38ea | pcrf-sm    | 100352 |  100 |         0 |    10 | True      |

| e993fc2c-f3b2-4f4f-9cd9-3afc058b7ed1 | pcrf-arb   |  16384 |  100 |         0 |     4 | True      |

| f2b3b925-1bf8-4022-9f17-433d6d2c47b5 | pcrf-cm    |  14336 |  100 |         0 |     6 | True      |

+--------------------------------------+------------+--------+------+-----------+-------+-----------+

الخطوة 5. قم بإنشاء هذا الملف ضمن دليل الصور وبدء تشغيل مثيل ESC.

[root@director ESC-IMAGE]# cat esc_params.conf

openstack.endpoint = publicURL

[root@director ESC-IMAGE]./bootvm-2_3_2_157a.py esc --flavor esc-flavor --image ESC-2_3_2_157 --net tb1-mgmt --gateway_ip 172.16.181.1 --net tb1-orch --enable-http-rest --avail_zone AZ-esc1 --user_pass "admin:Cisco123" --user_confd_pass "admin:Cisco123" --bs_os_auth_url http://10.250.246.137:5000/v2.0 --kad_vif eth0 --kad_vip 172.16.181.5 --ipaddr 172.16.181.4 dhcp --ha_node_list 172.16.181.3 172.16.181.4 --esc_params_file esc_params.conf

ملاحظة: بعد إعادة نشر الجهاز الظاهري ESC الإشكالي بنفس الأمر bootvm.py تماما مثل التثبيت الأولي، يقوم ESC HA بإجراء المزامنة تلقائيا دون أي إجراء يدوي. تأكد من أن مدير ESC قيد التشغيل.

الخطوة 6. قم بتسجيل الدخول إلى ESC الجديد وتحقق من حالة النسخ الاحتياطي.

[admin@esc ~]$ escadm status

0 ESC status=0 ESC Backup Healthy

[admin@VNF2-esc-esc-1 ~]$ health.sh

============== ESC HA (BACKUP) ===================================================

ESC HEALTH PASSED