Comment redimensionner des groupes de disques ASM sur EXADATA

Une opération assez usuelle sur le stockage ASM Exadata est le redimensionnement des groupes de disques ASM et plus particulièrement la réduction d’un groupe de disques au détriment d’un autre groupe de disques. Dans notre cas spécifique nous disposons de 2 groupes de disques DATA et DATAG constitués de 18 disques de 3To chacun répartis sur 3 serveurs de stockage. L’objectif de ce redimensionnement est de récupérer 18 To sur le groupe DATA pour les réattribuer à DATADG.

  • Situation actuelle : DATA = 18 disques x 3To , DATADG = 18 disques x 3To
  • Situation future    : DATA = 18 disques x 2To , DATADG = 18 disques x 4To

Contrôle des groupes de disques ASM

La première action est de contrôler la taille des groupes de disques et de vérifier les disques associés au groupe ASM qui doit être diminué.

[Thu Jun 29 13:14:49 oracle@exaeasy01db01:~ ] $ sqlplus / as sysasm
SQL select group_number, name, type, total_mb, free_mb,
 required_mirror_free_mb, usable_file_mb
 from v$asm_diskgroup
 order by group_number;
GROUP_NUMBER NAME                           TYPE     TOTAL_MB    FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
 ------------ ------------------------------ ------ ---------- ---------- ----------------------- --------------
 1 DATADG                         HIGH     56623360    7964736                 6504448         486734
 2 DATA                           HIGH     56623360   42703164                 6291456       12137236
 3 DBFS                           NORMAL     415296     414760                   34608         190076
 4 RECODG                         NORMAL    1475712     604856                   81984         261436
SQL select name, total_mb, os_mb, state
 from v$asm_disk
 where group_number = (select group_number
 from v$asm_diskgroup
 where name='DATA');
NAME                             TOTAL_MB      OS_MB
 ------------------------------ ---------- ----------
 DATA_CD_02_EXAEASY01CELADM01      3145728    3145728
 DATA_CD_00_EXAEASY01CELADM01      3145728    3145728
 DATA_CD_01_EXAEASY01CELADM01      3145728    3145728
 DATA_CD_04_EXAEASY01CELADM01      3145728    3145728
 DATA_CD_04_EXAEASY01CELADM03      3145728    3145728
 DATA_CD_02_EXAEASY01CELADM03      3145728    3145728
 DATA_CD_03_EXAEASY01CELADM03      3145728    3145728
 DATA_CD_01_EXAEASY01CELADM03      3145728    3145728
 DATA_CD_00_EXAEASY01CELADM03      3145728    3145728
 DATA_CD_05_EXAEASY01CELADM03      3145728    3145728
 DATA_CD_04_EXAEASY01CELADM02      3145728    3145728
 DATA_CD_03_EXAEASY01CELADM02      3145728    3145728
 DATA_CD_02_EXAEASY01CELADM02      3145728    3145728
 DATA_CD_05_EXAEASY01CELADM02      3145728    3145728
 DATA_CD_01_EXAEASY01CELADM02      3145728    3145728
 DATA_CD_00_EXAEASY01CELADM02      3145728    3145728
 DATA_CD_03_EXAEASY01CELADM01      3145728    3145728
 DATA_CD_05_EXAEASY01CELADM01      3145728    3145728
 QD_DATA_EXAEASY01DB02                 128        128
 QD_DATA_EXAEASY01DB01                 128        128

Des disques quorum existent  (QD_DATA_EXAEASY01DB) dans le groupe de disques DATA certainement le résidu d’un déplacement des fichiers OCR (Oracle Cluster Registry) sur un autre groupe de disques, il est impératif de vérifier si ces disques sont toujours actuellement alloués aux fichiers OCR.

[Thu Jun 29 13:18:49 root@exaeasy01db01:~ ] $ ocrcheck
 Status of Oracle Cluster Registry is as follows :
 Version                  :          4
 Total space (kbytes)     :     409568
 Used space (kbytes)      :       2088
 Available space (kbytes) :     407480
 ID                       :  644918071
 Device/File Name         :    +DATADG
 Device/File integrity check succeeded
Device/File not configured
Device/File not configured
Device/File not configured
Device/File not configured
Cluster registry integrity check succeeded
Logical corruption check succeeded
[Thu Jun 29 13:19:01 root@exaeasy01db01:~ ] $ crsctl query css votedisk
 ##  STATE    File Universal Id                File Name Disk group
 --  -----    -----------------                --------- ---------
 1. ONLINE   27bca22451fb4f35bf0cb2f4f8be8b6e (o/192.168.10.5;192.168.10.6/DATADG_CD_00_exaeasy01celadm01) [DATADG]
 2. ONLINE   7ca9e674c5664f87bfbda97a8b9c7ad4 (o/192.168.10.7;192.168.10.8/DATADG_CD_00_exaeasy01celadm02) [DATADG]
 3. ONLINE   ceeaf138e9f54f17bf7fe55aca451fea (o/192.168.10.9;192.168.10.10/DATADG_CD_00_exaeasy01celadm03) [DATADG]
 4. ONLINE   ce252595f0d44f38bf400272b07a47ec (/dev/exaeasy_quorum/QD_DATADG_EXAEASY01DB02) [DATADG]
 5. ONLINE   f921496842374f6ebf18d3bdb8ab22db (/dev/exaeasy_quorum/QD_DATADG_EXAEASY01DB01) [DATADG]

Diminution de la taille des disques ASM du groupe DATA

Les fichiers OCR sont normalement attribués au groupe de disques DATADG, nous pouvons donc supprimer ces fichiers en toute tranquillité avant de redimensionner les disques pour le groupe ASM DATA.

[Thu Jun 29 13:19:49 oracle@exaeasy01db01:~ ] $ sqlplus / as sysasm
SQL alter diskgroup data drop quorum disk 'QD_DATA_EXAEASY01DB01';
Diskgroup altered.
SQL  alter diskgroup data drop quorum disk 'QD_DATA_EXAEASY01DB02';
Diskgroup altered.
SQL alter diskgroup DATA resize all size 2097152M rebalance power 32;
Diskgroup altered.
SQL> select group_number, name, type, total_mb, free_mb,
 required_mirror_free_mb, usable_file_mb
 from v$asm_diskgroup
 order by group_number;
GROUP_NUMBER NAME                TYPE     TOTAL_MB    FREE_MB REQUIRED_MIRROR_FREE_MB USABLE_FILE_MB
 ------------ ------------------------------ ------ ---------- ---------- ----------------------- --------------
1 DATADG                         HIGH     56623360    7736232                 6504448         410566
2 DATA                           HIGH     37748736   27221436                 4194304        7675710
3 DBFS                           NORMAL     415296     414760                   34608         190076
4 RECODG                         NORMAL    1475712     564456                   81984         241236

Vous pouvez remarquer que la taille du groupe de disques DATA (TOTAL_MB) est passée de 54 To To à 36 To

Redimensionnement des LUNs Exadata

Maintenant, il faut se connecter sous le compte ‘root’ sur chacun des serveurs de stockage et diminuer la taille des LUNs DATA à 2 To pour augmenter celle des LUNs DATADG à 4 To

[Thu Jun 29 14:10:18 root@exaeasy01db01:~ ] $ ssh root@exaeasy01celadm01
 Last login: Fri Jun 16 13:39:13 2017 from exaeasy01dbadm01.xxxxxx.fr
 [root@exaeasy01celadm01 ~]# cellcli
alter GridDisk  DATA_CD_00_exaeasy01celadm01,DATA_CD_01_exaeasy01celadm01,DATA_CD_02_exaeasy01celadm01,DATA_CD_03_exaeasy01celadm01,DATA_CD_04_exaeasy01celadm01,DATA_CD_05_exaeasy01celadm01 size=2097152M;
 GridDisk DATA_CD_00_exaeasy01celadm01 successfully altered
 GridDisk DATA_CD_01_exaeasy01celadm01 successfully altered
 GridDisk DATA_CD_02_exaeasy01celadm01 successfully altered
 GridDisk DATA_CD_03_exaeasy01celadm01 successfully altered
 GridDisk DATA_CD_04_exaeasy01celadm01 successfully altered
 GridDisk DATA_CD_05_exaeasy01celadm01 successfully altered
alter GridDisk  DATADG_CD_00_exaeasy01celadm01,DATADG_CD_01_exaeasy01celadm01,DATADG_CD_02_exaeasy01celadm01,DATADG_CD_03_exaeasy01celadm01,DATADG_CD_04_exaeasy01celadm01,DATADG_CD_05_exaeasy01celadm01 size=4194304M;
 GridDisk DATA_CD_00_exaeasy01celadm01 successfully altered
 GridDisk DATA_CD_01_exaeasy01celadm01 successfully altered
 GridDisk DATA_CD_02_exaeasy01celadm01 successfully altered
 GridDisk DATA_CD_03_exaeasy01celadm01 successfully altered
 GridDisk DATA_CD_04_exaeasy01celadm01 successfully altered
 GridDisk DATA_CD_05_exaeasy01celadm01 successfully altered
[Thu Jun 29 14:27:38 root@exaeasy01db01:~ ] $ ssh root@exaeasy01celadm02
 Last login: Fri Jun 16 13:58:38 2017 from XXX.XX.XXX.X
 [root@exaeasy01celadm02 ~]# cellcli
 alter GridDisk  DATA_CD_00_exaeasy01celadm02,DATA_CD_01_exaeasy01celadm02,DATA_CD_02_exaeasy01celadm02,DATA_CD_03_exaeasy01celadm02,DATA_CD_04_exaeasy01celadm02,DATA_CD_05_exaeasy01celadm02 size=2097152M;
 alter GridDisk  DATADG_CD_00_exaeasy01celadm02,DATADG_CD_01_exaeasy01celadm02,DATADG_CD_02_exaeasy01celadm02,DATADG_CD_03_exaeasy01celadm02,DATADG_CD_04_exaeasy01celadm02,DATADG_CD_05_exaeasy01celadm02 size=4194304M;
[Thu Jun 29 14:31:49 root@exaeasy01db01:~ ] $ ssh root@exaeasy01celadm03e
 Last login: Fri Jun 16 14:02:12 2017 from XXX.XX.XXX.X
 [root@exaeasy01celadm03 ~]# cellcli
alter GridDisk  DATA_CD_00_exaeasy01celadm03,DATA_CD_01_exaeasy01celadm03,DATA_CD_02_exaeasy01celadm03,DATA_CD_03_exaeasy01celadm03,DATA_CD_04_exaeasy01celadm03,DATA_CD_05_exaeasy01celadm03 size=2097152M;
 alter GridDisk  DATADG_CD_00_exaeasy01celadm03,DATADG_CD_01_exaeasy01celadm03,DATADG_CD_02_exaeasy01celadm03,DATADG_CD_03_exaeasy01celadm03,DATADG_CD_04_exaeasy01celadm03,DATADG_CD_05_exaeasy01celadm03 size=4194304M;
[Thu Jun 29 14:35:58 root@exaeasy01db01:~ ] $ dcli -c exaeasy01celadm01 -l root 'cellcli -e list GridDisk attributes name,size' | grep DATA
 exaeasy01celadm01: DATADG_CD_00_exaeasy01celadm01        4T
 exaeasy01celadm01: DATADG_CD_01_exaeasy01celadm01        4T
 exaeasy01celadm01: DATADG_CD_02_exaeasy01celadm01        4T
 exaeasy01celadm01: DATADG_CD_03_exaeasy01celadm01        4T
 exaeasy01celadm01: DATADG_CD_04_exaeasy01celadm01        4T
 exaeasy01celadm01: DATADG_CD_05_exaeasy01celadm01        4T
 exaeasy01celadm01: DATA_CD_00_exaeasy01celadm01          2T
 exaeasy01celadm01: DATA_CD_01_exaeasy01celadm01          2T
 exaeasy01celadm01: DATA_CD_02_exaeasy01celadm01          2T
 exaeasy01celadm01: DATA_CD_03_exaeasy01celadm01          2T
 exaeasy01celadm01: DATA_CD_04_exaeasy01celadm01          2T
 exaeasy01celadm01: DATA_CD_05_exaeasy01celadm01          2T

Déplacement des fichiers OCR et voting disks dans DBFS

Pour redimensionner le groupe de disques DATADG, nous devons au préalable déplacer les fichiers OCR et voting disks dans le groupe de disques DBFS.

[root@exadata01db01:~ ] $ ocrconfig -add +DBFS
[root@exadata01db01:~ ] $ ocrconfig -delele +DATADG
[root@exadata01db01:~ ] $ ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          4
         Total space (kbytes)     :     409568
         Used space (kbytes)      :       2084
         Available space (kbytes) :     407484
         ID                       :  644918071
         Device/File Name         :      +DBFS
                                    Device/File integrity check succeeded
                                    Device/File not configured
                                    Device/File not configured
                                    Device/File not configured
                                    Device/File not configured
         Cluster registry integrity check succeeded
         Logical corruption check succeeded
[root@exadata01db01:~ ] $ crsctl replace votedisk +DBFS
Successful addition of voting disk feb0fa8614994f7bbf31e2ad6f66b505.
Successful addition of voting disk 9279c5bed32c4f0bbf706d9a1ccc8edb.
Successful addition of voting disk a45bc98946654f47bfa7735aa2bbf1da.
Successful deletion of voting disk 27bca22451fb4f35bf0cb2f4f8be8b6e.
Successful deletion of voting disk 7ca9e674c5664f87bfbda97a8b9c7ad4.
Successful deletion of voting disk ceeaf138e9f54f17bf7fe55aca451fea.
Successful deletion of voting disk ce252595f0d44f38bf400272b07a47ec.
Successful deletion of voting disk f921496842374f6ebf18d3bdb8ab22db.
Successfully replaced voting disk group with +DBFS.
CRS-4266: Voting file(s) successfully replaced
[root@exadata01db01:~ ] $  crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   feb0fa8614994f7bbf31e2ad6f66b505 (o/192.168.10.5;192.168.10.6/DBFS_CD_02_exadata01celadm01) [DBFS]
 2. ONLINE   9279c5bed32c4f0bbf706d9a1ccc8edb (o/192.168.10.7;192.168.10.8/DBFS_CD_02_exadata01celadm02) [DBFS]
 3. ONLINE   a45bc98946654f47bfa7735aa2bbf1da (o/192.168.10.9;192.168.10.10/DBFS_CD_02_exadata01celadm03) [DBFS]
Located 3 voting disk(s).

Augmentation de la taille des disques ASM du groupe DATADG

Maintenant, il suffit de redimensionner la taille des disques ASM du groupe DATADG à 4 To.

[Thu Jun 29 19:40:16 oracle@exaeasy01db01:~ ] $ sqlplus / as sysasm
SQL select name, total_mb, os_mb, state
 from v$asm_disk
 where group_number = (select group_number
 from v$asm_diskgroup
 where name='DATADG');
 NAME                             TOTAL_MB      OS_MB STATE
 ------------------------------ ---------- ---------- --------
 QD_DATADG_EXAEASY01DB01               128        128 NORMAL
 QD_DATADG_EXAEASY01DB02               128        128 NORMAL
 DATADG_CD_03_EXAEASY01CELADM03    3252224    4194304 NORMAL
 DATADG_CD_02_EXAEASY01CELADM03    3252224    4194304 NORMAL
 DATADG_CD_01_EXAEASY01CELADM03    3252224    4194304 NORMAL
 DATADG_CD_04_EXAEASY01CELADM03    3252224    4194304 NORMAL
 DATADG_CD_00_EXAEASY01CELADM03    3252224    4194304 NORMAL
 DATADG_CD_05_EXAEASY01CELADM03    3252224    4194304 NORMAL
 DATADG_CD_04_EXAEASY01CELADM02    3252224    4194304 NORMAL
 DATADG_CD_01_EXAEASY01CELADM02    3252224    4194304 NORMAL
 DATADG_CD_03_EXAEASY01CELADM02    3252224    4194304 NORMAL
 DATADG_CD_02_EXAEASY01CELADM02    3252224    4194304 NORMAL
 DATADG_CD_05_EXAEASY01CELADM02    3252224    4194304 NORMAL
 DATADG_CD_00_EXAEASY01CELADM02    3252224    4194304 NORMAL
 DATADG_CD_01_EXAEASY01CELADM01    3252224    4194304 NORMAL
 DATADG_CD_03_EXAEASY01CELADM01    3252224    4194304 NORMAL
 DATADG_CD_04_EXAEASY01CELADM01    3252224    4194304 NORMAL
 DATADG_CD_00_EXAEASY01CELADM01    3252224    4194304 NORMAL
 DATADG_CD_02_EXAEASY01CELADM01    3252224    4194304 NORMAL
 DATADG_CD_05_EXAEASY01CELADM01    3252224    4194304 NORMAL
SQL alter diskgroup datadg drop quorum disk 'QD_DATADG_EXAEASY01DB01';
Diskgroup altered.
SQL alter diskgroup datadg drop quorum disk 'QD_DATADG_EXAEASY01DB02';
Diskgroup altered.
SQL alter diskgroup DATADG resize all size 4194304M
[Thu Jun 29 19:45:20 oracle@exaeasy01db01:~ ] $ asmcmd
 ASMCMD> lsdg
 State    Type    Rebal  Sector  Block       AU  Total_MB   Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
 MOUNTED  HIGH    N         512   4096  4194304  37748736  27221436          4194304         7675710              0             N  DATA/
 MOUNTED  HIGH    Y         512   4096  4194304  75497472  24694176          8388608         5435189              0             N  DATADG/
 MOUNTED  NORMAL  N         512   4096  4194304    415296    414332            34608          189862              0             Y  DBFS/
 MOUNTED  NORMAL  N         512   4096  4194304  18874368  17962128          1048576         8456776              0             N  RECODG/

Vous pouvez remarquer que la taille du groupe de disques DATADG est passée de 54 To à 72 To.