标签:linux
高级文件系统管理
一.quota管理
quota是指定每个用户所能使用的磁盘空间的命令
设置步骤
1.在挂载的时候开启quota功能:
a. mount -o usrquota,grpquota /dev/sd* dir
挂载的-o ptions开启,但是要注意的是,用命令挂载的会在重启shell后失效,所以大多情况下都会使用配置文件更改
b.更改/etc/fstab,开机挂载
使用vim打开fstab后,依照相应的格式将挂载的磁盘写入,在defaults后边加上usrquota和grpquota,用逗号隔开,然后mount -a
自动挂载
注意:是usrquota而不是userquota,并且,在更改fstab的时候,设备名字的地方最好使用uuid
2.开启quota:
quotacheck -cvug /dir
-c:创建quota文件
-v:显示过程
-u:对用户的quota
-g:对用户组的quota
-a:全局范围内,将开启了quota特性的挂载点的quota特性开启
注意:/dir是挂载点,在centos6上
3.配置quota:
a.edquota username/groupname
会开启一个配置文件,大概内容就是inode限制和block限制,inode限制用的比较少,一般是使用block限制
里边有hard和soft两个需要注意的地方:
soft:警告数值,超过这个数值后出现在警告但是仍旧能够创建文件直到数据总大小到达禁止数值,在超过警告数值后
后边会有一个days,这个是警告时间,在这个时间范围内,将你的文件数据总大小缩小到警告范围将不会有任何
事发生,但是没有做到的话,警告时间将会变成禁止时间,这个时候将无法创建文件
hard:禁止数值,文件数据总大小的天花板,无法被捅破,当一个用户的使用量没有沾满的时候,继续创建了一个大
文件,文件会只写到禁止数据的容量处,不会在继续写下去,例如,用户a禁止容量是400M,他已经使用了250M,
这个时候他又在创建了一个大小为300m的文件,文件是可以被创建,但是,创建出来的文件室友150M,没有继续
在写下去
b.setquota username # # # #
c.edquota -p username1 username2 把2的配额想1一样分配
d.quota -u username
4.查看配额
repquota -avcugs name
二.RAID
单个类型raid
1.RAID 0
这个是将数据分成几块,两个硬件设备个存放一半,来达到读取写入的性能提升,但是本身没有容错能力
特性:读写性能提高,没有容错能力,使用空间为n*磁盘最小空间,最小磁盘数要求2块
2.RAID 1
这个是将同一份数据分块后复制成两份,分别存档在不同的磁盘上,具有一定的容错能力,并且由于也将数
据分块,因此读取性能有一定的提升,但是要求分成同样的两份导致写入能力有一定程度的下降
特性:读取性能提升,写入性能略微下降,有容错能力,只能坏一块磁盘,使用空间是磁盘的最小空间,最
小磁盘数要求2块
3.RAID 4
raid 4的原理是将数据分块成两份,分别放在两块硬盘中,类似raid 0,但是不同的是raid 4又在准备了一块
磁盘存放对之前两份数据的值做异或运算的结果,这样任何一块
磁盘失效后,其数据都可以通过剩下的两块磁盘做异或计算来计算出来,提升了很大的容错能力,只剩两块硬
盘工作做降级使用,性能会下降,但在实际使用中,通常还会准备一夸空闲磁盘来做备用磁盘,当有一块磁盘
坏掉时,立马顶上去,同时将梁歪两块磁盘做异或运算,结果放回到该备用磁盘中,避免降级工作,然后及时
更换备用磁盘就可以
特性:读取性能提升,写入性能下降,容错能力进一步提升,可以允许坏一块磁盘,使用空间是(n-1)*最小磁
盘空间,最少要三块磁盘,可以额外加一块做备用
4.RAID 5
raid 5工作原理同raid 4,因为4中的异或磁盘压力大容易损坏,所以5改进了机制,不将异或的结果存档在固
定的磁盘中,而是3块磁盘轮流做异或结果的存放盘,分散了巨大的压力,延长了使用寿命
特性同4
5.RAID 6
raid 6和5的工作原理相同,不同的是异或的结果会被复制成两份存放在不同的磁盘,加了一块磁盘,每次是两
块磁盘轮流做异或结果的存放盘
特性基本等同5,使用空间(n-2)*最小磁盘空间,最少磁盘数为4
组合类型raid
1.RAID 10/01
读作一零 零一,是指多个此磁盘两两之间先做成raid 1 ,然后在做成raid 0,一份数据在存储的时候,会先
分多块,然后分别存档在不同的raid 1组,每个raid 1组接收到自己的一块数据后,在对这块数据做raid 1处
理,分成相同的两份存储,理论上只要坏的不是同一个组的磁盘,可以承受坏一半儿继续工作
2.RAID 50
同上,都是组合两种单个类型的raid
RAID分为硬件设备和软件模拟,以下具体介绍软件模拟raid,因为工作中不可能是这种模拟,所以只需要了解,会用就行
raid软件设置用的命令是mdadm
mdadm [mode] /dev/md# [options] /dev/sd{*}
mode:-C:创建模式
-A:装配模式
-F:监控模式
-f:管理模式(-f,-a,-r命令都是管理模式)
创建模式: -C
options
-a {yes|no}:是否允许创建/dev/md#文件设备
-n #:使用几个分区/磁盘创建raid
-l #:创建什么等级的raid
-x #:空闲磁盘有几块
-c #:chunk-block的大小
创建步骤:
1.设置分区/磁盘
如果使用的是分区,要用fdisk命令将分区的id改成fd raid专用的id,记得用partx,partprobe等命令,保证将信息读取出来
2.使用mdadm命令创建
mdadm -C /dev/md0 -a yes -n 4 -l 10 -x 1 -c 512K /dev/sd{b,c,d,e}1
3.使用mkfs格式化
4.挂载到某目录开始使用,可以自动挂载
检查raid具体信息
mdadm -D /dev/md0
cat /proc/mdstat 可以结合watch -n来观察
生成raid文件
mdadm -D -s /dev/md0 > /etc/mdadm.conf
添加磁盘
mdadm -G /dev/md0 -a /dev/sd*
停止raid服务
mdadm -S /dev/md0
激活使用raid服务
mdadm -A -s /dev/md0
删除raid
mdadm --zero-superblock /dev/sd* --force
注意:在删除前要先将raid卸载,再讲raid服务停止,后才可以逐一删除raid成员
管理模式的选项
-f:将磁盘表示成为损坏的磁盘
-a:添加磁盘
-r:移除磁盘
软件raid的设置并不难,但是要多练习
三.LVM逻辑卷
逻辑卷其实和raid的作用差不多,都是利用多个底层硬件来组成一个逻辑设备来使用,不同的是的,逻辑卷可以随时更改大小
常用命令汇总
任务 pv阶段 vg阶段 lv阶段
scan(扫描) pvscan vgscan lvscan
create(创建) pvcreate vgcreate lvcreate
display(详细信息) pvdisplay vgdisplay lvdisplay
*s(简要信息) pvs vgs lvs
remove(删除) pvremove vgremove lvremove
rename(重命名) vgrename lvrename
extend(增加) vgextend lvextend
reduce(缩减) vgreduce lvreduce
resize(改变容量) lvresize
change(改变属性) pvchange vgchange lvchange
创建一个逻辑卷的具体步骤
pvcreate /dev/sd{..}*
-u:指明uuid -v:显示过程 -f:强制覆盖数据创建物理卷
vgcreate -n vgname -s #(BKMGT)(PE大小) /dev/sd{..}*
-v:显示过程 -s:指明PE大小,默认为4M
lvcreate -n name -l # PE个数 vgname
-L # 具体大小
-v:显示过程
注意:关于PE的大小跟pv一些列的命令无关,是在创建vg时确定的,它取决它在vg组,vg组设定pe为多大就多大,换了组
就用目前所在组的要求的pe大小,vg组一旦设置好,pe大小就不能改变了,可以通过删除创建vg组来强制更改,但是会损
坏内部数据
删除pv,lv,vg
vgremove vgname直接删除
pv,lv要先将上边的内容移动走在执行pvremove/lvremove name操作
扩展lvm
a. lv的扩展
lvextend -L #/+#(增加到/增加了) /dev/vg0/lv0
但是这个时候用df看发现lv0的使用空间还是没变,因为文件系统的大小并不随之改变,需要手动更改
resize2fs /dev/vg0/lv0
将文件系统同步
b. vg的扩展
vgextend /dev/sd*
缩减lvm
a.lv的缩减
先卸载-->检查是不是有磁盘错误---->缩小文件系统容量-------------------------->缩小lv------------------------->重新挂载
mount -->fsck -f (强制检查)---->resize2fs -L # /dev/vg0/lv0--------------->lvreduce -L #/-# /dev/vg0/lv0-->mount
注意:必须保证,缩小后的空间能够储存下所有的在lv0上的数据
b.vg的缩小
先将pv上的数据挪走-------------->删除pv
pvmove /dev/sd*1 /dev/sd*2----->vgremove /dev/sd*1
本文出自 “博客作业初版” 博客,谢绝转载!
标签:linux
原文地址:http://11602120.blog.51cto.com/11592120/1786792