|
楼主 |
发表于 2006-11-2 21:55:38
|
显示全部楼层
虽然唔知佢讲噶大部分系乜 不过似乎有d用..
Linux下TB级别的文件系统
1. linux 版本, kernel 版本, errata 版本
2. 什么文件系统,什么版本的
3. 什么存储,怎么连接的
另外,尽可能在TB级存储上避免单独mkfs一个超大分区然后直接mount上.我估计你不是用ext2就是ext3.如果TB级的ext2/3直接单独挂上去后,以后会有数不清的麻烦的. 从fsck开始到disaster recovery,从I/O blocking 开始到partition extending.
在生产环境下,正确的做法是:
1. upgrade你的linux kernel, errata到最新的, TB级存储,尽一切可能规避掉采用RedHat professional 之类的。RHEL, SLES是唯一的选择. FC也尽可能不要用.
2. 如果你的服务器是x86的,不是EM64T/AMD64的(x86_64)的,你就创建LVM分区,每个大小控制在400GB以内(当然,到底最小的用多少,要到现场采用一定的方法和手段作应用级的性能评估才能确定的,这里就是假设你是最普通的应用). 我习惯把所有的分区和lvm操作都脚本化. 所以我一般会切200G的LVM分区. 切多少个LVM partition,具体看你现在到底要用到多少, 比如你现在只要用1TB,就切5x200GB出来,剩下的不要理它.
3. 把你前面切出来的LVM Partition 用 pvcreate 做成PV,然后把用vgcreate vgname pv1 pv2 pv3... 把你这些pv都放到一个新建的vg中去
4. vg做好后,vgscan一下,如果没有activated, vgchange -a y 来激活, 然后lvcreate从这个1TB的vg中切出你要得lv出来. 比如就是 1TB的lv
5. 给这个lv 创建文件系统,我建议你好好看清楚自己的应用 I/O行为到底是怎样的,如果是大块的顺序读,并且数据不需要太多的保护,直接用ext2是最优的选择,当然你linux玩的还过得去的话,我也建议你优先考虑xfs. 如果都是琐碎的不确定大小的文件,且随机读写操作频繁,建议用ReiserFS. 最后考虑ext3. (n多人上来就用默认的ext3, ext3性能很糟糕,而且日志只有meta data才做,data区没有日志机制保护的,不像ReiserFS, JFS, XFS那样).
6. 以后要扩容了,就fdisk你的LUN,切出新的LVM partition, 然后用 pvcreate newpv1 newpv2 做好pv,然后用vgextend vgname newpv1 newpv2 newpv3把新的pv扩进去
7. 扩好了vg, 不用umount你之前的1TB LV的mountpoint,直接lvextend +LE numbers oldLV 来热扩展你的LV,扩好了LV之后,用 reiserfs.resize或者ext3.resize或者xfs_resize之类的动态的热扩展你的mountpoint上的fs
8.瞬间就可以做好n个TB上的存储管理.
看着挺烦德对巴,其实linux下面很容易做,也就个10分钟的事情. 如果你的应用是生产环境的正规应用,忘掉你说的什么直接创建文件系统然后挂上去的做法把,这个是野路子的做法,基本上没有人在正规应用中这样操作TB级的linux存储管理的,主要的原因就是后患无穷。
--
[m[1;32m※ 来源:·东篱采菊bbs站 bbs.scau.edu.cn·[FROM: 202.116.178.*][m |
|