在内核中执行
以文件系统为单位启用
对不同组或者用户的策略不同
根据块或者节点进行限制
执行软限制(soft limit)
硬限制(hard limit)
初始化
分区挂载选项: usrquota,grpquota
初始化数据库: quotacheck
执行
开启或者取消配额: quotaon,quotaoff
直接编辑配额: edquota username
在shell中直接编辑: setquota username 4096 5120 40 50 /foo
定义原始标准用户: edquota -p user1 user2
报告配额状态
用户调查: quota username
配额概述: repquota /mountpoint
其他工具: warnpuota
操作如下:
1,先添加了一块硬盘,扫描
echo "- - -" >/sys/class/scsi_host/host2/scan #扫描新增的硬盘
- fdisk /dev/sdb #创建新的分区
- partx -a /dev/dab #将新创建的分区信息更新到
- mkfs.ext4 /dev/sdb1 #格式化分区
- mkdir /mnt/home #新建一个home目录
- mount /dev/sdb1 /mnt/home/ #将新划分的分区挂载到 /mnt/home目录下
- mv * /mnt/home/ #将home下的内容移动到分区里
- mount /dev/sdb1 /home #将分区挂在到/home 目录下
- umount /mnt/home #卸载/mnt/home
- vim /etc/fstab #编辑配置文件,把分区信息写到里面
- UUID=28b60fbb-5c63-4ba0-b818-ec103d714d2f /home ext4 defaults,usrquota,grpquota 0 0 #分区信息,要写到/etc/fstab文件中
- mount -o remount /home 重新挂载分区信息
- quotacheck -cgu /home #初始化配额数据库,发现权限不足,可以执行下面操作,否则跳过,执行成功后,目录下会出现两个新的二进制文件
- getenforce #如果返回值为Enforcing ,则叙执行setenforce 0 ,否则,跳过
- quotaon /home #开启配额功能
- edquota cent #编辑用户配额,内容如下
- setquota nineven 500000 600000 0 0 /home #也可以直接通过命令实现以上功能
- edquota -p cent xixi #也可以通过此命令将cent用户的配额配置信息复制给xixi用户
- quota cent #直接查看cent用户的配额信息
- repquota /home #通过repquota 分区 查看更详细的信息
功能:
提供IO能力:磁盘并行读写
提高耐用性:磁盘冗余来实现
级别:多块磁盘组织在一起的工作方式有所不同
RAID实现的方式:
外接式磁盘阵列:通过扩展卡提供适配能力
内接式RAID:主板集成RAID控制器,安装os前在BIOS里配置
软件RAID:通过os实现
RAID级别及其特点
RAID-0:
读写性能提升
可用空间:N*min(S1,S2...)
无容错能力
最小磁盘数:2
RAID-1:
读性能提升,写性能略有下降
可用空间:1*min(S1,S2...)
用冗余能力
最小磁盘数:2,2N
RAID-4:
多块数据盘异或运算值,存于专用校验盘
RAID-5:
读写性能提升
可用空间(N-1)*min(S1,S2...)
有容错能力:允许最多1块磁盘损坏
最少磁盘数:3,3+
RAID-6:
读写性能提升
可用空间:(N-2)*min(S1,S2...)
有容错能力:允许最多2块磁盘损坏
最少磁盘数:4,4+
RAID混合类型级别
RAID-10:(先组成raid0,然后在组成raid1)
读写性能提升
可用空间: N*min(S1,S2...)/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4,4+
RAID-7:
可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最好的RAID的模式
JBOD:Just a Bunch Of Disks :将多块磁盘的空间合并成一个大的连续空间使用
常用的RAID组级别为:RAID-0;RAID-1;RAID-5;RAID-10;RAID-50;JBOD
mdadm:为软RAID提供管理界面
为空余磁盘添加冗余
结合内核中的md(multi devices)
RAID设备可命名为/dev/md0;/dev/md1等等
命令的语法格式:
mdadm [mode] [options]
mode:
创建: -C:创建模式
-n # :使用#个块设备来创建此RAID
-l # :指明要创建的RAID的级别
-a {yes|no} :自动创建目标RAID设备的设备文件
-c CHUNK_SIZE :指明块的大小
-x # :指明空闲盘的个数
装配: -A
监控: -F
管理:
-f :标记指定磁盘为损坏
-r :添加磁盘
-a :移除磁盘
-D :显示raid的详细信息:
mdadm -D /dev/md#
raiddevice:
/dev/md#
component-devices:
任意块设备
观察md的状态:
cat /proc/mdstat
软RAID配置示例:
使用mdadm创建并定义RAID设备
[root@centos6 home]# mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b..e}1
用文件系统对每个RAID设备进行格式化
[root@centos6 home]# mkfs.ext4 /dev/md0
测试RAID设备
使用mdadm检查RAID设备的状况
[root@centos6 home]# mdadm -D /dev/md0
增加新的成员
[root@centos6 home]# mdadm -G /dev/md0 -n4 -a /dev/sdf1
软RAID测试和修复
模拟硬盘故障
[root@centos6 home]# mdadm /dev/md0 -f /dev/sda1
移除硬盘
[root@centos6 home]# mdadm /dev/md0 -r /dev/sda1
从软件RAID磁盘修复磁盘故障
替换处故障的磁盘然后开机
在备用驱动器上常见分区
#mdadm /dev/md0 -a /dev/sda1
mdadm , /proc/mdatat 及系统日志信息
软RAID管理
生成配置文件:mdadm -D -s >> /etc/mdadm.conf
停止服务:mdadm -S /dev/md0
激活:mdadm -A -s /dev/md0
强制启动:mdadm -R /dev/md0
删除raid信息:mdadm --zero-superblock /dev/sdb1
比如:
创建一个可用空间为10G的RAID1设备,要求其chunk大小为128k,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录
- #先创建三个分区大小都为10G的分区,然后把硬盘类型改为raid
- mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 -c 128K /dev/sdc{1,2} /dev/sdb2 #创建raid1 一个备用盘,块大小128k
- mdadm -D /dev/md0 #显示raid的详细信息
- cat /proc/mdstat #查看raid组创建的信息
- mkfs.ext4 /dev/md0 #格式化raid组md0磁盘
- mkdir /backup #创建一个文件夹
- vim /etc/fstab #将挂载的信息写到配置文件中
- UUID=bd0df058-4d13-40cf-b635-cb7390e7ba25 /backup ext4 defaults 0 0
- mount -a #重新读取配置文件,是配置生效
- mdadm -Ds /dev/md0 > /etc/mdadm.conf #保存配置文件
- 1、fdisk /dev/sdb
- /dev/sdb1
- dd if=/dev/sdb of=/dev/sdd bs=1 count=512
- 2、mdadm -C /dev/md0 -a yes -l 5 -n 3 -x 1 /dev/sd{b,c,d,e}1 创建raid
- 3、mkfs.ext4 /dev/md0
- 4、vim /etc/fstab
- /dev/md0 /mnt/raid ext4 defaults 00
- 5、mount -a
- 6、mdadm -D /dev/md0 查看状态
- cat /proc/mdstat
- 7、mdadm /dev/md0 -f /dev/sdb1 模拟失败
- 8、mdadm /dev/md0 -r /dev/sdb1 删除成员
- 9、mdadm /dev/md0 -a /dev/sdb1 添加成员
- 10、mdadm -Ds /dev/md0 > /etc/mdadm.conf
- 11、umount /dev/md0;mdadm -S /dev/md0
- 清除raid
- 1、umount /dev/md0;mdadm -S /dev/md0
- 2、mdadm --zero-superblock /dev/sdx 清除成员raid信息
- 3、fdisk /dev/sdx 删除成员分区
- 4、vim /etc/fstab
- 5、rm /etc/mdadm.conf
允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
允许在多个物理设备间重新组织文件系统
将设备指定为物理卷
用一个或多个物理卷来创建一个卷组
物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
在物理卷上创建的逻辑卷是由物理区域(PE)组成
可以在逻辑卷上创建文件系统
LVM的介绍:
LVM:Logical Volume Manager,Version:2
dm:device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块
设备名: /dev/dm#
软连接:
LVM可以弹性的更改LVM的容量,通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大容量
删除逻辑卷: 删除逻辑卷必须先删除LV,再删除VG,最后删除PV
pv管理工具
- pvs :显示pv简要信息
-
- pvdisplay :显示详细的PV信息
-
- pvcreate /dev/device :创建pv
vg管理工具
1,显示卷组
- vgs
-
- vgdisplay
2,创建卷组
vgcreate [-s #[kKmMgGtTpPeE]] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
3,管理卷组
- vgextend VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
-
- vgreduce VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
4,删除卷组
先做pvmove,再做vgremove
lv管理工具
1,显示逻辑卷
- lvs
-
- lvdisplay
2,创建逻辑卷
lvcreate -L #[mMgGtT] -n NAME VolumeGroup
3,删除逻辑卷
lvremove /dev/VG_NAME/LV_NAME
4,重设文件系统的大小
- fsadm [options] resize device [new_size[BKMGTEP]]
-
- resize2fs [-f] [-F] [-M] [-P] [-p] device [new_size]
扩展和缩减逻辑卷
1,扩展逻辑卷
- lvextend -L [+]#[mMgGtT] /dev/VG_NAME/LV_NAME
-
- resize2fs /dev/VG_NAME/LV_NAME
2,缩减逻辑卷
- umount /dev/VG_NAME/LV_NAME #先卸载挂载点
-
- e2fsck -f /dev/VG_NAME/LV_NAME #对磁盘进行强制检查
-
- resize2fs /dev/VG_NAME/LV_NAME #[mMgGtT] #缩减文件系统的大小
-
- lvreduce -L [-]#[mMgGtT] /dev/VG_NAME/LV_NAME #缩减物理大小
-
- mount #重新挂载分区
这五步缺一不可
创建逻辑卷实例
1,创建物理卷
pvcreate /dev/sdb2
2,为卷组分配物理卷
vgcreate vg0 /dev/sdb2
3,从卷组创建逻辑卷
- lvcreate -L 256M -n data vg0
-
- mke2fs -j /dev/vg0/data
4,挂载
mount /dev/vg0/data /mnt/data
逻辑卷管理器快照
快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的准确拷贝
对于需要备份或者复制的现有数据集临时拷贝以及其他操作来说。快照是最合适的选择
快照只有在它们和原来的逻辑卷不同时才会消耗空间
在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或者快照有所改变才会使用这些空间
当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中
快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快照中更改的数据
建立快照的卷大小只需要原始逻辑卷的15%-20%就够了,也可以使用lvextend扩展快照
逻辑卷快照原理:
快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则有快照区和文件系统共享
由于快照区与原本的LV公用很多PE的区块,因此快照去与被快照的LV必须要在同一个VG上,系统恢复的时候的文件数量不能高于快照区的实际容量
使用LVM快照
1,为现有的逻辑卷创建快照
lvcreate -l 64 -s -n snap-data -p r /dev/vg0/data
2,挂载快照
- mkdir -p /mnt/snap
-
- mount -o ro /dev/vg0/snap-data /mnt/snap
3,删除快照
- umount /mnt/databackup
-
- lvremove /dev/vg0/databackup
1、创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
2、 新建用户archlinux,要求其家目录为/users/archlinux ,而后su切换至archlinux用户,复制/etc/pam.d目录至自己的家目录
3、扩展testlv至7G,要求archlinux用户的文件不能丢失
4、收缩testlv至3G,要求archlinux用户的文件不能丢失
5、对testlv创建快照,并尝试基于快照备份数据,验正快照的功能
本练习在centos6.8系统上完成
- pvcreate /dev/sd{b,c,e}{1,2} #先创建pv
- vgcreate testvg -s 16M /dev/sd{b,c,e}{1,2} #创建卷组
- lvcreate -n testlv -L 5G testvg #从卷组中创建一个lv
- mkfs.ext4 /dev/testvg/testlv #格式化lv
- mkdir /users #创建一个文件夹作为挂载点
- vim /etc/fstab #将分区挂载信息写到配置文件中
- mount -a #重新读取配置文件
- useradd -d /users/archlinux archlinux #创建一个新的用户,指定家目录
- su - archlinux #切换新创建的用户
- cp -a /etc/pam.d/* . #复制文件
- exit #退出
- lvextend -L 7G /dev/testvg/testlv #扩展lv分区物理大小
- resize2fs /dev/testvg/testlv #扩展lv分区文件系统大小
- umount /users #卸载分区
- e2fsck -f /dev/testvg/testlv #强制检查文件系统
- resize2fs /dev/testvg/testlv 3G #将文件系统缩减到指定大小
- lvreduce -L 3G /dev/testvg/testlv #缩减lv物理卷大小
- mount -a #重新挂载分区
- lvcreate -s -L 500M -n testlvsnap -p r /dev/testvg/testlv #创造指定卷的快照
- mkdir /mnt/testlvsnap #创建一个文件夹作为快照的挂载点
- mount /dev/testvg/testlvsnap /mnt/testlvsnap/ #挂载快照到指定分区