news 2026/5/6 10:57:30

手把手教你用LVM搭建家用NAS的RAID1镜像盘(基于Ubuntu 22.04 + 多块旧硬盘)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手教你用LVM搭建家用NAS的RAID1镜像盘(基于Ubuntu 22.04 + 多块旧硬盘)

手把手教你用LVM搭建家用NAS的RAID1镜像盘(基于Ubuntu 22.04 + 多块旧硬盘)

周末整理书房时翻出三块闲置硬盘——一块2TB的西数蓝盘、一块1.5TB的希捷和一块老旧的1TB东芝。这些退役老兵虽然速度不快,但健康状况良好,正好用来搭建家庭NAS的核心存储层。本文将分享如何用Ubuntu 22.04的LVM技术,把这些不同容量、不同品牌的硬盘整合成具有数据冗余的RAID1存储池,特别适合保存家庭照片、重要文档等不可再生的数字资产。

1. 硬件准备与系统环境配置

在旧电脑上安装Ubuntu 22.04时,建议选择最小化安装(Minimal Installation)并勾选"安装第三方驱动"选项。完成后通过lsblk -o NAME,SIZE,MODEL命令查看磁盘信息,典型输出如下:

NAME SIZE MODEL sda 1.8T WDC WD20EZBX-00A sdb 1.4T ST1500DL003-9VT1 sdc 931G TOSHIBA DT01ACA1 nvme0n1 256G Samsung SSD 980

注意:系统盘(本例中的nvme0n1)不要加入存储池,仅使用sda/sdb/sdc三块机械盘。不同容量硬盘组建RAID1时,实际可用空间以最小容量盘为准。

安装必要工具包:

sudo apt update && sudo apt install -y lvm2 mdadm smartmontools

使用smartctl检查磁盘健康状态(以sda为例):

sudo smartctl -H /dev/sda

关键指标关注:

  • Reallocated_Sector_Ct(重映射扇区数)
  • Current_Pending_Sector(待映射扇区数)
  • UDMA_CRC_Error_Count(传输错误计数)

2. LVM存储池的智能配置技巧

2.1 物理卷(PV)的差异化处理

对于混合容量硬盘组,建议先统一擦除磁盘原有数据:

for disk in /dev/sd{a..c}; do sudo wipefs -a $disk sudo sgdisk -Z $disk done

创建物理卷时,可以为不同品牌硬盘添加注释标签:

sudo pvcreate /dev/sda -ff -y --labels "WD_2TB_2020" sudo pvcreate /dev/sdb -ff -y --labels "ST_1.5TB_2018" sudo pvcreate /dev/sdc -ff -y --labels "TOSHIBA_1TB_2016"

2.2 卷组(VG)的灵活扩展策略

创建名为family_vg的卷组,采用弹性空间分配策略:

sudo vgcreate family_vg /dev/sda /dev/sdb /dev/sdc

查看卷组空间分布:

sudo vgdisplay family_vg

输出示例:

--- Volume group --- VG Name family_vg System ID Format lvm2 Metadata Areas 3 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 3 Act PV 3 VG Size <3.39 TiB PE Size 4.00 MiB Total PE 888831 Alloc PE / Size 0 / 0 Free PE / Size 888831 / <3.39 TiB

3. RAID1逻辑卷的实战创建

3.1 基础镜像卷创建

使用两块磁盘创建双向镜像(-m 1表示保留1个副本):

sudo lvcreate --type raid1 -m 1 -L 900G -n family_photos family_vg /dev/sda /dev/sdb

关键参数解析:

  • --type raid1:指定RAID1镜像类型
  • -m 1:设置1个镜像副本(即双盘互备)
  • -L 900G:保守分配空间(预留10%缓冲)
  • -n:逻辑卷名称

3.2 三盘冗余的特殊配置

如果想用第三块盘做额外备份,可创建带热备盘的RAID1:

sudo lvconvert --type raid1 --mirrors 1 family_vg/family_photos --alloc anywhere sudo lvconvert --addmirror family_vg/family_photos

监控重建进度:

watch -n 5 'sudo lvs -a -o name,raid_sync_action,sync_percent'

4. 日常维护与故障处理

4.1 状态监控方案

创建自动化监控脚本/usr/local/bin/lvm_raid_check.sh

#!/bin/bash LOG_FILE="/var/log/lvm_status.log" echo "==== $(date) ====" >> $LOG_FILE sudo lvs -a -o name,attr,raid_mismatch_count >> $LOG_FILE sudo mdadm --detail /dev/mapper/* | grep -E "State|Errors" >> $LOG_FILE

设置cron每周自动运行:

(crontab -l 2>/dev/null; echo "0 3 * * 0 /usr/local/bin/lvm_raid_check.sh") | crontab -

4.2 磁盘故障应急处理

当收到lvs命令显示的partial警告时,按步骤更换磁盘:

  1. 标记故障盘:
sudo pvchange -x n /dev/sdb
  1. 从卷组中移除:
sudo vgreduce --removemissing family_vg
  1. 物理更换磁盘后重新添加:
sudo pvcreate /dev/sdd sudo vgextend family_vg /dev/sdd sudo lvconvert --repair family_vg/family_photos

5. 性能优化与高级功能

5.1 读写策略调优

查看当前缓存策略:

sudo lvchange --cachemode writethrough family_vg/family_photos

建议配置(适合家庭NAS场景):

sudo lvchange --cachemode writeback family_vg/family_photos sudo lvchange --raidmaxrecoveryrate 4096 family_vg/family_photos sudo lvchange --raidminrecoveryrate 1024 family_vg/family_photos

5.2 空间扩容技巧

当需要增加存储空间时,LVM的优势显现无遗。假设新加入一块4TB硬盘:

sudo pvcreate /dev/sde sudo vgextend family_vg /dev/sde sudo lvextend -L +3T /dev/family_vg/family_photos

注意:扩容后需要同步文件系统(以ext4为例)

sudo resize2fs /dev/family_vg/family_photos

实际项目中,我更喜欢在深夜通过screen会话执行大容量同步操作,避免影响日常使用。曾经有一次扩容2TB数据,同步过程持续了6小时,期间仍然可以正常访问文件系统。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 10:57:28

Windows 11安卓子系统WSA深度实战:从零构建安卓应用开发环境

Windows 11安卓子系统WSA深度实战&#xff1a;从零构建安卓应用开发环境 【免费下载链接】WSA Developer-related issues and feature requests for Windows Subsystem for Android 项目地址: https://gitcode.com/gh_mirrors/ws/WSA 你是否想在Windows 11上无缝运行和调…

作者头像 李华
网站建设 2026/5/6 10:46:03

3种高效部署方案:将电视盒子变身高性能Armbian服务器

3种高效部署方案&#xff1a;将电视盒子变身高性能Armbian服务器 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, r…

作者头像 李华
网站建设 2026/5/6 10:45:09

如何用caj2pdf将CAJ论文转换为可搜索的PDF文件?

如何用caj2pdf将CAJ论文转换为可搜索的PDF文件&#xff1f; 【免费下载链接】caj2pdf Convert CAJ (China Academic Journals) files to PDF. 转换中国知网 CAJ 格式文献为 PDF。佛系转换&#xff0c;成功与否&#xff0c;皆是玄学。 项目地址: https://gitcode.com/gh_mirro…

作者头像 李华
网站建设 2026/5/6 10:41:40

5个必学技巧:掌握AMD Ryzen处理器SMU调试工具的终极指南

5个必学技巧&#xff1a;掌握AMD Ryzen处理器SMU调试工具的终极指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://…

作者头像 李华