磁盘配额、软RAID使用、LVM管理

一.磁盘配额的相关知识

(1)工作原理及方式

        *以文件系统为单位启动

        *以特定的用户或组为对象

        *根据块或节点进行限制

        *在内核中运行

        *VFAT系统不支持quota

(2)初始化

        *分区挂载选项:usrquota grpquota

        *初始化数据库:quotacheck  扫描文件系统并新建quota配置文件

            quota [option] [/mount_point]

                -a 扫描所有在/etc/mtab内,含有quota支持的文件系统,加上此参数后,挂载点可以不写,因为扫描所有系统了

                -v 显示过程

                -u 针对用户扫描文件与目录的使用情况,会新建aquota.user

                -g 针对用户组扫描文件与目录的使用情况,会新建aquota.group

(3)执行

                *开启或者取消配额:quotaon、quotaoff   参数和quotacheck的a v u g 参数作用一致

                *直接编辑配额:edquota username

                    edquota使用详解:edquota -t

                    dequota -p 范本账号 -u 新账号

                                -u user

                                -g group

                                -t 修改宽限时间

                                -p 复制范本

                *在shell中直接编辑:

                        setquota username softblock hardblock softinode hardinode 设置配额的文件系统

                *定义原始标准用户

                        edquota -p user1 user2

(4)报告

    *用户调查 quota

            -u 显示出该用户的quota,不加用户,显示执行者quota

            -g 显示该用户组的quota

            -v 显示每个用户在文件系统中的quota值

            -s 使用1024位倍数来制定单位,会显示如M之类的单位

    *配额概述:repquota

        -a 直接到/etc/mstab查询具有quota标志的文件系统,并报告quota的结果

        -v 输出的数据含有文件系统相关的详细信息

        -u 显示用户的quota值,默认选项

        -g 显示个别组的quota值

        -s 使用G M为单位显示结果

    *其他工具:warnquota   当针对某用户的磁盘限额达到soft值时,执行此命令会发邮件给该用户

实例:针对/home目录设置quota,并给tian,tianzhi用户设置quota

  1. 由于quota是针对文件系统的,查看/home是不是独立文件系统

    1.png

  2. 位避免不必要的权限问题,建议关掉selinux

    2.png

  3. 给/home目录加上usrquota挂载选项

    3.png

  4. 用quotacheck -a 检查文件系统并创建配置文件

    4.png

  5. 开启quota并查看其状态

    5.png

  6. 针对tian用户设置quota

    6.png

  7. 给tianzhi用户设置磁盘配额

    7.png

  8. 切换到tian用户下,创建一个300M大小文件;显示超过警报线

    8.png

  9. 创建一个520M文件;结果显示创建失败

    9.png

二.RAID(Redudant Arrays of Inexpensive Disks)  结合内核中的md(multi devices)

(1)多个磁盘合成一个阵列来提供更好的性能、冗余

        提高I/O能力:磁盘并行读写

        提高耐用性:磁盘冗余来实现

        级别:多块磁盘组合在一起的方式不同

(2)raid实现方式

    外接式磁盘阵列:通过拓展卡提供适配能力

    内接式RAID:主板集成RAID控制器

        安装OS前在BIOS里设置

    Software Raid:

(3)RAID级别

        RAID-0:

        读、写性能提升;

        可用空间:N*min(S1,S2,…)

        无容错能力

        最少磁盘数:2, 2

        RAID-1:

        读性能提升、写性能略有下降;

        可用空间:1*min(S1,S2,…)

        有冗余能力

        最少磁盘数:2, 2N

        RAID-4:

        多块数据盘异或运算值,存于专用校验盘

        RAID-5:

        读、写性能提升

        可用空间:(N-1)*min(S1,S2,…)

        有容错能力:允许最多1块磁盘损坏

        最少磁盘数:3, 3+

        RAID-6:

        读、写性能提升

        可用空间:(N-2)*min(S1,S2,…)

        有容错能力:允许最多2块磁盘损坏

        最少磁盘数:4, 4+

        RAID-10:  比RAID-01性能好

        读、写性能提升

        可用空间:N*min(S1,S2,…)/2

        有容错能力:每组镜像最多只能坏一块

        最少磁盘数:4, 4+

        RAID-01、RAID-50

        RAID7:可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式

        JBOD:Just a Bunch Of Disks

        功能:将多块磁盘的空间合并一个大的连续空间使用

        可用空间:sum(S1,S2,…)

(4)mdadm:为软RAID提供管理界面(感觉不好用)

    mdadm [mode] <raiddevice> [options] <component-devices>

    创建磁盘阵列

        mdadm –create –auto=yes /dev/md[0-9] –raid-device=n –level=[0 1 5] –spare-device=m /dev/sdx….

    查看磁盘阵列信息

        mdadm –detail 磁盘阵列名

        cat /proc/mdstat

    管理磁盘阵列

        mdadm –manage /dev/md[0-9] [–add 设备] [–remove 设备] [–fail 设备]

    软磁盘阵列配置文件

        /etc/mdadm.conf

        生成配置文件  mdadm -D  -s >> /etc/mdadm.conf

    关闭磁盘阵列

        mdadm –stop /dev/md*

实例:用5块磁盘创建一个raid5,并模拟实现raid5容错功能

  1. 新建分区,分区标识符为fd,其他几个分区类似

    1.1.png

  2. 创建raid

    1.2.png

  3. 查看/dev/md0信息

    1.3.png

  4. 把/dev/md0格式化后挂载到/mnt/raid下边

    1.4.png

    1.5.png

  5. 在/mnt/raid新建文件f1,使得/dev/sdd1处于出错状态

    1.6.png

  6. 查看md0信息

    1.7.png

    发现原来的空闲分区/dev/sde2处于工作状态,而/dev/sdd1处于出错状态

  7. 最后发现在centos6.8环境下,不管模拟几块硬盘出错误,文件都能看,而且不是以内文件小于chunk的原因,

    由于此处仅是帮助理解raid原理,故不作深究

三.逻辑卷相关知识详解

(1)逻辑卷可以弹性调整文件系统的容量,raid在于性能与数据的保全

        *dm device mapper:将多个底层块设备组织成一个逻辑设备的模块

        *设备名:/dev/dm-#

        *软链接:

         /dev/mapper/VG_NAME-LV_NAME

            /dev/mapper/vol0-root

        /dev/VG_NAME/LV_NAME

            /dev/vol0/root

        *PE默认大小为4M

        *逻辑卷存储方式: 线性方式,类似于raid 0

                                    交错方式(triped):类似于raid 1

(2)pv管理工具

        pvcreate:将物理分区新建为pv

        pvscan:查询系统内哪些磁盘具有pv

        pvdisplay:显示目前系统上pv状态

        pvs:简要pv信息

        pvremove:让该分区不具有pv属性

        pvmove :移动PE

(3)vg管理工具

        vgcreate  [-s n[mgt]] 指定PE大小   单位大小写均可

        vgscan

        vgs

        vgdisplay

        vgremove:删除一个VG

        vgextend:在VG内增加额外的PV

        vgreduce:在VG内删除pv

        vgchange:设置VG是否启动

(4)lv管理工具

        lvcreate

        lvscan

        lvs

        lvdisplay

        lvextend    可以确实改变文件系统大小

        lvreduce

        lvremove

        lvresize:对LV容量大小进行调整

        lvcreate [-L n[mgt]] [-n LV名称] VG名称

        lvcreate [-l n] [-n LV名称] VG名称

        参数:

            -L 后边接容量,最小单位是PE

            -l 后边接的是PE的个数

            -n 接的是LV的名称

重设文件系统大小

    fsadm[options] resize device [new_size[BKMGTEP]]

    resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]

(5)xfs_growfs device     xfs文件系统确实增长   不可减少

(6)lvm的系统快照

        *快照是特殊的逻辑卷,它是在快照生成时逻辑卷的准确拷贝

        *快照只有在他们和原来的逻辑卷不同时才会消耗空间

        *快照中只含有原逻辑卷中更改的数据以及手动在快照文件中改变的数据

        *快照去与被快照的lv卷在同一个vg中

    快照区的新建:

        lvcreate -l #1 -s -n 快照去设备名称 被快照lv卷

    利用快照区复原系统:

           1 把快照区当下文件全部备份

           2取消快照区的挂载,如果先取消被快照区,会把快照去溢满

           3 取消被快照区的挂载,重新格式化、挂载被快照区,然后把备份文件解压缩到被挂载区

           4 利用快照去构建测试环境:

    创建快照区

          1  取消被快照区的挂载(可有可无,隐藏起来较好)

          2  随意操作快照区

          3 重新格式化快照区,并在次创建快照区

作业:

1、创建一个至少有两个PV组成的大小为15G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
2、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录
3、扩展testlv至7G,要求archlinux用户的文件不能丢失
4、收缩testlv至3G,要求archlinux用户的文件不能丢失
5、对testlv创建快照,并尝试基于快照备份数据,验正快照的功能

  1. 创建两个分区id为8e的分区,如下所示

    1.png

  2. 创建pv,并显示信息

    2.png

    3.png

  3. 创建PE大小为16MB的卷组testvg,大小为15G

    4.png

  4. 创建大小为5G的逻辑卷testlv

5.png

5.格式化逻辑卷后,把挂载逻辑卷到/users下

6.png

实际上lvm使用的设备是放在/dev/mapper/目录下,所以会看到上诉第二个红线所画部分

6.新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录

7.png

8.png

显示当前文件所占大小

1.png

7.扩展testlv到7G大小,查看数据大小

2.png

发现数据大小不变,数据应该没有丢失

查看逻辑卷所在文件系统大小,发现大小依旧为5G

3.png

8.用resize2fs改变文件系统大小

5.png

查看数据大小,发现大小没变

4.png

8.收缩/testlv至3G,要求不损坏数据

(1)先用resize2fs直接缩小文件系统大小,发现不支持在线修改

6.png

(2)取消/dev/testvg/testlv挂载,然后检查文件系统

7.png

(3)缩减所建文件系统的大小到3G

1.png

8.png

(4)为不损坏数据,缩小后的lvm大小必须大于数据大小

9.png

发现缩减后的lvm大小远大于文件数据大小

9.对/dev/testvg/testlv创建快照

(1)为/dev/testvg/testlv创建快照

2.png

(2)挂载到/snapshot下,结果如下

4.png

(3)查看快照区与被快照区的内容

5.png

(4)在/users下添加issue文件,查看快照去区使用情况

6.png

(5)把快照区内容打包备份,然后取消快照区的挂载;要不一会儿格式化被快照区,快照区会溢满

7.png

(6)卸载快照区,重新格式化快照区,然后挂载到/users下,再把打包文件解压缩到/users下

11.png

12.png

13.png

发现/users下并没有新添加的issue文件,快照功能实现

原创文章,作者:mengzhiqian,如若转载,请注明出处:http://www.178linux.com/42635

(0)
mengzhiqianmengzhiqian
上一篇 2016-09-06
下一篇 2016-09-06

相关推荐

  • 马哥教育网络班22期+第4周课程练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。     [root@director2 ~]# cp -a /etc/skel /home/tuser1   &n…

    Linux干货 2016-08-29
  • bash脚本与程序包管理

    概述:本章主要介绍bash编程中的函数和数组以及字符串处理和程序包管理工具等,来帮助小伙伴们更进一步的了解bash编程的内容和软件的安装、更新、卸载、查询等操作。 一、函数介绍 函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。 它与shell程序形式上是相似的,不同的是它不是一个单独的进程,不能独立运行,而是shell程序…

    Linux干货 2016-08-24
  • Linux之进程和计划任务

    进程的概念     内核的功用:进程管理、文件系统、网络功能、内存管理、驱动程序、 安全功能等     Process: 运行中的程序的一个副本,是被载入内存的一个指令集合进程ID(Process ID,PID)号码被用来标记各个进程    &nbs…

    Linux干货 2016-10-09
  • 文件查找命令之find

    文件查找命令一共有两种,locate 和find ,那么他们在用法和功能上面有什么区别呢?     locate:查找速度快,模糊查找,遍历整个文件系统的目录到数据库中,然后在去数据库中查找,依赖于事先创建好的索引库,该数据库属于系统自动创建,定期自动更新,也可手动跟新,更新命令updatedb,更新数据库需要遍历整个根文件系统…

    Linux干货 2016-08-16
  • 初学Linux

       已经学习了Linux一周了,从原来的设计网页、动画影视制作、3D模型到现在的黑白界面虚拟世界,从原来吃睡由我到现在重回高三生活,说实话,一开始还是不太能适应的,尤其是眼睛,酸胀痛。不过,越努力越幸运,也觉得linux其实很有意思。。以下是我第一篇微博的内容,也是我学习linux一周所总结的知识。 首先,学习一门知识就要先了解他的历史…

    Linux干货 2017-07-15
  • 每日一练–8.2 用户管理,权限管理

    (1)显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现至少一位数字的文件或目录。     ll /var/l*[[:digit:]]*[[:lower:]] (2)显示以/etc目录下以任意一位数字开头,且以非数字结尾的文件或目录      ll /etc/[[:digit:]]*[^[:dig…

    Linux干货 2016-08-05

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-20 10:58

    写的很好·哦,坚持写下去,不要半途而废哦,