CentOS7的udev的绑定规则
客户一套RAC环境是华为的存储,共享盘是/dev/sd*,咋一看还怀疑是没有进行多路径配置,实际和主机工程师是已经配置好的,我们使用upadmin show vlun命令可以查看到:
[root@xxdb01 ~]# upadmin show vlun
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Vlun ID Disk Name Lun WWN Status Capacity Ctrl(Own/Work) Array Name Dev Lun ID No. of Paths(Available/Total)
0 sdb LUN_Oracle_400G_0000 6acb3b510041191b0de7bcdd0000000f Normal 400.00GB 0D/0D Huawei.18500V5 15 8/8
1 sdc LUN_Oracle_400G_0001 6acb3b510041191b0de7be3900000010 Normal 400.00GB 0A/0A Huawei.18500V5 16 8/8
2 sdd LUN_Oracle_400G_0002 6acb3b510041191b0de7bec100000011 Normal 400.00GB 0B/0B Huawei.18500V5 17 8/8
3 sde LUN_Oracle_400G_0003 6acb3b510041191b0de7bfc900000012 Normal 400.00GB 0C/0C Huawei.18500V5 18 8/8
4 sdf LUN_Oracle_400G_0004 6acb3b510041191b0de7c03f00000013 Normal 400.00GB 0D/0D Huawei.18500V5 19 8/8
5 sdg LUN_Oracle_400G_0005 6acb3b510041191b0de7c09e00000014 Normal 400.00GB 0A/0A Huawei.18500V5 20 8/8
6 sdh LUN_Oracle_400G_0006 6acb3b510041191b0de7c0e900000015 Normal 400.00GB 0B/0B Huawei.18500V5 21 8/8
7 sdi LUN_Oracle_400G_0007 6acb3b510041191b0de7c12e00000016 Normal 400.00GB 0C/0C Huawei.18500V5 22 8/8
8 sdj LUN_Oracle_5G_0003 6acb3b510041191b0de893a0000000da Normal 5.00GB 0C/0C Huawei.18500V5 218 8/8
9 sdk LUN_Oracle_5G_0004 6acb3b510041191b0de8941e000000db Normal 5.00GB 0D/0D Huawei.18500V5 219 8/8
10 sdl LUN_Oracle_5G_0005 6acb3b510041191b0de894a4000000dc Normal 5.00GB 0A/0A Huawei.18500V5 220 8/8
11 sdm LUN_Oracle_100G_0002 6acb3b510041191b0de80f1f00000039 Normal 100.00GB 0B/0B Huawei.18500V5 57 8/8
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[root@xxdb01 ~]#
实际上直接使用这些盘也是可以的,但是考虑到规范,参考之前客户udev绑定规则规范:
--not available
KERNEL=="sd*",BUS=="scsi",PROGRAM=="/sbin/scsi_id i --whitelisted --device=/dev/$name",RESULT=="36000c29b263ed2452f80e9848bdf2fa5",NAME="asm-2g-2fa5-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
可以看到别名的命名方式是:asm-lunsize-id后四位-磁盘组名+编号。这样以后遇到加盘/删盘这类操作,就能快速帮助DBA确认。
不过因为上面这个udev语法是RHEL 6的,在CentOS 7并不适用,换成7对应的语法就是:
--ok!
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7bcdd0000000f",SYMLINK+="asm-400g-000f-data1",OWNER="grid",GROUP="asmadmin",MODE="0660"
考虑到盘相对多,一个个写既费时又容易出错,想起早些年间装RAC时,经常会参考maclean的一个方法,就是把这个工作写一个脚本:
vi /u01/asmdisk.sh
for i in b c d e f g h i j k l m;
do
echo "KERNEL==\"sd*\",SUBSYSTEM==\"block\",PROGRAM==\"/lib/udev/scsi_id -g -u -d /dev/\$name\",RESULT==\"`/lib/udev/scsi_id -g -u -d /dev/sd$i`\",SYMLINK+=\"asm-5g-xxxx-grid1\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\""
done
执行脚本:sh /u01/asmdisk.sh ,结果为:
--script-result
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7bcdd0000000f",SYMLINK+="asm-5g-xxxx-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7be3900000010",SYMLINK+="asm-5g-xxxx-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7bec100000011",SYMLINK+="asm-5g-xxxx-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7bfc900000012",SYMLINK+="asm-5g-xxxx-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7c03f00000013",SYMLINK+="asm-5g-xxxx-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7c09e00000014",SYMLINK+="asm-5g-xxxx-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7c0e900000015",SYMLINK+="asm-5g-xxxx-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7c12e00000016",SYMLINK+="asm-5g-xxxx-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de893a0000000da",SYMLINK+="asm-5g-xxxx-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de8941e000000db",SYMLINK+="asm-5g-xxxx-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de894a4000000dc",SYMLINK+="asm-5g-xxxx-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de80f1f00000039",SYMLINK+="asm-5g-xxxx-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
使用带列编辑的文本编辑器快速修改如下,然后复制到/etc/udev/rules.d/99-oracle-asmdevices.rules配置文件中:
--modify
[root@xxdb01 ~]# cat /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7bcdd0000000f",SYMLINK+="asm-400g-000f-data1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7be3900000010",SYMLINK+="asm-400g-0010-data2",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7bec100000011",SYMLINK+="asm-400g-0011-data3",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7bfc900000012",SYMLINK+="asm-400g-0012-data4",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7c03f00000013",SYMLINK+="asm-400g-0013-data5",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7c09e00000014",SYMLINK+="asm-400g-0014-data6",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7c0e900000015",SYMLINK+="asm-400g-0015-data7",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de7c12e00000016",SYMLINK+="asm-400g-0016-data8",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de893a0000000da",SYMLINK+="asm-5g-00da-grid1",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de8941e000000db",SYMLINK+="asm-5g-00db-grid2",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de894a4000000dc",SYMLINK+="asm-5g-00dc-grid3",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/lib/udev/scsi_id -g -u -d /dev/$name",RESULT=="36acb3b510041191b0de80f1f00000039",SYMLINK+="asm-100g-0039-arch1",OWNER="grid",GROUP="asmadmin",MODE="0660"
这里看到这个/lib/udev/scsi_id -g -u -d /dev/sd*查到的结果和存储多路径查到的Lun WWN,除了scsi_id查询的结果首位多一个3,后面是完全一样的。
此时可以使用udevadm进行应用规则:
udevadm control --reload
udevadm trigger
然后查看结果:
[root@xxdb01 ~]# ls -l /dev/asm*
lrwxrwxrwx. 1 root root 3 Sep 8 10:19 /dev/asm-100g-0039-arch1 -> sdm
lrwxrwxrwx. 1 root root 3 Sep 8 10:19 /dev/asm-400g-000f-data1 -> sdb
lrwxrwxrwx. 1 root root 3 Sep 8 10:19 /dev/asm-400g-0010-data2 -> sdc
lrwxrwxrwx. 1 root root 3 Sep 8 10:19 /dev/asm-400g-0011-data3 -> sdd
lrwxrwxrwx. 1 root root 3 Sep 8 10:19 /dev/asm-400g-0012-data4 -> sde
lrwxrwxrwx. 1 root root 3 Sep 8 10:19 /dev/asm-400g-0013-data5 -> sdf
lrwxrwxrwx. 1 root root 3 Sep 8 10:19 /dev/asm-400g-0014-data6 -> sdg
lrwxrwxrwx. 1 root root 3 Sep 8 10:19 /dev/asm-400g-0015-data7 -> sdh
lrwxrwxrwx. 1 root root 3 Sep 8 10:19 /dev/asm-400g-0016-data8 -> sdi
lrwxrwxrwx. 1 root root 3 Sep 8 10:19 /dev/asm-5g-00da-grid1 -> sdj
lrwxrwxrwx. 1 root root 3 Sep 8 10:19 /dev/asm-5g-00db-grid2 -> sdk
lrwxrwxrwx. 1 root root 3 Sep 8 10:19 /dev/asm-5g-00dc-grid3 -> sdl
[root@xxdb01 ~]# ls -l /dev/sd*
brw-rw----. 1 root disk 8, 0 Sep 8 10:10 /dev/sda
brw-rw----. 1 root disk 8, 1 Sep 8 10:10 /dev/sda1
brw-rw----. 1 root disk 8, 2 Sep 8 10:10 /dev/sda2
brw-rw----. 1 grid asmadmin 8, 16 Sep 8 16:02 /dev/sdb
brw-rw----. 1 grid asmadmin 8, 32 Sep 8 10:19 /dev/sdc
brw-rw----. 1 grid asmadmin 8, 48 Sep 8 10:19 /dev/sdd
brw-rw----. 1 grid asmadmin 8, 64 Sep 8 10:19 /dev/sde
brw-rw----. 1 grid asmadmin 8, 80 Sep 8 10:19 /dev/sdf
brw-rw----. 1 grid asmadmin 8, 96 Sep 8 10:19 /dev/sdg
brw-rw----. 1 grid asmadmin 8, 112 Sep 8 10:19 /dev/sdh
brw-rw----. 1 grid asmadmin 8, 128 Sep 8 10:19 /dev/sdi
brw-rw----. 1 grid asmadmin 8, 144 Sep 8 16:02 /dev/sdj
brw-rw----. 1 grid asmadmin 8, 160 Sep 8 16:02 /dev/sdk
brw-rw----. 1 grid asmadmin 8, 176 Sep 8 16:02 /dev/sdl
brw-rw----. 1 grid asmadmin 8, 192 Sep 8 16:02 /dev/sdm
最终使用asmca创建磁盘组,最终结果为:
[grid@xxdb01 ~]$ 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 102400 102276 0 102276 0 N ARCH/
MOUNTED EXTERN N 512 4096 4194304 3276800 3276620 0 3276620 0 N DATA/
MOUNTED NORMAL N 512 4096 4194304 15360 14320 5120 4600 0 Y GRID/
[grid@xxdb01 ~]$
可以看到,磁盘组的名字和上面定义的磁盘别名,可以很好的进行管理维护,个人认为这个客户的规范很值得借鉴。
CentOS7的udev的绑定规则的更多相关文章
- Oracle 安装 RAC 11.2.0.4 centos7.4 -udev磁盘绑定/执行root脚本报错
在centos 7.4上安装oracle rac 11.2.0.4 报错及相关解决 $ cat /etc/redhat-release CentOS Linux release 7.4.1708 (C ...
- 深入理解this机制系列第一篇——this的4种绑定规则
× 目录 [1]默认绑定 [2]隐式绑定 [3]隐式丢失[4]显式绑定[5]new绑定[6]严格模式 前面的话 如果要问javascript中哪两个知识点容易混淆,作用域查询和this机制绝对名列前茅 ...
- 2.2 .this的绑定规则
2.this的绑定规则 1.默认绑定 function foo( ) { console.log(this.a); } var a=1; foo(); 在代码中,foo()函数不带任何修饰的引用进行调 ...
- udev磁盘绑定
udev磁盘绑定 [grid@db-rac02 ~]$ cat 99-asm-multipath.rules KERNEL=="sd*",SUBSYSTEM=="bloc ...
- js中this的绑定规则及优先级
一. this绑定规则 函数调用位置决定了this的绑定对象,必须找到正确的调用位置判断需要应用下面四条规则中的哪一条. 1.1 默认绑定 看下面代码: function foo() { cons ...
- 使用引用类型变量来访问所引用对象的属性和方法时,Java 虚拟机绑定规则
通过引用类型变量来访问所引用对象的属性和方法时,Java 虚拟机将采用以下绑定规则: 实例方法与引用变量实际引用的对象的方法进行绑定,这种绑定属于动态绑定,因为是在运行时由 Java 虚拟机动态决定的 ...
- this的四种绑定规则总结
一.默认绑定 1.全局环境中,this默认绑定到window 2.函数独立调用时,this默认绑定到window console.log(this === window);//true functio ...
- JS中this的4种绑定规则
this ES6中的箭头函数采用的是词法作用域. 为什么要使用this:使API设计得更简洁且易于复用. this即不指向自身,也不指向函数的词法作用域. this的指向只取决于函数的调用方式 thi ...
- .net core Web API参数绑定规则
参数推理绑定 先从一个问题说起,微信小程序按照WebAPI定义的参数传递,Get请求服务器端可以正常接收到参数,但是Post请求取不到. Web API代码(.netcore 3.1)如下: [Htt ...
- JavaScript中this的绑定规则
JavaScript中this的绑定规则 前言 我们知道浏览器运行环境下在全局作用域下的this是指向window的,但是开发中却很少在全局作用域下去使用this,通常都是在函数中进行使用,而函数使用 ...
随机推荐
- 广州|阿里云 Serverless 技术实战营邀你来玩!
活动简介 "Serverless 技术实战与创新沙龙 " 是一场以 Serverless 为主题的开发者活动,活动受众以关注Serverless 技术的开发者.企业决策人.云原生领 ...
- C++大整数类
用法 把头文件和源代码文件放在同一目录下,然后#include"INT"即可使用.你能对int类的变量进行a=2,a+=3,a%8,a--等等操作,那你就也能对INT进行.INT基 ...
- freeswitch上报信令到HOMER的配置方案
概述 HOMER是一款100%开源的针对SIP/VOIP/RTC的抓包工具和监控工具. 之前的文章中,我们介绍了HOMER的安装步骤,HOMER7的安装部署还是比较简单的,安装过程也比较顺利. 然后, ...
- Spring boot 运行服务jar外配置配置文件方式总结
本文为博主原创,转载请注明出处: 由于需要在本地编译打包,在服务器上验证某些功能,需要频繁修改配置,本地打包时,会将配置文件也打包的jar 包内部,这种方式下,若修改配置则需要本地修改重新上传服务器一 ...
- Go-使用本地时间解析时间字符串
字符串 ==> time.Time package main import ( "fmt" "log" "time" ) func m ...
- 百度网盘(百度云)SVIP超级会员共享账号每日更新(2023.11.30)
一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...
- 使用Python+FFMPEG实现视频分割与合并
前言 日常中偶尔会遇到需要简单剪辑处理视频的场景,以前我可能会拿出PR来剪辑一下,(别跟我说国产那些软件,剪辑完视频强制加上广告片头片尾恶心的一批),但是PR毕竟太重量级,剪个简单的视频都要花不少时间 ...
- Oracle19c on 银河麒麟的安装与升级
Oracle19c on 银河麒麟的安装与升级 下载内容 preinstall CentOS8 https://yum.oracle.com/repo/OracleLinux/OL8/appstrea ...
- 达梦数据库varchar和nvarchar的验证
达梦数据库varchar和nvarchar的验证 测试SQL create tablespace zhaobsh datafile '/opt/dmdbms/data/DAMENG/zhaobsh.d ...
- [转帖]jmeter SSL证书相关配置
在实际工作中,我们大多数接口都是用的HTTPS来保证安全,使用jmeter测试HTTPS请求是如何配置证书呢? 1.最简单的方法,在选项里选择SSL管理器,然后选择相应的证书即可 在弹出的选择框选择证 ...