磁盘配额、软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 08:51
下一篇 2016-09-06 08:51

相关推荐

  • Linux终端的类型

    Linux终端可以分为如下几种类型    1、物理终端:是指通过键盘显示器直接连接到主机的方式,我们也称之为console端。    2、虚拟终端:是利用软件的方式模拟实现类似物理终端的访问方式,通常Linux内核开启6个虚拟终端,分别使用Ctrl+Alt+F1~F6实现不同tty虚拟终端之间的切换,供多用户或者多任务…

    Linux干货 2016-10-29
  • Memcache存储大数据的问题

    Memcache存储大数据的问题   huangguisu       Memcached存储单个item最大数据是在1MB内,如果数据超过1M,存取set和get是都是返回false,而且引起性能的问题。 我们之前对排行榜的数据进行缓存,由于排行榜在我们所有sql select…

    Linux干货 2015-05-05
  • Linux的文件压缩、解压之tar的使用

    文件的压缩   一、压缩、解压缩及归档工具 压缩 解压 后缀(压缩后) file-roller 图形操作界面上的使用(略) compress 解压一:uncompress 或compress -d (注:使用上面的解压命令,实际上是在屏幕上打印解压的文件信息,并不是真正上解压到文件,所以需要在命令后面加上“重定向到指定的文件中”,方可完成解压。如:…

    Linux干货 2016-08-18
  • 马哥教育网络班22期+第6周课程练习 忍者乱太郎喻成

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#cp /etc/rc.d/rc.sysinit /tmp方法一 vim法在vim下用 : 进入命令行模式     %s/^&nbs…

    Linux干货 2016-10-24
  • 优云软件数据专家最佳实践:数据挖掘与运维分析

    这份研究报告,作者是优云软件数据专家陈是维,在耗时1年时间制作的一份最佳实践,今天和大家分享下,关于《数据采矿和运维分析》,共同探讨~ 数据挖掘(Data Mining)是从大量数据中提取或“挖掘”知识。 广义数据挖掘:数据挖掘是从存放在数据库、数据仓库或其它信息库中的大量数据挖掘有趣知识的过程。 数据挖掘技术侧重:1)概率与数理统计 2)数据库技术 3)人…

    大数据运维 2016-07-16
  • linux用户和用户组

    一、用户和组 1、用户账号类型 在Linux系统中,根据系统管理的需要将用户账号分为不同的类型,其拥有的权限、担任的角色也各不相同。主要包括超级用户、普通用户和程序用户。 【超级用户】:root用户是Linux系统中默认的超级用户账号,对本主机拥有最高的权限,类似于Windows系统中的Administrator用户。只有当进行系统管理、维护任务时,才建议使…

    Linux干货 2017-07-22

评论列表(1条)

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

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