磁盘配额、软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

相关推荐

  • 定时任务应用示例

    定时任务应用示例 1.每4小时执行一次对/etc目录的备份,备份至/backup目录中,保存的目录名为形如etc-201504020202 mkdir /backup crontab -e * */4 * * * cp -ar /etc/ /backup/etc-$(date +%Y%m%d%H%M) 2.每周2,4,6备份/var/log/messages…

    Linux干货 2017-08-06
  • sed对比grep之理解

    sed对比grep之理解 很多时候回车按下,没有结果,或是报错。 检查发现都是低级错误,关键是习惯刚学完grep,有写习惯没改过来。 sed语法很重要。script语法写对了,就成功了一大半,剩下的就是正则表达式的问题了。 sed与grep的区别是 grep是个行过滤器,筛选符合条件的行。也可以只显示每行匹配到的文本(-o选项),不对文本进行编辑,只是显示查…

    Linux干货 2016-08-10
  • Find命令的使用

    Find命令的基本用法 在Linux系统中find命令是一个强大文件查找类工具,它支持根据文件名,权限,文件大小,访问以及修改时间查找,使用方法如下: find [option] [查找起始路径] [查找条件] [处理动作] 起始路径:指定查找文件或目录的路径,默认为当前目录 查找条件:可根据文件名,权限,文件大小以及从属关系查找文件 处理动作:动查找到的文…

    Linux干货 2017-08-28
  • 进程管理

    Process Manager 工作管理  jobs ctrl+z,& bg,fg nohup 进程,资源管理  查看:pstree,ps,top,vmstat,pmap 查询:pgrep,pidof,fuser,lsof 管理:kill,nice,renice 管理软件or命令  htop glances dstat …

    Linux干货 2016-04-11
  • 认识shell

    一、认识shell 什么是shell?shell为单词外壳的意思。那么这是谁的外壳?我们知道一个系统中实际工作的是那些硬件,cpu、内存、磁盘等。我们如何调用这些硬件为我们工作?实际上,硬件是由内核kernel控制的。我们可以通过kernel控制硬件,但我们不能直接和内核kernel交流。我们需要一个外壳,这个外壳就是shell来沟通kernel。何为she…

    Linux干货 2015-09-22
  • Linux网络属性配置—iproute命令家族

    ip命令: show / manipulate routing, devices, policy routing and tunnels ip [ OPTIONS ] OBJECT { COMMAND | help } OBJECT := { link | addr | route | netns  } ip  OBJECT: ip li…

    Linux干货 2016-12-04

评论列表(1条)

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

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