1、概念介绍
硬盘由容量、C:柱面数(Cylinder)、H:磁头数(Head)、S:扇区数(Sector)
- 磁头数表示硬盘总共有几个磁头,也就是有几面盘片,最大为 255
- 柱面数表示硬盘每一面盘片上有几条磁道,最大为 1023
- 扇区数表示每一条磁道上有几个扇区,最大为 63,每个扇区一般是 512 个字节
磁盘容量计算:255×1023×63×512 / 1048576 = 8024MB (1M = 1048576Bytes)
Centos7/RHEL7如何对磁盘进行分区和格式化以及配置LVM,与以前版本的RHEL区别不大,可以通过disk工具(在图形桌面中运行)或命令工具(如:fdisk、gdisk、parted)管理硬盘设备。fdisk可以配置MBR格式; gdisk配置gpt格式, parted可以自己选择。
磁盘分区格式:
a. MBR格式
传统的硬盘分区都是MBR格式,MBR分区位于0扇区,他一共512字节,前446字节是grub引导程序,中间64字节是分区表,每个分区需要16个字节表示,因此主分区和扩展分区一共只能有4个分区,超过4个的分区只能从扩展分区上再设置逻辑分区来表示。每个分区的大小无法超过2T。 MBR的最后2个字节是结束符号
b. GPT格式
GPT格式,打破了MBR的限制,可以设置多达128个分区,分区的大小根据操作系统的不同有所变化,但是都突破了2T空间的限制。支持高达 18EB (1EB=1024PB,1PB=1024TB) 的卷大小。
2、fdisk 分区工具
a. 创建分区:fdisk
- 描述:在交互式的操作环境中管理磁盘分区
- 语法:fdisk [选项] 磁盘文件
-l:查看磁盘信息
# 查看 /dev/sdb 磁盘信息
fdisk -l /dev/sdb
# 创建分区
fdisk /dev/sdb
# 查看分区类型
# 打印已创建分区信息,写入退出
# 查看创建好的分区
ls /dev/sdb*
- 注意:变更磁盘(特别是正在使用的硬盘)的分区设置以后,新的分区在/dev下查看不到,执行partprobe命令(如partprobe /dev/sdb)使操作系统检测新的分区表情况。
b. 格式化分区:mkfs
- 描述:加载不同的程序来创建各种类型的文件系统
- 语法:mkfs [选项] 文件系统 分区 | mkfs.filesystem 分区
-t 指定文件系统类型
-f 强制写入
# 查看文件系统类型
ls /sbin/mkfs*
将 sdb1 分区格式化成 xfs文件系统:
mkfs.xfs /dev/sdb1 | mkfs -t xfs /dev/sdb1
将 sdb5分区 更改成swap文件系统类型:
# 查看当前操作系统swap分区大小
free -m
# 格式化/dev/sdb分区为swap
mkswap /dev/sdb5
# 启用交换分区
swapon /dev/sdb6
# 停用交换分区
swapoff /dev/sdb6
# # 查看当前操作系统swap分区大小
free -m # 新启用了两个交换分区 sdb6 sdb7
c. 挂载文件系统:mount
在linux操作系统中,对各种存储设备中的资源访问都是通过目录结构进行的,所以对于用户来说,还需要一个挂载的过程,才能像访问目录一样访问存储设备中的资源
使用 umount 卸载文件系统:umount 挂载目录/文件系统目录
- 描述:将设备文件挂载至目录
- 语法:mount [选项] 设备文件 挂载目录
-t, --types <列表> 限制文件系统类型集合
-a 根据 /etc/fstab 重新挂载文件系统类型
# 将 sdb1分区 挂载至 mbr
mount /dev/sdb1 /mnt/mbr
# 查看分区挂载情况
df -h
设置文件系统的自动挂载:/etc/fstab
linux系统中的/etc/fstab文件是mount命令的配合文件,其中存储了文件系统的静态挂载数据,Linux操作系统在每次开机时,会自动读取这个文件的内容,自动挂载所指定的文件系统。
- 第1字段:设备名或设备卷标名或uuid
- 第2字段:文件系统的挂载点目录的位置(交换文件系统没有挂载点,所以挂载位置就写swap)
- 第3字段:文件系统类型,如xfs、swap等
- 第4字段:挂载参数,即mount命令 -o选项后可使用的参数。
-
- 例如defaults、rw、ro、noexec分别表示默认参数、可写、只读、禁用执行程序。
- 第5字段:表示文件系统是否需要dump备份(dump是一个备份工具)。1表示需要,0表示忽略。
- 第6字段:该数字决定系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2表示其次检查,根分区应设为1,其他分区设为2。
blkid 命令
- 描述:查看设备的UUID
- 语法:blkid 设备文件
# 查看 sdb1 的UUID
blkid /dev/sdb1
# 编辑 fstab,将sdb1设置为开机自启动
vim fstab
UUID=cf1f2df4-55dc-437f-b917-4a9bda0c6924 /mnt/mbr xfs defaults 0 0
# 刷新挂载
mount -a
d. 查看挂载情况:df
- 描述:查看挂载情况
- 语法:df [选项]
-h: 以KB、MB、GB的单位来显示,可读性高(最常用)
-T: 显示文件系统类型
-i: 显示inode信息
# 查看文件系统挂载情况
df -Th
3、parted 分区工具
# 使用parted工具设置分区
parted /dev/sdb
# 以gpt格式创建一个分区
mklabel/mktable gpt
# 创建一个分区
mkpart
# 查看 分区信息 并退出
p
quit
a. 将已格式化成GPT的磁盘重新格式化为MBR:
- 使用gdisk命令可以将磁盘转换为GPT格式,但是无法将GPT格式转换为MBR格式
- 使用parted可以将GPT格式的磁盘转换为MBR格式
# 使用parted命令格式化磁盘,help查看帮助信息
parted /dev/sdb
help
# 创建一个新的磁盘,将磁盘类型设置为MBR格式(mdos)
mktable msdos
4、磁盘限额
通过磁盘限额可以为用户、组提供相关文件系统的磁盘空间使用额度,从而避免用户、组耗尽存储资源。在centos系统中,内核已经定制了支持linux文件系统的磁盘配额功能,并且在系统中配置和管理磁盘配额的工具由xfsprogs软件包的xfs_quota配额管理程序提供。
在centos系统中,不同的文件系统使用不同磁盘配额配置管理工具。如xfs文件系统通过xfs_quota工具进行管理,ext3/ext4文件系统通过quota工具进行管理。
yum install -y xfsprogs
作用范围:
针对指定的文件系统(分区),只在指定的文件系统(分区)内有效,用户使用其他未设置配额的文件系统时,将不受到限制。
限制对象:
指定用户账号、组账号进行限制,没有被设置限额的用户或组将不受影响。对组账号设置配额后,组内所有用户使用的磁盘容量、文件数量的总和不能超过限制。
注意:只对一般用户有效,因为root拥有全部的磁盘空间。
限制类型:
磁盘容量:(默认单位为KB),也就是限制磁盘空间大小
文件数量:限制用户能够拥有的文件个数。在linux操作系统中,每一个文件都有一个对应的数字标记,称为i节点(inode)编号,这个编号在同一文件系统内是唯一的,因此,xfs_quota通过限制i节点的数量来实现对文件数量的限制。
限制方法:
软限制:指定一个软性的配额数值(如,480MB磁盘空间、180个文件),在固定的宽限期(默认为7天)内允许暂时超过这个限制,但系统会给出警告信息。
硬限制:指定一个硬性的限制数值(如,500MB、200个文件),是绝对禁止用户超过的限制值,当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值应大于相应的软限制值,否则软限制将失效。
前期操作:
实施磁盘配额功能指定的分区必须已经挂载且支持磁盘配额功能。挂载xfs系统分区到指定目录,并通过参数uquota,gquota开启文件系统配额
# 格式化 sdb1分区
mkfs.xfs /dev/sdb1
# 将 sdb1 挂载至 mbr 目录
mount /dev/sdb1 /mnt/mbr
# 编辑 fstab 文件
vim /etc/fstab
/dev/sdb1 /mnt/mbr xfs defaults,usrquota,grpquota 0 0
# 刷新挂载
mount -a
# 查看挂载情况
df -h
# 给mbr目录添加权限777
chmod 777 /mnt/mbr
a. 设置用户和组账号的配额设置
- 语法:xfs_quota -x -c ‘limit -u/-g bsoft=N bhard=N isoft=N ihard=N 用户名/组名’ 挂载点
-x 表示启动专家模式,即在当前模式下允许对配额系统进行修改的所有管理命令可用
-c 选项直接调用管理命令
-u 是针对用户设置磁盘配额,
-g 是针对组账户设置磁盘配额
bsoft 设置磁盘容量的软限制数值
bhard 设置磁盘容量的硬限制数值
isoft 设置磁盘文件数的软限制数值
ihard 设置磁盘文件数的硬限制数值
# 设置用户user1的磁盘配额,
# 磁盘容量软限制80MB,磁盘容量硬限制100MB,文件数软限制2,文件数硬限制3
xfs_quota -x -c 'limit -u bsoft=80M bhard=100M isoft=3 ihard=5 user1' /mnt/mbr
# 查看user1用户针对/date目录的磁盘容量限额
xfs_quota -c 'quota -uv user1' /mnt/mbr
- Quata字段对应的是软限制,Limit字段对应的是硬限制。
# 查看user1用户针对/date目录的磁盘文件限额
xfs_quota -c 'quota -i -uv user1' /mnt/mbr
b. 验证磁盘配额功能
# 切换到 user1 用户
su - user1
# 持续向 /mnt/mbr/test.txt 文件写入数据,每次写入40M数据,第三次就会被限制住
dd if=/dev/zero of=/mnt/mbr/test.txt bs=1M count=40
c. 查看配额使用情况
# 同时查看磁盘容量和文件数的报告,可以使用report命令查看
xfs_quota -x -c 'report -abi'