Attach multiple Oracle ASM snapshots to the same host

The goal – connecting multiple Oracle ASM snapshots (same source LUNs, of course) to the same machine. The next process will demonstrate how to do it.

Problem: ASM disks use a disk label called ASMLib to maintain access even when the logical disk path might change (like adding a LUN with a lower ID and rebooting the server). This solves a major problem which was experienced with RAW devices, when order changed, and the ‘wrong’ disks took the place of others. ASM labels are a vital part in managing ASM disks and ASM DiskGroups. Also – the ASM DiskGroup name should be unique. You cannot have multiple DiskGroups with the same name.

Limitations – you cannot connect the snapshot LUNs to the same server which has access to the source LUNs.

Process:

  1. Take a snapshot of the source LUN. If the ASM DiskGroup spans across several LUNs, you must create a consistency group (each storage device has its own lingo for the task).
  2. Map the snapshots to the target server (EMC – prepare EMC Snapshot Mount Points (SMP) in advance. Other storage devices – depending)
  3. Perform partprobe on all target servers.
  4. Run ‘service oracleasm scandisks‘ to scan for the new ASM disk labels. We will need to change them now, so that the additional snapshot will not use duplicate ASM labels.
  5. For each of the new ASM disks, run ‘service oracleasm force-renamedisk SRC_NAME TGT_NAME‘. You will want to rename the source name (SRC_NAME) to a unique target name, with some correlation to the snapshot name/purpose. This is the reasonable way of making some sense of a possibly very messy setup.
  6. As the Oracle user, with the correct PATH variables ($ORACLE_HOME should point to the CRS_HOME) and the right ORACLE_SID (for example – +ASM1), run: ‘renamedg phase=both dgname=SRC_DG_NAME newdgname=NEW_DG_NAME verbose=true‘. The value ‘SRC_DG_NAME’ represents the original (on the source) DiskGroup name, and the NEW_DG_NAME represents the new name. Much like when renaming the disks – the name should have some relationship with either the snapshot name, so you can find your hands and legs in this mess (again – imagine having six snapshots, each of a DiskGroup with four LUNs. Now – this is a mess).
  7. You can now mount the DiskGroup (named NEW_DG_NAME in my example) on both nodes

Assumptions:

  1. Oracle GI is up and running all through this process
  2. I tested it with Oracle 11.2.0.3. Other versions of 11.2.0.x might work, I have no clue about previous 11.1.x versions, or any earlier versions.
  3. It was tested on Linux. My primary work platform. It was, to be exact, on RHEL 6.4, but it should work just the same on any RHEL-like platform. I believe it will work on other Linux platforms. I have no clue about running it on any other Unix/Windows platform.
  4. The DiskGroup should not be mounted (no reason for it to be mounted right on discovery). Do not manually mount it prior to performing this procedure.

Good luck, and post a comment if you find this explanation either unclear, or if you encounter any problem.

 

 

 

Tags: , , , , ,

2 Responses to “Attach multiple Oracle ASM snapshots to the same host”

  1. DaveZero Says:

    Nice writeup, and very timely. We understand the limitation of not masking a snapshot back to the same host, but what about the situation where you want to make 10x multiple copies of the same DB/ASM DGs, on the same box for test instances. I realize this may be sort of a hassle, but could you make the snapshots of the source LUNS, mask them into a separate physical machine, alter the snapshot (DG’s names) and then unmask, remasking the snap back to the same host? Or would ASM still know the snapshot to be a replica of the source DG? Does the rename function change the disk header enough so ASM will not puke when it mounts the modified snapshot, or, am I making this too complicated and your process above will work no matter how many snaps you want to make and bring up as new copies? thanks

  2. ez-aton Says:

    You could do it. As long as there is some server capable of modifying the DG names, without ‘seeing’ the original DG disks, you can do it. Derived from it is your flow. Snapshot, map to another host, modify disk names and DG name, and return back to the original host, who will see it with the new disk names and the new DG name. Sure.
    It changes the disk header enough, yes. You can test it using kfed, however, this is some advance stuff, so read about it before you do it (it’s rather simple, just, easily destructive if you write instead of read, for example).

    Ez

Leave a Reply