磁盘配额:
软限制:规定临时能超过的天数
硬限制:
开启文件系统的quota磁盘配额功能:
第一步:在挂载时使用挂载选项开启quaota的功能
mount-o usrquota,grpquota /dev/DEVICE$ /PATH
检查:mount,查看磁盘分区的文件系统是否设置了quota功能
PATH为挂载点目录的路径
第二步:在挂载点目录下创建quota的数据文件
ext文件系统:quotacheck -cugm PATH
xfs文件系统:xfs_quota -cugm PATH
PATH为挂载点目录的路径
quota的数据文件:对用户或者组实现磁盘配额的限制是通过读取quato数据文件实现的
c:创建
u:创建用户的quota数据文件
g:创建组的quota数据文件
m:如果有数据文件,覆盖;如果没有则创建
第三步:quotaon PATH:通过这条命令使所有人(包括root)不能删除quota的数据文件
PATH为挂载点目录的路径
编辑磁盘配额
*直接编辑:edquota username
*非交互式编辑: setquota usenameBlock_Soft Block_Hard Inode_Soft Inode_Hard PATH
PATH为挂载点目录的路径
*edquota -p user1 user2
将用户1的配额策略复制给用户2,用户2之前没有配额策略
查看配额
quota USERNAME:查看指定用户的配额策略
repquota /mountpoint:查看所有有配额策略的用户的策略
测试磁盘配额的策略
raid
创建raid
mdadm -C /dev/md0 -a yes -n 2 -l 0 /dev/sdc/dev/sdd
mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/sde/dev/sdf
mdadm -C /dev/md1 -a yes -n 2 -l 1 -x 1/dev/sd{e,f,g}
-C创建raid
-ayes 自动创建raid设备/dev/mdX
-nnum 阵列中磁盘的数量
-lnum 阵列的等级
-xnum 热备盘的数量
mdadm -D /dev/md0 查看raid信息
cat /proc/mdstat 查看全部的raid信息
mdadm -S /dev/md0 暂时停止raid,但是在表的头部仍然会有raid信息
mdadm -A /dev/md0 /dev/sdc /dev/sdd 将暂时停止的raid重新装配起来
mdadm -D -s > /etc/mdadm.conf 将raid信息保存至文件
mdadm -A -s 激活/etc/mdadm.conf中的所有raid设备
mdadm -F /dev/md1 实时监控raid状态
------------------以下四条命令,仅限raid1,raid5
mdadm /dev/md1 -f /dev/sdf 将md1中的sdf设置为坏的设备
mdadm /dev/md1 -r /dev/sdf 将md1中的sdf从raid成员中删除
mdadm /dev/md1 -a /dev/sdf 向md1中增加新成员sdf
将raid中的某个盘设置为坏设备以后,stat为faulty将这个盘移出raid,再加入raid,这个盘会显示为正常的盘
mdadm -G /dev/md1 -n 3 -a /dev/sdh 将raid1 md1的成员数量改为3,并加入新的成员(不是加为热备盘)
mdadm --zero-superblock /dev/sdc 彻底删除某块硬盘的raid信息
共享热备盘实现方式
mdadm -D -s > /etc/mdadm.conf
在需要共享的多组raid信息最后分别都写上spare-group=magedu,magedu只是一个组名
然后再加一新行,顶头写MAILADDR root@localhost
service mdmonitor restart
LVM
逻辑卷管理器(LVM)
*允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
*不会提升读写性能,理论上反而会降低一些性能
*可以基于磁盘,分区,Raid创建逻辑卷,重点解决的是磁盘空间的在线扩展,读写性能由Raid解决
*dm-->devicemapper:将一个或多个底层块设备组织成一个逻辑设备的模块
*创建的逻辑卷的设备名:/dev/dm-#
ls /dev/dm*:逻辑卷的实质就是dm设备,查看原始的dm设备
*软连接的命名方式(一般使用这种方式):
/dev/mapper/VGNAME-LVNAME
/dev/mapper/vol0-root
ll /dev/
/dev/VGNAME/LVNAME
/dev/vol0/root
*LVM可以弹性的更改LVM的容量
通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量
设定为物理卷:将物理的块设备设置为物理卷,设备名不发生变化
设定卷组:将多个物理卷组成一个卷组,并对整个卷组分割创建PE,(每个PE的大小*PE的个数=VG的总大小)
新建LVM[分区]:实质就是通过从卷组当中抽取一定数量的PE来创建一个LVM,所以LVM的大小一定是PE的整数倍
扩展的前提,VG能够提供足够的PE,且PE必须来自于同一个VG
图示:
*允许在多个物理设备间重新组织文件系统:
将块设备指定为物理卷,物理卷是用固定大小的物理区域(Physical Extent,PE)来定义
用一个或者多个物理卷来创建一个卷组
在卷组上创建的逻辑卷是由物理区域(PE)组成
可以直接在逻辑卷上创建文件系统
也可以对逻辑卷进行分区,再创建文件系统(不常用)
结构图示:
pv管理工具
*显示pv简要信息:pvs
*显示PV详细信息:pvdisplay
*创建pv
DEVICE:可以是分区,磁盘或者Raid
vg管理工具
*显示vg简要信息:vgs
*显示vg详细信息:vgs vgdisplay
*创建卷组
vgcreate [-s #[kKmMgGtTpPeE]] VGNAME /dev/DEVEICE1…
-s:指定PE的大小,PE在此过程中创建,未指定默认值为
使用display可以查看PE的大小
lv管理工具
*显示逻辑卷的简要信息:lvs
*显示LVM的详细信息:lvdisplay
*创建逻辑卷 lvcreate -L #[mMgGtT] -n LVNAME VGNAME
lvcreate -l 60%VG -n mylv testvg
lvcreate -l 100%FREE -n yourlv testvg:将剩余空间的100%全部用完
在创建的LVM上创建文件系统并挂载使用
*mkfs.ext4/dev/VGNAME/LVNAME
*mount/dev/VGNAME/LVNAME PATH
或者
*写入/etc/fstab文件中,然后mount -a
扩展逻辑卷:
*vgextend VGNAME /dev/DEVICE
扩展VG
*lvextend -L [+]#[mMgGtT] /dev/VGNAME/LVNAME
扩展LV
“-L +#[mMgGtT]”表示要扩展多少
“-L #[mMgGtT]”表示要扩展到多少
*resize2fs /dev/VGNAME/LVNAME [#][mMgGtT](ext系列文件系统)
xfs__growfs/dev/VGNAME/LVNAME [#][mMgGtT](xfs文件系统)
重置要扩展的LVM的文件系统的大小
后面加上“[#][mMgGtT]”代表要将扩展后的LVM中的多少重置到文件系统中
不加默认表示全部重置
或者
*lvextend -L [+]#[mMgGtT] /dev/VGNAME/LVNAME -r
扩展LVM后并重置文件系统的大小(全部重置)
*过程:
if [ 要扩展的大小 -le VG中剩余的PE的总大小 ];then
lvextend -L [+]#[mMgGtT]/dev/VGNAME/LVNAME[-r]
else
if [ VG中剩余的PE的总大小-le PV中剩余的总大小 ];then
vgextend VGNAME /dev/DEVICE
else
pv pvcreate /dev/DEVICE
vgextend VGNAME /dev/DEVICE
fi
fi
[ resize2fs/dev/VGNAME/LVNAME [#][mMgGtT] | xfs_growfs /dev/VGNAME/LVNAME]
lvresize
迁移卷组到新系统(将有逻辑卷的磁盘迁移到其他的主机上去)
如果包含文件系统
umount
vgchange -anVGNAME:将该卷组上的所有LVM设置为非激活状态,使用lvdisplay查看(vgchange -ay VGNAME : 将该卷组上的所有LVM设置为激活状态)
vgexportVGNAME:设置为导出的状态,使用vgs查看会在ATTR序列看到”x”
不设置vgexport即使将硬盘拔出,仍然会有vg的信息,所以有时候会报错
拔出;插入
pvscan可以查看到export的状态
vgs
lvs
lvdisplay
vgimport
vgchange -ay
lvdisplay/dev/VGNAME/LVNAME
1.umount/mnt/datatest/
2.vgchange -anvgtest
3.vgexportvgtest
4.迁移硬盘
5.在新的主机pvscan 扫描pv的信息
6.vgimportvgtest
7.vgchange -ay
逻辑卷快照管理器
*快照的作用主要是进行在线的数据的备份,防止备份时源数据发生变化,导致备份不完整
*快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝
*对于需要备份或者复制的现有数据集临时拷贝以及其它操作来说,快照是最合适的选择
*快照只有在它们和原来的逻辑卷不同时才会消耗空间
*在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间
*当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中
*快照中只含有原来的逻辑卷中更改的数据或者自生成快照后在快照中更改的数据
*建立快照的卷大小只需要原始逻辑卷的15%~20%就够了,也可 以使用lvextend放大快照
*快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据进行任何多少次的改动,原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享
*访问或者拷贝快照中的数据其实就是通过快照找到源中的数据并进行访问或者拷贝
*由于快照区与原本的LV共用很多PE的区块,因此快照区与被快照的LV必须在同一个VG
*利用快照系统恢复的时候的文件数量不能高于快照区的实际容量
*如果是删除源中的某个文件,快照区的利用率不会马上发生大的变化,因为删除文件只是删除了硬链接,并没有释放block中的数据,只有再次有数据写入并覆盖原来block的时候,才会变化
*在源中创建新文件,快照区的利用率不会发生变化
*快照利用率达到100%以后,快照无法使用
*快照不会损坏的方法是将快照区的大小设置为和源逻辑卷一样的大小
*图示:
为现有逻辑卷创建快照 :lvcreate-l 64 -s -n snap-data -p r /dev/vg0/data
挂载快照:mkdir-p /mnt/snap #mount -o ro/dev/vg0/snap-data /mnt/snap
恢复快照 #umount/dev/vg0/snap-data #umount /dev/vg0/data #lvconvert --merge /dev/vg0/snap-data
删除快照 #umount/mnt/databackup #lvremove /dev/vg0/databackup
删除逻辑卷 lvremove /dev/VGNAME/LV_NAME
重设文件系统大小 fsadm [options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
管理卷组 vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...] vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
删除卷组 先做pvmove,再做vgremove:即把pv的标记删除
pvmove:将数据迁移到同卷组的其他pv中去
lvcreate -L -n SNAPNAME -s /dev/VGNAME/LVNAME -p r