zoukankan      html  css  js  c++  java
  • 别人的Linux私房菜(15)磁盘配额与高级文件系统管理

    磁盘配额在网站、邮件、文件等服务器常见,主要有针对用户、用户组、限制某一目录的的最大磁盘配额。

    ext文件系统进能针对整个文件系统配额,xfs可以针对目录配额。配额和文件系统有关。

    内核必须支持磁盘配额(CentOS7)。

    SELinux下加入特殊权限,可能只能对/home进行配额

    针对xfs

    针对用户、用户组或个别目录(无法共存)的配额,配额关于容量限制和文件数量限制。,并分软限制和硬限制。

    软限制soft在宽限时间grace time下超出并小于硬限制hard的情况下,发出警告。超过宽限时间则软限制的值取代硬限制,锁定使用权。

    文件系统的类型查看:df -hT /home

    写入参数到/etc/fstab中:vim /etc/fstab 在第四栏添加:usrquota,grpquota

    针对配额的限制有:quota/usrquota/uquota针对用户账号   gquota/grpquota针对用户组  pquota/prjquota针对目录。

    修改完文件后卸载,重新挂载。检查文件正误,确保系统正常。删除参数时,注销所有一般账户。重新挂载时,注销所有账户。

    xfs_quota -x -c "命令如:print列出主机内文件系统参数,df挂载点信息,report磁盘配额,state文件状态"

    列出文件系统支持:xfs_quota -x -c "print"

    列出挂载点的文件使用情况:xfs_quota -x -c "df -h" /home

    列出/home下所有用户的磁盘配额限制值:xfs_quota -x -c "report -ubih" /home

    列出目前支持配额的系统是否启用了磁盘配额功能:xfs_quota -x -c "state"

    Accounting计算功能,Enforcement实际磁盘配额功能。分用户、组、目录三部分

    xfs_quota -x -c "命令如:limit实际限制选项(block inode name,名字为bsoft/bhard/isoft/ihard name),timer设置grace time"

    设置用户myquota1的block限制值:xfs_quota -x -c "limit -u bosft=250M bhard=300M myquota1" /home

    设置用户组的myquotagrp的block限制值:xfs_quota -x -c "limit -g bosft=950M bhard=1G myquotagrp" /home

    设置block的grace time :xfs_quota -x -c "timer -ug -b 14days" /home

    测试:xfs_quota -x -c "report -ugbih" /home;xfs_quota -x -c "state"

    设置prjquota(针对目录的限制

    首先在/etc/fstab中取消针对用户组的限制然后加入针对目录的限制信息,然后卸载,挂载,重新查看配额状态

    建立文件制定方案识别码和目录放在/etc/projects  建立方案名称和标识符在/etc/projid,内容标识码、目录、名称自定

    如:echo "10:/home/myquota" >> /etc/projetcs ; echo "myquotaprj:10" >> /etc/projid

    然后执行初始化方案:xfs_quota -x -c "project -s myquotaprj"

    检查状态:xfs_quota -x -c "print";xfs_quota -x -c "report -pbih" /home;

    设置配额限制:xfs_quota -x -c "limit -p bosft=450M bhard=500M myquotaprj" /home

    然后检查状态。

    配额管理

    暂时取消磁盘配额的限制:disable,恢复正常:enable,完全关闭off(重新挂载才可再次启动磁盘配额,用于remove),删除配额限制:remove

    如暂时取消用户的磁盘配额的限制:xfs_quota -x -c "disable -u" /home

    恢复用户的(其它如 -g -p 在disable选项中):xfs_quota -x -c "disable -u" /home

    等。

    ext文件系统的配额方案参考:

    http://cn.linux.vbird.org/linux_basic/0420quota_1.php

    将邮箱和家目录的总和配额限制示例:不同的文件系统下

    mv /var/spool/mail /home

    ln -s /home/mail /var/spool/mail

    然后对/home进行配额

    RAID独立冗余磁盘阵列,将多个较小的磁盘组合成为较大的磁盘设备

    RAID 0:等量模式,性能最佳:写入RAID时将文件根据chunk的大小切割好,依序写到各个磁盘,数据交错存放,每块磁盘负责的数据量降低,物理安全性降低。

    RAID 1:镜像模式,完整备份:同一个数据完整保存在两个磁盘上面。硬盘容量降低一半,写入时写入到各个磁盘。

    RAID 10:四块磁盘分为两组,组成两组RAID1,两组RAID1组成一组RAID0。

    RAID 5:性能和数据备份的均衡考虑,写入方式同RAID0,但写入了奇偶校验值,磁盘容量减少一块磁盘。支持一块磁盘数据数据损坏的自动恢复情况。需要计算奇偶校验,性能受到影响。

    RAID 6:同RAID 5,使用两块磁盘的容量作为奇偶校验,支持两块磁盘的数据恢复。

    Spare Disk:热备份磁盘:磁盘损坏时,热备份磁盘替代损坏磁盘,自动数据恢复,并移除损坏磁盘。

    硬件磁盘阵列通过磁盘阵列卡来完成,软件磁盘阵列通过软件模拟磁盘阵列。

    CentOS提供的mdadm软件支持RAID0 RAID1 RAID5 热备份磁盘等。

    硬件磁盘阵列的设备名称为:/dev/sd[a-p]。软件模拟的磁盘名称为:/dev/mdx

    使用gdisk工具在gpt分区下创建5个分区测试:假设加入的为sdb{1,2,3,4,5}

    创建RAID5 chunk=256K 使用4个磁盘,一个热备份磁盘:

    mdadm --create /dev/md0 --auto=yes --level=5 --chunk=256K --raid-devices=4 --spare-device=1 /dev/sdb{1,2,3,4,5}

    检查创建结果:mdadm --detail /dev/md0

    通过文件检查磁盘阵列的情况:cat /proc/mdstat#中括号的数字表示RAID顺序,S表示热备份U代表正常

    格式化stripe(chunk)容量为256KB su=256k容量为4-1,sw=3数据宽度su*3:mkfs.xfs -f -d su=256k,sw=3 -r extsize=768k /dev/md0

    挂载和查看:mkdir /srv/raid;mount /dev/md0 /srv/raid; df -hT /srv/raid/

    设置磁盘错误:mdadm --manage /dev/md0 --fail /dev/sdb1

    删除出错的磁盘:mdadm --manage /dev/md0 --remove /dev/sdb1

    添加新的磁盘:mdadm --manage /dev/md0 --add /dev/sdb1

    开机自启RAID并挂载

    修改配置文件:vim /etc/mdadm.conf  ;: -r !mdadm --detail /dev/md0 | grep -i uuid

    设置添加自动挂载并观察是否完成挂载:vim /etc/fstab; : -r  ! blkid /dev/md0;umount /dev/md0;mount -a ;df -hT /srv/raid

    关闭RAID:卸载,覆盖metadata,停止,覆盖RAID数据,检查。

    如:umount /srv/raid ; vim /etc/fstab删除数据; dd if=/dev/zero of=/dev/md0 bs=1M count=50;

    mdadm --stop /dev/md0;cat /proc/mdstat;vim /etc/mdadm.conf 删除数据

    LVM(逻辑卷管理器),弹性调整文件系统容量,整合物理分区,删除或增加物理分区

    物理卷PV  实际分区调整系统标识符为8E,通过pvcreate创建物理卷PV

    卷组VG    LVM组合形成的大磁盘

    物理拓展块PE  LVM的最小存储单元。现今使用64位系统和LVM2功能,突破了卷组的大小

    逻辑卷 LV  逻辑卷,设备名通常为/dev/vgName/lvName

    弹性修改文件系统容量的方案为调整LV中的PE数量

    数据写入LV中分线性模式liner(按顺序使用分区容量,建议),交错模式triped(数据拆分,交错写入分区,数据损坏风险大,性能好)

    pvscan扫描硬盘中的PV

    创建PV,使用其他的卷:pvcreate /dev/sdb{6,7,8,9}

    查找:pvscan,显示PV状态:pvdisplay /dev/sdb9,查看分配情况,pvremove让分区不具有PV属性

    创建VG:vgcreate -s 16M bai /dev/sdb{6,7,8}#-s后加PE大小

    显示各种信息:vgscan;pvscan;vgdisplay bai

    增加VG:vgextend bai /dev/sdb9;vgdisplay bai

    删除VG中的PV:vgreduce,设置VG是否启动vgchange,删除一个VG:vgremove

    创建LV:lvcreate -L 2G -n baiLv bai#-l 以PE数量参考为大小

    显示lvscan,状态lvdisplay,增加移除减少调整:lvextend,lvreduce,lvremove,lvresize

    lv作为设备,使用全名。

    然后格式化,mkfs.xfs /dev/bai/baiLv

    创建挂载目录mkdir /srv/lvm,挂载mount /dev/bai/baiLv /srv/lvm,使用df -hT /srv/lvm。

    ext系统支持放大和缩小容量,xfs只用xfs_growfs命令扩大文件系统

    扩大:lvresize -L +500M /dev/bai/baiLv

    查看:lvscan

    实际情况:df -hT /srv/lvm

    xfs_growfs /srv/lvm

    xfs_info /srv/lvm,显示增加了agcount数量,并增加了区块数量

    使用LVM thin Volume动态调整磁盘使用率

    从VG中的剩余容量取出500M作为thin pool设备(磁盘容量存储池):lvcreate -L 500M -T bai/baiPool;lvdisplay /dev/bai/baiPool;lvs bai#查看VG信息

    产生一个10G的lv设备:lvcreate -V 10G -T bai/baiPool -n baiThin;lvs bai#查看

    转化文件系统并挂载:mkfs.xfs /dev/bai/baiThin ; mkdir /srv/thin;mount /dev/bai/baiThin /srv/thin ;df -hT /srv/thin ;lvs bai

    LVM的LV磁盘快照

    开始时快照区和系统区共享所有的PE数据,系统区修改前会将原始数据移动到快照区,快照区去掉系统区PE修改过的块。

    查看剩余的PE数量:vgdisplay bai

    创建baiLv的快照区:lvcreate -s -l  26 -n baiSnap /dev/bai/baiLv;lvdisplay /dev/bai/baiSnap#查看快照容量等

    然后挂载;到/srv/snap;;;

    做了修改以后,进行还原:

    xfsdump -l 0 -L lvm1 -f /home/lvm.dump /srv/snap#备份

    卸载umount /srv/snap,删除/dev/bai/baiSnap

    卸载umount /srv/lvm

    格式化:mkfs.xfs /dev/bai/baiLv

    重新挂载:mount /dev/bai/baiLv /srv/lvm

    还原:xfsrestore -f /home/lvm.dump -L lvm1 /srv/lvm

    ll /srv/lvm

    LVM的关闭

    卸载系统上面的 LVM 文件系统 (包括快照与所有 LV);
    使用 lvremove 移除 LV ;
    使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;
    使用 vgremove 移除 VG:
    使用 pvremove 移除 PV;
    最后,使用 fdisk 修改 ID

    umount /srv/lvm /srv/thin /srv/snap

    lvremove /dev/bai/baiThin /dev/bai/baiPool /dev/bai/baiLv

    vgchange -a n bai

    vgremove bai

    pvremove /dev/vda{6,7,8,9}

  • 相关阅读:
    C-5 猜数字游戏
    J-8 面向对象
    C-4 一个标准的学生类的代码及测试
    J-7 面向对象
    C-3 this的使用
    J-6 面向对象
    ArcEngine关于单位转换示例
    Arcglobe三维信息系统开发常见问题
    安装arcgis server 10.2遇到的问题总结
    使用Arcglobe 10与3dmax建立三维城市
  • 原文地址:https://www.cnblogs.com/bai2018/p/10746976.html
Copyright © 2011-2022 走看看