磁盘配额(Quota)磁盘阵列(RAID)逻辑卷轴管理器(LVM)学习记录
磁盘配额(quota)
对于用户,群组,或文件夹的大小(blocks)或数量(inodes)做出限制
限制分为软限制(soft)与硬限制(hard),当容量超过软限制时,系统会倒计时警告,若到宽限时间之前不减少容量,则不可新增文件
启用Quota
对于哪个文件系统启用就要首先要写入/etc/fstab uuid 挂载点 文件系统 defaults, usrquota,[grpquota|prjquota] 0 0
usrquota 为对用户启用限制,grpquota 为对群组的限制,prjquota 为对目录的限制。 注意:后两者不可同时出现;修改完要重新挂载 (对\ 好像没用)
Quota指令
以下特指xfs文件系统 xfs_quota -x -c "command" 挂载点 -x:专家模式,后续才能加-c -c:后面接指令。(反正带着这俩就是了) command:
print :列出文件系统的资料,及是否支持quotareport -[ugr] -b -i : 列出对谁做了quota,block和inode的情况state : 支持quota的文件系统的信息limit [-ug] b[soft|hard]=N i[soft|hard]=N 用户名 :对于用户或群组限制容量或文件数量timer [-ug] [-bir] Ndays :宽限时间disable :暂时取消限制,但是仍运作。类似于selinux的permissiveenable :恢复管制off :关闭quota。重新挂载后可以恢复,无法用enable恢复remove :在off后执行这条指令将所用用户的限制去掉 与ext家族对照,来自鸟哥的linux私房菜
Quota实例
用户zc在/home下容量的软限制250M,硬限制300M xfs_quota -x -c "limit -u bsoft=250M hsoft=300M zc" /home 对user群组容量的软限制950M,硬限制1G xfs_quota -x -c "limit -g bsoft=950M hsoft=1G user /home 设置宽限时间为14天 xfs_quota -x -c "timer -ug -b 14days" /home 观察quota xfs_quota -x -c "report -ugibh" /home xfs_quota -x -c "state" /home
软件磁盘阵列
把一堆小磁盘组成一个具有大容量,安全的磁盘
常见的组合方法:
- raid0 数据同时写到多个磁盘中去,效率高,冗余性无
- raid1 数据写的时候写两份,就是完全备份,效率无,安全性高
- raid5 每次写入的时候留一个校验
- raid10 先组成raid1,再组成raid0
建立方法
madam --create /dev/md[0-9] --auto=yes --level=[0|1|5|10] --chunk=NK --raid-devices=N --spare-devices=N /dev/sdx{0,1,2,..} /dev/hdx{0,1,2,..} 参数
--create :建立raid选项--auto=yes :加不加无所谓--chunk=NK :每个装置的chunk或stripe的大小,据说与xfs格式化是大小一致好,可以不写--raid-devices=N :使用几个磁盘(分区)阵列--spare-devices=N :使用几个作为备用磁盘,阵列磁盘出问题可以立即顶上--level :使用哪种阵列方法/dev/sda.... :磁盘的数应等于阵列+备用磁盘数
建立好了之后直接mkfs.xfs 格式化使用就可
想开机挂载的话写入/etc/fstab 即可
观察已建立装置
mdadm --detail /dev/md0
出错救援方法
mdadm --manage /dev/md0 --[add|remove|fail] 装置 参数
--add :将后面的装置加入md--remove :将后面的装置从md中移除--fail :使后面的装置处于出错状态
例子 mdadm --manage /dev/md0 --fail /dev/sdb3 此时sdb3会立即出错,备用磁盘会顶上去,接下来要做的是移除sdb3,加入新的磁盘作为备份磁盘 移除sdb3 mdadm --manage /dev/md0 --remove /dev/sdb3 拔出sdb3这块磁盘,插入新的磁盘后加入raid mdadm --manage /dev/md0 --add /dev/sdb3
关闭RAID(极重要!)
果然重要,我刚开始没按步骤,然后导致磁盘一直显示busy,不能做他用
- 如果挂载了,umount卸载了;如果写入/etc/fstab了,删除对应的行
- 先覆盖掉RAID的metadata及XFS的superblock
dd if=/dev/zero of=/dev/md0 bs=1M count=50 一定注意别覆盖错了,不然磁盘直接完蛋 - 卸载md0
mdadm --stop /dev/md0 - 一定将组raid的文件系统的头全部覆盖掉,因为RAID的相关数据备份其中了,不然重启了他自动又组,(我遇到的问题是,将盘格式化了,再分盘,用的时候显示不能用,使用partprobe,所有的文件系统(分区)又冒出了md0的标志)
dd if=/dev/zero of=/dev/sdb1 bs=1M coumt=50 .... - 此时查看可以发现没有raid了
cat /proc/mdstat 6.下面这个文件里如果又关于md0的东西,抹掉他 vim /etc/mdadm.conf
逻辑卷轴管理器(LVM)
对我来说LVM的主要作用可以扩容,即弹性调整filesystem的容量,快照姑且算是一个吧
LVM的组成
- PV 将filesystem(一个磁盘或一个分区)做成PV才能给PG使用
- PG 由一个PV或多个PV组成,可以动态增减PV
- LV 从PG中切出来,这是实实在在要用的,直接格式化成文件系统使用,可以增减(但是需要文件系统的支持,xfs只支持增,ext支持增减)
- PE 最基本的单位吧,一般来说忽略就好,类似于block的东西,组成PG
制作LVM的指令
简单来说就是先将fs格式化成PV,然后制作PG,而后制作LV,格式化LV就可以使用啦
PV阶段
pvscan :查找系统有没有PVpvdisplay /dev/sdxx :查看一个PV的详情pvcreate /dev/sdx{1,2,3,...} :建立PV们
VG阶段
常用的指令
vgscan :查找vgvgdisplay vlm1 :显示vlm1这个VG的状态vgcreate -s N vlm1 /dev/sdx{1,2,3} :使用这一堆pv建立vlm1,-s指定PE的大小,可以省略vgextend vlm1 /dev/va8 :扩增vlm1vgreduce :移除pvvgchange :设定vg是否启动(active),删除要给vg前使用vgchange -a n vlm1 使其关闭vgremove :删除一个vg
LV阶段
lvscan lvdisplay /dev/lvm1/zclv lvsreate -L N -n zclv lvm1 :-L后为zclv这个LV的容量或者用-l指定pe个数lvremove /dev/lvm1/zclv :删除一个LVlvextend -L +500M /dev/lvm1/zclv :扩增zclv500Mlvreduce :缩减LVlvresize :调整LV大小
文件系统阶段
建立文件系统 mkfs.xfs /dev/lvm1/zclv 扩增文件系统 xfs_growfs lv挂载点 查看文件系统信息 xfs_info lv挂载点
快照
说说理解 先对一个lv建立1G的快照空间 lvcreate -s -L 1G -n zcsnap /dev/lvm1/zclv 然后将快照挂载到挂载点, mount -o nouuid /dev/lvm1/zcsnap /srv/snapshot 挂载后df可以看到snap和zclv的目录是一样的
接下来我的理解就是,zclv有修改的时候,当删除了东西,东西会移动到快照区。 恢复的时候
- 将快照区的东西备份
xfsdump -l 0 -L lv1 -M lv1 -f /home/lv1.dump /srv/snapshot 备份的时候,快照独立空间里的内容和zclv中未修改的内容都会被备份。这里使用tar备份也可以 - 卸载快照区,使用
lvremove 将快照去移除 - 将zclv格式化
- 将备份的东西恢复到zclv中
xfsrestore -f /home/lv1.dump -L lvm1 /srv/lvm
此时建立快照时的东西就全部回去了
|