磁盘管理
2026/2/25原创大约 4 分钟约 1175 字
目录
暂无目录
一、磁盘基础概念
1.1 磁盘类型
| 类型 | 描述 | 示例 |
|---|---|---|
| 机械硬盘(HDD) | 传统磁盘,通过磁头读写数据 | SATA硬盘 |
| 固态硬盘(SSD) | 基于闪存的高速存储设备 | NVMe SSD |
| 虚拟磁盘 | 软件模拟的磁盘 | LVM卷、RAID卷 |
1.2 磁盘分区表
MBR(主引导记录)
- 支持最大2TB磁盘
- 最多4个主分区
- 兼容性好,但限制较多
GPT(GUID分区表)
- 支持最大18EB磁盘
- 最多128个主分区
- 支持UEFI启动
- 自带分区表备份
二、磁盘管理命令
2.1 磁盘信息查看
查看磁盘列表
# 查看磁盘和分区信息
lsblk
# 查看详细磁盘信息
fdisk -l
# 查看磁盘使用情况
df -h
# 查看磁盘IO性能
iostat
# 查看磁盘挂载信息
mount
cat /etc/fstab查看磁盘健康状态
# 查看SMART信息(需要smartmontools)
smartctl -a /dev/sda2.2 磁盘分区
使用fdisk(MBR分区)
# 进入fdisk分区工具
fdisk /dev/sda
# 常用命令
m # 显示帮助
n # 创建新分区
p # 主分区
e # 扩展分区
w # 保存分区表
q # 不保存退出使用parted(GPT分区)
# 进入parted分区工具
parted /dev/sda
# 常用命令
mklabel gpt # 创建GPT分区表
mkpart primary 0% 50% # 创建主分区
rm 1 # 删除分区1
print # 显示分区信息
quit # 退出2.3 文件系统创建
# 创建ext4文件系统
mkfs.ext4 /dev/sda1
# 创建XFS文件系统
mkfs.xfs /dev/sda1
# 创建FAT32文件系统
mkfs.vfat /dev/sda1
# 创建swap分区
mkswap /dev/sda1
swapon /dev/sda12.4 磁盘挂载
临时挂载
# 挂载磁盘到指定目录
mount /dev/sda1 /mnt/data
# 挂载ISO文件
mount -o loop /path/to/image.iso /mnt/iso
# 挂载NTFS磁盘(需要ntfs-3g)
mount -t ntfs-3g /dev/sda1 /mnt/ntfs永久挂载
# 编辑fstab文件
vim /etc/fstab
# 添加挂载条目
/dev/sda1 /mnt/data ext4 defaults 0 2
# 测试挂载
mount -a2.5 磁盘卸载
# 卸载磁盘
umount /dev/sda1
umount /mnt/data
# 强制卸载(谨慎使用)
umount -f /mnt/data三、高级磁盘管理
3.1 LVM(逻辑卷管理)
创建LVM
# 创建物理卷
pvcreate /dev/sda1 /dev/sdb1
# 创建卷组
vgcreate vg_data /dev/sda1 /dev/sdb1
# 创建逻辑卷
lvcreate -L 100G -n lv_data vg_data
# 创建文件系统并挂载
mkfs.ext4 /dev/vg_data/lv_data
mount /dev/vg_data/lv_data /mnt/data扩展LVM
# 扩展卷组
vgextend vg_data /dev/sdc1
# 扩展逻辑卷
lvextend -L +50G /dev/vg_data/lv_data
# 扩展文件系统
resize2fs /dev/vg_data/lv_data3.2 RAID(磁盘阵列)
RAID级别
| 级别 | 描述 | 容错性 | 读写性能 | 空间利用率 |
|---|---|---|---|---|
| RAID 0 | 条带化,无冗余 | 无 | 高 | 100% |
| RAID 1 | 镜像,完全冗余 | 有 | 低 | 50% |
| RAID 5 | 分布式奇偶校验 | 有 | 中 | (n-1)/n |
| RAID 6 | 双重分布式奇偶校验 | 高 | 中 | (n-2)/n |
| RAID 10 | 镜像+条带化 | 高 | 高 | 50% |
创建RAID
# 创建RAID 1
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
# 查看RAID状态
mdadm --detail /dev/md0
cat /proc/mdstat四、磁盘性能优化
4.1 挂载参数优化
# 优化SSD挂载
/dev/sda1 /mnt/data ext4 defaults,discard,errors=remount-ro 0 2
# 优化网络存储挂载
//server/share /mnt/cifs cifs username=user,password=pass,iocharset=utf8 0 04.2 磁盘调度算法
# 查看当前调度算法
cat /sys/block/sda/queue/scheduler
# 设置调度算法(SSD推荐none或mq-deadline)
echo none > /sys/block/sda/queue/scheduler五、实战案例
5.1 案例1:新增磁盘配置
# 查看新磁盘
lsblk
# 创建分区
fdisk /dev/sdb
n -> p -> 1 -> w
# 创建文件系统
mkfs.ext4 /dev/sdb1
# 创建挂载点
mkdir /mnt/data
# 挂载磁盘
mount /dev/sdb1 /mnt/data
# 设置永久挂载
echo "/dev/sdb1 /mnt/data ext4 defaults 0 2" >> /etc/fstab5.2 案例2:磁盘空间清理
# 查看大文件
find / -type f -size +100M | sort -n -r
# 清理旧日志
find /var/log -name "*.log" -mtime +7 -delete
# 清理缓存
apt clean # Debian/Ubuntu
yum clean all # RHEL/CentOS六、常见问题排查
6.1 磁盘空间不足
# 查看磁盘使用情况
df -h
# 查看目录大小
du -sh /var/log
# 查找大文件
find / -type f -size +100M -exec ls -lh {} \;6.2 磁盘挂载失败
# 检查文件系统完整性
e2fsck /dev/sda1
# 查看挂载日志
dmesg | grep mount
# 检查fstab语法
mount -a6.3 磁盘IO过高
# 查看IO使用情况
iotop
# 查看进程IO
pidstat -d 1七、最佳实践
7.1 磁盘规划
- 系统分区:/boot分区建议200MB-500MB
- 交换分区:物理内存的1-2倍,不超过8GB
- 数据分区:单独挂载/data、/var等目录
- 备份分区:预留磁盘空间用于系统备份
7.2 监控与维护
- 定期检查:每周检查磁盘健康状态
- 日志清理:定期清理系统日志
- 备份策略:重要数据至少保留3份备份
- 性能监控:使用Prometheus+Grafana监控磁盘性能