磁盘管理与配额的建立
磁盘的管理
一、磁盘的表示方式
MBR和GPT
MBR:主引导记录,一般为4个主分区,每16个字节描述一个分区(446【磁盘分区的描述---导航】+64【磁盘分区】+2【磁盘引导的描述,找到后结束引导】)。
MBR作为主引导时会有三种分区类型:主分区(独立存放,0-4个),扩展分区(只能创建一个),逻辑分区(位于扩展分区之上,最多支持一般为60个,基于MBR一般为63个,加上三个主分区)。主分区和逻辑分区可以写数据,扩展分区不可以写数据(不可以存放数据!!!)。
MBR的弊端在于支持的单个磁盘空间不得超过2.2TB,更大的空间不能管理。支持的空间有限。分区数量有限。
GPT:硬盘空间超过2.2TB的。可以将硬盘格式化成GPT。所有分区都是主分区。GPT兼容MBR。
有备份。
二、linux中的磁盘和分区光驱等设备表示为文件
比如:/dev/sda1
/dev 为设备文件存放的目录
sd 表示为usb、SATA、scsi、或者sas接口磁盘设备
a表示第一块硬盘,b表示第二块
数字表示分区
三、RHEL/Centos默认使用的文件系统
EXT4:第四代扩展文件系统,用于数据的存储
XFS:高性能的日志文件系统
SWAP:交换文件系统,作用类似于虚拟内存
NTFS与FAT32这种windows常用的文件系统也支持,但NTFS需要安装格外的软件
四、基本指令
fdisk指令:(基于内存先做配置,保存后才写入硬盘)
传统的分区实用程序。利用基于提示的交互式用户界面。
必须以正在分区的磁盘为参数执行,例如:fdisk /dev/sdb
parted指令:(立即生效)
更强大但更复杂的分区实用程序。
支持GPT和2TB+分区。
可以检测、创建、删除,调整并移动包含swap、ext[2,3,4]、reiserfs和VFAT文件系统的分区
五、创建并管理分区的基本步骤 --------七步走
---------------------------------------------------------------
1、添加硬盘并查看
lsblk 或
fdisk -l进行查看,后面可以加路径进行查看
---------------------------------------------------------------
---------------------------------------------------------------
2、将新添加进来的磁盘进行分区管理
fdisk /dev/sdb来进行分区管理
---------------------------------------------------------------
---------------------------------------------------------------------------------
3、进入管理界面后,进行管理分区。(可输入m来查看帮助)
fdisk 分区路径 以下是常用选项:
m 查看帮助
n 新增磁盘分区
(n新增后会有p主分区【1-4】和e扩展分区,不选择默认是主分区p,可以输入p或者直接回车)
p 查看磁盘分区信息
t 转换分区类型
l 查看支持转换的文件类型(t输入完后,l进行查看然后输入对应编号即可)
d 删除已存在的磁盘分区
w 保存写入
q 不保存退出
创建完后,要输入w保存退出即可。
可添加扩展分区,输入e进行扩展(前提是n新增分区,有空间的情况下。)然后输入p进行查看,添加完扩展后,可以再输入l进行创建逻辑分区,可以选择想要转换的文件格式(输入t,输入l可以进行查看可转换的类型),输入w保存退出,退出后再次对想要的逻辑分区进行格式化处理即可。
如果不转成相应的试配类型,保存退出后也可以强制进行格式化(mkfs),但是这样操作不稳定,容易造成数据的丢失,硬盘的崩溃。不建议这么操作。建议想格式化成什么类型的文件系统,底层就通过转换试配成什么文件系统的格式。相对稳定。
注意:扩展分区不能格式化只是一个载体,不能放数据。扩展分区下的逻辑分区可以格式化,可以放数据。扩展分区和主分区无法进行空间迁移或者划分,无法整合。底层类型不同。
---------------------------------------------------------------------------------
---------------------------------------------------------------------------------
4、刷新对应磁盘,建立以及格式化分区
先进行刷新,在进行建立以及格式化。
刷新:使用partprobe指令
如:partprobe /dev/sdb
(rhel5和rhel7识别新分区通过partprobe识别,rhel6识别新分区通过partx识别)
可查看/proc/partitions文件来验证是否被内核识别。
cat /proc/partitions
建立并格式化磁盘分区:
mkfs.文件类型 /dev/sdbx (x表示分区的编号)
如:mkfs.ext4 /dev/sdb1
交换分区格式化指令:mkswap 分区路径
例如:mkswap /dev/sdb5
也可以设置标签。相关命令选项看查看帮助:mkswap --help
激活交换分区内存大小的指令:
swapon -a (-a:将/etc/fstab文件中所有设置为swap的设备,启动为交换区;)
swapoff为关闭交换分区指令(-a:关闭配置文件“/etc/fstab”中所有的交换空间)
swapon -s 查看底层设备的内存是由哪些设备提供的支持
查看内存大小的指令:free
显示内容:
Mem是物理机分配的内存(创建虚拟机时候给的内存大小)
swap 是创建系统是给的大小或者默认大小。创建swap分区后,此内容会发生变化。
free -h 以我们人的角度方便查看的方式显示。
其他可使用free --help查看帮助
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
5、查看是否创建完成,格式化成功
lsblk 进行查看分区是否已经创建出来。
df -Th 也可以进行查看以及查看文件格式是否正确
可以查看文件是否识别新分区cat /proc/partitions
fdisk -l也可以查看
---------------------------------------------------------------------------------
----------------------------------------------------------------------------------
6、可以为创建的分区来进行打标签(标识)
此过程可以在格式化时候一并操作完成,不同的文件系统格式化命令不同,对应选项可以进行查看帮助来进行查询。
指令:
mkfs.文件格式 --help
查询:
blkid指令可以进行查看标签名字以及对应的UUID
UUID是唯一的,挂载文件中建议使用UUID。(绝对路径或者标签名字也可以)
也可以单独来进行设置标签----e2label命令
指令:
e2label 分区路径 标签
比如:e2label /dev/sdb1 newdisk1
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
7、创建挂载点,将分区进行挂载(永久挂载)
例如:将分区挂载到mnt目录下,在mnt目录下创建文件夹
mkdir /mnt/挂载文件夹
将信息写进/etc/fstab下进行永久挂载,写入完成后,执行mount -a
lsblk进行查看挂载相关的信息,检查是否挂载成功。
最后可以通过df -h来进行查看分区的大小以及使用情况
相关选项:
df -Th 可以显示分区的类型以及分区后的对应分区大小(出厂标准显示的大小一般1G=1000MB)
df -TH 显示相对直接,以标准来进行计算的大小,进行显示。(1G=1024MB)
tmpfs是临时文件系统,查看时候可以过滤出去,通过管道和grep。除去它以外的都是实际存储设备。
指令:df -Th | grep -v tmp即可过滤查看。
-------------------------------------------------------------------------------
磁盘的配额:
云盘的底层技术,从底层限制空间的使用。
磁盘配额quota
管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。
可以对用户存储文件数量的限制
可以对用户存储文件大小的限制
block和inode区域
数据写在block区中。ls -li 显示出来的号,就是block区的根据。
当在block区建立文件时,对应的inode区也会产生一一的对应关系。(inode可一对多,主要针对文件数量)
左边inode区域右边block区域。block区的文件删除,inode区域的不会被删除,默认不删除。(可进行数据恢复)但如果删掉后在原来的位置又创建了新文件,inode区域会被覆盖,无法找回。
文件占的区域小,可格式化成相对小的空间。反正格式化成相对大的空间。默认4096.最大2M。
磁盘的随机擦写,随机的数据覆盖到之前得磁盘分区中去,inode区域被覆盖,无法恢复。将以前的数据打乱,覆盖inode区域。实际就是对inode区进行擦写。写数据是在block区域,而实际存放是在inode区域。
EXT4类型的配额:
任何一个条件达到峰值时,都不可以进行创建了。
soft软限制是警告值,hard硬限制是最终实际使用的大小。如果文件没有写满,不会触发时间。对于所有的配额都适用。
首先第一步挂载:
1、挂载的同时需要为文件系统添加支持配额的选项
在/etc/fstab中的defaults后添加usrquota,grpquota等选项。(需要哪个添加哪个即可)
添加以前可以使用mount指令进行查询,mount | grep 对应磁盘分区
执行mount -o remount 挂载路径,在不下线的情况下重新进行挂载。(或者直接将设备下线然后再重新挂载即可。)
然后再次执行mount | grep 对应磁盘分区,进行查看,即可。
2、创建对应的配额文件
指令:quotacheck -augcv
输入该指令后,会在对应的挂载目录下生成对应的配额文件
-a 扫描所有支持配额的分区
-u 扫描磁盘计算用户所占用的文件数
-g 扫描磁盘计算组所占用的文件数
-c 创建配额文件aquota.user和aquota.group
-v 显示详细信息
3、针对用户或者用户组来进行配额的设置
edquota -u/g 用户/用户组
打开文件后,block文件后的soft为软限制,是一个警示(快达到满额度时的一个警告),hard是硬限制,限制大小的。(自定义大小即可,但不能超过磁盘分区的空间,否则没有意义。警示也是如此,警示不得超过硬限制,否则也是没有意义。)inode后的soft同理也是软限制,限制的是个数,hard是硬限制,限制实际的文件个数。(原理也是同上)
4、配额完成后,进行配额的激活开启
指令:
quotaon -a 开启全部
-a 表示开启支持配额功能所有分区
quotaoff -a 关闭
5、查询相应的配额
针对用户:
quota -u 用户名
针对组:
quota -g 用户组
针对设备:
repquota 设备路径
-s 选项可以显示单位
------------------------------------------------------------------------------
细节注意/etc/fstab文件,不要出现错误,否则磁盘无法挂载,或无法识别对于的配额选项。
如出现大问题会导致系统无法启动。需要进入紧级模式进行检查恢复。
------------------------------------------------------------------------------
XFS文件类型的配额:
针对用户以及针对项目(目录)进行配额
指令:xfs_quota
一、针对用户
xfs_quota
-x:启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
-c:直接调用管理命令,如limit,report等
针对用户和组做quota限制
1、挂载的同时需要为文件系统添加支持配额的选项
进入到/etc/fstab的文件下,在对应的磁盘分区的挂载点,添加相应的配额选项。实现永久挂载。
设备启用配额,需要将文件系统重载
umount 挂载点;mount -a(或mount -o remount /mnt/xfs,remount对xfs相对不敏感,如果无法识别,可以尝试将磁盘分区的挂载点先下线然后再重新挂载回来。)
验证参数识别
mount | grep 磁盘分区
2、针对用户进行配额限制
指令:
xfs_quota -x -c "limit -u bsoft=警示大小 bhard=限制大小 isoft=快达到警示的文件个数 ihard=实际限制的文件个数 用户名" 磁盘分区路径
xfs_quota -x -c "limit -g bsoft=警示大小 bhard=限制大小 isoft=快达到警示的文件个数 ihard=实际限制的文件个数 用户组名" 磁盘分区路径
查询:
xfs_quota -x -c "report -ubih" 磁盘分区路径
xfs_quota -x -c "report -gbih" 磁盘分区路径
二、针对项目(目录)
1、挂载,以及对文件系统添加相关的配额选项
编辑/etc/fstab文件,加人prjquota选项。
-----------------------------------------
-->注意:grpquota和prjquota不可以并存。
-----------------------------------------
其余过程同上挂载方式相同。
2、对单一的目录设置配额(project)
(1)调用project命令创建一个project 要将grpquota的参数取消 然后加入prjquota
指定专用标识符与目录的对应在 /etc/projects
echo "18:磁盘分区挂载点" >> /etc/projects
规范项目名称与标识符的对应在 /etc/projid
echo "myquotaproject:18" >> /etc/projid
18位项目序号;myquotaproject为项目名称。
----------------------------------------------------
项目序号可以自定义,项目名称也可以自定义,但路径必须正确
----------------------------------------------------
(2)初始化以及配额
初始化项目名称:
xfs_quota -x -c "project -s myquotaproject"
打印信息:
xfs_quota -x -c "print" 磁盘分区挂载路径
对项目进行配额设置:
xfs_quota -x -c "limit -p bsoft=450M bhard=500M myquotaproject" 磁盘分区挂载路径
查询项目报告:
xfs_quota -x -c “report -pbih” 磁盘分区挂载路径
查询某个project的配额使用情况:
xfs_quota -c ”quota -p 18“ 磁盘分区挂载路径
列出目前系统的各个文件系统,以及文件系统的 quota 挂载参数支持
xfs_quota -x -c "print"
(3)配额的取消、开启以及删除
取消XFS文件系统的配额功能:
暂时取消XFS文件系统的quota限制功能
xfs_quota -x -c "disable -up" /mountpoint (磁盘分区挂载路径)
查看文件系统的quota限制功能的状态:
xfs_quota -x -c "state" /mountpoint (磁盘分区挂载路径)
如何开启:
开启的时候 需要先umount /mountpoint; mount -a
(开启时候需要先将磁盘分区挂载点下线,然后再重新挂载回来)
指令:
xfs_quota -x -c "enable -up" /mountpoint (磁盘分区挂载路径)
移除XFS文件系统配额:
如果要移除project,off完全关闭配额限制。
如想重开需卸载再重新挂载才能启动,如果无需执行remove,不建议使用off,一般disable即可。
指令:
xfs_quota -x -c "off -up" /mountpoint (磁盘分区挂载路径)
remove必须在off下才可以执行,删除配额限制。
(移除以前必须先关闭)
指令:
xfs_quota -x -c "remove -p" /mountpoint
umount /mountpoint; mount -a
(先将挂载点下线,在重新挂回来)
查询:
xfs_quota -x -c "report -phb" /mountpoint
--------------------------------------------------------------
针对项目的配额限制,对所有的用户都会进行限制,包括root用户。
--------------------------------------------------------------