zoukankan      html  css  js  c++  java
  • 6.磁盘配额与进阶文件系统管理

    /etc/mtab
    /etc/warnquota.conf

    1.quota的一般用途和使用限制

           【1-0,1】

    2.quota实战
           案例一:【1-3】df  mount  quotacheck  quotaon  edquota quota dd du repquota warnquota
           第一步:使用脚本制作账号环境
          #  vim addacount.sh
     #!/bin/bash
           groupadd myquotagrp
           for username in myquota1  myquota2 myquota3   myquota4 myquota5
           do
               useradd -g myquotagrp  $username
               echo  "passwd" |  passwd --stdin $username
               #setquota -u $username 40000 50000 0 0  /home      ----对每个用户进行quota(edquota -p的方式也可以在脚本中使用,不过要实现有个参照的原始用户)
           done
           # sh addacount.sh
           第二步:查看核心和文件系统是否支持
           # df -h /home     ----查看要进行quota限制的目录是否是独立的文件系统(单独分区)
           # mount | grep home     ----查看文件系统的类型(vfat不支持quota)  
     
            第三步:重新挂载并设置目标文件系统对quoat的支持
                    a方式:手动重新挂载(只在本次使用系统有效,重启后市区支持)
       
                # mount -o remount,usrquota,grpquota /home        ----系统将同步更新/etc/mtab,
                # mount | grep home     ---查看是否已经支持quota
                    b方式:修改/etc/fstab
                     # vim /etc/fstab        ----最好先备份一个
                          LABEL=/home   /home    ext3    defaults,usrquota,grpquota 1 2      #在defaults后加上那两个参数
                     # umount /home     ----卸载/home
                     # mount -a           ----
                     # mount | grep home    ----查看
                    第四步:建立quota记录文件
                     quotacheck     ----扫描文件系统并建立quota的记录文件【1-2】
                     # quotacheck -avug     ----下面启动quota后如果有特殊需求需要重新扫描磁盘并建立quota文件可以加上-mf参数
                     # ll -d /home/a*           ----/home/aquota.user          /home/aquota.group
                    第五步:启动quota服务
                     quotaon ,quotaoff【1-4,5】
                     # quotaon  -avug            ----根据/etc/mtab内的filesystem系统设定启动相关quota支持
                               注意:这个指令只在第一次启动quota是需要执行,重启系统后/etc/rc.d/rc.sysinit脚本将在系统启动时自动执行这个指令
                    第六步:编辑账号/群组的限值(soft,hard)与宽限时间(grid time)
                    edquota(vi)【1-6】
                     # edquota -u myquota1    ----【1-7】
                       【1-8】 ====> 【1-9】
                     将对myquota1的限值复制给其它四个用户
                     # edquota  -p myquota1 -u myquota2
                     # edquota  -p myquota1 -u myquot3
                     # edquota  -p myquota1 -u myquota4
                     # edquota  -p myquota1 -u myquota5
                     # edquota -g  myquotagrp     ---- 修改群组的quota【1-10】
                    第七步:查看quuota限制值的报表
                     quota :针对某些用户显示quota报表【1-11】
                     # quota -uvs myquota1 myquota2     ----显示myquota1和myquota2的限额
                     # quota -gvs myquotagrp        ----显示myquotagrp群组的限额
                     repquota : 针对整个文件系统列出报表【1-12】
                     # requota -auvs           ----查询整个文件系统中账户的quota限制情况
                    第八步:测试与管理
                    # dd if=/dev/zero  of=bigfile bs=1M count=270     ----由于quota的限制,这里会出现一些警告信息(介于soft250-hard300之间)
                    # repquota -auv           ----具体查看目前的quota状态(grace将出现值)
                    # dd if=/dev/zero  of=bigfile2   bs=1M count=300        ----总容量超过hard,超过的部分将没有办法写入
                    # du -sk               ----显示当前目录的总大小,单位为kbit
                    
                    # warnquota        ----对超过限额者发出警告信,同时也会发给root一封
                    # mail            ----查看是否收到警告邮件【1-13】
                    # vim  /etc/warnquota.conf            ----自定义警告邮件信息【1-14】
                    注:不适用/var/spool/mai(如果在quota控管下)爆表的情况,因为爆表了就不能接收邮件了
                   # vim /etc/cron.daily/wornquota            
                   /usr/sbin/warnquota        ----加入工作排程,每天早上4:02都会被执行

    3. setquota:指令的方式设定quota限额
                  案例一:观察账号myquota5原始的quota限额,并将soft/hard更改为100000/200000
                  # quota -uv myquota5
                  # setquota -u myquota5 100000 200000 /home
                  案例二:不更动既有系统的quota实例(/var/spool/mail没有单独分区)
                  # cp -a  /var /spool/mail    /home/mail       ----完成复制,这里/home独立分区
                  # ln -s /home/mail /var/spool/mail       ----通过镜像的方式建立软链接 
                 注意:经过上面的操作,对/home的quota设置回作用在/var/spool/mail上

    4.RAID  :容错式廉价磁盘阵列
                 一:几种磁盘阵列
                 RAID-0(等量模式):效能最佳【1-16】
                 RAID-1(印象模式):完整备份 一般写入性能较差 【1-17】
                 RAID 0+1   、RAID 1+0:RAID-0 RAID-1结合【1-18】
                 RAID 5:效能与数据备份均衡(每颗磁盘加入一个同位检查数据parity)【1-19】
                 RAID 6:RAID 5的升级版,用两颗磁盘做parity    
                 spare disk:预备磁盘,自动取代磁盘整列中坏掉的硬盘
      二:磁盘阵列的优点总结【1-20】
      三:硬件磁盘整阵列和软件磁盘阵列(software/hardware RAID)
             hardware RDID: /dev/sd[a-p]
     
             software RAID: /dev/md[0......]
                  比如entos下的 mdadm【1-21,22】
                  案例一:建立一个RAID 5软件磁盘阵列【1-23】
                  第一步:为了使案例清楚,先清理一下分区
                  # fdisk -l         ----查看全部分区
                  # df                 ----查看本系统使用的分区
                  # fdisk /dev/hda        ----对/dev/sda这块硬盘进行操作
              Command(m for help):d         ----删除某个分区
                  Partition number(1-9):9             ----表示删除地9个分区
                  Command(m for help):p          ----预分区结构
                  Command(m for help):w            ----将操作写入硬盘(意味着真正执行上面的操作)
                  # partprobe                       ----更新核心的分区表
                  第二步:用fdisk命令建立5个分割槽
                  #fdisk /dev/hda
              Command(m for help):n      ----新建分区
                 First...... :           ----Enter
                 Last...... : +1000M
                 Command(m for help):n      ----新建分区
                 First...... :           ----Enter
                 Last...... : +1000M
                    (一共重复5遍)
                Command(m for help):p        ----预览
                Command(m for help):w        ----写入
                # partprobe                       ----更新核心的分区表
                第三步:用mdadm建置磁盘阵列
               # mdadm --create --auto=yes /dev/md0 --level 5 --raid-devices=4 --spare-devices=1 /dev/hda{6,7,8,9,10}              ----这一个命令就完成了整个RAID 5的建立
               # madam  --detail /dev/md0         ----查看/dev/md0的RAID细节信息【1-24,25】
               # cat /proc/mdstat           ----也可以通过这个文件查看系统的RAID情况【1-26】
               第四步:格式化md0这个装置
               # mkfs -t ext3 /dev/md0             ----md0作为装置被格式化
               # mkdir /mnt/raid
               # mount /dev/md0  /mnt/raid   ----将格式化好的/dev/md0挂载到/mnt/raid
               # df       ----查看一下挂载的设备
              
              案例二:RAID的救援模式【1-27】
               第一步:为了支持案例,先设置磁盘为错误
       # cp -a /etc   /var/log   /mnt/raid         ----复制些文件到RAID
               # df /mnt/raid ; du -su  /mnt/raid/*       ----查看磁盘空间使用情况;查看文档占用空间情况
               第二步:假设/dev/hda8这个装置出错了
               # mdadm --manage /dev/md0  --fail /dev/hda8           ----手动设置其出错,此时RAID会自动用/dev/hda10取代/dev/hda8 RAID 5重建系统
               # mdadm --detail  /dev/md0               ----查看重建的RAID 5的详细信息
               # cat  /proc/mdstat    
               第三步:现在我们手动创建一个新的分区取代坏掉的分区作为spare space
               # fdisk  /dev/hda
             Command(m for help):n     ----创建新分区
               【Enter】 
              +1000M
               Command(m for help):w     ----写入新分区
               #partprobe                ----重建分区表,此时系统多了一个新分区
               #mdadm  --manage /dev/md0 --add /dev/hda11   --remove /dev/hda8    ----重RAID 5中去掉/dev/hda8,加入/dev/hda11
               #mdadm  --detail /dev/md0       ----查看一下是否完成
         四:开机自动启动RAID并自动挂载
          第一步:查看/dev/md0的UUID
          #mdadm --detial /dev/md0 | grep  -i uuid
          第二步:开始设定/etc/mdadm.conf
          #vim /ect.mdadm.conf
          ARRAY /dev/md0 UUID=【上面查到的/dev/md0的uuid】
          第三步:设定开机自动挂载
         #vim /etc/fstab
         /dev/md0     /mnt/raid/   ext3 defaults 1  2
         # umount /dev/md0 ; mount -a       ----重新挂载
         # df   /mnt/raid        ----查看它是否被挂载
                   第四步:重启测试
        五:关闭software RAID
                   # umount /dev/md0          ----先卸载
                   # vim /etc/fstab               ----随启动挂载/dev/md0的指令去掉
                    /dev/md0     /mnt/raid/   ext3 defaults 1  2        ----将这一行开机自动挂载的信息删掉或者注释掉
                   # mdadm --stop /dev/md0             ----停止software RAID
                   # cat /proc/mdstat       ----看看是否成功关闭了
                   # vim /etc/mdadm.conf         ----software RAID的配置文件中去掉/dev/md0这个装置
                   ARRAY /dev/md0 UUID=【上面查到的/dev/md0的uuid】

    5.逻辑滚动条管理员(Logical Volemn Manager) LVM   弹性调整文件系统的大小
       一.基本知识
                   PV【1-28,35】 PE【1-29】 VG【1-30,38】 LV【1-31,41,42】 
                   PE和VG的关系【1-32】
                   LVM的操作流程【1-33】 
                   8e            LVM的标识符
      二.实战
         案例一:从无到有创建LVM【1-34】
           第一步:磁盘初始化
           #fdisk /dev/hda              ----分割出4个新的分区
           #partprobe                ----更新分区表
           #fdisk -l                        ----查看磁盘分区后的情况
           第二步:查看有无PV在系统中,然后将hda{6,7,8,9}建立为PV格式
           # pvscan    ----查看有无PV格式的分区【1-36】
           #pvcreate   /dev/hda{6,7,8,9}         ----将hda{6,7,8,9}建立为PV格式
           #pvscan    ----再查看一下
           #pvdisplay      ----会看到更加详细的信息【1-37】
           第三步:建立VG,指定PE大小
           # vgcreate  -s  16M vbirdvg /dev/hda{6,7,8}        ----将/dev/hda{6,7,8}创建成一个VG,并且指定PE的大小为16M【1-39】
           # vgscan          ----查看vg​【1-39】
           # vgdisplay      ----更加详细地观察【1-40】
           第四步:扩展vbirdvg这个VG,把省下来的/dev/hda9丢给它
           # vgextend vbirdvg /dev/hda9
           # vgdisplay       ----现在再来纤细观察一下
           第五步:对VG建立LVM意义上的分割区LV
           #lvcreate -l 356  -n vbirdlv vbirdvg    ----将virdvg的356个PE统统分配给vbirdlv(根据上面的设定,这里每个PE大小16M,356是自行计算出来的)
           or
           #lvcreate -L 5.56G -n vbirdlv vbirdvg       ----和上面的效果是一样的
           #ll /dev/vbirdlv             ----查看建立好的LV,我们在上面给它取名vbirdlv
           #lvdisplay                      ----【1-43】
           第六步:文件系统阶段
           # mkfs -t ext3  /dev/vbirdvg/vbirdlv        ----将那个LV(要用全名)格式化为ext3格式的 
           # mkdir /mnt/lvm             ----创建一个挂载点
           # mount /dev/vbirdvg/vbird/lv    /mnt/lvm         ----挂载上去
           # df               ----查看一下挂载的情况【1-44】
           
         案例二:放大LV容量【1-45】
           第一步:处理出新的分区
           #fdisk /dev/hda          ----详细参考上面的案例
           #partprobe
           #fdisk -l       ----查看新建号的分区
           第二步:针对新的分区建立新的PV
           # pvcreate /dev/hda10  
           #pvscan
           第三步:利用vgextend加大VG
           # vgextend  vbirdvg /dev/hda10
           # vgdisplay
           第四步:利用lvresize放大LV
           #  vgresize -l +172 /dev/vbirdvg/vbirdlv         ----【1-46】
           #  lvdisplay          ----查看一下
           第五步:利用resize2fs处理文件系统
           # dumpe2fs  /dev/vbirdvg/vbirdlv          ----先查看一下文件系统的superblock【1-47】
           # resize2fs   /dev/vbirdvg/vbirdlv            ----将LV的容量扩充到整个文件系统(可以在线进行哦)
           #df /mnt/lvm;ll /mnt/lvm            ----看看扩充对磁盘及文档的影响,发现磁盘扩容了,但文档没受影响
     
         案例三:缩小LV容量
            第一步:先找出/dev/hda6的容量大小,并尝试计算文件系统需要缩小到多少
           # pvdesplay       ----【1-49】
           # pvscan              ----【1-50】
           第二步:降低文件系统容量
           # umount /mnt/lvm        ----缩小无法在线进行(扩大可以),先将其卸载
           # e2fisk -f /dev/vbirdvg/vbirdlv         ----先进性磁盘检查
           # resize2fs /dev/vbirdvg/vbirdlv  6900M      ----将/dev/vbirdvg/vbirdlv这个LV缩小到6900M
           # mount  /dev/vbirdvg/vbirdlv   /mnt/lvm   ---挂载
           # df /mnt/lvm             ----察看一下 
           第三步:降低LV的容量,/dev/hda6有89个PE
           # lvresize -l -89 /dev/vbirdvg/vbirdlv
           # lvdisplay  ----观察一下现在/dev/vbirdvg/vbirdlv的大小
           # pvdisplay        ----查看一下哪个PV有free的PE,好把等下移除de/dev/hda6中的东西转过去,发现是hda10
           # pvmove /dev/hda6 /dev/hda10       ----将/dev/hda6的PE统统移动给/dev/hda10
           # vgreduce vbirdvg  /dev/hda6            ----将/dev/hda6移出这个LV
           # pvsacn        ----再来观察一下,看看/dev/hda6是否还在/dev/vbirdvg中
           # pvremove /dev/hda6    ----最后将/dev/hda6这个PV干掉,/dev/hda6可以进行其他的用途了

    6.LVM的系统快照【1-55】
           案例一:快照区的建立
           第一步:有一接着上一个案例已经没有了剩余的PE,所以先把/dev/hda6加回来
           # vgdiisplay     ----看看vbirdvg还有多少剩余的VG
           # pvcreate /dev/hda6         ----重新将/dev/hda6创建为一个PV 
           # vgextend   vbirdvg /de/hda6   ----增加到vbirdvg
           #vgdisplay     ----查看一下
           第二步:利用lvcreate建立系统快照区
           # lvcreate -l 60 -s -n vbirdss /dev/vbirdvg/vbirdlv         ----系统快照区其实就是一个LV,这里用lvcreate创建,分配60个PE给它,取名为vbirdss,被快照的LV为/dev/vbirdlv【1-51】
           # lvdisplay         ----【1-52】
           # mkdir /mnt/snapshot             ----建一个快照区的挂载点
           # mount /dev/vbirdvg/vbirdss   /mnt/snapshot        ----挂载
           #df          ----看一下快照区和被快照区的容量【1-53】
           # umount /mnt/snapshot             ----查看完毕卸载掉
          
           案例二:利用快照区复原系统
           第一步:现将被快照的区域做些修改
           # df  /mnt/lvm     ----查看一下现在的样子
           # ll  /mnt/lvm
           # rm -r /mnt/lvm/log      ----删些资料
           #cp -a /boot/lib  /sbin/     /mnt/lvm    ---复制些资料进来
           # ll  /mnt/lvm           ----看看变化
           #lvdisplay      /dev/vbirdvg/vbirdss      ----看看快照区是否已经发生了变化
           第二步: 利用快照区将原本的文件系统备份
          # mount  /dev/vbirdvg/vbirdss /mnt/snapshot            ----将快照区挂载到文件系统
          # df           ----【1-54】
          # mkdir -p /backups         ----创建这个根文件夹
          # cd /mnt/snapshot
          # tar -jcv  -f  /backups/lvm.tar.bz2*         ----创建备份文件到/backups
          注意:/mnt/lvm         ----被快照的文件系统/dev/vbirdvg/vbirdlv挂载的位置
                    /mnt/snapshot        ----快照区挂载的位置
                    /backups/lvm.tar.bz2           ----快照区备份
                    复原/mnt/lvm中的内容需要先将其格式化,但这样一来,其所有的内容又会快照到/mnt/snapshot,所以不能直接将/mnt/snapshot直接复制到/mut/lvm
          # umount /mnt/snapshot               ----快照区的内容已经备份到当前系统的文件系统了,所以可以卸载了
          # lvremove      /dev/vbirdvg/vbirdss           ----将/dev/vbirdvg/vbirdlv这个LV从VG中去掉(这个LV奖不再存在)
          # umount  /mnt/lvm         ----格式化之前先从文件系统卸载
          # mkfs -t ext3  /dev/vbirdvg/vbirdlv      ----将这个将被复原的LV格式化
          # mount  /dev/vbirdvg/vbirdlv  /mnt/lvm  ----格式化后挂载回来
          # tar -jxv -f /backups/lvm.tar.bz2  /mnt/lvm        ----将备份的快照区的内容解压到之前被快照的/dev/vbirdvg/vbirdlv中
          # ll /mnt/lvm        ----看看复原了没
          案例三:利用快照区进行各种联系与测试,再以原系统还原快照区
         第一步:建一个大一点的快照区,将/dev/hda6全部的PE都给快照区
         # lvcreate -s -l 89 -n  vbirdss /dev/vbirdvg/vbirdlv         ----创建快照区(-s)
         # lvdisplay   /dev/vbirdvg/vbirdss           ----观察一下新建的快照区
         第二步:隐藏vbirdlv(这个当做备份区来用,防止用户更动我们将其卸载),挂载vbirdss
         # umount /mnt/lvm        ----卸载用来生成快照的备份区域
         # mount /dev/vbirdvg/vbirdss  /mnt/snapshot      ----挂载快照区
         # df /mnt/snapshot           ----看看快早去磁盘信息
         第三步:对快照区做些更动(模拟用户恶搞)
         # rm -r /mnt/snapshot/etc  /mnt/snapshot/log
         # cp -a /boot  /lib  /sbin  /mnt/snapshot     
         # ll   /mnt/snapshot
        第四步:快照区发生变化了,那么被快照的区域有没有变化呢(没有)
        # mount /dev/vbirdvg/vbird/lv  /mnt/lvm ; ll /mnt/lvm
        # umount /mnt/lvm
        # umoutn /mnt/snapshot
        # lvremove /dev/vbirdvg/vbirdss     ----先干掉快照区LV
        # lvremove /dev/vbirdvg/vbirdlv      ----再干掉原系统区LV
        # vgchange -a n vbirdvg
        # vgremove vbirdvg
        # pvremove  /dev/hda{6,7,8,9,10}
    【1-55】

    7.在RAID上面建置LVM,最后在将其从系统中完全去掉
    第一步:构建RAID 5
    # fdisk -n       ----用该命令分区
    # fdisk -l       ----看一下分区怎么样【1-57】
    # mdadm --create --auto=yes /dev/md0  --level 5 --raid-devices=4 --spare-devices=1 /dev/hda{6,7,8,9,10}     ----建好磁盘阵列/dev/md0,拥有4块分区和1个备份区
    第二步:构建LVM
    # pvcreate /dev/md0           ----为磁盘阵列创建PV
    # vgcreate raidvg /dev/md0          ----为磁盘阵列的所有分区创建VG
    # lvcreate -L 2.82G -n raidlv raidvg        ----创建LV,将所有VG给raidlv
    # lvdisplay      ----查看一下
    第三步:挂载到文件系统
    # mkfs -t ext3 /dev/raidvg/raidlv
    # mkdir -p /mnt/raidlvm ;mount /dev/vbirdvg/vbirdlv /mnt/raidlvm
    第四步:清除
    # umount /mnt/raidlvm
    # lvremove /dev/raidvg/raidlv
    # vgchange  -a n raidvg        ----让VG不活动
    # vgremove raidvg
    # pvremove /dev/md0
    # mdadm --stop /dev/md0   ----关闭RAID 5 /dev/md0
    # fdisk /dev/hda         ----还原分割槽


  • 相关阅读:
    hdu 1260 Tickets
    hdu 4738 Caocao's Bridges(桥的最小权值+去重)
    找规律
    C语言快速排序
    数组的初始化方法
    C语言选择排序
    副本机制
    安装完Kali的后续操作
    Bool盲注
    Python中的列表
  • 原文地址:https://www.cnblogs.com/eli01/p/3559656.html
Copyright © 2011-2022 走看看