第15章 磁盘配额(Quota)与高级文件系统管理

磁盘配额(Quota)与高级文件系统管理

磁盘配额(Quota)应用与实践

你好! 这是我第一次使用 微博 。希望大家一起进步。
在这里简单总结下,磁盘配额、raid以及逻辑卷管理器。具体的还是要请大家去查查书《鸟哥的Linux私房菜》,哈哈

什么是Quota

当硬盘有多个用户写入磁盘时,如果无节制写入的话,一旦,一个用户不断写入的话,会将空间占满,其他用户无法写入。因此,限制用户写入大小,这里称为配额。
假定,我们设置的1G和800Mb,当我们达到800Mb,时系统会给我们一个警告,我们称为软限制。达到1G时,我们无法写入,我们称为硬限制。
默认情况下,默认每个用户无磁盘配额。

一个Quota范例

实践Quota流程1:文件系统支持

首先,划分一个分区出来。
放图
在这里插入图片描述
利用fdisk命令具体的,在之前的章节中会有,自行查阅:

接下来,别忘了更新数据表

partprobe /dev/sda

然后格式化下

mkfs.ext3 /dev/sda3

在根目录下,创建一个其他用户可以写入的文件夹:
在根目录下,创建一个其他用户可以写入的文件夹

实践Quota流程2:新建Quota配置文件
mount -o usrquota,grpquota /dev/sda3 /xx
mount | grep xx

此时,就支持磁盘配额了,默认情况,是没有磁盘配额的
为了记录信息,要创建对应的数据库
下面开始创建,这里是用户磁盘配额:

quotacheck -cu /dev/sda3
quotaon -u /dev/sda3

如果想创建组的话,u变为g,创建两个的话,u变为ug。下面依此类推,(如:edquota)
如果关闭的话,为

quotaoff -u /dev/sda3
实践Quota流程3:Quota启动、关闭与限制值设置

假定对tom(用户),做磁盘配额

edquota -u tom
补充:edquota -p smith tom (将tom(!!已经创建!!)的配置赋给smith)
补充:edquota -t(对所有用户进行,时间进行设置)
edquota -t tom -T(对tom用户进行,时间进行设置)

这里是执行上述命令后,文件的配置界面:
这里是执行上述命令后,文件的配置界面

从左到右:
blocks:文件大小
soft:软限制(单位为K)
hard:硬限制(单位为K)
inodes:实时记录文件个数
soft:软限制(单位为个)
hard:硬限制(单位为个)
实践Quota流程4:测试与管理

前面为文件大小的配额,后面为文件个数的配额。
终于,开始测试了!!!
首先,加上写权限(在root下),chomd o+w /xx
然后,进入到/xx下,切换到tom用户下。su - tom

我们首先写入99M的文件没有警告,后面再写入1M时,系统立马给出警告
我们首先写入99M的文件没有警告,后面再写入1M时,系统立马给出警告
[当达到满配额时,会一点都无法写入:
当达到满配额时,会一点都无法写入

实践Quota流程5:Quota限制值的报表

此时,切换到root下,

查看配额情况:
查看配额情况

从左到右:
blocks:文件写入情况、
quota:软配额
limit:硬配额
files:文件个数
其他查看方式:repquota -a
补充
警告设置:warnquota(系统对tom用户及root,发送邮件,进行配额提醒,默认情况不会发)
发送格式更改:vim /etc/warnquota.conf

软件磁盘阵列(Software RAID)

什么是RAID(software,hardware RAID)

对磁盘数据进行备份。

  1. RAID0:至少2个磁盘,记为A与B。

    写数据时,数据1写入A,数据2写入B,数据3写入A,提高读取与写入速率。
    	缺点:如果2个磁盘有一个损坏,数据全部丢失,无备份功能。
    
  2. RAID1:至少2个磁盘,记为A与B。

    写数据时,数据同时写入A与B,有备份功能。
    	缺点:没有提高效率,并且磁盘利用率只有1/2
    
  3. 目前常用为RAID0+RAID1或RAID1+RAID0。

    以RAID0+RAID1进行介绍:将4个硬盘,两两分为A、B两组,4个硬盘记为A1,A2,B1,B2。
    	写数据时,先对A与B写入,采用RAID0。
    	但是,在A与B组内写入时,对A1与A2,或B1与B2采用RAID1写入方式。
    
  4. 补充:RAID5:至少3个磁盘,记为A、B、C。

    写数据时,数据1,数据2,分别进入A与B,然后进行一次校验和,存入C。接下来数据3,数据4,分别存入B与C,然后进行一次校验和,存入A。依此类推。提高写入速度,也提高了读取速度,也具有备份功能
    	缺点:磁盘利用率为N-1/N。
    
区别(software,hardware RAID)

hardware RAID:主板上有一个RAID卡,自带CPU与内存,做hardware RAID用的是RAID卡的资源
software RAID:用的是电脑的资源。
两者工作原理,其实是一样的。是不是感觉之前被骗了?以为多高大上

下面我们用的是软RAID,其实我们要用硬盘来做,在此,我们只有一个硬盘,因此,采用分区来做,只是做实验。!!实际中用分区做,没用处!!

软件磁盘阵列的设置

准备工作

划分分区(上面有介绍,就不罗嗦了),划出/dev/sda5,/dev/sda6,/dev/sda7,/dev/sda8
要改下System格式,改为选项fb,如图

记得用w保存啊!
然后更新(partprobe /dev/sda)

查看命令:cat /proc/mdstat
开始配置
mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sda{5,6,7,8}
-C:创建
-a:是否用标准命名方式
-l:RAID级别(0,1,5)
-n:使用磁盘数目
-x:备份磁盘数目(一旦-n的设备有一个损坏,-x立马生效)
格式化他:mkfs.ext3 /dev/md0
使用(挂载)它:
mkdir /yy
mount /dev/md0 /yy

查看信息

再次查看:cat /proc/mdstat
属性信息查看:mdadm -D /dev/md0(或者mdadm --detail /dev/md0)
RAID级别信息查看:mdadm -E /dev/sda5
动态查询:watch -n .5 'cat /proc/mdstat'(每隔0.5s执行一次)

在这里插入图片描述

仿真RAID错误的救援模式

开始测试:
先复制进来一些文件

cp /etc/services /yy 

模拟sda5坏了(5,6,7用来存储,8是备用,用来备份)

mdadm /dev/md0 -f /dev/sda5

恢复中
在这里插入图片描述
恢复结束(查看mdadm -D /dev/md0),然后删掉坏的mdadm /dev/md0 -r /dev/sda5
在这里插入图片描述

内部数据没有损坏(ls /yycat /yy/services
在这里插入图片描述

关闭软件RAID(!!重要!!)

关闭RAID:

首先卸载挂载点:umount /yy
再进行:mdadm -S /dev/md0
成功?(查看命令):cat /proc/mdstat

再次启用(已经创建):

mdadm -A /dev/md0 /dev/sda{5,6,7,8}

添加磁盘

mdadm /dev/md0 -a /dev/sda5

总结:RAID5只能能坏1块,6是可以坏2块,在这里不再啰嗦,可以自行查看。

开机自启动RAID并自动挂载

自动挂载这里,在之前章节提到(待补充),修改/etc/fstab文件

这里补充一个:修改/etc/rc.d/rc.local文件
将mount命令添加进rc.local文件是另一种实现开机自动挂载的方式

mount /your_name_RAID /your_name_file

保存文件。设置完成。重启系统进行检查。

逻辑卷管理器(Logical VolumeManager)

什么是LVM:PV,PE,VG,LV的意义

传统物理分区:
在没有可分配空间时,要扩展某一分区,必须要格式化2个盘,难以动态增加或减小,每个分区大小难以互相“借”。这是由于划分分区的分割点是死的。

LVM:
先将普通的传统分区进行初始化,变为PV(物理卷),然后,可以将物理卷(PV)组成一个整体(VG),叫做卷组,然后划分出,逻辑卷(LV)。以上的概念是计算机模拟出的,实际不存在。
PE 指的是 Process Element, 就是逻辑核心(logic core),一个逻辑核心上可以跑一个线程。这个概念引出是由于现在有很多双线程的处理器(double-thread core),可以一个核心运行两个完全不同的任务/线程, 一个当两个用,所以不能单单当成一个核了,就说一个核有两个PE。
(下面提到了PE,往下看)

LVM实作流程

准备工作

划分分区
划分分区(上面有介绍,就不罗嗦了),划出/dev/sda9,/dev/sda10,/dev/sda11,/dev/sda12
要改下System格式,改为选项8e(不改也没关系,推荐修改),如图
在这里插入图片描述
从上面介绍可知,分为以下几个工作;

创建PV
检测命令:pvscan
创建命令:pvcreate /dev/sda{9,10,11,12}

就像这样
在这里插入图片描述

创建VG

组成vg0(卷组)
一个卷组,组成单位为PE,大小为4M

检测命令:vgscan
创建命令:vgcreate vg0 /dev/sda{9,10,11}

就像这样
在这里插入图片描述

补充:vgcreate -s 8 vg0 /dev/sda{9,10,11}
这里的-s指明,PE大小
tip(其他操作):
重命名为smith:vgrename vg0 smith
查看所有vg及其属性信息:vgdisplay
查看某个vg及其属性信息(例如:vg0):vgdisplay vg0
添加某个硬盘:vgextend vg0 /dev/sdc
删除某个硬盘:vgreduce vg0 /dev/sdc(例如:vgreduce vg0 /dev/sda12)

在这里,没有硬盘,添加个分区吧(模拟要用)

vgextend vg0 /dev/sda12
创建LV
检测命令:lvscan
创建命令:lvcreate -n lv0 -L 100M vg0

含义:在vg0中创建一个大小为100M的LV,名字是lv0

lvcreate :
-n:指出LV名字
-L:指出大小
用另外一个形式创建:lvcreate -n lv1 -l 25 vg0
lvcreate :
-l:指出大小,默认单位为M,(小写L)
创建(有个要点):lvcreate -n lv2 -L 103M vg0

就这样:
在这里插入图片描述
!!为啥这里是104,而不是103??!!
!!PE是4M,那么,创建的大小必须是PE的整数倍!!

删除LV
删除命令(有询问):lvremove /dev/vg0/lv2
删除命令(强制删除):lvremove -f /dev/vg0/lv1
开始使用吧
格式化:mkfs.ext3 /dev/vg0/lv0
创建文件夹:mkdir /lv
挂载:mount /dev/vg0/lv0 /lv/

在这里插入图片描述
这里是软连接。

放大LV容量

扩大lv0:lvextend -L +100M /dev/vg0/lv0
调整命令:resize2fs /dev/vg0/lv0
查看命令:df -h

缩小LV容量

!!极力不推荐,容易机器崩溃!!
!!严格如此执行,4个命令!!

卸载挂载点:umount -lv
检查磁盘:fsck -f /dev/vg0/lv0
调整命令:resize2fs /dev/vg0/lv0 64M(!!减小到64M!! )
减小命令:lvreduce -L -136M /dev/vg0/lv0 (!!减少了136 M,本来200M,减少136M,剩余64M!!)

看一下

挂载:mount /dev/vg0/lv0 /lv/
查看文件命令:df -h
查看LV命令:lvscan

LVM的系统快照

相当于VM(VMware)中的克隆。
lv0快照出lv1,当lv1使用出乱,删掉lv1,再快照一份
测试开始

touch /lv/smith
ls /lv/

lv中有smith与services,2个文件夹
在这里插入图片描述
创建快照(!!千万不要格式化!!)

lvcreate -n lvs -L 32M -s /dev/vg0/lv0
-n:指出快照的名字
-L: 快照的大小,理论为原文件的1/4就行,这里用1/2
-s:指出是快照

配置它

mkdir /aa
mount /dev/vg0/lvs /aa/
差异检测命令:diff /aa /lv

使用下(工作中,我不小心删错了)

rm -rf *

重新弄一个(不要格式化!!!)

卸载挂载点:umount  /aa
删掉快照:lvremove -f /dev/vg0/lvs
再弄一个:lvcreate -n lvs -L 32M -s /dev/vg0/lv0
挂载上去:mount /dev/vg0/lvs /aa/

快速操作提示:写个脚本

脚本配置

有执行过程输出

#!/bin/bash
umount  /aa
lvremove -f /dev/vg0/lvs
lvcreate -n lvs -L 32M -s /dev/vg0/lv0
mount /dev/vg0/lvs /aa/

无执行情况的输出

#!/bin/bash
umount  /aa
( lvremove -f /dev/vg0/lvs ) &> /dev/null
( lvcreate -n lvs -L 32M -s /dev/vg0/lv0 ) &> /dev/null
mount /dev/vg0/lvs /aa/

关闭(删除)LVM

创建时候,从上往下创建。删除则相反
1.卸载掉他

umount /lv
umount /aa

2.删除LV

lvremove -f /dev/vg0/lvs
lvremove -f /dev/vg0/lv0

3.删除VG

vgremove vg0

4.删除PV

pvremove /dev/sda{9,10,11,12}

命令汇总

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值