在安装grid的时候,常常会遇到不能访问磁盘,原来习惯使用dd命令来测试对磁盘的读写权限,其实ASM提供kfod命令来测试对grid是否对磁盘有访问权限
下面是测试使用kfod命令来测试对磁盘是否有访问权限。
1,版本介绍
[grid@www.htz.pw ~]$lsb_release -a
LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description: Red Hat Enterprise Linux Server release 6.5 (Santiago)
Release: 6.5
Codename: Santiago
2,查看磁盘名字
这里使用的multipath来固定磁盘命令,习惯了使用multipath,觉得使用asmlib,udev来固定磁盘命令都是在多路径软件上面增加一步,本来磁盘聚合的时候就可以固定磁盘名字,就没有必要再使用其它软件来实现了。不过从RHEL 6开始,multipath不能更改权限,需要使用到udev。
[root@www.htz.pw ~]#multipath -ll
asm2 (36000c29ca5ab0cd5649a66fa333180a0) dm-3 VMware,,VMware Virtual S
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
`- 2:0:2:0 sdc 8:32 active ready running
asm1 (36000c296a51a699a8d04a746a3b31e23) dm-2 VMware,,VMware Virtual S
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
`- 2:0:1:0 sdb 8:16 active ready running
3,kfod命令
[grid@www.htz.pw ~]$kfod -help
_asm_a/llow_only_raw_disks KFOD allow only raw devices [_asm_allow_only_raw_disks=TRUE/(FALSE)]
_asm_l/ibraries ASM Libraries[_asm_libraries=lib1,lib2,...]
_asms/id ASM Instance[_asmsid=sid]
a/sm_diskstring ASM Diskstring [asm_diskstring=discoverystring, discoverystring ...]
c/luster KFOD cluster [cluster=TRUE/(FALSE)]
db/_unique_name db_unique_name for ASM instance[db_unique_name=dbname]
di/sks Disks to discover [disks=raw,asm,all]
ds/cvgroup Include group name [dscvgroup=TRUE/(FALSE)]
g/roup Disks in diskgroup [group=diskgroup]
h/ostlist hostlist[hostlist=host1,host2,...]
metadata_a/usize AU Size for Metadata Size Calculation
metadata_c/lients Client Count for Metadata Size Calculation
metadata_d/isks Disk Count for Metadata Size Calculation
metadata_n/odes Node Count for Metadata Size Calculation
metadata_r/edundancy Redundancy for Metadata Size Calculation
n/ohdr KFOD header suppression [nohdr=TRUE/(FALSE)]
o/p KFOD options type [OP=DISKS/CANDIDATES/MISSING/GROUPS/INSTS/VERSION/CLIENTS/RM/RMVERS/DFLTDSTR/GPNPDSTR/METADATA/ALL]
p/file ASM parameter file [pfile=parameterfile]
s/tatus Include disk header status [status=TRUE/(FALSE)]
v/erbose KFOD verbose errors [verbose=TRUE/(FALSE)]
[grid@www.htz.pw ~]$kfod asm_diskstring='/dev/mapper/*' disks=all
--------------------------------------------------------------------------------
Disk Size Path User Group
================================================================================
1: 20480 Mb /dev/mapper/asm1 grid oinstall
2: 20480 Mb /dev/mapper/asm2 grid oinstall
KFOD-00301: Unable to contact Cluster Synchronization Services (CSS). Return code 2 from kgxgncin.
KFOD-00311: Error scanning device /dev/mapper/control
ORA-15025: could not open disk "/dev/mapper/control"
Linux-x86_64 Error: 13: Permission denied
Additional information: 42
KFOD-00311: Error scanning device /dev/mapper/vg_asm11g-lv_root
ORA-15025: could not open disk "/dev/mapper/vg_asm11g-lv_root"
Linux-x86_64 Error: 13: Permission denied
Additional information: 42
KFOD-00311: Error scanning device /dev/mapper/vg_asm11g-lv_swap
ORA-15025: could not open disk "/dev/mapper/vg_asm11g-lv_swap"
Linux-x86_64 Error: 13: Permission denied
Additional information: 42
这里我们能发现有2块磁盘GRID用户可以正常访问,并且也显示了用户与组
下面来看看磁盘的权限
[grid@www.htz.pw ~]$ls -l /dev/mapper/*
lrwxrwxrwx 1 root root 7 Aug 30 04:15 /dev/mapper/asm1 -> ../dm-2
lrwxrwxrwx 1 root root 7 Aug 30 04:15 /dev/mapper/asm2 -> ../dm-3
crw-rw---- 1 root root 10, 58 Aug 30 03:50 /dev/mapper/control
lrwxrwxrwx 1 root root 7 Aug 30 03:50 /dev/mapper/vg_asm11g-lv_root -> ../dm-0
lrwxrwxrwx 1 root root 7 Aug 30 03:50 /dev/mapper/vg_asm11g-lv_swap -> ../dm-1
[grid@www.htz.pw ~]$ls -l /dev/dm*
brw-rw---- 1 root disk 253, 0 Aug 30 03:50 /dev/dm-0
brw-rw---- 1 root disk 253, 1 Aug 30 03:50 /dev/dm-1
brw-rw---- 1 grid oinstall 253, 2 Aug 30 04:15 /dev/dm-2
brw-rw---- 1 grid oinstall 253, 3 Aug 30 04:15 /dev/dm-3
再来看看grid用户的属主
[grid@www.htz.pw ~]$id grid
uid=501(grid) gid=501(oinstall) groups=501(oinstall),502(dba)
这里只创建了dba与oinstall组,并没有创建其它的asmadmin,asmoper等组,越多组,越容易出错,最经典的就是grid/oracle用户下面oracle命令的属主导致的问题。


kfod测试grid用户对磁盘的访问权限:等您坐沙发呢!