使用多块盘时,linux重启可能会导致盘符漂移。使用udev规则文件可以添加SCSI id链接、mknode创建新块设备等方式解决盘符漂移问题。(好像centos6可以直接改sd盘符名,后面版本不允许更改了)
添加链接文件示例:
#!/bin/bash
disk="a b c d e f g h"
cat /dev/null > /etc/udev/rules.d/80-mydisk.rules
for i in ${disk}; do
id=`/usr/lib/udev/scsi_id -g -u -d /dev/sd${i}`;
if [ -n "$id" ]; then
echo KERNEL=="\"sd*[!0-9]"\", ENV{DEVTYPE}=="\"disk"\", SUBSYSTEM=="\"block"\", PROGRAM=="\"/usr/lib/udev/scsi_id -g -u -d \$devnode"\", RESULT=="\"$id"\", SYMLINK+="\"ssd${i}"\", MODE="\"0660"\" >> /etc/udev/rules.d/80-mydisk.rules;
fi
done
创建新的块设备示例:
#!/bin/bash
disk="a b c d e f g h"
cat /dev/null > /etc/udev/rules.d/80-mydisk.rules
for i in ${disk}; do
id=`/usr/lib/udev/scsi_id -g -u -d /dev/sd${i}`;
if [ -n "$id" ]; then
echo KERNEL=="\"sd*[!0-9]"\", ENV{DEVTYPE}=="\"disk"\", SUBSYSTEM=="\"block"\", PROGRAM=="\"/usr/lib/udev/scsi_id -g -u -d \$devnode"\", RESULT=="\"$id"\", RUN="\"/bin/sh -c 'mknod /dev/disk00 b $major $minor; chown root:root /dev/disk00; chmod 0660 /dev/disk00'"\" >> /etc/udev/rules.d/80-mydisk.rules;
fi
done
dryrun测试查看日志是否可用:
udevadm test /dev/sdb
or
udevadm trigger --dry-run
重新加载规则文件生效:
udevadm trigger --type=devices --action=change
udevadm control --reload