rhel7做文件服务器的过程与问题

最近想布署一台文件服务器。用60G的SSD装系统,用了4个3T的硬盘组raid5。操作系统打算采用最新的redhat server 7。(因为rhel6不支持最新的haswell CPU)但是在布署过程中碰到一件极其郁闷的事。

问题一:无法安装?在将要进入图形安装界面时出错。而且出错对话框无法“响应”。所以也看不到出错信息。

尝试1:怀疑是不支持显卡(主板是Z97,CPU是最新的haswell refresh)。于是采用“base video driver”模式安装。

结果:问题依旧!

尝试2:用文本模式安装。

结果:还是不能安装,但看到了出错信息,大致是在识别磁盘阵列时出错。

思考:我是用Z97主板自带的raid功能。4块硬盘中其中有两块之前做过raid1。会不会是磁盘中有残留的raid信息?

尝试3:先解除raid模式,然后清除硬盘中的所有raid信息。 依次尝试以下各种办法

# dmraid -an

# dmraid -r -E /dev/sd[a,b,c,d]

# mdadm -S /dev/md126

# mdadm --zero-superblock /dev/sd[a,b,c,d][1,2,3,4]

然后再重建raid。

结果:问题解决,可以安装了。

问题一总算搞定了,安装顺利,文件系统采用默认的xfs,并且对xfs做了点优化的动作(关键点是参数-i size=512)

# mkfs.xfs -i size=512 /dev/md126

然后就匆匆忙忙的把旧文件服务器上的文件复制过来。(几个T的数据,好久啊!)

好不容易复制完毕,并成功配置好mysql,samba,http,svn,pxe,yum等服务。然后重新开机……

开机后,问题来了……

问题二:开机无法自动挂载raid分区?四个3T盘组raid5,再分成两个分区,一个是8T,其余为一个分区。采用gpt分区+lvm。

尝试1:手动挂载,成功!但是就是无法开机自动挂载。 在开机时无法识别lvm卷,但进入linux后执行一下vgscan后又可手动挂载。

问了一下度娘,没有找到直接的解决方案!

思考:会不会是lvm2的BUG,如果不用lvm呢?

尝试2:重新分区,但不采用lvm方案。

结果:重新开机后,终于挂上去了。拷贝几个文件试试。可以。好,重新开机。

结果2:重新开机后,又挂不上去了……

尝试3:用xfs_repair修复一下文件系统。然后重新开机。

结果3:重新开机后,可以挂上了。然后啥事都不做,再重新开机。

结果4:又无法自动挂上去了???

尝试5:反复重开机??

结果5:再也无法自动挂了???但手工挂上是可以的!!!

思考:是xfs文件系统的问题?

尝试:换成ext4文件系统。

结果:问题依旧!

思考:是rhel7的BUG?

尝试:刚好发现redhat新发布了新的rhel6.6。下载来来试一下。

结果:发现rhel6.6竟然支持haswell的CPU了。安装,分区(只能用ext4)。一切正常啊!!!!问题没有了!!!!

固执:还是不甘心!难道就无法用上rhel7了,难道就不能用更牛逼的xfs文件系统了。(虽然rhel6可以事后安装xfs来支持,但感觉不爽)

尝试:再次装上rhel7。这次, 在SSD上开了两个lvm分区,用来存放xfs的日志。在格式化xfs分区时指定参数

# mkfs.xfs -i size=512 -l logdev=/dev/vg_sys/lv_xfslog1,size=2038m /dev/md126p1

手工mount一下,OK,复制一下文件,OK。(而且快多了)。好,重新开机……

结果1:又无法自动挂上了!!!

尝试:不使用外部日志,xfs改回内置日志的方式。重新开机……

结果2:问题依旧。仔细一个,8T的分区挂上了,300G的分区没挂上。

苦逼啊……………………

固执:重新分区。这次分为3个区,两个1T ,1个6T。

结果:有两个分区挂上了,分别是一个1T的,一个6T的。还有一个1T的没有挂上????为什么会这样,难以理解?

尝试:重新分区。这次平均分成3个区,每个3T。

结果:全部挂上了。

思考:难道分区不能大于3T。我可是采用GPT分区的呀。而且,为什么有一个分区大于3T的,反而是大的分区可以挂上,小的挂不上?没有规律呀?

再次固执:尝试不同的分区大小?分区顺序?

结果:只要有一个分区大于3T,就会出现自动挂载不正常(具体哪个分区挂不上还没找到规律)。如果所有分区都小于3T,则都可以挂载 。

火了,我真的火了!!!!!!!!!!!!!!!

变通:分为3个物理分区,每个平均3T。然后改为lvm分区,建立一个卷组,把这3个3T的分区组成一个9T的大卷组。然后再分为1个8T的逻辑卷与1个1T的逻辑卷。

结果:成功了!!!!!!!!!!!!!!可以开机自动挂载了!!!!!!

问题解决了。可是,我一点也高兴不起来。因为,我还是不理解!!

难道,rhel7就不支持大于3T的物理分区?我可是采用gpt分区的。而且,手工是可以挂载的,就是不会自动挂载?而且是大的挂上了,小的反而挂不上?

为什么rhel6.6反而支持?

为什么先分后合后,又可以挂载了?

为什么?为什么?还是有很多不理解的?

最后,来个极端一点的。采用dd if=/dev/zero of=/dev/md126 bs=10m

把整个阵列磁盘清零。因为我怀疑会不会是还有其它残留在硬盘里的信息在干扰?

9T的磁盘,清零要好久啊。而且dd没有进度回显。于是,在另一个tty上执行:watch -n 5 pkill -USR1 ^dd$

让dd每隔5秒打印出进度来。

接下来,慢慢等吧。在等待的过程中,先记录下来。明天再继续!

期待有某位高手看到我的文章后,给我解答!!!!

c爱好者
分享到:

© 2014 究问社区 copyRight 豫ICP备13003319号-1