首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux_学习之硬盘管理:quota、lvm

磁盘配额quota

/etc/fstab记录的是当前系统挂载分区信息

/etc/mtab记录的是当前系统分区的文件系统信息,每当挂载或卸载都会读此文件

用途:

  1.网络服务:wwwserver/mailserver/fileserver/个人空间限制

  2.个人:每个用户家目录的空间限制

  3.群组:

功能使用前提:

  1.针对整个filesystem,不能针对目录而设,如:/dev/sda1

  2.kernel需支持quota

  3.只针对一般用户,因为root不受限

规范:

1.容量或档案数量限制(block或inode)

2.soft(警告)或是hard(强制)soft

3.当达到soft时,会在一段宽限时间里不断警告(grace time)默认7天,如果不清理空   间,7天过后soft值取代hard值

quotacheck [-avugfM] 挂载的分区

# 扫描文件系统并**建立quota记录文件**

-a扫描所有在/etc/mtab里支持quota的文件系统

-u针对用户扫描,建立aquota.user

-g针对群组扫描,建立aquota.group

-v显示过程

-f强制扫描,并写入新的quota配置文件

-M强制以rw的方式扫描

-----------------------------

quotacheck建立quota配置文件==>quotaon开启服务=>edquota编辑===>repquota查看设置情况统计

-----------------------------

$ quotacheck-avug

quotacheck: Cannotfindfilesystem to check or filesystem not mounted with quota option.

如果是上面显示的现在系统中无支持quota的文件系统。

需要添加:

mount-oremount,usrquota,grpquota /data------------->临时

vim/etc/fstab 中加入

--------------------------------

启动/关闭quota服务

quotaon  [-avug]           quotaoff [-aug] [/mount_point]

--------------------------------

编辑quota

edquota :编辑账号/群组的限量和宽限时间

-uusername

-ggroupname

-t修改宽限时间  ----------------》没法针对某一用户/群组设,只能统一设置

-p复制账号  -u新账号

如:#edquota -u test

soft   警告容量/数量 单位为KB

hard   强制容量/数量 单位为KB

-------------------------------

确认是否设置正确:针对用户或群组显示单一用户或群组的quota情况

quota [-uvs][username]       quota[-gvs][groupname]

-u用户

-g群组

-v  用户或群组在各分区(或叫filesystem)的容量设置

-s  使用1024位倍数指定单位kB,MB,GB

eg:#quota -uvs test myquota myquota1

------------------------------

针对整个系统查看quota设置情况

repquota [-avugs]

-a搜索/etc/mtab报告所有的quota情况

-u显示用户的

-g显示群组的

-s  以m为单位显示

-----------------------------

通知用户自己磁盘用量超出了警告,通过邮件形式发出,用户可用mail命令查看

warnquota-------------> 配置文件为/etc/warnquota.conf

让系统自动发起warnquota,在如下文件添加

# vim /etc/cron.daily/warnquota

**0304** *** \* \* /usr/sbin/warnquota**

# chmod 755 /etc/cron.daily/warnquota

-------------------------------

直接设置quota也可以:

setquota-u|g 名称 【block_soft值】【block_hard值】【inode_soft值】 【inode_hard值】文件系统

# setquota -u test 100000 200000 /data

LVM(logical  volume manager)逻辑滚动条管理员

注:如无pvcreate等命令需提前装lvm2包

作用:弹性解决磁盘分区(filesystem)扩容

做法:整合多个分区或磁盘成一个大的逻辑磁盘,之后lvm可对其进行增加或删除

pv:各实体分区或硬盘通过fdisk改变其系统标识符为8e(lvm标识)

•  通过pvcreate将分区或硬盘转成pv

vg:各pv组成一个大硬盘即vg

•  PV1+PV2+......+PVn=VG>=65534PE=256GB

lv:将vg划分各个小lv,lv类似分区槽   /dev/pvname/lvname ----->lv的全名

pe:为组成lv的区块,默认每个4M,类似block

•  nPE=LV

通过调节PE的个数,来调节LV大小,调节PV个数,来改变VG大小;

pvcreate pvdisplay(详细查看) pvscan (简要查看)       pvremove

vgcreate vgdisplay vgscan vgextend vgreduce vgchange vgremove

lvcreate   lvdisplay   lvscan lvextend   lvreduce           lvremove lvresize

pvcreate  分区

vgcreate  -s(pe大小size,可选单位M,G,T)vg名称  pv名称

lvcreate  -L        容量  -n  lv名  vg名

             -l          pe数

建立PV----------->**pvcreate [分区或硬盘]**

1.#fdisk /dev/sdb---->l----->t---->8e(lvm系统标识)----->#partprobe(刷新分区表从而不重启)

2.#pvcreate /dev/sdb---------->一次将5块盘一起创建PV

建立VG------------>vgcreate [-s number[M,G,T]] vgname pvname

-s指定pe大小,默认4MB

1.#vgcreate -s 4M vg01 /dev/sdb

建立LV  ------------> **lvcreate 【-L/l number[m,g.t]】 【-n lvname】 vgname**

               -L  后直接指定lv容量大小(为pe的整数倍) 如:-L 30G

               -l  后接pe的个数(在建完vg后查看可得多少pe数)

1.#lvcreate -L 30G -n lv001 vg01 ----------->建的第一个lv分区,其他类似

格式化LV

#mk2fs -t ext4 /dev/vg01/lv001

挂载LV

# mount /dev/vg01/lv001 /mnt

or

#vim /etc/fstab   (通过lvdisplay查看uuid挂载,费lvm可用blkid查看uuid)

or

#vim /etc/rc.d/rc.local

调节LV大小

1.加入空闲的实体分区或新加硬盘,通过fdisk改变其为lvm系统标识符8e

2.通过pvcreate将其转化成pv

3.通过vgcreate将组合好的pv转化成整体的vg组

4.通过resize2fs刷新system中的pvgroup组,从而达到增加vg的目的

增加LV大小-------》可在线进行扩容

(一) 先增加物理大小,后增加邏輯大小

1.增加实体分区或硬盘改变其文件系统(eg:加了一块10G的硬盘/dev/sda8)

2.pvcreate  /dev/sda8

3.vgextend  vg01 /dev/sda8    ------->从而增大vg即有多的pe未分配

增加卷的大小

4.lvresize  -L  40G  /dev/vg01/lv001 ------>将其加到逻辑分区lv001(原有30g)                                   上,改变lv大小记录

lvextend -L +10G  /dev/vg01/lv001

注:此时只是在lvm改变了lv的参数,但文件系统中为改变

增加文件系统的大小记录

5.resize2fs  /dev/vg01/lv001   ------>整理刷新改变文件系统记录

      ressiz2fs  【 -f (强制resize动作) 】【装置名】【size如只增加部分容量                   到此分区则需指定】

(二)

1.通过vgdisplay查看有多少未被分配的pe,从而将委分配的pe加入要扩充容量的lv

2.比照执行上面第4与第5步

减小LV大小------》不允许在线扩容

先減小**邏輯大小,后減小物理大小**

1.umount  /dev/vg01/lv001

减小文件系统记录的大小

2.resize2fs /dev/vg01/lv001  5000M------>直接改变lv的大小如之前6GB,现改为                                      5GB)

减小lv的大小

3.resize2fs  -L 5G  /dev/vg01/lv001

lvreduce  -L 5G  /dev/vg01/lv001

4.mount  /dev/vg01/lv001  /mnt

减小vg的大小-----将某一pv从vg中删掉

1.查看欲删之pv使用情况pvdisplay

2.将欲删之Delpv已使用的数据转移到vg中空闲的pv中(即将Delpv中的pe块做移转)

•      pvmove Delpvname Freepvname

3.从vg中删除Delpv

•      vgreduce vgname Delpvname

4.从pv中删除Delpv

•      pvrmove Delpvname

LVM快照功能,建立快照区,将欲改变的数据的原始数据提前备份,以备后期还原。

         只备份有被更改的数据,而未更改的还留在原来的地方。

因快照区域与LV分区共享没有被更改的PE块,故它们都在一个VG中,故vg需有空闲的用于存放被变动数据的原始数据。

快照创建:

lvcreate-l100-s-nlv001_snapshot /dev/vg01/lv001

•         -l后接欲将vg中多少空闲的pe块数分配做快照

•         -s  表示做快照

•         -n  自定义快照名

可通过挂载快照比对发现与被快照的分区中数据一样

mount /dev/vg01/lv001_snapshot /tmp/snapshot

还原被改动过的分区到没改动前的状态:

1.因要删除原始分区的数据,删除也是一种改变,如果删除,原始分区的所有数据都会复制到快照区,可能造成快照区满载放不小,从而导致快照失效,故在删前,先打包备份快照到其他地方。

tar-jcv-f/tmp/backups/lvm.tar.bz2 /tmp/snapshot/*

umount /dev/vg01/lv001_snapshot

lvrmove /dev/vg01/lv001_snapshot

2.删除原始分区数据

umount /dev/vg01/lv001

mk2fs-text4 /dev/vg01/lv001

mount /dev/vg01/lv001 /mnt

3.解压包还原数据

tar-jxv -f/tmp/backups/lvm.tar.bz2  -C /mnt/

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210301A0FFWZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券