一、磁盘存储术语总结和理解
1.物理结构术语
- 盘片 (Platter):硬盘内部存储数据的圆形磁性碟片
- 磁头 (Head):用于读写盘片数据的微小设备,悬浮在盘片表面上方
- 磁头臂 (Actuator Arm):驱动磁头在盘片上径向移动的机械臂
- 主轴马达 (Spindle Motor):驱动盘片高速旋转的电机,决定硬盘转速(如7200 RPM)
- 磁道 (Track):盘片上同心圆的磁化区域,数据沿磁道存储
- 扇区 (Sector):磁道上最小的物理存储单元,通常为512字节或4KB
2.逻辑结构术语
- 柱面 (Cylinder):所有盘片上相同半径的磁道组成的垂直圆柱体
- 块 (Block):操作系统和文件系统读写数据的逻辑单位,通常是扇区的整数倍(如4KB)
- 容量 (Capacity):硬盘可存储数据的总量,GB/TB为单位
- 分区 (Partition):将一个物理硬盘划分为一个或多个逻辑区域,每个区域可独立使用
- 文件系统 (File System):操作系统用于组织、存储和管理文件的方法(如ext4, NTFS)
- LBA (Logical Block Addressing):现代硬盘寻址方式,将所有扇区线性编号,简化了操作系统对物理地址的定位
3.性能相关术语
- 寻道时间 (Seek Time):磁头从当前位置移动到目标磁道所需时间,影响随机读写性能
- 旋转延迟 (Rotational Latency):磁头到达磁道后,等待目标扇区转到磁头下方所需时间,取决于转速
- 数据传输率 (Transfer Rate):数据从硬盘读出或写入的速度,MB/s为单位
二、总结MBR、GPT结构区别
结构 | MBR | GPT |
---|---|---|
位置 | 磁盘的第一个扇区(LBA 0) | 磁盘LBA 1开始(主GPT头),并在磁盘末尾有备份 |
最大磁盘容量 | 2TB | 9.4ZB |
最大分区数 | 4个主分区,或3个主分区+1拓展分区 | 默认128个分区 |
引导方式 | BIOS | UEFI |
数据冗余/可靠性 | 无,分区表损坏数据难以恢复 | 有,主/备GPT头和分区表,可靠性高 |
分区标识 | 1字节分区类型ID | 16字节GUID |
适用场景 | 老旧系统、<2TB磁盘、BIOS启动 | 新系统、>2TB磁盘、UEFI启动 |
三、总结学过的分区、文件系统管理
1.磁盘分区
- 概念: 将一块物理硬盘划分为逻辑独立的区域,每个区域可被视为一个独立的“磁盘”进行管理
- 作用:数据隔离、多操作系统安装、数据组织、LVM底层基础等
- MBR分区类型:
· 主分区 (Primary):最多4个,可直接引导操作系统
· 扩展分区 (Extended):只能1个,作为逻辑分区的容器
· 逻辑分区 (Logical):在扩展分区内创建,数量不限
- 常用工具:
fdisk
(MBR),gdisk
(GPT),parted
(通用) - 基本流程:识别磁盘 -> 启动分区工具 -> 新建/删除分区 -> 保存更改 -> 同步分区表
2.文件系统
- 概念:操作系统用于组织、存储、检索和管理文件的方法,它定义了数据在分区上的布局、元数据(权限、时间戳等)以及如何映射到物理块
- 作用:抽象化复杂存储、数据完整性、权限控制、空间管理
- 常见类型:
· Linux:ext4
(主流,带日志), XFS
(高性能,大文件), Btrfs
(新一代,带快照/RAID功能), Swap
(交换空间)
· Windows:NTFS
(主流,功能丰富), FAT32
(老旧,兼容性好但有限制)
· 跨平台:exFAT
(解决FAT32大文件问题,U盘常用)
- 常用工具/命令:
mkfs.<fs_type>
(格式化),fsck.<fs_type>
(检查修复),mount
(挂载),umount
(卸载),df
(查看空间),/etc/fstab
(自动挂载配置) - 基本流程:创建分区 -> 创建文件系统 -> 创建挂载点 -> 挂载文件系统 -> (可选) 配置自动挂载
四、总结raid 0、1、5、10、01的工作原理。总结各自的利用率、冗余性、性能,至少几个硬盘实现
RAID级别 | 工作原理 | 硬盘利用率 | 冗余性 | 性能特点 | 至少硬盘数 |
---|---|---|---|---|---|
RAID 0 | 数据条带化 (Striping): 数据并行写入所有盘。 | 100% | 无冗余: 任意一块盘损坏,数据全失 | 最佳读写性能(N倍单盘速度) | 2 |
RAID 1 | 数据镜像 (Mirroring): 数据完全复制到另一块盘。 | 50% | 高冗余: 允许一半盘损坏(2盘容忍1盘) | 读取性能提升,写入性能一般 | 2 |
RAID 5 | 条带化+分布式奇偶校验: 数据和校验信息分散存储 | (N-1)/N | 中等冗余: 允许任意一块盘损坏。 | 读取性能好,写入性能中等(需计算校验) | 3 |
RAID 10 | 条带化的镜像 (RAID 0 on RAID 1): 先镜像再条带化 | 50% | 高冗余: 容忍每对镜像组中一块盘损坏 | 读写性能极优,重建快,可靠性高 | 4(2对RAID 1) |
RAID 01 | 镜像的条带 (RAID 1 on RAID 0): 先条带化再镜像 | 50% | 中等冗余: 容忍一个RAID 0组完全损坏 | 读写性能极优,但多盘故障容忍度低于RAID 10 | 4(2组RAID 0) |
五、总结LVM的基本原理,完成实验对LVM的创建和磁盘扩容
1.LVM基本原理
1.1.LVM层次结构
- 物理卷 (Physical Volume - PV):硬盘分区或整块硬盘,是LVM的最小物理单位。PV被划分为PE (Physical Extent)
- 卷组 (Volume Group - VG):由一个或多个PV组成,形成一个统一的存储池。VG内的PE构成LE (Logical Extent) 池
- 逻辑卷 (Logical Volume - LV):从VG中分配出来的、可供操作系统使用的逻辑分区。LV由LE组成,操作系统将其视为一个独立的块设备
1.2.LVM优势
- 灵活性(在线扩容/缩容)
- 高可用性(快照)
- 管理简便
2.LVM 创建与磁盘扩容实验
2.1.实验环境
Linux虚拟机,添加两块新的虚拟磁盘(例如/dev/sdb
, /dev/sdc
,各5GB)。
2.2.实验步骤
2.2.1.添加虚拟磁盘
2.2.2.识别新磁盘并初始化为LVM物理卷(PV):
lsblk # 查看新添加的磁盘,如 /dev/sdb, /dev/sdc
# 对 /dev/sdb 操作:创建分区并设置为LVM类型 (8e)
sudo fdisk /dev/sdb # n -> p -> 1 -> 回车 -> 回车 -> t -> 8e -> w
# 对 /dev/sdc 操作:重复上述步骤
sudo fdisk /dev/sdc # n -> p -> 1 -> 回车 -> 回车 -> t -> 8e -> w
# 创建物理卷
sudo pvcreate /dev/sdb1 /dev/sdc1
sudo pvs # 验证PV创建
2.2.3.创建卷组(VG):
sudo vgcreate my_vg /dev/sdb1 /dev/sdc1 # 将PV加入VG
sudo vgs # 验证VG创建
2.2.4.创建逻辑卷(LV)并使用:
sudo lvcreate -L 5G -n my_lv my_vg # 从my_vg创建5GB的my_lv
sudo lvs # 验证LV创建
sudo mkfs.ext4 /dev/my_vg/my_lv # 在LV上创建ext4文件系统
sudo mkdir /mnt/data_lvm # 创建挂载点
sudo mount /dev/my_vg/my_lv /mnt/data_lvm # 挂载LV
df -h /mnt/data_lvm # 验证挂载和空间
2.2.5.扩容逻辑卷(LV):假设需将my_lv从5GB扩容到8GB
sudo vgdisplay my_vg # 确认VG有足够的空闲空间
sudo lvextend -L +3G /dev/my_vg/my_lv # 将my_lv扩展3GB (总共8GB)
# 或者:sudo lvextend -L 8G /dev/my_vg/my_lv
# 同步文件系统大小 (重要!)
sudo resize2fs /dev/my_vg/my_lv # 适用于ext2/3/4文件系统
# 如果是XFS文件系统:sudo xfs_growfs /mnt/data_lvm
df -h /mnt/data_lvm # 最终验证扩容结果