这一节说高级文件系统不是很严谨,因为涉及到高级的磁盘阵列。有些数据特别重要需要高安全性的存储,有些时候需要高性能的磁盘以满足I/O,有些时候需要实时拓展分区的大小,有时需要给一些用户限制配额,有时需要备份数据并且备份数据的时候还要提供服务。传统的文件系统完不成这个需求,这时需要引进更能加高级的文件系统lvm和高级的磁盘raid。同时高级文件系统和高级磁盘仅仅是高级不是更好,只是提供更多的特性供人们选择。
一 磁盘配额
服务器的每一点空间都很重要,服务器的硬盘称为存储,其存储数据的安全性比家用硬盘好很多,空间也小很多,珍惜每一块空间,我们要回到配给制,给每个用户指定一定的空间。目前可以做到的解决方案就有一个,给每个用户分配一个分区,这个方法显然会让磁盘利用率大大降低,每格式化一个分区就会浪费一块空间。
上述的解决方案完全不符合需求,这里引进磁盘配额quota,它的实现方法特别简单,需要在挂着的时候指定quota权限,然后创建quota数据库,就可以使用了。
一个实例: 挂载一个分区到test目录,test目录最好有777权限以便其它用户具有写权限。 mount-o usrquota,grpquota /dev/sdb1 /test 给sdb1创建quota数据库,使其可以使用quota特性。 quotacheck-cug /mnt/test quota/mnt/test 更该tom用户的磁盘配额,若有多个分区就会有多条。 edquota tom 配置文件的格式 /dev/sdb1 tomused sorft hard inode sorft hard 分别是 分区 用户 tom 使用的空间 警告 限制大小 已建文件数 警告 限制数
xfs的磁盘配额管理工具不能使用quota,因为quota被内置了,使用xfs_quota配置管理。这里引入了一个话题,redhat为什么使用xfs替换了原本的ext4,主要是因为ext4使用的hash index tree元数据管理,在一个目录下文件超过200w后文件查找速度会大大降低,ext4最多管理是16TB的数据。xfs则可以管理高达8EB的数据,并且xfs使用的是B + tree管理数据,文件数多也不影响查询速度。读取少量文件的时候ext4更有优势,但是差不不是很大,这也不意味着一定要使用xfs,xfs还有很多问题,redhat官方都说xfs是体验版。
二 RAID
RAID有多个级别,每个级别都有其独特的特性,分别适用一些场景。
RAID0它是把多个磁盘一起使用,比如(只是例子)有4个磁盘的raid0,它写100M的数据时是把这100M的数据分成1000小块,每个磁盘分别放250块,并且写数据的时候多个磁盘同时写数据,磁盘的性能得到4倍的提升。
RAID1它是把一份数据存储到多个硬盘,这时存储一份数据的速度就取决于那个最慢的磁盘。
RAID4它是把一个盘当作校验盘,举个例子有三块盘组成的RAID4,写50M数据把数据分成500块,有两块盘分别写250块,另一块盘,就是把前两块盘的数据按位异或后存储在磁盘中
RAID5和RAID 4的工作原理差不多,只不过是把异或的数据存储到存储到了每个磁盘里了。这样做主要是因为存储异或数据的那块特别容易坏。
RAID10就是先对磁盘做RAID1,然后对两块RAID1磁盘做RAID0。
RAID01先0后1。
RAID一般公司都是使用RAID卡实现的只有选好硬盘数和级别,数据就可自动实现了,实验环境购买RAID卡就有些昂贵了,这里使用软RAID简单实现。
mdadm -C 创建模式 -n 使用几块磁盘 -l RAID级别 -x 空闲磁盘 -a 自动创建磁盘 -G 修改模式 -r 删除 -a 添加 -f 标记为坏盘 -D 查看
三 lvm
在生产环境中,因为前期规划数据没做好,有些数据增长过快导致磁盘被占满,传统的磁盘是不能拓展磁盘空间压缩磁盘空间的,这时引入了一个逻辑卷管理器lvm,lvm首先把磁盘组织成以特定块大小的物理卷,然后把物理卷分组,最后在分组内创建一个个逻辑卷,逻辑卷就可以当磁盘使用了。lvm在生产中使用的不是很多,稍微做一下规划就可以解决,数据尽量多分一下目录,快慢之前增加磁盘就可以了,lvm有一个硬伤数据恢复是个老大难的问题。
1 物理卷操作
pvs 显示物理卷信息 pvdisplay 以详细格式显示物理卷的信息 pvcreate 创建物理卷 pvremove 删除物理卷
2 卷组
vgsvgdisplay 显示信息 vgcreate 创建卷组 vgmove 移动物理卷数据至卷组内其它物理卷 vgreduce 移除物理卷 vgremove 删除卷组 vgextend 添加物理卷
3 逻辑卷
lvslvdisplay 显示信息 lvcreate 逻辑卷创建 -l 指定大小 -L 指定数量 lvextend 扩充大小 lvreduce 减小 lvremove 删除 resize2fs 更改文件系统的大小
4 快照
lvcreate–l size –s –n name –p r device
总结
高级文件系统应用很少,最多使用的是RAID,这一块还由机房运维负责,了解它们的原理可以增加我们判断问题视角。