在linux系统中,由于是多用户、多任务的环境,所以会有多用户共同使用一个硬盘空间的情况发生,如果其中有几个用户大量占掉了硬盘的空间的话,那肯定会影响到其他用户的使用。因此这就适当限制硬盘的空间给用户,以妥善分配系统资源。如果想要让磁盘的容量公平分配,这个时候就要靠quota的帮忙。
Quota的使用限制:
Quota的规范设置选项:
限制inode用量:管理用户可以新建的“文件数量”;
限制block用量:管理用户磁盘容量的限制,较常见的为这种方式。
不管是inode/block,限制值都有两个,分别是soft和hard。
hard:表示用户的用量绝对不会超过这个限制,若超过系统则会锁住该用户的
磁盘使用权。
soft:表示用户在低于soft限值时,可以正常使用磁盘,但若超过soft且低于
hard的限值时,可以正常使用磁盘,但若超过soft且低于hard的限值
每次用户登录系统时,系统会主动发出磁盘即将爆满的警告信息,且会
给予一个宽限时间(gracetime)。
实践Quota流程1:文件系统支持
先查下/home是否是个独立的文件系统:
#df -h /home
查询一下/home的文件系统:
#mount | grep home
如果只是想要在这次开机中实验quota,那么可以使用如下方式来加入quota的支持:
#mount -o remount,usrquota,grpquota /home
如果想开机自动挂载,那么:
#vim /etc/fstab (如图红线部分)
然后再重新挂载下/etc/fstab这个文件: #mount -a
实践Quota流程2:新建Quota配置文件
quotacheck:扫描文件系统并新建Quota的配置文件
#quotacheck -cvug /home 或 #quotacheck -avug
-c : 表示创建数据(data)文件,这时须写上挂载点啊
-a : 扫描在/etc/fstab文件里,含有quota支持的文件系统。加上此参数后,挂载点可不必写。
-u : 针对用户的扫描文件和目录的使用情况,会创建aquota.user.
-g :针对用户的扫描文件和目录的使用情况,会创建aquota.group.
实践Quota流程3:Quota启动、关闭与限制值设置
quotaon : 启动quota的服务
#quotaon -avug 或 #quotaon -ug /home
quotaoff : 关闭quota的服务
#quotaoff -avug 或 #quotaoff [-ug] /home
edquota : 编辑用户/用户组的限值和宽限时间
#edquota -u user1 (我系统中有个user1的用户)
#单位为KB
可以用 #edquota -t 来修改宽限时间。
实践Quota流程4: Quota限制值的报表
#quota -u user1 或 #repquota /home
软件磁盘阵列(Software RAID)
独立磁盘冗余数组(RAID, Redundant Array of Independent Disks)简称磁盘数组, 其基本思想就是把多个相对便宜的硬盘组合起来,成为一个磁盘数组组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不同,RAID比单 颗硬盘有以下一个或多个方面的好处:增强数据集成度,增强容错功能,增加处理量或容量。另外,磁盘数组组对于电脑来说, 看起来就像一个单独的硬盘或逻辑存储单元。分为RAID-0,RAID-1,RAID-1E,RAID-5,RAID-6,RAID-7,RAID- 10,RAID-50。
将多个磁盘合并成一个大的磁盘,不具有冗余,并行I/O, 速度最快。RAID 0亦称为带区集。它是将多个磁盘并列起来,成为一个大磁盘。在存放数据时,其将数据按磁盘的个数来进行分段,然后同时将这些数据写进这些盘中。 所以,在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都会丢失。
两组以上的N个磁盘相互作镜像, 在一些多线程操作系统中能有很好的读取速度,另外写入速度有微小的降低。除非拥有相同数据的主磁盘与镜像同时损坏,否则只要一个磁盘正常即可维持运作,可 靠性最高。RAID 1就是镜像。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据 备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID 1,仅算一个磁盘的容量,是所有RAID上磁盘利用率最低的一个级别。
RAID Level 5 是一种存储性能、数据安全和存储成本兼顾的存储解决方案。它使用的是Disk Striping(硬盘分区)技术。RAID 5 至少需要三颗硬盘, RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信 息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和 相应的奇偶校验信息去恢复被损坏的数据。 RAID 5可以理解为是RAID 0和RAID 1的折衷方案。RAID 5可以为系统提供数据安全保障,但保障程度要比镜像低 而磁盘空间利用率要比镜像高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度相当的慢,若使用“回写高速缓存”可以让性能改善不少。同时由于多个数据对应一个奇偶 校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较便宜。
软件磁盘阵列的设置
下面的做的是RAID5,利用4个分区组成RAID5;每个分区100MB大小;利用1个分区设置为sparedisk(预备磁盘);
如图所示我的五个分区(/dev/sda{5,6,7,8,9})
--create : 为新建RAID的参数
--auto : 决定新建后面的软件磁盘阵列设备,即/dev/md0
--raid-devices=N : 使用几个磁盘作为磁盘阵列的设备。
--spare-devices=N : 使用几个磁盘作为备用(spare)的设备。
--level=【015】 : 级别
--detail : 磁盘阵列设备的详细信息
也可以查阅如下文件来查看系统软件磁盘阵列的情况:#cat /proc/mdstat
格式化和挂载使用RAID
#mkfs -t ext3 /dev/md0
#mount /dev/md0 /mnt
将出错的磁盘删除并加入新磁盘
#mdadm --manage /dev/md0 --add /dev/sda10 --remove /dev/hda8
若是想关闭软件RAID,先卸载#umount /dev/md0然后再
#mdadm --stop /dev/md0
逻辑卷管理器(Logical Volume Manager)
什么是LVM:PV,PE,VG,LV的意义
LVM的实现流程:
LVM实践
#fdisk /dev/sda
#partprobe
如上图所示,上面的/dev/sda{6,7,8,9}这四个分区就是我们的物理分区。
PV阶段
#pvcreate /dev/sda{6,7,8,9} 将物理分区新建成为PV;
#pvdisplay 显示出目前系统上面的PV状态、信息;
VG阶段
#vgcreate vg1 /dev/sda{6,7,8} 创建vg,
-s : 后面接PE的大小
#vgdisplay 显示目前系统上的VG状态、信息;
假设我们要增加这个VG的容量,可以这样做:
#vgextend vg1 /dev/sda9
LV阶段
#lvcreate -l 100 -n vg1lv vg1
-l : 后面接PE的“个数”;-L : 后面接容量; -n : 后面接LV的名称;
#ll /dev/vg1/vg1lv
#lvdisplay
文件系统阶段
#mkfs -t ext3 /dev/vg1/vg1lv
#mount /dev/vg1/vg1lv /mnt/lvm
#df
放大LV容量
#vgextend vg1 /dev/sda5
#lvresize -l + 25 /dev/vg1/vg1lv
#resize2fs /dev/vg1/vg1lv
缩小LV容量
#umount /dev/vg1/vg1lv
#e2fsck -f /dev/vg1/vg1lv
#resize2fs /dev/vg1/vg1lv 400M
#mount /dev/vg1/vg1lv /mnt/lvm
#lvresize -l -25 /dev/vg1/vg1lv
#pvmove /dev/sda9 /dev/sda5
#vgreduce /dev/sda9
#pvremove /dev/sda9