一、磁盘结构
1.1 硬盘的物理结构
-
盘片:
- 磁盘内部有一个或多个金属或玻璃盘片,其表面被涂覆了磁性材料。数据通过在盘片表面上的磁性颗粒的磁性变化来存储和读取
-
读写磁头:
- 每个盘片上都有至少一对读写磁头,它们负责读取和写入数据。读写磁头悬浮在盘片表面上,通过气垫(如磁悬浮技术)或者传统的磁头设计来保持极小的距离
-
磁道:
- 盘片表面被划分为多个同心圆状的路径,称为磁道。每个磁道在盘片上沿着径向排列,数据被存储在不同的磁道上
-
扇区:
- 每个磁道被进一步分成多个扇区,每个扇区是存储数据的最小单位。常见的扇区大小是512字节或4KB
-
柱面:
- 柱面是指多个盘片上同一位置的磁道组成的集合。所有盘片上对应的磁道构成一个柱面。读写操作时,磁头可以同时访问同一柱面上的多个磁道
1.2 磁盘存储容量
硬盘存储容量=磁头数(8个2进制)×磁道(柱面)数×每道扇区数(6个二进制)×每扇区字节数
1.3 接口类型
IDE、SATA、SCSI、SAS、光纤接口
二、磁盘分区
2.1 磁盘分区的表示
Linux中将硬盘、分区等设备均表示为文件
2.2 磁盘的两种分区类型
MBR
MBR 是主引导记录,位于硬盘第一个物理扇区处,MBR中包含硬盘的主引导程序和硬盘分区表
MBR总共512字节, 前446字节是主引导记录,
分区表保存在MBR扇区中的第447-510字节中。分区表有4个分区记录区,每个分区记录区占16字节
主启动记录(MBR)磁盘分区支持最大卷为2.2TB,每个磁盘最多有4个主分区,或3个主分区、1个扩展分区和在扩展分区里面分多个逻辑分区
GPT
可以对磁盘空间2t以上的磁盘进行分区
在磁盘的开头和结尾各有一个分区表副本,增加了数据冗余和恢复能力
GPT 支持多达 128 个分区
总结:GPT提供了更现代化的分区方案,适用于大容量磁盘和现代系统,而 MBR 则是传统的分区方案,主要用于小容量磁盘和旧系统。根据具体需求和系统兼容性,选择适合的分区表格式,以充分利用磁盘空间和系统功能
2.3 文件系统类型
XFS:是一种高性能的日志文件系统,特别擅长于处理大文件,可支持上百万 T 字节的存储空间。由于 XFS 文件系统开启日志功能,所以即便发生宕机也不怕数据遭到破坏,这种文件系统可以根据日志记录在短时间内进行数据恢复
SWAP:交换文件系统,用于为 Linux 系统建立交换分区。交换分区的作用相当于虚拟内存,能够在一定程度上缓解物理内存不足的问题。一般建议将交换分区的大小设置为物理内存的 1.5~2 倍。例如,对于拥有 512MB物理内存的主机,其交换分区的大小建议设置为 1024MB。如果服务器的物理内存足够大(如 8GB 以上),也可以不设置交换分区。交换分区不用于直接存储用户的文件和目录等数据。
EXT4:第 4 代扩展文件系统,用于存放文件和目录数据的分区,是 Linux 系统中默认使用的文件系统(CentOS 7 默认使用 XFS)。EXT4 是典型的日志型文件系统,其特点是保存有磁盘存取记录的日志数据,便于恢复,在存取性能和稳定性方面更加出色。
Linux 系统还广泛支持其他各种类型的文件系统,
如 JFS、FAT16、FAT32、NTFS 等
2.4 查看磁盘分区的命令
fdisk -l 查询磁盘设备
fdisk -l :查看硬盘的整体情况和分区情况
lsblk 以树形查看磁盘分区
blkid 查看磁盘的UUID
三、Linux 分区方式
3.1 创建分区基础命令
fdisk指令说明
fdisk /dev/sda
交互模式中的常用指令
Command (m for help): m #输入m指令
a toggle a bootable flag #设置可引导标记
b edit bsd disklabel #修改bsd的磁盘标签
c toggle the dos compatibility flag #设置DOS操作系统兼容标记
d delete a partition #删除一个分区
l list known partition types #显示已知的分区类型
m print this menu #显示帮助菜单
n add a new partition #增加一个新的分区
o create a new empty DOS partition table #创建一个新的空白的DOS分区表
p print the partition table #显示磁盘当前的分区表
q quit without saving changes #退出fdisk程序,不保存任何修改
s create a new empty Sun disklabel #创建一个新的空白的Sun磁盘标签
t change a partition's system id #改变一个分区的系统号码
u change display/entry units #改变显示记录单位
v verify the partition table #对磁盘分区表进行验证
w write table to disk and exit #保存修改结果并退出fdisk程序
x extra functionality (experts only) #特殊功能,不建议初学者使用
mkfs 创建系统文件(格式化)
用于在分区或设备上创建文件系统。创建文件系统的过程通常包括在指定设备或分区上组织数据结构,使其能够存储文件和目录,并确保数据的读取和写入操作能够正确执行
根据指定的文件系统类型进行格式化
mkfs -t xfs /dev/sdb1 mkfs.xfs /dev/sdb1
mount 挂载命令
挂载文件系统、ISO镜像到指定文件夹
mount 存储设备 挂载目录
mount [ -t 类型 ] 存储设备 挂载点目录 #用于指定文件系统类型,通常可以省略,由系统自动识别
mount -o loop ISO镜像文件 挂载点目录
-o options 主要用来描述设备或档案的挂接方式 #挂载参数列表,以英文逗号分隔:如用来描述特殊设备,用loop指定
loop:用来把一个文件当成硬盘分区挂接上系统
umount命令
卸载已挂载的文件系统
umount 存储设备位置
umount 挂载点目录
3.2 创建物理卷详细操作:
首先在虚拟机设置添加一块新的硬盘
lslblk 命令查看到名为 sdb 一块新硬盘:
使用 fdisk 命令进入/dev/sdb:
配置分区:
mkfs 格式化
创建成功:
以一个空目录mntjqg作为挂载点:
将/dev/sdb1 挂载到/home/mntjqg
3.3 LVM机制的基本概念
PV(Physical Volume,物理卷)
物理卷是LVM机制的基本存储设备,通常对应为一个普通分区或整个硬盘。创建物理卷时,会在分区或硬盘的头部创建一个保留区块,用于记录LVM的属性,并把存储空间分割成默认大小为4MB的基本单元(Physical Extent,PE),从而构成物理卷(例:/dev/sdb1 /dev/sdc1)。
PE的值可以是4、8、16、32、64。PE越小硬盘利于率高,但是每个VG块的最大数65534,所以PE大小决定了VG卷组大小
VG(Volume Group,卷组)
由一个或多个物理卷组成一个整体,即称为卷组,在卷组中可以动态地添加或移除物理卷
LV(Logical Volume,逻辑卷)
逻辑卷建立在卷组之上,与物理卷没有直接关系。对于逻辑卷来说,每一个卷组就是一个整体,从这个整体中“切出”一小块空间,作为用户创建文件系统的基础,这一小块空间就称为逻辑卷。使用mkfs等工具在逻辑卷上创建文件系统
LVM 的管理命令
3.4 创建逻辑卷详细操作:
首先取消之前的挂载
fdisk /dev/sdb 创建sdb2 ,把分区类型的ID标记号改为“8e”
创建逻辑卷
格式化 /dev/csdn/pkm
查看
挂载
四、设置磁盘配额
当Linux根分区的磁盘空间耗尽时,Linux操作系统将无法再建立新的文件,同时也可能会出现服务程序崩溃、系统无法启动等故障。
为了避免在服务器中出现类似磁盘空间不足的问题,可以启用磁盘配额功能,对用户在指定文件系统(分区)中使用的磁盘空间、文件数量进行限制,以防止个别用户恶意或无意间占用大量磁盘空间,从而保持系统存储空间的稳定性和持续可
在Centos系统中,不同的文件系统使用不同磁盘配额配置管理工具。
例如,XFS文件系统通过xfs_quota 工具进行管理;
EXT3/4 文件系统通过quota工具进行管理。
CentOS7中设置磁盘配额步骤
检查是否已安装xfsprogs和xfs_ quota软件包
以支持配额功能的方式挂载文件系统
添加挂载参数"usrquota"用于增加对用户配额功能的支持
创建用户名为 pkm
配置限额:
查看pkm用户的配额
验证:
数据超过100M后就会写入出错
五、RAID 分区
5.1 什么是 raid
raid 是磁盘的集合,简称磁盘阵列
5.2 raid 功能实现
5.3 raid 实现的方式
5.4 raid 级别
raid 0
raid 1
raid 5
raid 10
5.5 实现软 raid
mdadm 常用选项说明
建立 raid 5
先在系统添加三块 scsi 磁盘
将sdb sdc sdd 分区类型为 fd
创建raid5 :
创建完成后 格式化:
进行挂载:
此时创建完成查看到状态:
测试:
将sdb1 sdc1 标记为坏盘
查看状态:
raid 5 只能允许坏一块盘,两块盘都坏了,此时md5盘已经崩溃: