Liste des paramètres cachés d’ASM en 11.2.0.4

ASM pas de Commentaire »

Comment obtenir la liste des paramètres cachés d’ASM.

col value for a8
SQL> col name for a39
col describe for a70
SQL> set lines 260 pages 100
SQL> select a.ksppinm name, b.ksppstvl value, a.ksppdesc describe
2 from x$ksppi a, x$ksppcv b
3 where a.inst_id = userenv(‘Instance’)
and b.inst_id = userenv(‘Instance’)
5 and a.indx = b.indx
6 and a.ksppinm like ‘\_asm%’ escape ‘\’
7 order by name;

NAME VALUE DESCRIBE
————————————— ——– ———————————————————————-
_asm_acd_chunks 1 initial ACD chunks created
_asm_admin_with_sysdba FALSE Does the sysdba role have administrative privileges on ASM?
_asm_allow_appliance_dropdisk_noforce FALSE Allow DROP DISK/FAILUREGROUP NOFORCE on ASM Appliances
_asm_allow_lvm_resilvering TRUE Enable disk resilvering for external redundancy
_asm_allow_only_raw_disks TRUE Discovery only raw devices
_asm_allow_system_alias_rename FALSE if system alias renaming is allowed
_asm_appliance_config_file Appliance configuration file name
_asm_ausize 1048576 allocation unit size
_asm_automatic_rezone TRUE automatically rebalance free space across zones
_asm_avoid_pst_scans TRUE Avoid PST Scans
_asm_blksize 4096 metadata block size
_asm_check_for_misbehaving_cf_clients FALSE check for misbehaving CF-holding clients
_asm_compatibility 10.1 default ASM compatibility level
_asm_dba_batch 500000 ASM Disk Based Allocation Max Batch Size
_asm_dba_spcchk_thld 20000 ASM Disk Based Allocation Space Check Threshold
_asm_dba_threshold 0 ASM Disk Based Allocation Threshold
_asm_dbmsdg_nohdrchk FALSE dbms_diskgroup.checkfile does not check block headers
_asm_diag_dead_clients FALSE diagnostics for dead clients
_asm_direct_con_expire_time 120 Expire time for idle direct connection to ASM instance
_asm_disable_amdu_dump FALSE Disable AMDU dump
_asm_disable_async_msgs FALSE disable async intra-instance messaging
_asm_disable_multiple_instance_check FALSE Disable checking for multiple ASM instances on a given node
_asm_disable_profilediscovery FALSE disable profile query for discovery
_asm_disable_smr_creation FALSE Do Not create smr
_asm_disable_ufg_dump FALSE disable terminated umbilicus diagnostic
_asm_disk_repair_time 14400 seconds to wait before dropping a failing disk
_asm_emulate_nfs_disk FALSE Emulate NFS disk test event
_asm_emulmax 10000 max number of concurrent disks to emulate I/O errors
_asm_emultimeout 0 timeout before emulation begins (in 3s ticks)
_asm_evenread 2 ASM Even Read level
_asm_evenread_alpha 0 ASM Even Read Alpha
_asm_evenread_alpha2 0 ASM Even Read Second Alpha
_asm_evenread_faststart 0 ASM Even Read Fast Start Threshold
_asm_fail_random_rx FALSE Randomly fail some RX enqueue gets
_asm_fd_cln_idle_sess_twait 10000000 Idle session time wait to run ASM FD cleanup
_asm_fd_cln_on_fg TRUE ASM stale FD cleanup on foregrounds
_asm_fob_tac_frequency 9 Timeout frequency for FOB cleanup
_asm_force_quiesce FALSE Force diskgroup quiescing
_asm_global_dump_level 267 System state dump level for ASM asserts
_asm_hbeatiowait 15 number of secs to wait for PST Async Hbeat IO return
_asm_hbeatwaitquantum 2 quantum used to compute time-to-wait for a PST Hbeat check
_asm_imbalance_tolerance 3 hundredths of a percentage of inter-disk imbalance to tolerate
_asm_instlock_quota 0 ASM Instance Lock Quota
_asm_iostat_latch_count 31 ASM I/O statistics latch count
_asm_kfdpevent 0 KFDP event
_asm_kfioevent 0 KFIO event
_asm_kill_unresponsive_clients TRUE kill unresponsive ASM clients
_asm_libraries ufs library search order for discovery
_asmlib_test 0 Osmlib test event
_asm_log_scale_rebalance FALSE Rebalance power uses logarithmic scale
_asm_lsod_bucket_size 67 ASM lsod bucket size
_asm_max_cod_strides 5 maximum number of COD strides
_asm_maxio 1048576 Maximum size of individual I/O request
_asm_max_redo_buffer_size 2097152 asm maximum redo buffer size
_asm_partner_target_disk_part 8 target maximum number of disk partners for repartnering
_asm_partner_target_fg_rel 4 target maximum number of failure group relationships for repartnering
_asm_primary_load 1 Number of cycles/extents to load for non-mirrored files
_asm_primary_load_cycles TRUE True if primary load is in cycles, false if extent counts
_asm_random_zone FALSE Random zones for new files
_asm_rebalance_plan_size 120 maximum rebalance work unit
_asm_rebalance_space_errors 4 number of out of space errors allowed before aborting rebalance
_asm_repairquantum 60 quantum (in 3s) used to compute elapsed time for disk drop
_asm_reserve_slaves TRUE reserve ASM slaves for CF txns
_asm_root_directory ASM ASM default root directory
_asm_runtime_capability_volume_support FALSE runtime capability for volume support returns supported
_asm_secondary_load 10000 Number of cycles/extents to load for mirrored files
_asm_secondary_load_cycles FALSE True if secondary load is in cycles, false if extent counts
_asm_serialize_volume_rebalance FALSE Serialize volume rebalance
_asm_shadow_cycle 3 Inverse shadow cycle requirement
_asmsid asm ASM instance id
_asm_skip_rename_check FALSE skip the checking of the clients for s/w compatibility for rename
_asm_skip_resize_check FALSE skip the checking of the clients for s/w compatibility for resize
_asm_storagemaysplit FALSE PST Split Possible
_asm_stripesize 131072 ASM file stripe size
_asm_stripewidth 8 ASM file stripe width
_asm_sync_rebalance FALSE Rebalance uses sync I/O
_asm_usd_batch 64 ASM USD Update Max Batch Size
_asm_wait_time 18 Max/imum time to wait before asmb exits

78 ligne(s) selectionnee(s).

SQL>

Comme vous pouvez le constater, il y en a un certain nombre.

Comment augmenter le délai heatbeep ASM pendent lequel un disque n’est pas considéré comme offline lors d’une bascule multipath pas assez rapide!!!

ASM, Cluster RAC pas de Commentaire »

Augmenter le délai heartbeep pendent lequel un disque n’est pas considéré comme offline lors d’une bascule multipath pas assez rapide. Ou comment utiliser un paramètre caché d’ASM 11GR2!!!

Le contexte :
Rac étendu en version 11.2.0.4 avec deux diskgroups en miroir et un accès aux LUN’s en ISCSI vers des baies DELL EQUALOGIC.

Le multipath est configuré avec le driver multipath propriétaire de DELL puisque les bascules en driver linux natifs sont extrêmement lentes.
La configuration ASM a donc été faite sur des chemins du type /dev/eql/XXXXXX.

Quand on teste la perte d’une des deux cartes dédiées au ISCSI, la couche multipath doit gérer les io’s à travers le deuxième chemin.
Aléatoirement lorsque que l’on coupe le port du switch ou la carte ISCSI, nous allons perdre des disques d’un des deux diskgroups ou pas.

########################################################################
# ETAT DES DISQUES #
########################################################################

GROUP_NUMBER NAME STATE FAILGROUP PATH
———— ——————– ———- ——————– ———————————————
0 NORMAL /dev/oracleasm/disks/DSK_CLITX_FRA02
0 NORMAL /dev/oracleasm/disks/DSK_CLITX_DATA01
0 NORMAL /dev/oracleasm/disks/DSK_CLITX_OCR02
1 CLITX_DATA01 NORMAL FG_CLITX_DATA
1 CLITX_DATA05 NORMAL FG_CLITX_DATA /dev/oracleasm/disks/DSK_CLITX_DATA05
1 CLITX_DATA03 NORMAL FG_CLITX_DATA /dev/oracleasm/disks/DSK_CLITX_DATA03
1 CLITX_DATA02 NORMAL FG_CLITX_DATA /dev/oracleasm/disks/DSK_CLITX_DATA02
1 CLITX_DATA04 NORMAL FG_CLITX_DATA /dev/oracleasm/disks/DSK_CLITX_DATA04
1 TCY_DATA02 NORMAL FG_TCY_DATA /dev/oracleasm/disks/DSK_TCY_DATA02
1 TCY_DATA01 NORMAL FG_TCY_DATA /dev/oracleasm/disks/DSK_TCY_DATA01
1 TCY_DATA03 NORMAL FG_TCY_DATA /dev/oracleasm/disks/DSK_TCY_DATA03
1 TCY_DATA04 NORMAL FG_TCY_DATA /dev/oracleasm/disks/DSK_TCY_DATA04
1 TCY_DATA05 NORMAL FG_TCY_DATA /dev/oracleasm/disks/DSK_TCY_DATA05
2 CLITX_FRA03 NORMAL FG_CLITX_FRA /dev/oracleasm/disks/DSK_CLITX_FRA03
2 CLITX_FRA01 NORMAL FG_CLITX_FRA /dev/oracleasm/disks/DSK_CLITX_FRA01
2 CLITX_FRA02 NORMAL FG_CLITX_FRA
2 TCY_FRA03 NORMAL FG_TCY_FRA /dev/oracleasm/disks/DSK_TCY_FRA03
2 TCY_FRA01 NORMAL FG_TCY_FRA /dev/oracleasm/disks/DSK_TCY_FRA01
2 TCY_FRA02 NORMAL FG_TCY_FRA /dev/oracleasm/disks/DSK_TCY_FRA02
3 TCY_OCR02 NORMAL TCY_OCR02 /dev/oracleasm/disks/DSK_TCY_OCR02
4 OCRVOTING_0001 NORMAL OCRVOTING_0001 /dev/oracleasm/disks/DSK_CLITX_OCR01
4 OCRVOTING_0002 NORMAL OCRVOTING_0002 /dev/oracleasm/disks/DSK_TCY_OCR01
4 OCRVOTING_0003 NORMAL OCRVOTING_0003 /app/voting/vote3

########################################################################
# ETAT DES DISKGROUPS : PRESENCE DE DISQUES OFFLINE #
########################################################################

GROUP_NUMBER NAME STATE OFFLINE_DISKS
———— ——————– ———- ————-
1 DGDATA MOUNTED 1
2 DGFRA MOUNTED 1
3 OCRMIRROR MOUNTED 0
4 OCRVOTING MOUNTED 0

On voit que l’on a bien des disques offline dans chaque diskgroup DGFRA et DGDATA.

Alert_+ASM1.log
Dans les traces, on voit des erreurs d’écritures
WARNING: group 1 dismounted: failed to write virtual extent 0 of file 256
Errors in file /app/oracle/diag/rdbms/orcl/ORCL1/trace/ORCL1_ckpt_42424.trc:
ORA-00206: erreur lors de l’écriture (bloc 3, nbre blocs 1) du fichier de contrôle
ORA-00202: fichier de contrôle : ‘+DGDATA/orcl/controlfile/current.256.842798891′
ORA-15081: échec de la soumission d’une opération d’entrée-sortie sur un disque
ORA-15081: échec de la soumission d’une opération d’entrée-sortie sur un disque
Errors in file /app/oracle/diag/rdbms/orcl/ORCL1/trace/ORCL1_ckpt_42424.trc:
ORA-00221: erreur lors de l’écriture dans le fichier de contrôle
ORA-00206: erreur lors de l’écriture (bloc 3, nbre blocs 1) du fichier de contrôle
ORA-00202: fichier de contrôle : ‘+DGDATA/orcl/controlfile/current.256.842798891′
ORA-15081: échec de la soumission d’une opération d’entrée-sortie sur un disque
ORA-15081: échec de la soumission d’une opération d’entrée-sortie sur un disque
CKPT (ospid: 42424): terminating the instance due to error 221
Fri Mar 21 15:23:43 2014
System state dump requested by (instance=1, osid=42424 (CKPT)), summary=[abnormal instance termination].
System State dumped to trace file /app/oracle/diag/rdbms/orcl/ORCL1/trace/ORCL1_diag_42382_20140321152343.trc
Fri Mar 21 15:23:43 2014

Sur 10 coupures à 5 minutes d’intervalle, avec remise en état de la configuration entre temps bien sur, on aura dix résultats différents dont des fois ou l’on ne perd aucun disque, le résultat attendu…

On va positionner un des nombreux paramètres cachés d’ASM en 11GR2 qui va nous permettre d’augmenter le temps toléré de heartbeep avant que le disque soit considéré comme manquant et de ce fait mis offline.
Sa valeur par défaut est de 15 secondes.

SQL> alter system set « _asm_hbeatiowait »=200 scope=spfile;

System altered.

SQL>

On peut donc refaire les tests et O surprise, nous ne perdons plus un seul membre de diskgroup au bout de 10 changement / coupures de multipath.

Le rac étendu est opérationnel.