title: 磁盘与 RAID 管理
created: 2026-06-20
updated: 2026-08-14
type: entity
tags: [storage, raid, disk, management, entity]
sources:
- raw/scripts/RAID.sh
- raw/scripts/0硬盘.sh
- raw/scripts/磁盘 .sh
磁盘与 RAID 管理
磁盘与 RAID 管理涵盖物理磁盘的查看、健康检查、分区、格式化、挂载,以及 RAID 卡管理(StorCLI/MegaCLI)、虚拟磁盘创建、热备盘配置等运维操作。
磁盘管理
查看磁盘信息
# 查看所有块设备(型号、序列号、接口、挂载点)
lsblk -o NAME,MAJ:MIN,MODEL,SERIAL,SIZE,WWN,HCTL,TRAN,VENDOR,TYPE
# 查看 SCSI 设备(HCTL、厂商、型号、容量)
lsscsi -s
# 查看硬盘硬件信息
lshw -class disk
# 查看设备 UUID 与文件系统
blkid
ls -l /dev/disk/by-uuid/
ls -l /dev/disk/by-id/
SMART 健康检查
# 查看硬盘温度
smartctl -a /dev/sda | grep -i -E 'Temperature|emp'
# 查看使用时间与序列号
sudo smartctl -i -A /dev/sdd | grep -iE 'Device Model|Serial|Power|Product'
# 批量采集
for i in {a..z}; do
smartctl -a /dev/sd$i >> smartctl.out
done
关键阈值指标:
- Reallocated_Sector_Ct — 重映射扇区数(应为 0)
- Power_On_Hours — 通电小时数
- Temperature_Celsius — 当前温度
- Pending_Sector — 待重映射扇区(应为 0)
分区与格式化
# 交互式分区
fdisk /dev/sdb
# 或 parted(支持 GPT 大容量)
parted /dev/sdb mklabel gpt
# 格式化(ext4 / xfs)
mkfs.ext4 /dev/sdb1
mkfs.xfs /dev/sdb1
# 挂载
mkdir -p /data
mount /dev/sdb1 /data
# 永久挂载(写入 fstab)
echo "/dev/sdb1 /data ext4 defaults 0 0" >> /etc/fstab
mount -a # 验证 fstab 无错误
I/O 监控
iostat -x 1 # 每 1 秒输出扩展统计
| 指标 | 含义 |
|---|---|
r/s, w/s |
每秒读写请求数(IOPS) |
rkB/s, wkB/s |
每秒读写数据量(吞吐量) |
await |
平均 I/O 等待时间(ms),反映延迟 |
%util |
设备利用率(不一定是瓶颈指标) |
RAID 管理(StorCLI / MegaCLI)
StorCLI 安装
StorCLI 是 Broadcom/LSI RAID 卡的官方管理工具。
# 安装
yum install -y storcli
# 创建软链接
sudo ln -s /opt/MegaRAID/storcli/storcli64 /bin/storcli64
sudo ln -s /opt/MegaRAID/storcli/storcli64 /sbin/storcli
# 下载地址
# https://docs.broadcom.com/docs-and-downloads/raid-controllers/raid-controllers-common-files/007.1907.0000.0000_Unified_StorCLI.zip
基础查询
查看 RAID 卡
storcli show
输出示例:
Ctl Model AdapterType VendId DevId SubVendId SubDevId PCI Address
0 SAS9311-8i SAS3008(C0) 0x1000 0x97 0x1000 0x3090 00:b3:00:00
Ctl = Controller ID(RAID 卡编号),后续命令用 c0、c1 引用。
查看磁盘信息
storcli /c0 show
输出列含义:
| 字段 | 说明 |
|---|---|
| EID:Slt | Enclosure ID:Slot ID(背板:槽位) |
| DID | Device ID |
| State | UGood=正常,UBad=故障 |
| DG | Disk Group(属于哪个 RAID 组) |
| Size | 容量 |
| Intf | SATA/SAS/NVMe |
| Med | HDD/SSD |
| Sp | 热备状态 |
查看详细配置
# 完整信息输出到文件
storcli /c0 show all logfile=logfile.txt
# 查看控制器日志
storcli /c0 show termlog
storcli /c0 show events
虚拟磁盘(VD / RAID 组)管理
创建 RAID
# RAID 0(条带化)
storcli /c0 add vd r0 drives=93:3-4
# RAID 1(镜像)
storcli /c0 add VD r1 drives=30:3,30:4
# RAID 5(分布式奇偶校验)
storcli /c0 add VD r5 drives=252:0-3
# RAID 5(带缓存策略)
storcli /c0 add vd type=raid5 size=all drives=8:0,8:1,8:2 awb ra
删除 RAID
storcli /c0/vall show # 查看所有虚拟磁盘
storcli /c0/v0 delete force # 删除 VD0(force 跳过确认)
缓存策略
# 批量设置(推荐)
storcli /c0 /vall set rdcache=RA wrcache=WB pdcache=off
# 写入缓存:WT=WriteThrough, WB=WriteBack, AWB=AdaptiveWriteBack
storcli /c0 /v1 set wrcache=awb
# 刷新缓存
storcli /c0 flushcache
| 策略 | 说明 | 适用场景 |
|---|---|---|
| WT (WriteThrough) | 数据写入磁盘后才返回 | 数据安全优先 |
| WB (WriteBack) | 数据写入缓存即返回 | 性能优先(需电池/电容保护) |
| AWB (AdaptiveWB) | 根据是否有电池自动切换 | 折中方案 |
| RA (ReadAhead) | 预读 | 顺序读优化 |
| NoRA | 不预读 | 随机读优化 |
热备盘(HotSpare)
# 全局热备
storcli /c0/e8/s3 add hotsparedrive
# 局部热备(指定 DG=0 的热备)
storcli /c0/e8/s3 add hotsparedrive dgs=0
# 删除热备
storcli /c0/e8/s3 delete hotsparedrive
# 自动全局热备
storcli /c0 set eghs eug=on
storcli /c0 set eghs smarter=on
物理盘操作
点亮故障灯(定位磁盘)
storcli /c0/e2/s5 start locate # 亮灯
storcli /c0/e2/s5 stop locate # 灭灯
硬盘擦除
storcli /c0/e2/s11 start erase simple # 简单擦除(1遍)
storcli /c0/e2/s11 start erase normal # 普通擦除(3遍)
storcli /c0/e2/s11 start erase thorough # 彻底擦除(9遍)
storcli /c0/e2/s11 show erase # 查看进度
storcli /c0/e2/s11 stop erase # 停止
JBOD / 直通模式
# 切换 RAID 卡 Personality
storcli /c0 set personality = jbod
storcli /c0 set personality = raid
# 单盘直通
storcli /c0/e252/s1 set jbod
storcli /c0/e252/s1 del jbod force
# 批量设置
storcli64 /c0/e8/sall set jbod
# 清理状态
storcli /c0/e252/s1 set good force
RAID 维护
一致性检查(CC)
storcli /c0/vall stop cc # 停止一致性检查
storcli /c0 set CC=conc starttime=2012/02/21 00 # 定时执行
初始化
# RAID 快速初始化(仅前 100MB)
storcli /c0/vx start init
# 完全初始化(全盘写0,耗时较长)
storcli /c0/vx start init full
# 后台初始化(BGI)
storcli /c0 /vall set autobgi=off
storcli64 /c0/vall show autobgi
巡读(Patrol Read)
storcli /c0 set patrolread=on # 开启
storcli /c0 show patrolread # 查看状态
RAID 重建
storcli /c0 set rebuildrate=50 # 设置重建速率(1-100)
storcli /c0 show rebuildrate # 查看
storcli /c0/e2/s5 show rebuild # 查看某盘重建进度
storcli /c0/e2/s5 pause rebuild # 暂停
固件升级
storcli /c0 download file=mr3108fw.rom noverchk
storcli /c0 restart
MegaCLI(旧版兼容)
旧版 RAID 卡仍使用 MegaCLI:
# 查看物理盘
megacli -PDList -aALL
# 查看逻辑盘
megacli ldinfo lall a0
# 创建 RAID5(物理盘 1:2,1:3,1:4 + 热备 1:5)
megacli -CfgLdAdd -r5 [1:2,1:3,1:4] WB Direct -Hsp[1:5] -a0
# 创建 RAID10
megacli –CfgSpanAdd –r10 –Array0[1:2,1:3] –Array1[1:4,1:5] WB Direct -a0
常见故障处理
| 问题 | 排查命令 | 对策 |
|---|---|---|
| 磁盘 UBad | storcli /c0/e2/s5 show all |
更换硬盘,触发重建 |
| RAID Degraded | storcli /c0/vall show |
检查热备盘,确认重建 |
| 缓存数据丢失 | storcli /c0 flushcache |
尝试刷新缓存 |
| 外部配置冲突 | storcli /c0/fall delete |
导入或清除外部配置 |