许多linux使用者在安装操作系统时都会遇到这样的问题,如何合理精确的分配磁盘大小,如果分配不合理,一旦磁盘以后不够用,不得不面临,删除,备份数据到其他磁盘(一些正在生产中重要的数据,一旦移动可鞥会引起很大的问题,如果备份过程中数据损坏,也是很麻烦的事情),甚至重装系统的危机(比如:更目录爆满。)。


    lvm是建立在磁盘和分区之上可以动态分配分区大小的一项磁盘管理技术,很方便的解决了以上问题。下面我将通过一个生产中的小案例来讲解lvm和磁盘配额的详细情况。

   在做LVM前要先将新的磁盘用fdisk进行扩展分区和逻辑分区的划分,并将 磁盘ID更改为8e,虽然不这一步操作也可以直接将磁盘加入LVM,但是后续可能会出问题。将磁盘ID改为8e也是方便我们后面区分那个分区可以做在线扩展使用。


lvm的结构:

  1.PV(Physical Volume,物理卷)普通的分区或者磁盘。物理卷一般直接使用设备的文件名如:/dev/sdb1,/dev/sdb2,/dev/sdc/.等。对于要装换的物理卷的磁盘或者分区建议先将分区的ID:改为8e。


  2.VG(Volume Group,卷组)是由多个物理卷(PV)组成的。卷组中可以动态的添加和删除物理卷。卷组名要自定义。


  3.LV(Logical Volume,逻辑卷):逻辑卷在卷组之上,与物理卷没有直接的联系。逻辑卷是有卷组的空间中划分出来的。通过mkfs等工具在逻辑卷上创建文件系统,挂载后就可以储存文件了。        

关系图:

    


我们现在有两块磁盘 sdb,sdc要做逻辑卷并且要做磁盘配额。

 1.物理卷

  用pvcreate创建物理卷

   


  用pvdisplay查看物理卷信息

   


  用pvremove删除物理卷

   


 2.卷组


  用vgcreate创建卷组

  


  用vgremove删除卷组,vgdisplay查看卷组

  


  用vgextend扩展卷组

  



 用vgreduce将物理卷从卷组中删除

  wKioL1bvvUSDzlu9AAAe_W6E6zg291.png


3.逻辑卷

 用lvcreate创建逻辑卷。

 lvcreate -L 容量大小 -n 逻辑卷名 卷组名

  


把卷组的所有空间分配给逻辑卷

        用法: lvcreate -l 100%Free -n 逻辑卷名 卷组名

        命令: lvcreate -l 100%Free -n luoji cipanzu 


 扩展完成后使用resize2fs /dev/cipanzu/luoji 重新识别磁盘的大小。如果磁盘已经挂载,在线扩容的话一定要执行此命令,不然磁盘容量不会重新识别。

 

 lvextend扩展逻辑卷

  


 lvremove删除逻辑卷

   

     删除成功后用lvdisplay验证下。逻辑卷是否还存咋。


如果过逻辑卷创建成功那么就可以格式化并挂载使用了。

  

   

    mkdir /usr/mail  创建逻辑卷挂载目录。

  


LVM到此结束。下面将开始磁盘配额。

    linux根分区空间耗尽,linux将无法写入数据,从而程序崩溃,系统无法启动等众多故障。为了防止磁盘不足所引起的问题。所以我们要用磁盘配额。


磁盘配额将要用到quota命令。所以我们先检查下quota命令是否按装呢。

 用rpm -q quota   

  rpm -ql quota|grep sbin 查看quota是否正常安装。


  配额范围:磁盘配额只在指定的分区和文件系统内有效

  限制对象:用户和组

  限制类型:磁盘容量:默认为KB. 文件数量:每个文件都有一个inode(节点),因此quota通过节点数量来控制文件数量。

  限制方法:软限制:指定一个软性的配额数值。超过这个数值,只是警告。

         硬限制:达到这个配额数值时一定不能在做写入操作。软限制不能比应限制                设置的配额数值大,否则软限制将会无效。


1.用支持配额功能的方式挂载磁盘或分区。


 磁盘配额的一个前提条件,必须挂载并支持磁盘配额工能

  mount -o remount,usrquota,grpquota /dev/cipanzu/luoji /usr/mail

  remount:之前做过挂载,下载又挂载所以用remount。如果之前只是格式化好了,还木有挂载就去掉-o remount,“。

  usrquota支持用户配额

  grpquota支持组配额


  用mount 或者df -Th查看挂载情况。

  


将/dev/mapper/cipanzu-luoji /usr/mail ext3 defaults,usrquota,grpquota 0 0加入/etc/fstab中去。开机自动挂载 


2.quotacheck:检测磁盘配额并生成配额文件。

 


3.编辑用户和组的配额

  edquota -u 用户 :用户配额设置

   edquota -u zhangsan 


4.测试配额是否生效:

 设置:chmod 777 /usr/mail 给所有权。否则会出现错误。

 开启磁盘配额:quotaon /usr/mail (这里要开启)

 关闭磁盘配额:quotaoff  /usr/mail(不需要配额时关闭)

 用zhangsan登录并在/usr/mail下创建文件。

 

 

edquota -g 组 : 组配额设置 (与用户设置的选项是一样的。这里就略过了)


5.查看分区和用户的配额使用情况

 

 

分享个小技巧:当配额用户特别多时我们再一个个手动添加。那是要累死人的。所以edquota有一个参数可以帮我们的。

   比如我们现在除了zhangsan已经做过了配额。还有shamoluotu,lisi,wangwu,maliu等等成百用户也需要和zhangsna一样的配置。怎么办

  edquota -p 模板 用户

  edquota -p zhangsan shamoluotu,lisi,wangwu,maliu

  有多少用户添加多少即可。磁盘配额配置和张三一样。我们也可以写一个for循环的脚本来做。更加方便。


  为组设置模板,批量添加组配额(意思和用户一样,只是参数不同而已)

比如我们现在wangbazu  已经做过了配额。还有shamoluotuzu,nimazu,等等成百用户组也需要和 wangbazu 一样的配置。怎么办

 edquota  -g  -p 模板 组名

 edquota -p wangbazu  shamoluotuzu nimazu 注意多个组用空格隔开。