配置配额系统
综述
在内核中执行
以文件系统(磁盘分区)为单位启用
对不同组或者用户的策略不同
根据块或者节点进行限制
执行软限制(soft limit)
硬限制(hard limit)
1、初始化
1.1、编辑/etc/fstab,添加分区挂载选项:usrquota、grpquota
1.2、mount -o remount /dev/sda6 #重新挂载分区使生效
1.3初始化数据库:quotacheck -cug /home
注意:这里可能会报错(SELinux导致的,先临时关闭setenforce 0,再重新执行)
quotacheck -cug /home
quotacheck: Cannot create new quotafile /home/aquota.user.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
quotacheck: Cannot create new quotafile /home/aquota.group.new: Permission denied
quotacheck: Cannot initialize IO on new quotafile: Permission denied
2、quotaon、quotaoff #启用|禁用配额系统
2.1、启用/home上的磁盘配额功能:quotaon /home
打印状态:quotaon -p /home
3、设置
3.1、编辑配额(默认使用vim编辑器):edquota username
前三个字段决定空间限制(默认单位kibibyte (1024 bytes),可以使用K,M,G,T),后三个字段决定创建文件数限制(可以使用k,m,g,t代表10^3,10^6,10^9,10^12):
3.2、也可以使用命令设置配额:setquota usename 4096 5120 40 50 /home
3.3、查看配额信息:quota username
注意:达到soft限制后有个宽限期grace,达到宽限期后,也会紧禁止再继续使用磁盘
4、验证
su – wang #目标用户登录
验证blocks配额:使用dd命令创建大文件,达到soft,报警,达到Hard,禁止再继续使用磁盘
验证inodes配额:for i in {1..200};do touch file$i;echo file$i is created;done
5、定义原始标准用户(将user1的用户配额设置复制到user2)
edquota -p user1 user2
6、edquota -g groupname #配置所有属组为groupname的文件加起来的磁盘配额
7、取消磁盘配额:
7.1、quotaoff /home #禁用磁盘配额
7.2、rm -rf /home/a.quota* #删除磁盘配额数据库
7.3、vim /etc/fstab
7.4、mount -o remount /home
8、报告
用户调查:quota username
配额概述:repquota /mountpoint
其它工具:warnquota
独立磁盘的冗余阵列
RAID:Redundant Arrays of Inexpensive(Independent) Disks
1988年由加利福尼亚大学伯克利分校(University of California-Berkeley) “A Case for Redundant
Arrays of Inexpensive Disks”
多个磁盘合成一个“阵列”来提供更好的性能、冗余,或者两者都提供
提高IO能力:磁盘并行读写
提高耐用性:磁盘冗余来实现
RAID实现的方式:
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器,安装OS前在BIOS里配置RAID
软件RAID:通过软件实现
RAID级别:
多块磁盘组织在一起的工作方式不同
RAID-0:条带卷,strip
RAID-1: 镜像卷,mirror
…
RAID-4:多块数据盘异或运算值,存于专用校验盘
RAID-5:带奇偶校验的条带卷,校验位分散存放于各个硬盘上
RAID-6:
RAID-10:
RAID-01:
RAID-0:
读、写性能提升;
可用空间:N*min(S1,S2,…)
无容错能力
最少磁盘数:2, 2+
RAID-1:
读性能提升、写性能略有下降;
可用空间:1*min(S1,S2,…)
有冗余能力:防止物理损坏,不能防止误删除,镜像不是历史快照
最少磁盘数:2, 2N
RAID-5:
读、写性能提升
可用空间:(N-1)*min(S1,S2,…)
有容错能力:允许最多1块磁盘损坏,生产中常额外分配一块空的备用磁盘sparedisk
最少磁盘数:3, 3+
RAID-6:
读、写性能提升
可用空间:(N-2)*min(S1,S2,…)
有容错能力:允许最多2块磁盘损坏
最少磁盘数:4, 4+
RAID-10:
读、写性能提升
可用空间:N*min(S1,S2,…)/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4, 4+
RAID-01、RAID-50
RAID7:可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式
JBOD:Just a Bunch Of Disks
功能:将多块磁盘的空间合并一个大的连续空间使用
可用空间:sum(S1,S2,…)
常用级别:RAID-0, RAID-1, RAID-5, RAID-10, RAID-50, JBOD
软RAID:
mdadm:为软RAID提供管理界面
结合内核中的md(multi devices)
RAID设备可命名为/dev/md0、/dev/md1、/dev/md2、/dev/md3等等
mdadm命令 :manage MD devices aka Linux Software RAID (aka:as known as)
模块化工具
支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10
mdadm [mode] <raiddevice> [options] <component-devices>
模式[mode]:
装配:-A, –assemble
建造:-B, –build
创建:-C, –create
监控:-F, –follow, –monitor
增长:-G, –grow
增量:-I, –incremental
管理:–manage(可省略), -f,–force; -r,–remove;-c, –config=; -a, –auto={ no,yes,md,mdp,part}; -s, –scan;
<raiddevice>: /dev/md# 或者 /dev/md/NAME
<component-devices>: 块设备,磁盘或分区
-C: 创建模式
-l, –level=:RAID级别
-n, –raid-devices=: 组装RAID的设备数量
-x, –spare-devices=:分配给RAID的空闲设备数量
-a {yes|no}:自动应答创建目标RAID设备的设备文件
-c, –chunk=: 块大小,单位kiBytes
-D:显示RAID详细信息
mdadm -D|–detail /dev/md/raid
-G,–grow:增长模式
–manage:管理模式
-f: 标记指定磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
从内存观察md状态:
cat /proc/mdstat
示例:
创建RAID步骤:
创建并定义RAID设备:mdadm -C /dev/md/raid -a yes -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
等同于: mdadm --create /dev/md/raid --auto=yes --level=5 --raid-devices=3 --spare-devices=1 /dev/sd{b,c,d,e}1
对整个RAID设备创建文件系统:mkfs.ext4 /dev/md/raid
挂载分区:mkdir /mnt/raid && mount /dev/md/raid /mnt/raid
检查RAID设备的状况:mdadm -D /dev/md/raid 或 cat /proc/mdstat
生成配置文件:mdadm -D -s >> /etc/mdadm.conf
开机自动挂载:echo "`blkid /dev/md/md_raid | cut -d' ' -f2` /mnt/raid ext4 defaults 0 0" >> /etc/fstab
软RAID测试和修复:
标记故障设备为faulty #mdadm /dev/md/raid -f /dev/sdb1 移除故障设备 #mdadm /dev/md/raid -r /dev/sdb1 添加新设备 #mdadm /dev/md/raid -a /dev/sdb9
软RAID管理:
生成配置文件:mdadm -D -s >> /etc/mdadm.conf
停止RAID:mdadm -S /dev/md/raid
扫描配置文件/etc/mdadm.conf并组装RAID:mdadm -As /dev/md/raid
强制运行:mdadm -R /dev/md/raid
增加新的设备成员(不可逆):mdadm /dev/md/raid -G -n 4 -a /dev/sdf1
删除RAID步骤:
卸载RAID挂载点:umount devicename|mountpoint 停止RAID:mdadm -S /dev/md/raid 清空RAID信息:mdadm --zero-superblock /dev/sdb1 移除磁盘或者删除分区:fdisk或dd if=/dev/zero of=/dev/sdb1 bs=512 count=1 && partx -d /dev/sdb 删除mdadm配置信息:sed -i '/md0/d' /etc/mdadm.conf 删除fsatb配置信息:sed -i '/md0/d' /etc/fstab
TIPS:
#准备实验用分区#创建扩展分区echo -e "n\ne\n4\n\n+20G\nw\n" | fdisk /dev/sdb#创建逻辑分区for (( i = 0; i < 3; i++ )); do echo -e "n\nl\n\n+1G\nw\n" |fdisk /dev/sdb; done#更改分区的ID为“fd Linux raid auto”for i in {5..7}; do echo -e "t\n$i\nfd\nw\n" |fdisk /dev/sdb; done
练习:
1:创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/mnt/raid1目录
#创建RAID1mdadm -C /dev/md/raid1 -a yes -l1 -n2 -x1 /dev/sdb[5-7]mkfs.ext4 /dev/md/raid1 -L raid1mkdir -p /mnt/raid1 && mount /dev/md/raid1 /mnt/raid1#生成配置文件mdadm -D -s >> /etc/mdadm.conf#添加fstab条目开机自动挂载echo "`blkid /dev/md/raid1 | cut -d' ' -f2` /mnt/raid1 ext4 defaults 0 0" >> /etc/fstab
2:创建由三块硬盘组成的可用空间为2G的RAID5设备,要求其chunk大小为256k,文件系统为ext4,开机可自动挂载至/mnt/raid5目录
#创建RAID5mdadm -C /dev/md/raid5 -a yes -l5 -c 256 -n3 /dev/sd{c,d,e}mkfs.ext4 /dev/md/raid5 -L raid5mkdir -p /mnt/raid5 && mount /dev/md/raid5 /mnt/raid5#生成配置文件mdadm -D -s >> /etc/mdadm.conf#添加fstab条目开机自动挂载echo "`blkid /dev/md/raid5 | cut -d' ' -f2` /mnt/raid5 ext4 defaults 0 0" >> /etc/fstab
LVM:逻辑卷管理器
允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
允许在多个物理设备间重新组织文件系统
将设备指定为物理卷
用一个或者多个物理卷来创建一个卷组
物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
在物理卷上创建的逻辑卷是由物理区域(PE)组成
可以在逻辑卷上创建文件系统
LVM: Logical Volume Manager, Version: 2
dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块
设备名:/dev/dm-#
软链接:
/dev/mapper/VG_NAME-LV_NAME
/dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root
LVM可以弹性的更改LVM的容量
通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量
pv管理工具
显示物理卷信息
pvs:简要显示物理卷信息
pvdisplay
创建物理卷
pvcreate PhysicalVolume [PhysicalVolume…]
vg管理工具
显示卷组
vgs
vgdisplay
创建卷组
vgcreate [-s #[bBsSkKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
管理卷组
vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath…]
删除卷组
先做pvmove,再做vgremove
lv管理工具
显示逻辑卷
lvs
Lvdisplay
创建逻辑卷
lvcreate -L #[bBsSkKmMgGtTpPeE] -n NAME VolumeGroup
-l:PE块个数;-L:空间大小;-n:名字
删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
重设文件系统大小
fsadm [options] resize device [new_size[BKMGTEP]]
resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
扩展逻辑卷:
# lvextend|lvresize -r -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME #-r选项同时调整文件系统 # resize2fs /dev/VG_NAME/LV_NAME #扩容后单独调整文件系统 撑满空闲PE空间:# lvextend|lvresize -r -L +100%FREE /dev/VG_NAME/LV_NAME
缩减逻辑卷:(注意ext4可以缩减,但必须离线缩减,xfs不能缩减)
# umount /dev/VG_NAME/LV_NAME # fsck -f /dev/VG_NAME/LV_NAME #检查文件系统 # resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT] #扩容前单独调整文件系统 # lvreduce|lvresize -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME #-r选项同时调整文件系统 # mount /dev/VG_NAME/LV_NAME MOUNTPOINT
创建逻辑卷lv:
创建物理卷 pvcreate /dev/sda3 从物理卷创建卷组 vgcreate vg0 -s 16M /dev/sda3 从卷组创建逻辑卷 lvcreate -L 256M -n lv1 vg0 为逻辑卷创建文件系统 mkfs.ext4 /dev/vg0/lv1 挂载逻辑卷 mkdir /mnt/lv1 && mount /dev/vg0/lv1 /mnt/lv1 开机自动挂载逻辑卷 echo -e "`blkid /dev/vg0/lv1 | cut -d' ' -f2` /mnt/lv1 ext4 defaults 0 0" >> /etc/fstab
逻辑卷管理器快照
快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝
对于需要备份或者复制的现有数据集临时拷贝以及其它操作来说,快照是最合适的选择。
快照只有在它们和原来的逻辑卷不同时才会消耗空间。
在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间
当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。
快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据
建立快照的卷大小只需要原始逻辑卷的15%~20%就够了。也可以使用lvextend放大快照。
快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享
由于快照区与原本的LV共用很多PE的区块,因此快照区与被快照的LV必须在同一个VG.系统恢复的时候的文件数量不能高于快照区的实际容量.
使用LVM快照:
为现有逻辑卷创建快照 #lvcreate -s -n lv1_snap -l 64 -p r /dev/vg0/lv1 挂载快照 #mkdir -p /mnt/lv1_snap #mount -o ro /dev/vg0/lv1_snap /mnt/lv1_snap 删除快照 #umount /mnt/lv1_snap #lvremove /dev/vg0/lv1_snap
TIPS:
#准备实验用分区#创建扩展分区echo -e "n\ne\n4\n\n\nw\n" | fdisk /dev/sdb#创建逻辑分区for (( i = 0; i < 3; i++ )); do echo -e "n\nl\n\n+1G\nw\n" |fdisk /dev/sdb; done#更改分区的ID为“8e Linux LVM”for i in {5,6}; do echo -e "t\n$i\n8e\nw\n" |fdisk /dev/sdb; done
练习:
1、创建一个至少有两个PV组成的大小为20G的名为vgtest的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷lvtest;挂载至/users目录
pvcreate /dev/sdb{5,6}vgcreate -s 16M vgtest /dev/sdb{5,6}lvcreate -L 5G -n lvtest vgtestmkfs.ext4 /dev/vgtest/lvtest -L vgtest-lvtestmkdir -p /users && mount /dev/vgtest/lvtest /users
2、 新建用户archlinux,要求其家目录为/users/archlinux ,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录
useradd archlinux -d /users/archlinuxsu - archlinuxcp /etc/pam.d ~
3、扩展lvtest至7G,要求archlinux用户的文件不能丢失
lvextend -L 7G /dev/vgtest/lvtestresize2fs /dev/vgtest/lvtest
4、收缩lvtest至3G,要求archlinux用户的文件不能丢失
umount /dev/vgtest/lvtest fsck -f /dev/vgtest/lvtest#resize2fs /dev/vgtest/lvtest 3Glvresize -r -L 3G /dev/vgtest/lvtestmount /dev/vgtest/lvtest /users
5、对lvtest创建快照,并尝试基于快照备份数据,验证快照的功能
lvcreate -s -L 1G -p r -n lvtest_snap /dev/vgtest/lvtestmkdir /mnt/lvtest_snap && mount /dev/vgtest/lvtest_snap /mnt/lvtest_snap
原创文章,作者:Leion,如若转载,请注明出处:http://www.178linux.com/71179
评论列表(2条)
赞一个,继续努力哦
@马哥教育:
Thanks!