Linux是多用户任务的操作系统, 所以就会出现多个用户共享磁盘的情况,如何解决不同用户合理使用磁盘的问题,就可以通过磁盘配额来解决。
针对用户,设置 用户的磁盘配置。
相关知识点
开启或者取消配额:quotaon 、quotaoff
直接编辑配额:edquota username
在shell 中直接编辑:setquota usename 4096 5120 40 50 /home
定义原始标准用户 :edquota -p user1 user2
初始化数据库quotacheck -cug /home
warnquota -u 给所有超过限制的用户发邮件
-g 当组的限制超出时,给组管理员发邮件,管理员需在/etc/quotagrpadmins 中指定 groupname: username
1.因为home是用户的家目录,所以要修改配额,就要修改家目录的默认选项,用户配额和组配
2.启用
3.启用配额
4.把王用户的软限制和硬限制设置一下
5.切换到王用户,创建文件,当文件大小超过软限制,就会发出警告,但文件依然会创建。
如果文件大小超过硬限制,文件就无法创建。
逻辑卷lvm
LVM 是什么?
lvm是逻辑卷管理, LVM 可以弹性的更改LVM 的容量通过交换PE 来进行资料的转换,将原来LV 内的PE 转移到其他的设备中以降低LV 的容量,或将其他设备中的PE 加到LV 中以加大容量
优点:
1.硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
2.文件系统建立在逻辑卷上,而逻辑卷可根据需要改变大小(在卷组容量范围内)以满足要求。
3.文件系统建立在LVM上,可以跨分区,方便使用;
建立逻辑卷时一定要弄清楚pv.vg和lv的关系,小编在学习时就因为没弄清楚三者之间的关系而走了很多弯路。
pv:物理卷,处于LVM最底层,可以是物理硬盘或者分区。
vg:卷组,建立在PV之上,可以含有一个到多个PV
lv:逻辑卷,建立在VG之上,相当于原来分区的概念。不过大小可以动态改变
创建逻辑卷
先创建pv:pvcreate /dev/sdb
创建vg vgcreate vgtest1 /dev/sdb
创建lv : lvcreate -L #[mMgGtT] -n 逻辑卷名 卷组名
lvcreate -l 60%VG -n 逻辑卷名 卷组名
实验1 扩展逻辑卷
1.先检查需要扩展的大小,VG是否有足够可用空间
2.如足够则扩展逻辑卷大小
lvextend -L 1G/+1G /dev/vgmage26/lvmage26_01
lvextend -l +100%FREE /dev/vgmage26/lvmage26_01
到此为止,只是逻辑卷增大了,但是文件系统还没变化,所以要进行同步。
3.扩展文件系统大小
resize2fs /dev/vgmage26/lvmage26_01
或
resize2fs /dev/vgmage26/lvmage26_01 500M 只增加到500M的文件系统
如果是xfs文件系统 用xfs_growfs
xfs_growfs /dev/vg01/lv01
实验2 减小逻辑卷大小 仅支持Ext文件系统
1.umount /mnt/lvmage26_0 减小之前一定要卸载
2.e2fsck -f /dev/vgmage26/lvmage26_01 对逻辑卷进行扫描
3.resize2fs /dev/vgmage26/lvmage26_01 300M
4.lvreduce -L 300M /dev/vgmage26/lvmage26_01
2.如果在这块PV上,则将数据转移到同卷组的其他PV上
pvmove /dev/pv1名 /dev/pv2名(可以不指定)
3.将pv从Vg中移出
vgreduce vg名 /dev/pv名
实验4 将LVM迁移到其他主机
1.将数据移到目标磁盘对应的PV上。(该磁盘不要有其他与该PV无关的分区)
pvmove /dev/pv1名 /dev/pv2名
vgreduce vg名 /dev/pv(多余) 移动除要移动的PV以外的其他PV
2.确保要迁移的VG名与目的系统没有同名的VG
vgrename vgmage26 vg02
lvrename /dev/vg02/lvmage26_01 /dev/vg02/lv01 (非必须)
3.umount /mnt/lvmage26_01
4.vgchange -an vg02 禁用VG上的所有LV
关机(如果支持热插排,则不用关机),拔硬盘,插到目标主机上。
6.装到其他主机上
首先找到导出的磁盘把它复制到要用的地方(若安装到centos7,则复制到centos7文件夹里),在设置里添加一块硬盘,勾选使用现有磁盘,再浏览选择复制的磁盘就ok了。
7.但是我们并找不到刚刚的磁盘,需要敲echo '- - -' > /sys/class/scsi_host/host2/,再敲lsblk就有了。
pvscan 扫描pv vgscan 扫描vg lvscan 扫描lv