Linux高级文件系统管理之磁盘配额、软RAID及LVM

高级文件系统管理之磁盘配额、软RAID及LVM

 

本章内容:

设定文件系统配额

设定和管理软RAID设备

配置逻辑卷

 

一、文件系统配额:

    执行软限制(soft limit)

硬限制(hard limit)

    注:磁盘配额只能针对分区控制有效,不能对整个磁盘控制,也不能跨分区控制。

    1、初始化:

分区挂载选项:usrquota、grpquota

初始化数据库:quotacheck

2、执行:

开启或者取消配额:quotaon、quotaoff

直接编辑配额:edquota username

在shell中直接编辑:(命令建立配额限制)

setquota usename 4096 5120 40 50 /home

定义原始标准用户:edquota -p user1 user2

blob.png

3、报告:

用户调查:quota username

blob.png

配额概述:repquota /home

blob.png

其它工具:warnquota 

 

事例:将home目录独立出来单独的分区,限制用户的使用。

(1)先创建分区,如下图的分区sda6

  blob.png

(2)命令同步系统的新增加分区,如下图:

  blob.png

(3)命令格式化新分区:

   blob.png

(4)创建临时挂载点,进行数据的迁移,如下图:

  blob.png

(5)迁移home目录的数据

  blob.png

(6)再次将迁移好数据的分区挂载到空目录home下:

  blob.png

(7)修改/etc/fstab配置文件,让机器启动自动检测挂载:

  blob.png

(8)再次修改/etc/fstab配置文件,对新分区启用配额初始化,如下图:

  blob.png

(9)取消和删除临时挂载点:

  blob.png

(10)关闭selinux:

  blob.png

(11)reboot

(12)系统启动完成后,命令初始化配额数据库和指定生效的分区挂载的目录:

  blob.png

(13)设置用户的配额限度:

  blob.png

  blob.png

(14)切换用户测试:

  blob.png

二、RAID

1、什么的RAID?

  多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供。

2、使用RAID的好处:

  提高IO能力:磁盘并行读写

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

  级别:多块磁盘组织在一起的工作方式有所不同

3、RAID实现的方式:

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

  内接式RAID:主板集成RAID控制器;安装OS前在BIOS里配置

4、RAID的级别了解:

(1)RAID0(条带卷)

   读、写性能提升;

   可用空间:N*min(disk1,disk2,…)

   无容错能力(坏掉其中任何一块硬盘都不行)

   最少/多磁盘数:2, 2+

   blob.png

(2)RAID1(镜像卷)

  读性能提升、写性能略有下降(因为同一份数据要写两次);

  可用空间:1*min(drive1,drive2,…)

  有冗余能力(可以出现坏掉其中的一块磁盘)

  最少/最多磁盘数:2, 2N

 没有应对防误删的能力。

 blob.png

(3)RAID4:

 读、写性能提升

 可用空间:(N-1)*min(disk1,disk2,…)

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

 最少/最多磁盘数:3, 3+

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

 可以通过校验盘的数据来应对其中的一块硬盘坏掉时,更换上新硬盘时可以恢复时间;但是由于校验盘的长时间读写,比较容易坏掉。

 blob.png

(4)、RAID5:(带有校验的条带机)

    读、写性能提升

    可用空间:(N-1)*min(disk1,disk2,…)

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

    最少/最多磁盘数:3, 3+

    据块P为校验位(当其中的一块硬盘坏掉时,更换上新的硬盘时,会自动通过校验位恢复相应的数据)

  blob.png

(5)、RAID6:读、写性能提升

   可用空间:(N-2)*min(disk1,disk2,…)

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

   最少/最多磁盘数:4, 4+

   数据块P、Q为校验位(当其中的两块硬盘坏掉时,更换上新的硬盘时,会自动通过校验位恢复相应的数据)

  blob.png

(6)RAID10混合类型级别:是两两成对组成了RAID1,再做RAID0

  (相当于一份数据先RAID0分开两份写,再RAID1同时写两份)

   读、写性能提升

   可用空间:N*min(disk1,disk2,…)/2

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

   最少/最多磁盘数:4, 4+

  blob.png

(7)RAID01混合类型级别:是两两成对组成了RAID0,再做RAID1

(相当于一份数据先RAID1同时写两份,再RAID0分开写两份)

  读、写性能提升

  可用空间:N*min(disk1,disk2,…)/2

  有容错能力:每组镜像可以全坏掉,但是只能坏其中的一组,如果两组同时出现坏掉其中的一块则不可以。

  最少/最多磁盘数:4, 4+

 blob.png

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

(9)JBOD:Just a Bunch Of Disks

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

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

 

三、mdadm命令:为软RAID提供管理界面

1、RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等等

2、mdadm:模式化的工具

命令的语法格式:mdadm[mode] <raiddevice> [options] <component-devices>

3、支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

4、模式:创建:-C;装配: -A;监控: -F;管理:-f, -r, –;-D:显示raid的详细信息(mdadm -D /dev/md#)。

5、C:创建模式

-n #: 使用#个块设备来创建此RAID

-l #:指明要创建的RAID的级别

-a {yes|no}:自动创建目标RAID设备的设备文件

-c CHUNK_SIZE: 指明块大小

-x #: 指明空闲盘的个数

6、管理模式:

-f: 标记指定磁盘为损坏

-a: 添加磁盘

-r: 移除磁盘

7、观察md的状态:

cat /proc/mdstat

9、创建软RAID步骤:

使用mdadm创建并定义RAID设备:#mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

 用文件系统对每个RAID设备进行格式化:#mke2fs -j /dev/md0

10、软RAID测试和修复:

测试RAID设备:使用mdadm检查RAID设备的状况:#mdadm –detail|D /dev/md0

  增加新的成员:#mdadm -G /dev/md0 -n4 -a /dev/sdf1

模拟磁盘故障:#mdadm /dev/md0 -f /dev/sda1

  移除磁盘:#mdadm /dev/md0 -r /dev/sda1

  从软件RAID磁盘修复磁盘故障:替换出故障的磁盘然后开机;在备用驱动器上重建分区

  #mdadm /dev/md0 -a /dev/sda1

mdadm、/proc/mdstat及系统日志信息

11、软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

12、删除软RAID:

    (1)#umount /mnt/raid 取消挂载

    (2)#mdadm -S /dev/md0 停止RAID设备

     blob.png

    (3)删除相应的分区,并同步到系统即可

    (4)#mdadm –zero-superblock /dev/sd* 清除RAID在各个磁盘分区上的信息

    (5)清除/etc/fstab上的挂载信息

    (6)删除RAID的配置文件

       (7)删除挂载点目录

 

事例:演示在CentOS6系统上做软RAID5:

(1)先准备三块磁盘

blob.png

(2)先对其中的一块磁盘进行分区,把全部的空间分成一个分区,如下图:

(可以用分区或者用整块磁盘来做RAID)

blob.png

(3)将已经分区好的磁盘分区表复制到其他磁盘即可,如下图:

blob.png

(4)需要对同步分区表的磁盘在系统上进行同步:

blob.png

(5)使用命令创建RAID5,如下图:(创建/dev/md0块设备,-a yes是让创建时默认回答yes;-l 5是指定RAID的级别为5;-n 3是指定有几块磁盘分区在使用;-x 1指定有几个磁盘分区为空闲状态;后面跟上哪些磁盘分区组成RAID5)

blob.png

blob.png

(6)创建RAID5完成,效果如下图:

blob.png

(7)生成配置文件,以免出现启动不了时可以进行恢复:

blob.png

(8)格式化磁盘:

blob.png

(9)修改/etc/fstab

blob.png

blob.png

(10)挂载RAID5设备:

blob.png

blob.png

(11)模拟其中的一个分区磁盘坏掉,测试效果如下图:

blob.png

blob.png

(12)恢复模拟损坏的磁盘分区:

blob.png

 

 

事例:删除软RAID:

(1)先取消挂载和停止RAID设备:

blob.png

(2)删除各个磁盘分区

blob.png

blob.png

blob.png

(3)查看清除磁盘分区后的系统磁盘信息:

(如果是一个磁盘分了多个分区的,需要使用命令#partx -d –nr N-M /dev/sd*逐个同步;*为各个磁盘的编号)

blob.png

(4)修改/etc/fstab

blob.png

(5)删除RAID配置文件:

blob.png

(6)删除挂载目录:

blob.png

 

 

四、LVM(逻辑卷管理器)

blob.png

(注:LVM可以弹性的更改LVM的容量;删除逻辑卷必须先删除LV,再删除VG,最后删除PV)

1、允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小

2、允许在多个物理设备间重新组织文件系统:

 (1)将设备指定为物理卷

 (2)用一个或者多个物理卷来创建一个卷组

 (3)物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的

 (4)在物理卷上创建的逻辑卷是由物理区域(PE)组成

 (5)可以在逻辑卷上创建文件系统

3、pv管理工具:

 (1)显示pv信息:(pvs:简要pv信息显示;pvdisplay)

   blob.png

 (2)创建pv:pvcreate /dev/DEVICE

 (分区需要更改分区的ID编号,则拿整个磁盘不需要去做ID的更改)

blob.png

blob.png

blob.png

blob.png

4、vg管理工具:

(1)显示卷组:vgs或者vgdisplay

(2)创建卷组:vgcreate vg0 /dev/sd{a6,b}

    blob.png

 (3)管理卷组:vgextend vg0 /dev/sdc

           vgreduce vg0 /dev/sdc

 (4)删除卷组:先做pvremove,再做vgremove

5、lv管理工具:

 (1)显示逻辑卷:lvs或者Lvdisplay

  (2)创建逻辑卷:lvcreate-L #[mMgGtT] -n NAME VolumeGroup

  (3)删除逻辑卷:lvremove/dev/VG_NAME/LV_NAME

  (4)重设文件系统大小:fsadm[options] resize device [new_size[BKMGTEP]];

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

blob.png

blob.png

(注:如下图,/dev/vg0/lv0其实是一个软链接)

blob.png

格式lv0逻辑卷:

blob.png

修改/etc/fstab配置文件:

blob.png

创建挂载点和挂载逻辑卷:

blob.png

5、扩展和缩减逻辑卷:

   (1)扩展逻辑卷:

# lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME

# resize2fs /dev/VG_NAME/LV_NAME

blob.png

blob.png

 (2)缩减逻辑卷:

# umount/dev/VG_NAME/LV_NAME

# e2fsck -f /dev/VG_NAME/LV_NAME

# resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT]

# lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME

# mount

6、扩展逻辑卷卷组空间:

   (1)创建物理卷:pvcreate /dev/sdc

    blob.png

 (2)为卷组分配物理卷:vgextend vg0 /dev/sdc

 blob.png

 

 

  

1:创建一个可用空间为1G的RAID1设备,要求其文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录

blob.png

blob.png

blob.png

blob.png

blob.png

blob.png

2:创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mydata目录

blob.png

blob.png

 

3、创建lv

blob.png

blob.png

blob.png

blob.png

4、扩展lv

blob.png

5、扩展卷组:

 扩展前:

 blob.png

 扩展后:

 blob.png

 

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

赞 (0)
Aaron_wangAaron_wang
上一篇 2016-09-01 08:50
下一篇 2016-09-01 08:50

相关推荐

  • Python高阶函数和装饰器

    高阶函数 First Class Object 函数在Python中是一等公民 函数也是对象,可调用(callable)的对象 函数可以作为普通变量、参数、返回值等等 高阶函数 数学概念y=g(f(x)) 在Python中,高阶函数应该满足下列至少一个条件 接受一个或者多个函数作为参数 输出一个函数 计数器 def counter(base): def in…

    Linux干货 2017-10-23
  • 命令read

    read命令是一个bash命令,它用于从键盘或标准输入中读取文本.我们可以使用read以交互的形式读取来自用户的输入.并且read还提供一种不需要按回车就能够输入参数的方法. read可以从标准输入中读取单独的一行,或者使用-u选项,从文件描述符FD中读取.并且这单独的行被分隔成多个域,第一个词被赋值给第一个变量,第一个赋值给第二个变量,以此类推,直到剩下的…

    Linux干货 2016-08-12
  • Linux grep与正则表达式浅析

    #Linux grep与正则表达式浅析 ##grep   grep(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 ###grep语法    &n…

    Linux干货 2017-04-06
  • SHELL流程控制之循环

    当进行脚本编程时,语句执行的流程控制通常有三种: l  顺序执行 l  选择执行 l  循环执行   条件选择if: if语句可以进行嵌套 if 判断条件;then          条件为真的分支代码 elif  判断条件;th…

    Linux干货 2016-08-18
  • MySQL常用命令

    本文大纲 MySQL命令             (0%) 交互式CLI工具     服务端命令 mysqld服务器程序 数据类型 DDL语句                 &n…

    Linux干货 2017-02-16
  • grup修复与安装操作介绍

    一、bgru Stage1的安装     1、stage1存储在MBR的前446字节,首先破坏。使用dd命令     2、使用grub-install命令安装修复grub stage1     3、使用grub命令修复 二、进入救援模式,修改grub     1、先破坏grub …

    Linux干货 2016-06-03

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-01 17:43

    文章内容很完整,通篇下来能让读者学到很多知识,继续努力。