当前位置: 首页 > news >正文

Linux服务器存储扩容踩坑记:用fdisk和lsblk给四块16T硬盘组RAID5的全流程复盘

Linux服务器存储扩容踩坑记:用fdisk和lsblk给四块16T硬盘组RAID5的全流程复盘

去年双十一大促前,我们的文件存储服务器突然告警——剩余容量不足10%。作为团队里负责基础设施的"救火队员",我不得不紧急采购四块16T企业级硬盘来扩容。本以为按文档操作两小时就能搞定,结果从设备识别到RAID同步,踩遍了所有能想到的坑。这篇复盘将用第一视角带你走完整个流程,重点分享那些官方手册里不会写的实战细节。

1. 前期准备:认识你的存储设备

1.1 硬件选择与连接

这次选用的希捷Exos X16系列企业盘支持7×24小时运行,CMR传统磁记录技术比SMR更适合RAID环境。上架时有个细节值得注意:多盘位服务器最好间隔插盘。我们最初把四块盘连续插在背板1-4槽位,结果同步时温度集体飙到55℃以上,后来调整到1/3/5/7槽位,温度直降8℃。

查看设备拓扑结构的实用命令:

lsblk -o NAME,MODEL,SIZE,ROTA,MOUNTPOINT

输出示例:

NAME MODEL SIZE ROTA MOUNTPOINT sda ST16000NM001G 14.6T 1 sdb ST16000NM001G 14.6T 1 nvme0n1 Samsung_SSD_1T 931G 0 /

1.2 关键工具安装

不同发行版的软件包管理略有差异:

  • Debian/Ubuntu系:
    sudo apt update && sudo apt install mdadm smartmontools -y
  • RHEL/CentOS系:
    sudo dnf install mdadm smartmontools -y

smartmontools不是必选项,但强烈建议安装——它提供的smartctl工具能实时监控硬盘健康状态。

2. 设备识别阶段的隐藏陷阱

2.1 动态设备名的应对策略

第一次执行fdisk -l时,四块盘整齐地显示为sda-sdd。但在配置中途服务器意外重启后,设备名竟变成了sda/sdb/sdh/sdi!这种动态分配机制是Linux设备管理的特点,也是导致数据灾难的高危因素。

可靠解决方案

  1. 通过WWID永久标识设备:
    ls -l /dev/disk/by-id/
  2. 或者使用更稳定的路径:
    /dev/disk/by-path/pci-0000:3b:00.0-sas-0x5003048000cdf729-lun-0

2.2 必须使用分区的三个理由

原始文档强调要用分区而非整盘,但没解释原因。实际踩坑后发现:

  1. 整盘做RAID会导致部分硬件RAID卡识别异常
  2. 分区后可以保留引导记录区域
  3. 方便未来扩展(比如预留空间做热备盘)

创建分区的正确姿势:

sudo fdisk /dev/sda

交互步骤:

  1. 输入g创建GPT分区表(超过2T必须用GPT)
  2. 输入n创建新分区
  3. 一路回车使用默认值
  4. 输入t设置分区类型为fd00(Linux RAID)
  5. 输入w保存

3. RAID5构建过程中的典型报错

3.1 设备忙错误处理

执行创建命令时:

sudo mdadm --create /dev/md0 --level=5 --raid-devices=4 /dev/sd[a-d]1

可能遇到:

mdadm: cannot open /dev/sdb1: Device or resource busy

这是因为系统自动挂载了这些分区。解决步骤:

  1. 检查占用进程:
    sudo lsof /dev/sdb1
  2. 卸载分区:
    sudo umount /dev/sdb1
  3. 如果仍提示忙,可能是内核raid模块占用了:
    sudo mdadm --stop /dev/md127

3.2 不同容量硬盘的兼容方案

虽然四块盘标称都是16T,但实际可能有细微差异:

/dev/sda1: 15628053168 sectors /dev/sdb1: 15628053152 sectors

这时创建RAID会报size mismatch错误。黄金法则:以最小容量盘为准,创建阵列时显式指定:

sudo mdadm --create ... --size=15628053152

4. 后期优化与监控

4.1 加速RAID同步的技巧

初始同步16T×4的RAID5预计需要36小时。通过调整策略可缩短至20小时:

echo 50000 > /proc/sys/dev/raid/speed_limit_min echo 500000 > /proc/sys/dev/raid/speed_limit_max

同时可以实时查看进度:

watch -n 60 cat /proc/mdstat

4.2 智能挂载配置

/etc/fstab的常见坑点:

  1. 错误使用设备路径(应用UUID替代)
  2. 忘记添加nofail选项(避免因单盘故障导致系统无法启动)
  3. 遗漏文件系统检查顺序(最后两个数字)

正确示例:

UUID=8da7a3f7-01 /data ext4 defaults,nofail,noatime 0 2

4.3 长期健康监测

设置每周自动巡检:

sudo smartctl -t long /dev/sda sudo mdadm --monitor --scan --daemonize

配置邮件报警:

echo 'MAILADDR your@email.com' >> /etc/mdadm.conf

这次扩容最深刻的教训是:永远要在操作前确认三遍设备标识符。有次凌晨三点误操作差点清空备份盘,幸亏及时ctrl+c终止了mkfs命令。现在我的工作流程里强制增加了拍照存档环节——用手机拍下lsblk输出和物理盘位对照图,这个笨办法已经救了团队三次。

http://www.rkmt.cn/news/1456448.html

相关文章:

  • 深圳 ai 培训哪家性价比高:官方排名深度必读指南 - 13425704091
  • 致敬几代人的“童年造梦者”,《中国动画100年》六一首映口碑攀升
  • 从Docker运行PyTorch看起:为什么你的Ubuntu 20.04必须装NVIDIA Container Toolkit?
  • 为什么92%的AI工单项目在第3个月失败?资深SRE总监亲授“冷启动死亡谷”穿越方案
  • “众妙AI”:美国东海岸高校跨学科团队探索AI赋能的未来大学课堂
  • RPG Maker Decrypter:3分钟解锁游戏资源的终极指南
  • 2026 年广州搬家公司哪家好:最新精选深度测评 - 19120507004
  • 半无限规划问题的非光滑束方法解析【附代码】
  • 别再只懂CountDownLatch了!CyclicBarrier在Spring Boot多阶段任务中的实战应用
  • 2026 年广州搬家公司有哪些:TOP5 品牌独家解析 - 17322238651
  • 如何5分钟实现专业级直播背景替换:OBS背景移除插件的完整指南
  • 2026年 常州/宜兴西服高定推荐榜:婚礼西服定制,商务西服定制,匠心剪裁与时尚质感之选 - 品牌企业推荐师(官方)
  • 再学串串(七):哈希,倍增 诱导排序与 SA-IS 算法
  • 百考通:AI智能化一键生成答辩PPT,让学术展示更高效从容
  • android 短视频自动发表评论流程记录
  • YOLOv5模型转ONNX后,用C#调用时最容易踩的3个坑(附解决方案和完整代码)
  • Shader Graph: 能量护盾
  • PKHeX.Mobile:移动端宝可梦存档编辑神器终极指南
  • 基于ESP8266与触摸屏的DIY盖革计数器:从原理到实践
  • 【限时解密】全球仅12家通过ISO/IEC 23894 AI人力融合认证企业的核心整合协议
  • 全自动发表评论系统精准度记录
  • 南京信息工程大学LaTeX毕业论文模板:从格式困扰到专业排版的完整解决方案
  • 二阶被动音频分频器DIY:从LC滤波器原理到PCB焊接实战
  • 千方科技加速 AI 布局:首个企业级 SOP 智能体平台上线 - 外贸老黄
  • 基于Arduino与诺基亚5110 LCD的嵌入式游戏开发实战:从硬件连接到游戏逻辑优化
  • 噪声背景下说话人识别的若干关键问题解析【附代码】
  • Rocketmq学习第三篇
  • 全自动评论系统精确度记录分析
  • 求推荐!适配知网查重,国内靠谱的 AI 论文写作辅助网站有哪些?
  • CentOS 8停服后,yum报错‘No URLs in mirrorlist’的三种修复姿势(附Vault源配置)