阵列硬盘顺序乱

阵列硬盘顺序乱,第1张

解析linux下磁盘乱序的问题


大家在使用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一起交流。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/784362.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-04
下一篇 2022-05-04

发表评论

登录后才能评论

评论列表(0条)

保存