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

手把手教你用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_20162.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 TiB3. 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 三盘冗余的特殊配置如果想用第三块盘做额外备份可创建带热备盘的RAID1sudo 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_percent4. 日常维护与故障处理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警告时按步骤更换磁盘标记故障盘sudo pvchange -x n /dev/sdb从卷组中移除sudo vgreduce --removemissing family_vg物理更换磁盘后重新添加sudo pvcreate /dev/sdd sudo vgextend family_vg /dev/sdd sudo lvconvert --repair family_vg/family_photos5. 性能优化与高级功能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_photos5.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小时期间仍然可以正常访问文件系统。

相关文章:

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

手把手教你用LVM搭建家用NAS的RAID1镜像盘(基于Ubuntu 22.04 多块旧硬盘) 周末整理书房时翻出三块闲置硬盘——一块2TB的西数蓝盘、一块1.5TB的希捷和一块老旧的1TB东芝。这些退役老兵虽然速度不快,但健康状况良好,正好用来搭建家…...

Emacs集成GDScript开发:语法高亮、智能缩进与LSP配置全解析

1. 项目概述:当Emacs遇见Godot的GDScript如果你是一名同时活跃在Godot游戏引擎和Emacs编辑器两个社群的开发者,那么你很可能体会过那种在两个世界间切换的割裂感。在Godot编辑器中,GDScript的语法高亮、自动补全和代码导航体验流畅自然&#…...

别再手动推导了!用Easics的Verilog CRC16生成器,5分钟搞定Modbus通信校验

别再手动推导了!用Easics的Verilog CRC16生成器,5分钟搞定Modbus通信校验 在工业通信协议开发中,CRC校验是确保数据传输可靠性的关键环节。特别是对于Modbus这类广泛应用的协议,CRC16校验的正确实现直接关系到整个系统的稳定性。传…...

通过MCP协议将Nmap封装为AI可调用的网络扫描工具

1. 项目概述:当AI助手学会“扫描”网络 最近在折腾AI应用开发,特别是想让AI助手能更深入地理解和操作本地环境。一个很具体的需求是:能不能让AI像一位经验丰富的网络工程师一样,去“感知”和“探查”它所处的网络环境?…...

避坑指南:ROS Melodic与STM32底盘通信时,那些没人告诉你的时序和异常处理

ROS Melodic与STM32底盘通信避坑指南:时序异常与工程实践全解析 当你在深夜调试ROS机器人底盘时,突然发现小车不受控制地撞向墙壁——这种惊心动魄的场景往往源于通信链路上那些未被妥善处理的时序问题和异常情况。本文将从七个真实项目案例出发&#x…...

3D场景智能分区与NavMesh生成技术解析

1. 项目背景与核心价值在游戏开发和虚拟仿真领域,3D场景的智能生成与结构化分解一直是提升开发效率的关键技术。传统工作流程中,关卡设计师需要手动布置场景元素、设置导航网格(NavMesh),再根据游戏逻辑划分功能区域&a…...

从物理卡到eSIM:一文读懂ISO/IEC 7816协议栈,揭秘你的手机如何与‘数字身份证’对话

从物理卡到eSIM:解密ISO/IEC 7816协议栈与移动身份认证的进化之路 当你用手机拨打电话时,是否想过那个小小的SIM卡是如何完成身份验证的?从传统的塑料卡片到如今内置的eSIM芯片,这场持续了三十年的技术演进背后,隐藏着…...

架构设计新视角:lunar-javascript如何重新定义农历计算解决方案

架构设计新视角:lunar-javascript如何重新定义农历计算解决方案 【免费下载链接】lunar-javascript 日历、公历(阳历)、农历(阴历、老黄历)、佛历、道历,支持节假日、星座、儒略日、干支、生肖、节气、节日、彭祖百忌、每日宜忌、吉神宜趋凶煞宜忌、吉神…...

别再乱写复杂驱动了!手把手教你用Vector DaVinci Configurator配置一个符合AUTOSAR标准的CDD模块

实战指南:用Vector DaVinci Configurator构建AUTOSAR合规CDD模块 在汽车电子控制单元(ECU)开发中,复杂设备驱动(CDD)作为连接硬件与AUTOSAR标准架构的关键桥梁,其合规性设计直接关系到整个系统…...

终极免费开源Windows Defender控制工具:一键掌控你的系统防护

终极免费开源Windows Defender控制工具:一键掌控你的系统防护 【免费下载链接】defender-control An open-source windows defender manager. Now you can disable windows defender permanently. 项目地址: https://gitcode.com/gh_mirrors/de/defender-control…...

解锁九大网盘下载新姿势:LinkSwift直链助手终极指南

解锁九大网盘下载新姿势:LinkSwift直链助手终极指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...

从滴滴 vs 美团打车看Stackelberg博弈:平台定价策略背后的真实商业逻辑

滴滴与美团打车的定价暗战:Stackelberg博弈如何重塑网约车市场格局 清晨七点半的北京国贸地铁站外,滴滴司机王师傅刚接完一单早高峰订单,手机同时弹出两条通知——滴滴将早高峰时段司机端补贴上调15%,而美团打车则在十分钟后更新了…...

SQLModel实战:用Python类型注解统一SQLAlchemy与Pydantic模型

1. 项目概述:当SQLAlchemy遇上Pydantic如果你和我一样,常年混迹在Python的后端开发领域,那么对SQLAlchemy和Pydantic这两个名字一定不会陌生。前者是Python生态里操作关系型数据库的事实标准,功能强大但学习曲线不低;后…...

深入Zynq GPIO寄存器:抛开Xilinx SDK API,手动操作MASK_DATA寄存器点亮LED

深入Zynq GPIO寄存器:手动操作MASK_DATA寄存器点亮LED的硬核实践 在嵌入式开发的世界里,理解硬件寄存器操作是区分普通开发者与资深工程师的重要分水岭。当我们使用Xilinx SDK提供的API函数控制GPIO时,实际上是在使用一个高度抽象的软件层&am…...

dewu小程序分析

声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包 内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!侵权通过头像私信或名字简介叫我删除博…...

别急着加内存!处理NumPy MemoryError,试试这4个更省钱的Python技巧

别急着加内存!处理NumPy MemoryError,试试这4个更省钱的Python技巧 当你面对NumPy的MemoryError时,第一反应可能是"该升级内存了"。但作为资源有限的开发者,硬件升级往往是最昂贵的选择。本文将分享四个经过实战验证的P…...

在MobaXterm中配置Taotoken的API密钥与基础地址实现大模型调用

在MobaXterm中配置Taotoken的API密钥与基础地址实现大模型调用 1. 准备工作 在开始配置前,请确保已具备以下条件:一个有效的Taotoken账户,并在控制台中创建了API密钥。同时确认MobaXterm已安装并可正常使用。Taotoken平台提供OpenAI兼容的H…...

初次使用模型广场如何根据场景与预算选择合适模型

初次使用模型广场如何根据场景与预算选择合适模型 1. 理解模型筛选的核心维度 在 Taotoken 模型广场中,用户可以通过多个关键维度筛选适合自身需求的模型。首要任务是明确实际应用场景的具体要求。对于文本生成任务,需要关注模型的上下文窗口长度。例如…...

PTA刷题避坑指南:L1-027‘出租’题的双指针去重与下标映射详解

PTA刷题避坑指南:L1-027‘出租’题的双指针去重与下标映射详解 当你第一次看到PTA平台L1-027这道"出租"题时,可能会觉得它不过是个简单的字符串处理问题。但真正动手实现时,很多人会陷入去重逻辑混乱、下标查找效率低下的困境。本…...

终极指南:如何将电视盒子变身高性能Linux服务器

终极指南:如何将电视盒子变身高性能Linux服务器 【免费下载链接】amlogic-s9xxx-armbian Supports running Armbian on Amlogic, Allwinner, and Rockchip devices. Support a311d, s922x, s905x3, s905x2, s912, s905d, s905x, s905w, s905, s905l, rk3588, rk3568…...

从原型到上线仅4小时:某省级政务平台Dify低代码集成全周期复盘(含OpenAPI Schema自动映射工具链下载链接)

更多请点击: https://intelliparadigm.com 第一章:从原型到上线仅4小时:某省级政务平台Dify低代码集成全周期复盘(含OpenAPI Schema自动映射工具链下载链接) 某省级“一网通办”政务平台在紧急应对突发政策落地需求时…...

PotPlayer字幕翻译插件完整指南:三步实现外语视频无障碍观看

PotPlayer字幕翻译插件完整指南:三步实现外语视频无障碍观看 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu 还在为看不懂外…...

终极指南:3步快速破解极域电子教室限制的完整方案

终极指南:3步快速破解极域电子教室限制的完整方案 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer JiYuTrainer是一款专为对抗极域电子教室控制而设计的开源软件&#…...

平板 手机触摸屏坏了就丢掉吗?

平板电脑的触碰坏了就丢掉吗?还有办法下载这个软件附件的软件,USB线连接平板,点击 scrcpy.exe在电脑上就可以,鼠标左键点击,鼠标右键是返回。就可以操作手机或者平板了。通过网盘分享的文件:平板无法触摸了…...

SkeyeVSS开发FAQ:版本升级数据迁移与回滚

试用安装包下载 | SMS | 在线演示 项目源码地址:https://github.com/openskeye/go-vss 1. 升级前准备 阅读 Release Note:是否有不兼容配置、数据库迁移脚本、端口变更;全量备份:MySQL 逻辑备份、Redis、etcd 快照(若…...

重构QQ音乐加密音频格式:用qmc-decoder实现跨平台解密

重构QQ音乐加密音频格式:用qmc-decoder实现跨平台解密 【免费下载链接】qmc-decoder Fastest & best convert qmc 2 mp3 | flac tools 项目地址: https://gitcode.com/gh_mirrors/qm/qmc-decoder 当你在QQ音乐平台购买或下载的歌曲只能在特定应用播放&am…...

从电视棒到无线电:手把手教你用RTL-SDR V4搭建个人频谱监测站(附避坑指南)

从电视棒到无线电:手把手教你用RTL-SDR V4搭建个人频谱监测站(附避坑指南) 十年前,谁会想到一个20美元的电视棒能变成无线电爱好者的瑞士军刀?2012年,当黑客们发现Realtek RTL2832U芯片能绕过数字电视解码…...

从SDR到5G原型:拆解AD9361的TDD/FDD切换与滤波器设计,如何影响你的系统性能?

从SDR到5G原型:拆解AD9361的TDD/FDD切换与滤波器设计,如何影响你的系统性能? 在无线通信系统开发中,AD9361这颗高度集成的射频收发器芯片已经成为软件定义无线电(SDR)和5G原型设计的核心组件。它独特的灵活性和可配置性让工程师能…...

Go语言TUI开发实战:基于Bubble Tea框架构建终端井字棋游戏

1. 项目概述:一个用Go语言打造的终端井字棋游戏最近在整理自己的Go语言学习项目时,翻到了一个挺有意思的小玩意儿——一个完全运行在终端里的井字棋游戏。这可不是那种黑底白字的简陋命令行程序,而是一个拥有彩色界面、支持键盘导航、交互体验…...

3个维度深度解析:NVIDIA Profile Inspector如何解锁显卡隐藏性能

3个维度深度解析:NVIDIA Profile Inspector如何解锁显卡隐藏性能 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector NVIDIA Profile Inspector是一款能够深入访问NVIDIA驱动内部数据库的专业工…...