这段时间在客户vmware上面安装了一套oracle11g_rac,是基于redhat6.4系统的,之前做redhat5版本的时候,都是有现成的asmlib工具可用,但红帽6起初是没有对应版本asmlib,到后来虽然oracle和redhat合作,推出了RHEL6版本的asmlib,但是这货竟然要注册RHN下载,简直不能忍,再加上我本人也是属于UDEV派系,于是就决定使用udev来绑定磁盘给asm使用,起初,我写的UDEV规则文件是采用取每个磁盘的scsi_id,然后绑定成指定的盘符名字,但是后来由于客户使用的是vmware虚拟机,默认磁盘是没有scsi_id返回值的,那不得不考虑使用别的方法
第一种是从VMWARE层面去解决,用文本编辑器修改vmx文件,在vmx文件中任意位置(通常在最后)添加如下行:
disk.EnableUUID = "TRUE"
这种方法有坏处,就是每次修改完磁盘或者网卡信息以后,参数又会变成默认的false,每次都得重新修改,这不符合实际的生产环境要求。
另外一种方法就是,我们的udev采用别的取值方法来绑定磁盘,比如
root@udev ~]# udevinfo -a -p /sys/block/sdc/sdc1
Udevinfo starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '/block/sdc/sdc1':
KERNEL=="sdc1"
SUBSYSTEM=="block"
SYSFS{dev}=="8:33"
SYSFS{partition}=="1"
SYSFS{start}=="63"
SYSFS{size}=="16771797"
我们用上面标红的三个值来取代scsi_id,所以我的规则文件可以写成下面这样
more 99-oracle-asmdevices.rules
KERNEL=="sdc1", SUBSYSTEM=="block", SYSFS{size}=="16771797", SYSFS{start}=="63", NAME="asmdisk1-crs", OWNER="grid", GROUP="asmadmin", MODE="0660"
主题思路就是通过udevinfo这个命令去找其他唯一的值来代替
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com