一、 设定文件系统配额
综述
• 在内核中执行
• 以文件系统为单位启用
• 对不同组或者用户的策略不同
根据块或者节点进行限制
• 执行软限制(soft limit)
• 硬限制(hard limit)
初始化
• 分区挂载选项:usrquota、grpquota
• 初始化数据库:quotacheck

    为用户设定配额 
               执行
        •   开启或者取消配额:quotaon、quotaoff
        •   直接编辑配额:edquota  username
        •   在shell中直接编辑:
        setquota  usename  4096  5120  40 50 /foo

           报告
            •   用户调查:quota  username
            •   配额概述:repquota  /mountpoint

实验:实现配额

对用户磁盘配额限制:
1 启用配额功能
vim /etc/fstab
UUID=b0421d9a-8072-4be5-9526-070535ac0a8e /home ext4 usrquota,grpquota 0 0
2 创建配额数据库
quotacheck -cug /home (selinux/config文件 必须是 Permissive)
3 启用数据库
quotaon /home
4 指用户的空间限制
edquota wang
Disk quotas for user wang (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/sda6 1164 800000 1000000 159 162 165
5 测试

对组磁盘配额限制:
 
groupadd sales
usermod -G sales xiaojun
usermod -G sales zilong
checkquota -cug /home 针对用户和组创建配额数据库
quotaon /home 启用数据库
edquota -g sales 指定组内用户总空间
newgrp sales 将当前用户组临时切换为sales
 
dd if=/dev/zero of=test2 bs=1M count=200
测试

实验:迁移/Home到新独立分区

        1 建立新分区
        2 建立文件系统
        3 mkdir /mnt/home
        mount /dev/sda6 /mnt/home
        4 cp /home/* /mnt/home -av
        5 tar cvf  /app/home.tar /home
        scp remote
        6 init 1 断开网络,在远程不要执行
        7 rm -rf /home/*
        8 vim /etc/fstab
        UUID=b0421d9a-8072-4be5-9526-070535ac0a8e /home  ext4   defaults 0 0 
        9 mount -a
        umount /mnt/home
        10 init 5 还到原有模式

二、 设定和管理软RAID设备
什么是raid
 RAID:Redundant Arrays of Inexpensive( Independent) Disks
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供
高级文件系统管理_第1张图片

RAID-0 (两块同样大小的硬盘做实验)
读、写性能提升;
可用空间:N*min(S1,S2,...) 无容错能力
最少磁盘数:2, 2

RAID-1:磁盘利用率为50%
raid各个盘删除、创建文件操作同时进行,不能防止人为操作,防止的是物理硬件损坏

raid5
数据和校验位均匀的存放在各个硬盘上,最多允许1块硬盘损坏
 一旦有一块硬盘损坏,使用spare disk(备用磁盘)顶替比较好,这样需通过其它三块硬盘计算出损坏硬盘上的数据,也会增加CPU负载,影响性能。 raid5磁盘利用率为n-1/n

raid6
相比raid5有每行有两块校验数据块,最多允许2块硬盘损坏,磁盘利用率为n-2/n

raid 10
读、写性能提升
可用空间:N*min(S1,S2,...)/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4, 4+

raid 01
多块磁盘先实现RAID0,再组合成RAID1
 mdadm:模式化的工具
 命令的语法格式:mdadm [mode] [options]
模式:
创建:-C 创建raid
装配: -A start 激活raid
-S 停止raid
-f 模拟raid中设备损坏
监控: -F
管理:-f, -r, -a

实验:
创建raid0(性能高,没有冗余能力,数据容易丢失 比如:可存放内存和日志数据 )
1、准备同样大小的硬盘或分区
参考/dev/sdb硬盘创建同样大小分区
dd if=/dev/sdb of=/dev/sdd bs=512 count=1

Hex code (type L to list codes): fd
inux raid autodetect

2、创建raid0(-a 自动创建raid设备 -c chunk大小 -n raid成员设备数)
mdadm -C /dev/md0 -a yes -l 0 -c 40 -n 3 /dev/sd{a6,b1,d1}

mdadm -D /dev/md0(可查raid设备详细信息)

生成的信息写到文件中才能开机启动时找到/dev/md0设备并启动
mdadm -Ds > /etc/mdadm.conf

针对raid0创建文件系统
mkfs.ext4 /dev/md0

挂载
UUID=a8d13d32-c057-4112-8cc7-356ba3321b02 /mnt/md0 ext4 defaults 0 0

mkdir /mnt/md0
mount -a
mount /mnt/md0

测试写速度
dd if=/dev/zero of=/mnt/md0/file bs=1M count=1024

软RAID管理
 生成配置文件:mdadm –D –s >> /etc/mdadm.conf
 停止设备:mdadm –S /dev/md0
 激活设备:mdadm –A –s /dev/md0
 强制启动:mdadm –R /dev/md0
 删除raid信息:mdadm --zero-superblock /dev/sdb1

三、 配置逻辑卷
逻辑卷管理器
 允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
 允许在多个物理设备间重新组织文件系统
• 将设备指定为物理卷
• 用一个或者多个物理卷来创建一个卷组
• 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
• 在物理卷上创建的逻辑卷
是由物理区域(PE)组成
• 可以在逻辑卷上创建文件系统
LVM介绍
dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块
设备名:/dev/dm-#
软链接:
/dev/mapper/VG_NAME-LV_NAME
/dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root
LVM可以弹性的更改LVM的容量(前提是卷组有空余的空间)
通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量

高级文件系统管理_第2张图片
高级文件系统管理_第3张图片
实验:缩减Lv
umount /mnt/lv1
fsck -f /dev/vg0/lv1
resize2fs /dev/vg0/lv1 43G
lvreduce -L 43G /dev/vg0/lv1
mount -a
实验:迁移pv
当物理卷硬盘损坏,将该物理卷搬到该卷组的其它物理卷中

高级文件系统管理_第4张图片
然后继续下面删除pv实验 (模拟物理卷硬盘损坏需删除pv)
高级文件系统管理_第5张图片

四、设定LVM快照

 快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝
 快照只有在它们和原来的逻辑卷不同时才会消耗空间
 在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间
 当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。
 快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据
 建立快照的卷大小只需要原始逻辑卷的15%~20%就够了,也可以使用lvextend放大快照

快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享

由于快照区与原本的LV共用很多PE的区块,因此快照去与被快照的LV必须在同一个VG.系统恢复的时候的文件数量不能高于快照区的实际容量

实验一、创建逻辑卷快照(-p r 只读权限)
lvcreate -n lv1_snapshot -L 1G -s -p r /dev/vg1/lv1

    挂载(centos7不能将快照卷挂载到目录)
    mkdir /mnt/lv1_snapshot;mount /dev/vg1/lv1_snapshot /mnt/lv1_snapshot

    更改被快照卷的文件
        ![](https://s1.51cto.com/images/blog/201712/09/a8fe8b9163e0b19461112c0224ee8803.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)

实验、使用快照卷还原数据
1、快照卷和被快照卷都要取消挂载
umount /mnt/lv1;umount /mnt/lv1_snapshot

2、使用快照还原(快照卷和被更改后的快照卷合并恢复原始快照卷)
lvconvert --merge /dev/vg1/lv1_snapshot