Comment migrer des disques ASM sous ACFS

Dernièrement, j’ai été confronté à une petite problématique spécifique sur un cluster RAC. Alors que nous avions configuré un groupe de disques sous ASM dédié aux sauvegardes, il se trouvait que le logiciel de sauvegarde  était dans l’incapacité de récupérer les sauvegardes effectuées sous ASM pour les transférer sur un espace externe et mutualisé à cet effet. A moins de changer le logiciel de sauvegarde la seule solution qui nous restait était de migrer le groupe de disques pour qu’il soit gérer en file system par ASM.

Contrôler la présence des modules ACFS

En premier lieu il convient de contrôler si les modules ACFS sont bien configurés sur chacun des nœuds du cluster afin que les modules soient lancés automatiquement au démarrage du serveur.

  • Se connecter sous compte ‘root’
  • Vérifier la présence des modules ACFS au démarrage du serveur
#> lsmod | grep oracle
oracleasm             81576 1

Dans le cas où les modules oracleacfs, oracleadvm, oracleoks seraient présents aller directement au paragraphe suivant sinon effectuer les opérations qui suivent

  • Modifier le fichier de configuration pour activer le démarrage automatique des modules ACFS
#> view /etc/init.d/acfsload
#!/bin/sh
# chkconfig: 2345 30 31
# description: Automatically load Oracle 11gR2 ACFS drivers during system reboot
/oracle/grid/11.2.0.4/bin/acfsload start –s
  • Activer les modules ACFS
#> cd /oracle/grid/11.2.0.4/bin/
#> chmod 775 acfsload
#> chkconfig --add acfsload
#> chkconfig --list acfsload
  • Vérifier l’existence des modules ACFS sur le serveur
#> lsmod | grep oracle
oracleacfs           877320 0
oracleadvm           221760 0
oracleoks            276880 2 oracleacfs,oracleadvm
oracleasm             81576 1

Suppression du groupe de sauvegarde à migrer

Cette opération est à effectuer uniquement dans le cas où les disques ont été déjà assignés au groupe de disques qui doit migrer sous ACFS sinon aller au paragraphe suivant

  •  Se connecter sous le compte ‘grid’
  • Désactiver le groupe de disques sur les autres nœuds du cluster
#> . oraenv
+ASM2
#> sqlplus / as sysasmSQL> ALTER DISKGROUP BCKP DISMOUNT;

◊ Répéter cette même opération sur les autres nœuds du cluster

  • Supprimer le groupe de disques de sauvegarde sur le nœud 1 : BCKP
. oraenv
+ASM1
#> sqlplus / as sysasm
SQL> DROP DISKGROUP BCKP INCLUDING CONTENTS FORCE;
  • Se connecter sous le compte ‘root’
  • Supprimer les disques ASM initialement associés au groupe de disques BCKP
[root@EASYRAC01 ~]# ls -ltr /dev/oracleasm/disks
total 0
brw-rw---- 1 oracle oinstall 253, 25 30 juin 15:27 ASM_BCKP_004
brw-rw---- 1 oracle oinstall 253, 20 30 juin 15:27 ASM_BCKP_003
brw-rw---- 1 oracle oinstall 253, 19 30 juin 15:27 ASM_BCKP_002
brw-rw---- 1 oracle oinstall 253, 22 30 juin 15:27 ASM_BCKP_001
brw-rw---- 1 oracle oinstall 253, 13 30 juin 15:35 ASM_REDO_2_002
brw-rw---- 1 oracle oinstall 253, 5 30 juin 15:35 ASM_DATA_006
brw-rw---- 1 oracle oinstall 253, 9 30 juin 15:35 ASM_DATA_002
brw-rw---- 1 oracle oinstall 253, 14 30 juin 15:35 ASM_REDO_2_003
brw-rw---- 1 oracle oinstall 253, 7 30 juin 15:35 ASM_DATA_003
brw-rw---- 1 oracle oinstall 253, 12 30 juin 15:35 ASM_REDO_2_001
brw-rw---- 1 oracle oinstall 253, 10 30 juin 15:35 ASM_REDO_1_004
brw-rw---- 1 oracle oinstall 253, 11 30 juin 15:35 ASM_REDO_1_003
brw-rw---- 1 oracle oinstall 253, 17 30 juin 15:35 ASM_REDO_1_002
brw-rw---- 1 oracle oinstall 253, 4 30 juin 15:35 ASM_DATA_005
brw-rw---- 1 oracle oinstall 253, 3 30 juin 15:35 ASM_DATA_004
brw-rw---- 1 oracle oinstall 253, 2 30 juin 15:35 ASM_DATA_001
brw-rw---- 1 oracle oinstall 253, 16 30 juin 15:35 ASM_ARCH_001
brw-rw---- 1 oracle oinstall 253, 15 30 juin 15:35 ASM_REDO_2_004
brw-rw---- 1 oracle oinstall 253, 18 30 juin 15:35 ASM_REDO_1_001
brw-rw---- 1 oracle oinstall 253, 24 30 juin 15:35 ASM_GRID_003
brw-rw---- 1 oracle oinstall 253, 27 30 juin 15:35 ASM_GRID_002
brw-rw---- 1 oracle oinstall 253, 26 30 juin 15:35 ASM_GRID_001
[root@EASYRAC01 ~]# /etc/init.d/oracleasm deletedisk ASM_BCKP_001
Removing ASM disk "ASM_BCKP_001":                          [ OK ]
[root@EASYRAC01 ~]# /etc/init.d/oracleasm deletedisk ASM_BCKP_002
Removing ASM disk "ASM_BCKP_002":                         [ OK ]
[root@EASYRAC01 ~]# /etc/init.d/oracleasm deletedisk ASM_BCKP_003
Removing ASM disk "ASM_BCKP_003":                         [ OK ]
[root@EASYRAC01 ~]# /etc/init.d/oracleasm deletedisk ASM_BCKP_004
Removing ASM disk "ASM_BCKP_004":                         [ OK ]

Création des disques pour ACFS

  • Se connecter sous le compte ‘root’
  • Créer les disques ASM à partir des Luns réservés pour l’espace de sauvegarde
[root@EASYRAC01 ~]# ls -l /dev/mapper/*RMAN*
lrwxrwxrwx 1 root root 8 15 mai   17:22 /dev/mapper/Lun15_ASMRMAN_BACKUP_01 -> ../dm-22
lrwxrwxrwx 1 root root 8 15 mai   17:22 /dev/mapper/Lun16_ASMRMAN_BACKUP_02 -> ../dm-19
lrwxrwxrwx 1 root root 8 15 mai   17:22 /dev/mapper/Lun17_ASMRMAN_BACKUP_03 -> ../dm-20
lrwxrwxrwx 1 root root 8 15 mai   17:22 /dev/mapper/Lun18_ASMRMAN_BACKUP_04 -> ../dm-25
[root@EASYRAC01 ~]# /etc/init.d/oracleasm createdisk ACFS_BCKP_001 /dev/mapper/Lun15_ASMRMAN_BACKUP_01
Marking disk "ACFS_BCKP_001" as an ASM disk:               [ OK ]
[root@EASYRAC01 ~]# /etc/init.d/oracleasm createdisk ACFS_BCKP_002 /dev/mapper/Lun16_ASMRMAN_BACKUP_02
Marking disk "ACFS_BCKP_002" as an ASM disk:               [ OK ]
[root@EASYRAC01 ~]# /etc/init.d/oracleasm createdisk ACFS_BCKP_003 /dev/mapper/Lun17_ASMRMAN_BACKUP_03
Marking disk "ACFS_BCKP_003" as an ASM disk:               [ OK ]
[root@EASYRAC01 ~]# /etc/init.d/oracleasm createdisk ACFS_BCKP_004 /dev/mapper/Lun18_ASMRMAN_BACKUP_04
Marking disk "ACFS_BCKP_004" as an ASM disk:               [ OK ]
  • Activer les disques ASM sur les autres nœuds du cluster sous le compte ‘root’
[root@EASYRAC02 ~]# /etc/init.d/oracleasm scandisks
Scanning the system for Oracle ASMLib disks:               [ OK ]
[root@EASYRAC02 ~]# /etc/init.d/oracleasm listdisks
ACFS_BCKP_001
ACFS_BCKP_002
ACFS_BCKP_003
ACFS_BCKP_004
……………….
………………..
……………..
ASM_GRID_001
ASM_GRID_002
ASM_GRID_003

Création du groupe de disques ACFS

Maintenant que les disques ASM ont été créés et assignés à tous les membres du cluster il suffit de créer le groupe de disques ACFS_BCKP

  •  Se connecter sous le compte ‘grid’
  • Créer le groupe de disques ACFS_BCKP avec ses disques ASM (renseigner le mot de passe SYS)
[oracle@EASYRAC01 ~]$ . oraenv
+ASM1
[oracle@EASYRAC01 ~]$ asmca -silent -createDiskGroup -diskString '/dev/oracleasm/disks/*' -diskGroupName ACFS_BCKP -diskList /dev/oracleasm/disks/ACFS_BCKP_001, /dev/oracleasm/disks/ACFS_BCKP_002, /dev/oracleasm/disks/ACFS_BCKP_003, /dev/oracleasm/disks/ACFS_BCKP_004     -redundancy EXTERNAL -au_size 4 -sysAsmPassword <mot_de_passe_SYS>
Le groupe de disques ACFS_BCKP a été créé.
[oracle@EASYRAC01 ~]$ 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 EXTERN N         512   4096 4194304   5120228   5120080               0         5120080             0             N ACFS_BCKP/
  • Créer le volume pour le groupe de disques ACFS_BCKP avec une taille légèrement inférieure à celle qui est disponible
[oracle@EASYRAC01 ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.4.0 Production on Mon Jun 30 16:19:35 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
SQL> alter diskgroup ACFS_BCKP add volume 'bckp_vol' size 5100000M;
Diskgroup altered.
SQL> col volume_device for a40
SQL> set lines 200
SQL> col mountpath for a40
SQL> select dg.name, v.volume_name, v.volume_device, v.mountpath, v.state from v$asm_diskgroup dg, v$asm_volume v where dg.group_number=v.group_number ;
NAME                   VOLUME_NAME     VOLUME_DEVICE         MOUNTPATH             STATE
--------------------- ---------------- --------------------- ---------------------- -------
ACFS_BCKP             BCKP_VOL         /dev/asm/bckp_vol-445                        ENABLED
  • Créer le point de montage pour le volume bckp_vol-445
[oracle@EASYRAC01 ~]$ mkdir -p /data/acfsmnt/bckp_vol-445
  • Se connecter sous le compte ‘root’
[oracle@EASYRAC01 ~]$ su -
  • Enregister le volume et le point de montage au niveau du cluster
[root@EASYRAC01 ~]# acfsutil registry -a -f /dev/asm/bckp_vol-445 /data/acfsmnt/bckp_vol-445
acfsutil registry: mount point /data/acfsmnt/bckp_vol-445 successfully added to Oracle Registry
  • Création du file system
[root@EASYRAC01 ~]# mkfs.acfs -f /dev/asm/bckp_vol-445
mkfs.acfs: version                   = 11.2.0.4.0
mkfs.acfs: on-disk version           = 39.0
mkfs.acfs: volume                   = /dev/asm/bckp_vol-445
mkfs.acfs: volume size               = 5347737600000
mkfs.acfs: Format complete.
  • Montage du file system sur tous les nœuds du cluster
[root@EASYRAC01 ~]# mount.acfs -o all
[root@EASYRAC01 ~]# df -h
Filesystem                             Size Used Avail Use% Mounted on
/dev/mapper/vg00-lv_root               3,0G 364M 2,5G 13% /
tmpfs                                 253G 312M 253G   1% /dev/shm
/dev/sda1                             485M   35M 426M   8% /boot
/dev/mapper/vg00-lv_home               2,0G   68M 1,9G   4% /home
/dev/mapper/vg00-lv_opt               1008M 143M 815M 15% /opt
/dev/mapper/vg00-lv_tmp               9,9G   72M 9,3G   1% /tmp
/dev/mapper/vg00-lv_usr               5,0G 2,2G 2,6G 46% /usr
/dev/mapper/vg00-lv_var               5,0G 280M 4,4G   6% /var
/dev/mapper/vg00-lv_varlog             30G 308M   28G   2% /var/log
/dev/mapper/vg00_oratools-lv_oratools 196G   28G 159G 15% /oracle
/dev/mapper/vg_data-lv_data           493G   80G 388G 17% /data
/dev/asm/bckp_vol-445                 4,9T   10G 4,9T   1% /data/acfsmnt/bckp_vol-445
  • Se connecter sous le compte ‘oracle’
[root@EASYRAC01 bckp_vol-445]# su – oracle
. oraenv
+ASM1
  • Vérifier les droits d’écriture sur le point de montage
[oracle@EASYRAC01 ~]$ cd /data/acfsmnt/bckp_vol-445
[oracle@EASYRAC01 bckp_vol-445]$ touch toto
[oracle@EASYRAC01 bckp_vol-445]$ ls -l
total 64
drwx------ 2 root   root     65536 30 juin 16:56 lost+found
-rw-r--r-- 1 oracle oinstall     0 30 juin 16:59 toto
[oracle@EASYRAC01 bckp_vol-445]$ rm toto

◊ Répéter cette même opération sur les autres noeuds  du cluster

  • Se connecter sous le compte ‘grid’
  • Vérifier le groupe de disques ACFS_BCKP et le point de montage
#> su - grid
#> . oraenv
+ASM1
[grid@EASYRAC01 bckp_vol-445]$ asmcmd
ASMCMD> volstat
DISKGROUP NUMBER / NAME: 2 / ACFS_BCKP
---------------------------------------
VOLUME_NAME
     READS           BYTES_READ     READ_TIME       READ_ERRS
     WRITES         BYTES_WRITTEN   WRITE_TIME     WRITE_ERRS
-------------------------------------------------------------
BCKP_VOL
     830             653312         .917           0
     2590200         2019209216     1317.386       0
ASMCMD>
[grid@EASYRAC01 ~]$ sqlplus / as sysasm
 SQL*Plus: Release 11.2.0.4.0 Production on Mon Jun 30 16:19:35 2014
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
SQL> alter diskgroup ACFS_BCKP add volume 'bckp_vol' size 5100000M;
Diskgroup altered.
SQL> col volume_device for a40
SQL> set lines 200
SQL> col mountpath for a40
SQL> select dg.name, v.volume_name, v.volume_device, v.mountpath, v.state from v$asm_diskgroup dg, v$asm_volume v where dg.group_number=v.group_number ;
NAME             VOLUME_NAME   VOLUME_DEVICE         MOUNTPATH                 STATE
----------------- ------------- --------------------- -------------------------- -------
ACFS_BCKP         BCKP_VOL     /dev/asm/bckp_vol-445 /data/acfsmnt/bckp_vol-445 ENABLED
  • Rebooter tous les nœuds du cluster sous le compte ‘root’

Voilà maintenant votre espace de sauvegarde est géré par ACFS !!!!!!!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *