大家在使用linux的过程中肯定都遇到过磁盘乱序的问题。一般来说,有几种可能会导致磁盘紊乱。比如磁盘通过raid卡连接服务器,raid卡的电池没电了。此时,如果服务器断电,可能会造成磁盘混乱。再比如新的服务器,但是raid驱动是老版本,一旦重启往往会出故障。服务器磁盘很多,混合sata/ssd的情况下可能会有乱序。
这种紊乱应该怎么解决?这里我总结了一个比较好的结尾方法。以下脚本的目的是通过udevinfo(centos5)或udevadm(centos6)获取磁盘的设备号。该设备号不会随着服务器的重新启动而改变。获得这个设备号后,在/dev/下会生成对应的用slot0打开的设备。例如,如果有五个磁盘,将生成五个设备,如slot0-4。此时再次挂载时,用这些槽号挂载就可以了。脚本如下:
#!/bin/bash
#set-x
函数get_release()
{
当我阅读时
做
release=`echo"$I"|grep"release"|awk“{print$3;}'`
main_version=${版本:0:1}
如果[!-z$main_version]
然后
echo$main_version
返回0
船方不负担装货费用
完成<"/etc/redhat-release"
返回1
}
函数get_id_serial()
{
设备=$1;
if[-z"$device"]
然后
返回-1
船方不负担装货费用
device=`basename$device'
main_version=`get_release'
如果[$?-ne0]
然后
echo"getcentosreleaseversionerror"1>;&2
返回$?
船方不负担装货费用
案例main_versionin
"5")cmd="/usr/bin/udevinfo-qall-n$device";;
"6")cmd="/sbin/udevadminfo-query=all-name=$device";;
environmentalsystemsapplicationscenter环境系统应用程序中心
ID_SERIAL=$($cmd|grep"ID_SERIAL="|awk-F'=''{print$2;}')
if[-z$ID_SERIAL]
然后
返回1
船方不负担装货费用
echo-n"$ID_SERIAL"
返回0
}
diskCTL_config="/etc/udev/rules.d/99-HD.rules"
rm-rf$diskctl_config
diskCTL_db="/usr/diskCTL/diskCTL.db"
rm-rf$diskctl_db
mkdir-p/usr/diskctl
触摸diskctl_db
指数=0
对于iin/dev/sd*[a-z]
做
device=`basename$i'
ID_SERIAL=`get_id_serial$i'
如果[$?-ne0]
然后
echo"FATAL:getID_SERIALerror"1>;&2
1号出口
船方不负担装货费用
slot=`printf"slot%02d"$index
echo"KERNEL==\"sd*[a-z]\",ACTION==\"add\",ENV{ID_SERIAL}==\"$ID_SERIAL\",SYMLINK+=\"$slot\"">;>$diskctl_config
echo"KERNEL==\"sd*[0-9]\",ACTION==\"add\",ENV{ID_SERIAL}==\"$ID_SERIAL\",SYMLINK+=\"$slot-part%n\"">;>$diskctl_config
echo"KERNEL==\"sd*[a-z]\",ACTION==\"remove\",ENV{ID_SERIAL}==\"$ID_SERIAL\",RUN+=\"/bin/RM-f/dev/$slot/dev/$slot-part*\">;>$diskctl_config
echo"#split$ID_SERIAL######################">;>$diskctl_config
ID_SN=`smartCTL-I$I2>;/dev/null|grep"Serial\s*number"-I|awk“{print$3;}'`
if[-z"$ID_SN"]
然后
ID_SN="错误"
船方不负担装货费用
echo"$slot$ID_SERIAL$ID_SN">>$diskctl_db
((index=index+1))
完成的
/sbin/udevcontrolreload_rules
/sbin/start_udev
在/etc/fstab中,它的安装方式类似于以下方式:
/dev/slot02/data02ext4默认值为00
/dev/slot03/data03ext4默认值为00
/dev/slot04/data04ext4默认值为00
是的,如果你觉得对自己还有一点帮助的话,希望你能给我更多的好评和评论。谢谢大家!!!可以加入运维交流群:325525293一起交流。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)