仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1457|回复: 7
打印 上一主题 下一主题

[CentOS(社区)] 带来一篇办理CentOS下磁盘乱序的成绩

[复制链接]
活着的死人 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-14 20:21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
欢迎大家来到仓酷云论坛!人人在利用linux历程傍边一定碰到过磁盘乱序的成绩。一样平常情形下引发磁盘乱序有几种大概,好比磁盘是经由过程raid卡毗连到办事器的,raid卡电池没电来,这时候候假如办事器失落电的情形下大概会引发磁盘乱序。再就是好比新的办事器,但raid驱动是对照老的版本,一旦重启也常常会有乱序的大概。再就是办事器磁盘较多,sata/ssd存在混用的情形下也会有乱序的大概。
针对这类乱序的情形应当怎样办理呢?这里我总结了一种对照好的了局***。上面这个剧本的目标是经由过程udevinfo(centos5)大概udevadm(centos6)来取得磁盘的装备号,这个装备号是不会跟着办事器的重启而改动的。取得这个装备号后在/dev/下天生以slot0守旧的响应的装备,好比有5块磁盘则天生slot0-4如许5个装备。这时候候再挂载的时分用这些槽号来挂载就ok来。剧本以下:
#!/bin/bash

#set-x

functionget_release()
{
whilereadi
do
release=`echo"$i"|grep"release"|awk{print$3;}`
main_version=${release:0:1}
if[!-z$main_version]
then
echo$main_version
return0
fi
done<"/etc/redhat-release"
return1
}
functionget_id_serial()
{
device=$1;
if[-z"$device"]
then
return-1
fi
device=`basename$device`
main_version=`get_release`
if[$?-ne0]
then
echo"getcentosreleaseversionerror"1>&2
return$?
fi
case$main_versionin
"5")cmd="/usr/bin/udevinfo-qall-n$device";;
"6")cmd="/sbin/udevadminfo--query=all--name=$device";;
esac
ID_SERIAL=$($cmd|grep"ID_SERIAL="|awk-F={print$2;})
if[-z$ID_SERIAL]
then
return1
fi
echo-n"$ID_SERIAL"
return0
}

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
touch$diskctl_db
index=0
foriin/dev/sd*[a-z]
do
device=`basename$i`
ID_SERIAL=`get_id_serial$i`
if[$?-ne0]
then
echo"FATAL:getID_SERIALerror"1>&2
exit1
fi
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"Serials*number"-i|awk{print$3;}`
if[-z"$ID_SN"]
then
ID_SN="error"
fi
echo"$slot$ID_SERIAL$ID_SN">>$diskctl_db
((index=index+1))
Done
/sbin/udevcontrolreload_rules
/sbin/start_udev

/etc/fstab内里以相似上面的体例来挂载:
/dev/slot02/data02ext4defaults00
/dev/slot03/data03ext4defaults00
/dev/slot04/data04ext4defaults00
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!
金色的骷髅 该用户已被删除
沙发
发表于 2015-1-16 11:34:24 | 只看该作者

带来一篇办理CentOS下磁盘乱序的成绩

Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
老尸 该用户已被删除
板凳
发表于 2015-1-25 21:27:38 | 只看该作者
编程学习及开发,Linux是免费,开源的操作系统,并且可开发工具相当多,如果您支持自由软件,一定要同广大热爱自由软件人士一同为其不懈努力。
谁可相欹 该用户已被删除
地板
发表于 2015-2-4 13:29:18 | 只看该作者
不同于Windows?系统需要花钱购买,因为Linux的核心是免费的,自由使用的,核心源代码是开放的。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-10 00:19:07 | 只看该作者
眼看这个学期的Linux课程已经告一段落了,我觉得有必要写一遍心得体会来总结一下这学期对着门课程的学习。
若天明 该用户已被删除
6#
发表于 2015-2-28 15:21:17 | 只看该作者
任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。
小魔女 该用户已被删除
7#
发表于 2015-3-10 06:31:36 | 只看该作者
当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。
再见西城 该用户已被删除
8#
发表于 2015-3-17 09:10:43 | 只看该作者
Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-27 10:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表