Sunday, October 10, 2010

runInstaller doesnot display ASM disks during 11gR2 grid (cluster) installation

During 11gR2 Grid installation the candidate disks for vote and ocr were not displayed in the list screen. The issue may be many but one of the reason for this behaviour is the permission .



The runinstaller uses /usr/sbin/oracleasm-discover to to display the files and not oracleasm and its behaviour mainly depends on the filepermissoins under /dev/oracleasm

EG: ( First we will use root user and then the actual user trying to install the software )


[oragrd@appsonline-rac dev]$ cd oracleasm
[oragrd@appsonline-rac oracleasm]$ cd disks
[oragrd@appsonline-rac disks]$ ls
SOAPRD_DATA01 SOAPRD_DATA02 SOAPRD_DATA03 SOAPRD_DATA04 SOAPRD_FRA01 SOAPRD_FRA02 SOAPRD_FRA03 SOAPRD_FRA04 SOAPRD_VOTE01 SOAPRD_VOTE02 SOAPRD_VOTE03

mailto:root@appsonline-rac
/usr/sbin/oracleasm
[root@appsonline-rac disks]# ls -l /usr/sbin/oracleasm*
-rwxr-xr-x 1 root root 16600 Mar 18 2009 /usr/sbin/oracleasm
-rwxr-xr-x 1 root root 10664 Mar 18 2009 /usr/sbin/oracleasm-discover
[root@appsonline-rac disks]# which oracleasm-discover
/usr/sbin/oracleasm-discover

Run the Discover Command
 [root@appsonline-rac disks]# oracleasm-discover
Using ASMLib from /opt/oracle/extapi/64/asm/orcl/1/libasm.so
ASM Library - Generic Linux, version 2.0.4 (KABI_V2)]
Discovered disk: ORCL:SOAPRD_DATA01 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_DATA02 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_DATA03 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_DATA04 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_FRA01 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_FRA02 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_FRA03 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_FRA04 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_VOTE01 [2096753 blocks (1073537536 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_VOTE02 [2096753 blocks (1073537536 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_VOTE03 [2096512 blocks (1073414144 bytes), maxio 512]

Now Try executing the same commands as user than will own the Cluster , in my example its oragrd


[root@appsonline-rac disks]# su - oragrd
[oragrd@appsonline-rac ~]$ /usr/sbin/oracleasm-discover
Using ASMLib from /opt/oracle/extapi/64/asm/orcl/1/libasm.so
asm_version() failed with code 2

If this fails then try tracing the session to find what exactly is the error. The above error is misleading and has nothing to do with library.

[oragrd@appsonline-rac ~]$ strace /usr/sbin/oracleasm-discover >/tmp/11.log
execve("/usr/sbin/oracleasm-discover", ["/usr/sbin/oracleasm-discover"], [/* 19 vars */]) = 0
brk(0) = 0x1692f000
mmap(NULL, 4096, PROT_READ
PROT_WRITE, MAP_PRIVATE
MAP_ANONYMOUS, -1, 0) = 0x2b0dd6b39000
uname({sys="Linux", node="appsonline-rac.oracle.com", ...}) = 0
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3

fstat(3, {st_mode=S_IFREG
0644, st_size=104289, ...}) = 0
mmap(NULL, 104289, PROT_READ, MAP_PRIVATE, 3, 0) = 0x2b0dd6b3a000
close(3) = 0
open("/lib64/libdl.so.2", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\16 \0331\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG
0755, st_size=23360, ...}) = 0
mmap(NULL, 4096, PROT_READ
PROT_WRITE, MAP_PRIVATE
MAP_ANONYMOUS, -1, 0) = 0x2b0dd6b54000
map(0x311b200000, 2109696, PROT_READ
PROT_EXEC, MAP_PRIVATE
MAP_DENYWRITE, 3, 0) = 0x311b200000
mprotect(0x311b202000, 2097152, PROT_NONE) = 0
mmap(0x311b402000, 8192, PROT_READ
PROT_WRITE, MAP_PRIVATE
MAP_FIXED
MAP_DENYWRITE, 3, 0x2000) = 0x311b402000
close(3) = 0
open("/lib64/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0p\332\241\0321\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG
0755, st_size=1713088, ...}) = 0
mmap(0x311aa00000, 3494168, PROT_READ
PROT_EXEC, MAP_PRIVATE
MAP_DENYWRITE, 3, 0) = 0x311aa00000
mprotect(0x311ab4c000, 2097152, PROT_NONE) = 0
mmap(0x311ad4c000, 20480, PROT_READ
PROT_WRITE, MAP_PRIVATE
MAP_FIXED
MAP_DENYWRITE, 3, 0x14c000) = 0x311ad4c000
mmap(0x311ad51000, 16664, PROT_READ
PROT_WRITE, MAP_PRIVATE
MAP_FIXED
MAP_ANONYMOUS, -1, 0) = 0x311ad51000
close(3) = 0
mmap(NULL, 4096, PROT_READ
PROT_WRITE, MAP_PRIVATE
MAP_ANONYMOUS, -1, 0) = 0x2b0dd6b55000
arch_prctl(ARCH_SET_FS, 0x2b0dd6b55800) = 0
mprotect(0x311b402000, 4096, PROT_READ) = 0
mprotect(0x311ad4c000, 16384, PROT_READ) = 0
mprotect(0x311a81b000, 4096, PROT_READ) = 0
munmap(0x2b0dd6b3a000, 104289) = 0
brk(0) = 0x1692f000
brk(0x16950000) = 0x16950000
open("/opt/oracle/extapi/64/asm/orcl/1/libasm.so", O_RDONLY) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\21\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG
755, st_size=18176, ...}) = 0
mmap(NULL, 2113440, PROT_READ
PROT_EXEC, MAP_PRIVATE
MAP_DENYWRITE, 3, 0) = 0x2b0dd6b56000
mprotect(0x2b0dd6b5a000, 2093056, PROT_NONE) = 0
mmap(0x2b0dd6d59000, 4096, PROT_READ
PROT_WRITE, MAP_PRIVATE
MAP_FIXED
MAP_DENYWRITE, 3, 0x3000) = 0x2b0dd6d59000


close(3) = 0
fstat(1, {st_mode=S_IFREG
644, st_size=0, ...}) = 0
mmap(NULL, 4096, PROT_READ
PROT_WRITE, MAP_PRIVATE
MAP_ANONYMOUS, -1, 0) = 0x2b0dd6d5a000
open("/dev/oracleasm/.query_version", O_RDWR) = -1 EACCES (Permission denied)
open("/dev/oracleasm/iid", O_RDONLY) = -1 EACCES (Permission denied)
write(2, "asm_version() failed with code 2"..., 33asm_version() failed with code 2
) = 33


write(1, "Using ASMLib from /opt/oracle/ex"..., 61) = 61
exit_group(2)
= ?


The above error shows its unable to read some file under /dev/oracleasm . So change the permissions as below.

[root@appsonline-rac oracleasm]# ls -lart



total 0
-rwxrwx--- 1 root root 0 Jul 12 13:17 .query_version
-rwxrwx--- 1 root root 0 Jul 12 13:17 .query_disk
drwxrwx--- 1 root root 0 Jul 12 13:17 iid
-rwxrwx--- 1 root root 0 Jul 12 13:17 .get_iid
drwxr-xr-x 1 root root 0 Jul 12 13:17 disks
-rwxrwx--- 1 root root 0 Jul 12 13:17 .check_iid
rwxr-xr-x 4 root root 0 Jul 12 13:17 .
rwxr-xr-x 15 root root 6860 Jul 13 14:51 ..


[root@appsonline-rac oracleasm]# chown oragrd:asmdba /dev/oracleasm/.query_version


[root@appsonline-rac oracleasm]# chown -R oragrd:asmdba iid
[root@appsonline-rac oracleasm]# chown -R oragrd:asmdba .q*
drwxr-xr-x 15 root root 6860 Jul 13 14:51 ..
[root@appsonline-rac oracleasm]# chown -R oragrd:asmdba .check_iid .get_iid
[root@appsonline-rac oracleasm]# ls -lart
total 0
-rwxrwx--- 1 oragrd asmdba 0 Jul 12 13:17 .query_version
-rwxrwx--- 1 oragrd asmdba 0 Jul 12 13:17 .query_disk
drwxrwx--- 1 oragrd asmdba 0 Jul 12 13:17 iid
-rwxrwx--- 1 oragrd asmdba 0 Jul 12 13:17 .get_iid
drwxr-xr-x 1 root root 0 Jul 12 13:17 disks
-rwxrwx--- 1 oragrd asmdba 0 Jul 12 13:17 .check_iid
drwxr-xr-x 4 root root 0 Jul 12 13:17 .
drwxr-xr-x 15 root root 6860 Jul 13 14:51 ..

Rerun the command

[root@appsonline-rac oracleasm]# su - oragrd
[oragrd@appsonline-rac ~]$ /usr/sbin/oracleasm-discover
Using ASMLib from /opt/oracle/extapi/64/asm/orcl/1/libasm.so
[ASM Library - Generic Linux, version 2.0.4 (KABI_V2)]
iscovered disk: ORCL:SOAPRD_DATA01 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_DATA02 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_DATA03 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_DATA04 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_FRA01 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_FRA02 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_FRA03 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_FRA04 [93803472 blocks (48027377664 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_VOTE01 [2096753 blocks (1073537536 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_VOTE02 [2096753 blocks (1073537536 bytes), maxio 512]
Discovered disk: ORCL:SOAPRD_VOTE03 [2096512 blocks (1073414144 bytes), maxio 512]

Once you are done either restart the runinstaller or Browse and manually enter the discovery path.


Thanks , Sandarsh Chavalmane


No comments: