linux 无损拆分分区 asm,利用UDEV SCSI Rules配置linux下的ASM

利用UDEV SCSI Rules配置linux下的ASM

使用oracle的ASM(Automatic Storage Manager),针对磁盘设备来说要有正确的权限和拥有者和拥有组来,oracle官方提供了asmlib包来处理,简洁而方便;

但在针对SCIS盘时,可利用linux的udev规则来做,通过一些资料的查询,简单说明一下udev做的步骤

udev规则的配置文件在/etc/udev/rules.d下面,进行编写格式为xxxx.rules文件名,其规则如下

KERNEL==”sda*”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id -g -u -d /dev/$parent”, RESULT==”SATA_VBOX_HARDDISK_VB46cb19cd-a2384742_”, NAME=”asm-disk5″, OWNER=”grid”, GROUP=”oinstall”, MODE=”0660″

在我的机器环境里指定设备为sda开头一些分区来做我的asm盘,

利用scsi_id -g -u -s /block/sda 来获取uuid放到result()

指定remap成asm盘的盘符及拥有者和组及权限

获得uuid方式:

[root@trsen dev]# /sbin/scsi_id -g -u -s /block/sda

SATA_VBOX_HARDDISK_VB46cb19cd-a2384742_

[root@trsen dev]# /sbin/scsi_id -g -u -s /block/sda/sda5

SATA_VBOX_HARDDISK_VB46cb19cd-a2384742_

[root@trsen dev]# /sbin/scsi_id -g -u -s /block/sda/sda6

SATA_VBOX_HARDDISK_VB46cb19cd-a2384742_

[root@trsen dev]# /sbin/scsi_id -g -u -s /block/sda/sda7

SATA_VBOX_HARDDISK_VB46cb19cd-a2384742_

注意:因我这里是同一块盘,从其sda可以看出所以其uuid是一样的

若上述命令没有结果,可能需要

[root@trsen dev]# /sbin/scsi_id -g -u -d /dev/sda

[root@trsen dev]# /sbin/scsi_id -g -u -d /dev/sda5

如果都没有效果的话请参考http://www.trsenzhangdb.com/?p=204

利用fdisk进行分区(测试环境),生产中当然是挂盘了

加载更新block设备分区表

/sbin/partprobe /dev/sda5

/sbin/partprobe /dev/sda6

/sbin/partprobe /dev/sda7

创建udev规则文件如下

[root@trsen dev]# more /etc/udev/rules.d/99-oracle-asmdevices.rules

KERNEL==”sda5*”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id -g -u -d /dev/$parent”, RESULT==”SATA_VBOX_HARDDISK_VB46cb19cd-a2384742_”, NAME=”asm-disk5″, OWNE

R=”grid”, GROUP=”oinstall”, MODE=”0660″

KERNEL==”sda6*”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id -g -u -d /dev/$parent”, RESULT==”SATA_VBOX_HARDDISK_VB46cb19cd-a2384742_”, NAME=”asm-disk6″, OWNE

R=”grid”, GROUP=”oinstall”, MODE=”0660″

KERNEL==”sda7*”, BUS==”scsi”, PROGRAM==”/sbin/scsi_id -g -u -d /dev/$parent”, RESULT==”SATA_VBOX_HARDDISK_VB46cb19cd-a2384742_”, NAME=”asm-disk7″, OWNE

R=”grid”, GROUP=”oinstall”, MODE=”0660

利用udevtest命令来模拟产生设备文件的对应信息,看生成的信息是否有问题

[root@trsen dev]# udevtest /block/sda/sda5

main: looking at device ‘/block/sda/sda5’ from subsystem ‘block’

udev_rules_get_name: add symlink ‘disk/by-id/scsi-SATA_VBOX_HARDDISK_VB46cb19cd-a2384742-part5’

udev_rules_get_name: add symlink ‘disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0-part5’

run_program: ‘/lib/udev/vol_id –export /dev/.tmp-8-5’

run_program: ‘/lib/udev/vol_id’ returned with status 4

run_program: ‘/sbin/scsi_id -g -u -d /dev/sda’

run_program: ‘/sbin/scsi_id’ (stdout) ‘SATA_VBOX_HARDDISK_VB46cb19cd-a2384742_’

run_program: ‘/sbin/scsi_id’ returned with status 0

udev_rules_get_name: rule applied, ‘sda5’ becomes ‘asm-disk5’

udev_device_event: device ‘/block/sda/sda5’ already in database, validate currently present symlinks

udev_node_add: creating device node ‘/dev/asm-disk5’, major = ‘8’, minor = ‘5’, mode = ‘0660’, uid = ‘500’, gid = ‘6000’

udev_node_add: creating symlink ‘/dev/disk/by-id/scsi-SATA_VBOX_HARDDISK_VB46cb19cd-a2384742-part5’ to ‘../../asm-disk5’

udev_node_add: creating symlink ‘/dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0-part5’ to ‘../../asm-disk5’

udev_node_remove_symlinks: removing symlink ‘/dev/disk/by-uuid/9c3bfe85-862e-4783-866e-6911e7b9fcfb’

main: run: ‘socket:/org/kernel/udev/monitor’

main: run: ‘/lib/udev/udev_run_devd’

main: run: ‘socket:/org/freedesktop/hal/udev_event’

main: run: ‘/sbin/pam_console_apply /dev/asm-disk5 /dev/disk/by-uuid/9c3bfe85-862e-4783-866e-6911e7b9fcfb’

启动udev,让其所写的规则真实生效

/sbin/start_udev

查看权限信息

[root@trsen dev]# ls -lt /dev/sda[5-7]

brw-r—– 1 root disk 8, 5 Feb 11 11:05 /dev/sda5

brw-r—– 1 root disk 8, 6 Feb 11 11:05 /dev/sda6

brw-r—– 1 root disk 8, 7 Feb 11 11:05 /dev/sda7

[root@trsen dev]# ls -lt /dev/asm-disk*

brw-rw—- 1 grid oinstall 8, 7 Feb 11 12:54 /dev/asm-disk7

brw-rw—- 1 grid oinstall 8, 6 Feb 11 12:54 /dev/asm-disk6

brw-rw—- 1 grid oinstall 8, 5 Feb 11 12:54 /dev/asm-disk5

[root@trsen dev]#

至此,基于udev的方式来创建asm磁盘就完毕了,但是注意在后面识别asm磁盘,可能无法识别是创建的asm磁盘,需要利用dd工具针对asm磁盘头快处理一下如下:

dd if=/dev/zero of=/dev/asm-disk5 bs=4096 count=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值