美文网首页
高级文件系统管理

高级文件系统管理

作者: 逢场作戏_6fb9 | 来源:发表于2017-06-24 20:04 被阅读0次

    配置配额系统

    综述

    •在内核中执行

    •以文件系统为单位启用

    •对不同组或者用户的策略不同

    根据块或者节点进行限制

    •执行软限制(soft limit)

    •硬限制(hard limit)

    初始化

    •分区挂载选项:usrquota、grpquota

    •初始化数据库:quotacheck

    执行

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

    •直接编辑配额:edquota username

    •在shell中直接编辑:

    setquota usename 4096 5120 40 50 /foo

    •定义原始标准用户

    edquota -p user1 user2

    示例:对/home下的kbq用户进行配额:

    将home迁移到一个独立的磁盘分区(具体见实验) quotacheck -cu /home(对home下的用户创建配额机制)

    若上述命令有报错,是由于SElinux,后续会有介绍 [root@centos7 ~]#getenforce Enforcing

    [root@centos7 ~]#setenforce 0

    [root@centos7 ~]#getenforce

    Permissive

    进行上述操作后再创建配额机制即可。

    创建成功后在/home目录下回生成一个aquota.user的二进制文件(表示创建配额成功。)

    [root@centos7 ~]#quotaon -p /home

    group quota on /home (/dev/sdb2) is off

    user quota on /home (/dev/sdb2) is off

    在/etc/fstab中的defaults后面加userquota

    [root@centos7 ~]#quotaon /home

    [root@centos7 ~]#quotaon -p /home

    group quota on /home (/dev/sdb2) is off

    user quota on /home (/dev/sdb2) is on

    #edquota kbq即可对kbq用户进行配额的编辑了。

    注意:grpquota针对的是用户的所属组而不是属主

    RAID

    提高IO能力:

    磁盘并行读写

    提高耐用性;

    磁盘冗余来实现

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

    RAID实现的方式:

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

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

    安装OS前在BIOS里配置

    软件RAID:通过OS实现

    RAID-0:条带卷,strip

    读、写性能提升;

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

    无容错能力

    最少磁盘数:2, 2

    RAID-1: 镜像卷,mirror

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

    可用空间: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

    读、写性能提升

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

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

    最少磁盘数:4, 4+

    实验:制作RAID 5

    准备了4块硬盘,sdc,sdd,sde,sdf1 (均为30G)并且使sdf1的属性为fd且为备用盘。

    #开始制作 mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{c,d,e,f1}

    #在制作期间可能需要一段时间,可用cat /proc/mdstat命令查看进度(也可用mdadm -D /dev/md0)

    #在生成md0这个设备之后需要将其存入配置文件中 (这个文件的作用在于若该raid设备被禁用了之后若没有这个文件raid设备将无法启动。) mdadm -Ds /dev/md0 > /etc/mdadm.conf

    #创建完成后对该设备创建文件系统

    mkfs.ext4 /dev/md0 建立一个挂载点并将md0挂上

    mkdir /mnt/raid

    mount /dev/md0 /mnt/raid

    #为了实验需要复制一些文件到raid下

    cp /etc/passwd /mnt/raid/f1 

    cp /etc/passwd /mnt/raid/f2

     cp /etc/passwd /mnt/raid/f3

    测试写速度:dd if=/dev/zero of=/mnt/raid/bigfile bs=1M count=1024

    测试读速度:dd if=/dev/zero of=/mnt/raid/bigfile bs=1M count=1024

    要想保存住,一定要写入配置文件中。

    raid10的制作:(具体步骤参考raid5)

    方法1

    #先建立底层建筑2个raid1的设备md0和md1 mdadm -C /dev/md0 -a yes -l 1 -n 2 /dev/sdb{1,2}

    mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdc{1,2}

    #再将2个raid1设备做raid0 mdadm -C /dev/md2 -a yes -l 0 -n 2 /dev/md{0,1}

    方法2:

    mdadm -C /dev/md0 -a yes -l 10 -n 4 /dev/sdb{1,2} /dev/sdc{1,2}

    软件raid的实现:

    mdadm:模式化的工具

    命令的语法格式:mdadm[mode] [options] 

    支持的RAID级别:LIEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10

    模式:

        创建:-C    装配: -A    监控: -F     管理:-f, -r, -a

    -C: 创建模式

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

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

    -a {yes|no}:自动创建目标RAID设备的设备文件 -c CHUNK_SIZE: 指明块大小

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

    -D:显示raid的详细信息;

           mdadm -D /dev/md#

    管理模式:

           -f: 标记指定磁盘为损坏   -a: 添加磁盘     -r: 移除磁盘

    观察md的状态:

           cat /proc/mdstat

    使用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 测试RAID设备

    使用mdadm检查RAID设备的状况

    #mdadm --detail|D /dev/md0

    增加新的成员

    #mdadm –G /dev/md0 –n4 -a /dev/sdf1

    软RAID测试和修复

    模拟磁盘故障

              mdadm /dev/md0 -f /dev/sda1

    移除磁盘

              mdadm /dev/md0 –r /dev/sda1

    从软件RAID磁盘修复磁盘故障

    替换出故障的磁盘然后开机

    在备用驱动器上重建分区

    mdadm /dev/md0 -a /dev/sda1

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

    生成配置文件:

    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

    注意:在删除raid时 1 umount 取消挂载 2 mdadm -S /dev/md0 停止raid设备 3 rm -f /etc/mdstat

    4 vim /etc/fstab 修改配置文件 5 mdadm --zero-superblock /dev/sda7

    彻底清除超级块信息 清除Raid成员上raid元数据

    逻辑卷管理器(LVM)

    突出优势:可扩展性

    原理: 底层为磁盘或分区,用fdisk命令将其system id改为8e (Linux LVM)

    第二层为创建PV和查看PV(physical volumes)

    创建的命令:pvcreate 设备名

    查看:pvs 或者 pvdisplay

    第三层为用PV创建VG

    工具为vgcreate,vgdisplay

    第四层为从VG中切割出LV

    工具lvcreate lvdisplay

    第五层为格式化后挂载使用

    工具:mkfs mount

    实验:创建逻辑卷的步骤:

    pvcreate /dev/sd{b5,c}

    #将/dev/sdb5,/dev/sdc 打包创建为物理卷

    此时可以pvs查看有无成功。

    vgcreate -s 16M vg0 /dev/sd{c,b5}

    #将已创建为物理卷的2个卷合成一个卷组 -s后跟PE的大小 并设置这个卷组的名称

    lvcreate -n lv0 -l 1000 vg0

    #-n 后跟创建的逻辑卷名称 ,-l 为此逻辑卷的大小(-L +xx为添加至xx) 针对vg0卷组操作

    lvdisplay

    --- Logical volume ---

    LV Path /dev/vg0/lv0

    LV Name lv0

    VG Name vg0

    #生成的逻辑卷/dev/vg0/lv0其实是一个软连接指向../dm-0

    -l 是以PE为单位 也可以跟100%free -L 后面跟大小容量

    实验:扩展逻辑卷

    假设我们现在的逻辑卷组的空间不够了,可以设置一个分区为物理卷后再添加。

    pvcreate /dev/sde

    #将该磁盘变成物理卷

    vgextend vg0 /dev/sde

    #对vg0这个卷组扩展/dev/sde这个物理卷

    lvextend -L 60G /dev/vg0/lv0

    #扩展至60G 对于lv0这个逻辑卷来说。

    resize2fs /dev/vg0/lv0

    #因为添加的物理卷没有文件系统,所以需要对其进行同步。(该命令只针对ext系列的文件系统,若要对xfs文件系统进行同步需用xfs_grows +设备名。命令。) 若先一步到位不在最后不用同步可用选项-r

    lvextend -r -L 60G /dev/vg0/lv0

    实验:缩减逻辑卷

    不支持在线使用,有损失数据的风险,需在缩减之前做备份。

    xfs文件系统不支持缩减。

    umount /mnt/lv0

    #需进行离线操作,取消挂载。

    e2fsck -f /dev/vg0/lv0

    #在执行某些重大操作前必须检查文件的完整性

    resize2fs /dev/vg0/lv0 30G

    #先缩减文件系统的空间

    lvreduce -L 30G /dev/vg0/lv0

    #在缩减逻辑卷的大小

    mount /dev/vg0/lv0 /mnt/lv0 #进行挂载使用

    注!!:操作期间不要挂载操作。

    实验:移除PV

    1 vgdisplay 空闲空间

    pvdisplay

    2 pvmove /dev/sdb

    将/dev/sdb中的数据移到其它卷组成员中

    3 vgreduce vg0 /dev/sdb

    将/dev/sdb 从vg0组中移除

    4 pvremove /dev/sdb

    将/dev/sdb 从物理卷中移除 5 卸载硬盘

    实验:跨主机迁移LV

    1 查看LV对应的卷组是由几个PV组合的

    /dev/sdc /dev/sdd

    2 查看下VG名称,确保在目标主机上的名称不要冲突

    vgrename vg0 newvg0

    lvrename /dev/vg0/lv0 /dev/newvg0/newlv0

    3在源主机

    umount /dev/newvg0/lv0

    vgchange -an newvg0

    vgexport newvg0

    4 将对应所有PV,接入到目标主机

    5 在目标主机

    pvscan

    vgimport newvg0

    vgchange -ay newvg0 激活

    mount /dev/newvg0/newlv0 /mnt/newlv0

    相关文章

      网友评论

          本文标题: 高级文件系统管理

          本文链接:https://www.haomeiwen.com/subject/qmukcxtx.html