Sommario

Introduzione

Premesse

Abbreviazioni

Flusso di lavoro del piano di mobilità

Verifiche integrità prerequisiti

Isolamento e rimozione del disco OSD difettoso dal cluster

Sostituire il disco OSD e creare un nuovo disco virtuale

Aggiungere nuovamente l'OSD al cluster

Introduzione

In questo documento vengono descritti i passaggi da eseguire per isolare e sostituire il disco OSD dal cluster di memoria cache/archiviazione ospitato su un sistema OSD (Object Storage Disk)-Compute in una configurazione Ultra-M.

Premesse

Ultra-M è una soluzione di base di pacchetti mobili preconfezionata e convalidata, progettata per semplificare l'installazione di VNF. OpenStack è Virtualized Infrastructure Manager (VIM) per Ultra-M ed è costituito dai seguenti tipi di nodi:

- Calcola

- OSD - Calcolo

- Controller

- Piattaforma OpenStack - Director (OSPD)

L'architettura di alto livello di Ultra-M e i componenti coinvolti sono illustrati in questa immagine:

Architettura UltraMQuesto documento è destinato al personale Cisco che ha familiarità con la piattaforma Cisco Ultra-M e descrive in dettaglio i passaggi richiesti da eseguire a livello di OpenStack al momento della sostituzione del server OSPD.

Nota: Per definire le procedure descritte in questo documento, viene presa in considerazione la release di Ultra M 5.1.x.

Abbreviazioni

VNF

Funzione di rete virtuale

CF

Funzione di controllo

SF

Funzione di servizio

ESC

Elastic Service Controller

MOP

Metodo

OSD

Dischi Object Storage

HDD

Unità hard disk

SSD

Unità a stato solido

VIM

Virtual Infrastructure Manager

VM

Macchina virtuale

EM

Gestione elementi

UAS

Ultra Automation Services

UUID

Identificatore univoco universale

Flusso di lavoro del piano di mobilità

Verifiche integrità prerequisiti

1. Utilizzare il comando Ceph-disk list per comprendere la mappatura dell'OSD su Journal e identificare il disco da isolare e sostituire.

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

/dev/sda :

/dev/sda1 other, iso9660

/dev/sda2 other, xfs, mounted on /

/dev/sdb :

/dev/sdb1 ceph journal, for /dev/sdc1

/dev/sdb3 ceph journal, for /dev/sdd1

/dev/sdb2 ceph journal, for /dev/sde1

/dev/sdb4 ceph journal, for /dev/sdf1

/dev/sdc :

/dev/sdc1 ceph data, active, cluster ceph, osd.1, journal /dev/sdb1

/dev/sdd :

/dev/sdd1 ceph data, active, cluster ceph, osd.7, journal /dev/sdb3

/dev/sde :

/dev/sde1 ceph data, active, cluster ceph, osd.4, journal /dev/sdb2

/dev/sdf :

/dev/sdf1 ceph data, active, cluster ceph, osd.10, journal /dev/sdb4

2. Verificare l'integrità della cache e la mappatura della struttura OSD prima di procedere con l'isolamento del disco OSD identificato.

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

cluster eb2bb192-b1c9-11e6-9205-525400330666

health HEALTH_OK

1 mons down, quorum 0,1 pod1-controller-0,pod1-controller-1

monmap e1: 3 mons at {pod1-controller-0=11.118.0.10:6789/0,pod1-controller-1=11.118.0.11:6789/0,pod1-controller-2=11.118.0.12:6789/0}

election epoch 28, quorum 0,1 pod1-controller-0,pod1-controller-1

osdmap e709: 12 osds: 12 up, 12 in

flags sortbitwise,require_jewel_osds

pgmap v941813: 704 pgs, 6 pools, 490 GB data, 163 kobjects

1470 GB used, 11922 GB / 13393 GB avail

704 active+clean

client io 58580 B/s wr, 0 op/s rd, 7 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  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        0     host pod1-osd-compute-1

-4  4.35999     host pod1-osd-compute-2

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

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

Isolamento e rimozione del disco OSD difettoso dal cluster

1. Disabilitare e interrompere il processo OSD.

[heat-admin@pod1-osd-compute-3 ~]$ sudo systemctl disable ceph-osd@7

[heat-admin@pod1-osd-compute-3 ~]$ sudo systemctl stop ceph-osd@7

2. Contrassegnare l'OSD.

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

[root@pod1-osd-compute-3 heat-admin]# ceph osd set noout

set noout

[root@pod1-osd-compute-3 heat-admin]# ceph osd set norebalance

set norebalance

[root@pod1-osd-compute-3 heat-admin]# ceph osd out 7

marked out osd.7.

Nota: Attendere il completamento del ribilanciamento dei dati e che tutti i PG tornino in stato attivo e pulito per evitare problemi.

3. Verificare che l'OSD sia contrassegnato e attendere che il ribilanciamento Ceph proceda.

[root@pod1-osd-compute-3 heat-admin]# watch -n1 ceph -s

95 active+undersized+degraded+remapped+wait_backfill

28 active+recovery_wait+degraded

2 active+undersized+degraded+remapped+backfilling

1 active+recovering+degraded

2 active+undersized+degraded+remapped+backfilling

1 active+recovering+degraded

2 active+undersized+degraded+remapped+backfilling

67 active+undersized+degraded+remapped+wait_backfill

3 active+undersized+degraded+remapped+backfilling

24 active+undersized+degraded+remapped+wait_backfill

22 active+undersized+degraded+remapped+wait_backfill

1 active+undersized+degraded+remapped+backfilling

8 active+undersized+degraded+remapped+wait_backfill

4. Rimuovere la chiave di autenticazione per l'OSD.

[root@pod1-osd-compute-3 heat-admin]# ceph auth del osd.7

updated

5. Verificare che i tasti per OSD.7 non siano elencati.

[root@pod1-osd-compute-3 heat-admin]# ceph auth list

installed auth entries:

osd.0

key: AQCgpB5blV9dNhAAzDN1SVdnuJyTN2f7PAdtFw==

caps: [mon] allow profile osd

caps: [osd] allow *

osd.1

key: AQBdwyBbbuD6IBAAcvG+oQOz5vk62faOqv/CEw==

caps: [mon] allow profile osd

caps: [osd] allow *

osd.10

key: AQCwwyBb7xvHJhAAZKPprXWT7UnvnAXBV9W2rg==

caps: [mon] allow profile osd

caps: [osd] allow *

osd.11

key: AQDxpB5b9/rGFRAAkcCEkpSN1YZVDdeW+Bho7w==

caps: [mon] allow profile osd

caps: [osd] allow *

osd.2

key: AQCppB5btekoNBAAACoWpDz0VL9bZfyIygDpBQ==

caps: [mon] allow profile osd

caps: [osd] allow *

osd.3

key: AQC4pB5bBaUlORAAhi3KPzetwvWhYGnerAkAsg==

caps: [mon] allow profile osd

caps: [osd] allow *

osd.4

key: AQB1wyBbvMIQLRAAXefFVnZxMX6lVtObQt9KoA==

caps: [mon] allow profile osd

caps: [osd] allow *

osd.5

key: AQDBpB5buKHqOhAAW1Q861qoYqW6fAYHlOxsLg==

caps: [mon] allow profile osd

caps: [osd] allow *

osd.6

key: AQDQpB5b1BveFxAAfCLM3tvDUSnYneutyTmaEg==

caps: [mon] allow profile osd

caps: [osd] allow *

osd.8

key: AQDZpB5bd4nlGRAAkkzbmGPnEDAWV0dUhrhE6w==

caps: [mon] allow profile osd

caps: [osd] allow *

osd.9

key: AQDopB5bKCZPGBAAfYtp1GLA7QIi/YxJa8O1yw==

caps: [mon] allow profile osd

caps: [osd] allow *

client.admin

key: AQDpmx5bAAAAABAA3hLK8O2tGgaAK+X2Lly5Aw==

caps: [mds] allow *

caps: [mon] allow *

caps: [osd] allow *

client.bootstrap-mds

key: AQBDpB5bjR1GJhAAB6CKKxXulve9WIiC6ZGXgA==

caps: [mon] allow profile bootstrap-mds

client.bootstrap-osd

key: AQDpmx5bAAAAABAA3hLK8O2tGgaAK+X2Lly5Aw==

caps: [mon] allow profile bootstrap-osd

client.bootstrap-rgw

key: AQBDpB5b7OWXHBAAlATmBAOX/QWW+2mLxPqlkQ==

caps: [mon] allow profile bootstrap-rgw

client.openstack

key: AQDpmx5bAAAAABAAULxfs9cYG1wkSVTjrtiaDg==

caps: [mon] allow r

caps: [osd] allow class-read object_prefix rbd_children, allow rwx pool=volumes, allow rwx pool=backups, allow rwx pool=vms, allow rwx pool=images, allow rwx pool=metrics

7. Rimuovere l'OSD dal cluster.

[root@pod1-osd-compute-3 heat-admin]# ceph osd rm 7

removed osd.7

8. Smontare il disco OSD da sostituire.

[root@pod1-osd-compute-3 heat-admin]# umount /var/lib/ceph/osd/ceph-7

9. Annullare la noscrub e la profonscrub.

[root@pod1-osd-compute-3 heat-admin]# ceph osd unset noscrub

unset noscrub

[root@pod1-osd-compute-3 heat-admin]# ceph osd unset nodeep-scrub

unset nodeep-scrub

10. Verificare lo stato di salute di Ceph e attendere che health-ok e tutti i PG tornino ad attivo+pulito.

[root@pod1-osd-compute-3 heat-admin]# ceph -s

cluster eb2bb192-b1c9-11e6-9205-525400330666

health HEALTH_WARN

28 pgs backfill_wait

4 pgs backfilling

5 pgs degraded

5 pgs recovery_wait

83 pgs stuck unclean

recovery 1697/516881 objects degraded (0.328%)

recovery 76428/516881 objects misplaced (14.786%)

noout,norebalance,sortbitwise,require_jewel_osds flag(s) set

1 mons down, quorum 0,1 pod1-controller-0,pod1-controller-1

monmap e1: 3 mons at {pod1-controller-0=11.118.0.10:6789/0,pod1-controller-1=11.118.0.11:6789/0,pod1-controller-2=11.118.0.12:6789/0}

election epoch 28, quorum 0,1 pod1-controller-0,pod1-controller-1

osdmap e877: 11 osds: 11 up, 11 in; 193 remapped pgs

flags noout,norebalance,sortbitwise,require_jewel_osds

pgmap v942974: 704 pgs, 6 pools, 490 GB data, 163 kobjects

1470 GB used, 10806 GB / 12277 GB avail

1697/516881 objects degraded (0.328%)

76428/516881 objects misplaced (14.786%)

511 active+clean

156 active+remapped

28 active+remapped+wait_backfill

5 active+recovery_wait+degraded+remapped

4 active+remapped+backfilling

client io 331 kB/s wr, 0 op/s rd, 56 op/s wr

Sostituire il disco OSD e creare un nuovo disco virtuale

1. Rimuovere l'unità difettosa e sostituirla con una nuova unità: Guida all'installazione e all'assistenza del server Cisco UCS C240 M4.

2. Verificare l'accesso a CIMC dell'OSD-Compute e controllare lo slot in cui l'OSD viene sostituito e mostrato in buono stato.

3. Creare un'unità virtuale per un nuovo disco rigido, deve essere un nuovo disco rigido senza metadati.

4. Verificare che il disco appena aggiunto sia nello stato Non configurato come valido.

Storage > Controller RAID modulare SAS Cisco 12G (SLOT-HBA) > Informazioni unità fisica

5. Selezionare l'opzione Crea unità virtuale da unità fisiche inutilizzate per creare il DVD.

Storage > Controller RAID modulare SAS Cisco 12G (SLOT-HBA)

6. Utilizzare Physical Drive 9 per creare un nuovo DVD e denominarlo OSD3.

Storage > Controller RAID modulare SAS Cisco 12G (SLOT-HBA) > Informazioni controller > Crea unità virtuale da unità fisiche inutilizzate

Storage > Controller RAID modulare SAS Cisco 12G (SLOT-HBA) > Informazioni controller > Crea unità virtuale da unità fisiche inutilizzate

7. Abilitare IPMI over LAN: Admin > Communication Services > Communication Services.

Abilitare IPMI over LAN: Amministrazione > Servizi di comunicazione > Servizi di comunicazione

8. Disabilitare l'HyperThreading: Compute > BIOS > Conimage BIOS > Advanced > Processor Configuration.

Disabilita hyperthreading: Compute > BIOS > Configure BIOS > Advanced > Processor Configuration

Nota: L'immagine qui illustrata e le procedure di configurazione descritte in questa sezione fanno riferimento alla versione del firmware 3.0(3e). Se si utilizzano altre versioni, potrebbero verificarsi lievi variazioni.

Aggiungere nuovamente l'OSD al cluster

1. Dopo aver sostituito un nuovo disco, eseguire partprobe per individuare il nuovo dispositivo.

[root@pod1-osd-compute-3 heat-admin]# partprobe

[root@pod1-osd-compute-3 heat-admin]# lsblk

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT

sda      8:0    0 278.5G  0 disk

|

-sda1   8:1    0     1M  0 part

-sda2   8:2    0 278.5G  0 part /

sdb      8:16   0 446.1G  0 disk

|

-sdb1   8:17   0   107G  0 part

-sdb2   8:18   0   107G  0 part

-sdb3   8:19   0   107G  0 part

-sdb4   8:20   0   107G  0 part

sdc      8:32   0   1.1T  0 disk

|

-sdc1   8:33   0   1.1T  0 part /var/lib/ceph/osd/ceph-1

sdd 8:48   0   1.1T  0 disk

|

-sdd1   8:49   0   1.1T  0 part

sde      8:64   0   1.1T  0 disk

|

-sde1   8:65   0   1.1T  0 part /var/lib/ceph/osd/ceph-4

sdf      8:80   0   1.1T  0 disk

|

-sdf1   8:81   0   1.1T  0 part /var/lib/ceph/osd/ceph-10

2. Individuare un dispositivo disponibile sul server.

[root@pod1-osd-compute-3 heat-admin]# fdisk -l

Disk /dev/sda: 299.0 GB, 298999349248 bytes, 583983104 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0x000b5e87

Device Boot      Start         End      Blocks   Id  System

/dev/sda1            2048        4095        1024   83  Linux

/dev/sda2   *        4096   583983070   291989487+  83  Linux

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sdb: 479.0 GB, 478998953984 bytes, 935544832 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 4096 bytes

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk label type: gpt

#         Start          End    Size  Type            Name

1         2048    224462847    107G  unknown         ceph journal

2    224462848    448923647    107G  unknown         ceph journal

3    448923648    673384447    107G  unknown         ceph journal

4    673384448    897845247    107G  unknown         ceph journal

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sdd: 1199.0 GB, 1198999470080 bytes, 2341795840 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: gpt

#         Start          End    Size  Type            Name

1         2048   2341795806    1.1T  unknown         ceph data

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sdc: 1199.0 GB, 1198999470080 bytes, 2341795840 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: gpt

#         Start          End    Size  Type            Name

1         2048   2341795806    1.1T  unknown         ceph data

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sde: 1199.0 GB, 1198999470080 bytes, 2341795840 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: gpt

#         Start          End    Size  Type            Name

1         2048   2341795806    1.1T  unknown         ceph data

WARNING: fdisk GPT support is currently new, and therefore in an experimental phase. Use at your own discretion.

Disk /dev/sdf: 1199.0 GB, 1198999470080 bytes, 2341795840 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: gpt

#         Start          End    Size  Type            Name

1         2048   2341795806    1.1T  unknown         ceph data

[root@pod1-osd-compute-3 heat-admin]#

3. Utilizzare l'elenco dei dischi di cache per identificare la mappa della partizione del disco del journal.

[root@pod1-osd-compute-3 heat-admin]# ceph-disk list

/dev/sda :

/dev/sda1 other, iso9660

/dev/sda2 other, xfs, mounted on /

/dev/sdb :

/dev/sdb1 ceph journal, for /dev/sdc1

/dev/sdb3 ceph journal

/dev/sdb2 ceph journal, for /dev/sde1

/dev/sdb4 ceph journal, for /dev/sdf1

/dev/sdc :

/dev/sdc1 ceph data, active, cluster ceph, osd.1, journal /dev/sdb1

/dev/sdd :

/dev/sdd1 other, xfs

/dev/sde :

/dev/sde1 ceph data, active, cluster ceph, osd.4, journal /dev/sdb2

/dev/sdf :

/dev/sdf1 ceph data, active, cluster ceph, osd.10, journal /dev/sdb4

Nota: Nell'elenco dei dischi di Ceph, l'output evidenziato da sde1 è la partizione del journal per sdb2. Controllare l'output dell'elenco dei dischi di Ceph ed eseguire il mapping della partizione del disco del journal nel comando per la preparazione di Ceph. Non appena viene eseguito il comando OSD.7 e viene avviato il ribilanciamento dei dati (backfill/recovery).

4. Creare il disco di cache e aggiungerlo nuovamente al cluster.

[root@pod1-osd-compute-3 heat-admin]#  ceph-disk --setuser ceph --setgroup ceph prepare --fs-type xfs /dev/sdd /dev/sdb3

prepare_device: OSD will not be hot-swappable if journal is not the same device as the osd data

Creating new GPT entries.

The operation has completed successfully.

meta-data=/dev/sdd1              isize=2048   agcount=4, agsize=73181055 blks

=                       sectsz=512   attr=2, projid32bit=1

=                       crc=1        finobt=0, sparse=0

data     =                       bsize=4096   blocks=292724219, imaxpct=5

=                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=1

log      =internal log           bsize=4096   blocks=142931, version=2

=                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

Warning: The kernel is still using the old partition table.

The new table will be used at the next reboot.

The operation has completed successfully.

#####Hint###

where - sdd is new drive added as OSD

where – sdb3 is journal disk partition number

mapping is sdc1 for sdc, sdd1 for sdd, sde1 for sde

sdf1 for sdf (and so on)

5. Attivare i Ceph-disk e annullare l'impostazione dei flag noscrub e nodeep-scrub.

[root@pod1-osd-compute-3 heat-admin]# ceph-disk activate-all

[root@pod1-osd-compute-3 heat-admin]# ceph osd unset noout

unset noout

[root@pod1-osd-compute-3 heat-admin]# ceph osd  unset norebalance

unset norebalance

[root@pod1-osd-compute-3 heat-admin]# ceph osd unset noscrub

unset noscrub

[root@pod1-osd-compute-3 heat-admin]# ceph osd unset nodeep-scrub

unset nodeep-scrub

6. Attendere il completamento del ribilanciamento e verificare che lo stato di salute di Ceph e OSD tree sia corretto.

[root@pod1-osd-compute-3 heat-admin]# watch -n 3 ceph -s

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

cluster eb2bb192-b1c9-11e6-9205-525400330666

health HEALTH_OK

1 mons down, quorum 0,1 pod1-controller-0,pod1-controller-1

monmap e1: 3 mons at {pod1-controller-0=11.118.0.10:6789/0,pod1-controller-1=11.118.0.11:6789/0,pod1-controller-2=11.118.0.12:6789/0}

election epoch 28, quorum 0,1 pod1-controller-0,pod1-controller-1

osdmap e709: 12 osds: 12 up, 12 in

flags sortbitwise,require_jewel_osds

pgmap v941813: 704 pgs, 6 pools, 490 GB data, 163 kobjects

1470 GB used, 11922 GB / 13393 GB avail

704 active+clean

client io 58580 B/s wr, 0 op/s rd, 7 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  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

-4  4.35999     host pod1-osd-compute-2

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

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