1、udev介绍
udev 是 Linux2.6 内核里的一个功能,它替代了原来的 devfs,成为当前 Linux 默认的设备管理工具。udev 以守护进程的形式运行,通过侦听内核发出来的 uevent 来管理 /dev目录下的设备文件。不像之前的设备管理工具,udev 在用户空间 (user space) 运行,而不在内核空间 (kernel space) 运行。

案例:

新添加到100G到DATA磁盘组中,使用udev方式绑定
1.确认新添加的磁盘
#fdisk -l|grep /dev/sdas
Disk /dev/sdas: 107.4 GB, 107374182400 bytes

获取wwid命令和脚本
#命令1:
/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i(指定磁盘)

#命令2:
/usr/lib/udev/scsi_id -g -u  /dev/sd$i/(指定磁盘)
根据获取的KERNEL信息编写获取wwid的脚本
for i in `cat /proc/partitions | awk {'print $4'} `; 
do
echo "KERNEL==\"$i\", ENV{DEVTYPE}==\"disk\", SUBSYSTEM==\"block\", PROGRAM==\"/usr/lib/udev/scsi_id -g -u -d \$devnode\", RESULT==\"`/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$i`\", RUN+=\"/bin/sh -c 'mknod /dev/asm-disk$i b \$major \$minor; chown grid:asmadmin /dev/asm-disk$i; chmod 0660 /dev/asm-disk$i'\""
done

2.udev规则
KERNEL=="sd*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36d8490b10093cb56d7078e3400000115", NAME="asm-disk0021", OWNER="grid", GROUP="asmadmin", MODE="0660"

3.原udev文件备份
cp /etc/udev/rules.d/99-oracle-asmdevices.rules /etc/udev/rules.d/99-oracle-asmdevices.rules20221107

4.修改每个节点udev配置文件添加新的udev规则
vi /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sd*", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36d8490b10093cb56d7078e3400000115", NAME="asm-disk0021", OWNER="grid", GROUP="asmadmin", MODE="0660"

5.触发udev规则
/sbin/udevadm trigger --type=devices --action=change --subsystem-match=block
udevadm control --reload-rules

##如果修改配置文件后重新加载udev命令(如果还不生效可以重启生效)

/sbin/udevadm control --reload

6.确认磁盘添加成功,磁盘权限正常
# ll /dev/asm*

 

添加磁盘到ASM

使用 sqlplus ‘/as sysasm’ 登录

7.kfed read磁盘头,确认磁盘头为空,每个节点都要检查
# su - grid
$ kfed read /dev/asm-disk0021

8.参照 如何安全地向ASM已有磁盘组中添加新盘 进行磁盘组扩容
a) 创建一个新的临时磁盘组
# su - grid
$ sqlplus / as sysasm
SQL> select name,path,mount_status,header_status from v$asm_disk;
SQL> create diskgroup TEST external redundancy disk '/dev/asm-disk0021';

b) 确认新的磁盘组创建成功并确保在所有的RAC节点上能够正常MOUNT
SQL> select state,name from v$asm_diskgroup;

c) 挂载到其他ASM实例上
SQL> alter diskgroup TEST mount;
SQL> select state,name from v$asm_diskgroup;

d) 确保在所有的RAC节点上能够正常的MOUNT后,将创建的临时磁盘组删除,再将新磁盘添加至需要扩容的DATA磁盘组
+ASM2:
SQL> alter diskgroup test dismount;
+ASM1:
SQL> drop diskgroup test;
SQL> alter diskgroup DATA add disk '/dev/asm-disk0021' rebalance power 4;

9.检查平衡操作:
select * from gv$asm_operation;

10.查询v$asm_operation无输出,意味着ASM的rebalance动作结束

11.确认ASM磁盘组添加磁盘成功
select * from v$asm_diskgroup;
————————————————

posted on 2024-12-20 15:10  属于我的梦,明明还在  阅读(42)  评论(0编辑  收藏  举报