家用 NAS 服务器(3)| SSD缓存加速机械硬盘

本文详细介绍了如何在Ubuntu家用NAS服务器中使用bcache工具,通过SSD缓存加速机械硬盘的读写性能。作者首先介绍了系统环境和硬盘布局,然后一步步演示了如何分区、安装bcache、设置缓存模式,以及创建xfs文件系统和自动挂载。通过bcache的writearound模式,提高了机械硬盘的随机读写速度,为后续的mergerfs和snapraid备份打下了基础。

家用 NAS 服务器(3)| SSD缓存加速机械硬盘

原文地址:优快云 博文

前文提要:家用 NAS 服务器(2)| HyperV的Winserver 2022和Ubuntu 22.04双系统

后文链接:家用 NAS 服务器(4)| MergerFS和SnapRaid数据定时备份



1. 前言

呀吼,读者朋友们我们又见面了 o( ̄▽ ̄)ブ。还记得上一章我们已经安装了 Windows Server,并且把 Ubuntu Server 成功在 Hyper-V 中安装。安装成功后,笔者将机械硬盘直通给了 Ubuntu 虚拟机。

但是大家都知道,机械硬盘的随机读写性能非常低,因此为了提高 HDD 的随机读写能力,在这一章中,笔者将带大家,通过设置 bcache 工具,将以 SSD 固态硬盘作为缓存,来提高机械硬盘的随机读写能力

此外,还将简要通过笔者以前的文章,来降低机械硬盘的功耗。笔者的博文在这:SeaChest Utilities 工具,让你的硬盘功耗又低又长寿


2. SSD 缓存加速

SSD 缓存可以有效缓解机械硬盘的随机读写性能低的问题,因此将是服务器投入使用前的第一件需要设置的事情。

在开始演示操作前,笔者先说明一下我的 Ubuntu 的设备结构。如果发现自己的设备结构不同,需要自行调整命令或在 Hyper-V 中修改设备位置。笔者的设备结构如下:

设备名描述
/dev/sda系统盘。实体为外部 Winserver 的虚拟磁盘。
/dev/sdb固态硬盘,将用作 SSD 缓存。
/dev/sdc第一个 16T 机械硬盘。
/dev/sdd第二个 16T 机械硬盘。

2.1 硬盘分区

尽管硬盘不强制分区,笔者还是喜欢给每个存储设备分一个区,此处使用 fdisk 工具创建 GPT 表并进行分区:

# 对机械硬盘进入 fdisk 界面
> sudo fdisk /dev/sdc
# 创建 gpt 分区表
> g
# 创建新分区,全部采用默认设置,即只创建一个分区,占据全部设备空间
> n

读者如果有自己的分区需求,可以自行调整分区结构。此处 SSD 不参与分区。

分区后,笔者目前的分区设备为 /dev/sdc1/dev/sdd1

2.2 bcache

2.2.1 bcache 安装

bcache 是一项 Linux 下的工具,其允许使用固态硬盘作为读写缓存(writeback模式)或者读缓存(writethrough 或者 writearound模式)来为另一个 block 设备(通常是机械硬盘或硬盘阵列)加速。

此外,bcache 团队还开发了基于 bcache 的 bcachefs,这个文件系统在提供 SSD 缓存加速之余,还提供了 COW(Copy On Write 写时拷贝)、数据加密、数据备份和磁盘阵列等功能。不过此处我们已经设置了 xfs 文件系统,就不需要用到,下面的内容部分参考于 Bcache - ArchWiki

在 Ubuntu 中如果要启用,需要先下载 bcache 工具。幸运的是,apt 源中已经含有 bcache,只需要用以下命令即可下载安装:

sudo apt install bcache-tools

注意:后面的 bcache 初始化操作,将会清空硬盘上的所有数据,因此 bcache 应该是在文件系统初始化之前的步骤

然后,开始初始化固态硬盘和机械硬盘

# 创建一个后端设备(通常来说这是你的机械硬盘)。
# 后端设备可以是整个设备、一个分区或者其他任何的 block 设备。
make-bcache -B /dev/sdc1
make-bcache -B /dev/sdd1

# 创建一个缓存设备(这通常是你的固态硬盘)。
# 缓存设备可以是整个设备、一个分区或者其他任何的 block 设备
make-bcache -C /dev/sdb

如果上述命令成功执行了,那么现在在 /dev 目录下将多出两个设备:/dev/bcache0/dev/bcache1,分别对应着 /dev/sdc/dev/sdd。目前的缓存与后端设备的对应关系为:

SSD 缓存相关设备原始设备(分区)描述
/dev/sdbSSD 缓存盘
/dev/bcache0/dev/sdc1机械硬盘 1
/dev/bcache1/dev/sdd1机械硬盘 1

之后,我们将固态硬盘作为缓存设备,添加到机械硬盘(后端设备)的缓存列表中。首先查看当前的固态硬盘缓存设备的 UUID

ls /sys/fs/bcache/

通过这行命令可以看到一个目录下有一个 UUID,那就是缓存设备的 UUID 了。如果没有,则使用下面命令注册缓存设备

echo /dev/sdb > /sys/fs/bcache/register 

上面两条命令都能看到缓存设备的 UUID,把这个 UUID 记住,并添加到后端设备的缓存列表中,即可启用 SSD 缓存加速

echo UUID__from_previous_command > /sys/block/bcache0/bcache/attach
echo UUID__from_previous_command > /sys/block/bcache1/bcache/attach
2.2.2 bcache 操作

显示bcached设备的信息:

bcache-super-show /dev/sdXY

停止后端设备:

echo 1 > /sys/block/sdX/sdX[Y]/bcache/stop

让缓存设备脱机:

echo 1 > /sys/block/sdX/sdX[Y]/bcache/detach
2.2.3 bcache 模式

bcache 的工作模式一共有 4 种,分别是:

  • none:完全不缓存。
  • writeback:性能最好的缓存模式,所有读写请求在 SSD 上完成的时候就视作请求完成。注意,这种模式虽然能大幅提升性能,但是由于 SSD 上的数据将异步的与后端设备进行同步,因此如果同步的过程中遭遇断电,可能将导致 SSD 上的数据损失。尽管如此,bcache 在下一次重启后,会继续将上次未完成的异步同步过程继续完成,将数据损失的风险降到最低。
  • writethrough:默认的缓存模式,性能相较于上面一个有所下降。此模式下,所有读操作都将经过缓存层。不同的是,所有写入请求将同时对 SSD 以及后端设备进行,且仅当后端设备写入完成后,视作请求完成。这样的好处是,写入后一段时间内的读操作得到了缓存的性能提升。
  • writearound:性能较低的模式,但是能延长 SSD 的寿命。此模式下,仅仅缓存读操作。

后端设备运行时,可以查看后端设备所采用的缓存模式:

cat /sys/block/bcache0/bcache/cache_mode
cat /sys/block/bcache1/bcache/cache_mode

笔者考虑到 SSD 的寿命问题,以及自己对于写操作的缓存不是很感冒,因此选择修改缓存模式为 writearound 模式:

echo writearound > /sys/block/bcache0/bcache/cache_mode
echo writearound > /sys/block/bcache1/bcache/cache_mode

当然,各位读者如果有自己的需求,可以自行选择缓存模式。

2.3 xfs 文件系统

笔者选择 xfs 文件系统,主要看重了其作为 RHEL 发行版的默认文件系统的稳定性,同时性能也并不落后 ext4 多少。具体测评可见笔者另一篇博文:ext4、ntfs、xfs、btrfs、zfs、f2fs和reiserFS性能对比

在建立好缓存机制的后端设备之上,我们将开始对其格式化文件系统。这个文件系统可自行选择,不一定要是 xfs 文件系统,只是笔者选择了 xfs。

首先,安装 xfs 的相关工具:

sudo apt install xfsprogs

之后,对我们的后端设备分区建立文件系统,注意之后直接对 bcache* 的设备进行操作:

sudo mkfs.xfs /dev/bcache0
sudo mkfs.xfs /dev/bcache1

至此,xfs 文件系统已经在含有 SSD 缓存的硬盘上成功建立,可以挂载了。

2.4 fstab 开机自动挂载

文件系统建立完毕后,最好是设置其自动挂载。

此处,我打算将两个盘分别挂载于 /mnt/sdc/mnt/snapraid_backup。首先创建好挂载点:

sudo mkdir -p /mnt/sdc /mnt/snapraid_backup

然后通过查看 bcache* 设备的 UUID 并记下来:

sudo lsblk -f

使用编辑器打开 /etc/fstab,加入以下代码:

UUID=<bcache0 的 UUID> /mnt/sdc xfs defaults 0 0
UUID=<bcache1 的 UUID> /mnt/snapraid_backup xfs defaults 0 0

保存后重启系统,如果成功,则带有 SSD 缓存的机械硬盘就建立完毕了。


3. 总结

这一期,笔者终于把 SSD 缓存加速机制搭建好,也算是调教好 bcache 的功能了。在 bcache 的加持下,一段时间内的随机访问速度从原来的 2MB/s 提升到了现在的 30Mb/s,相较于原来的机械硬盘,已经有了巨大的提升

此外,本期还将文件系统一起创建出来,为下一期的 mergerfs 和 snapraid 的出场做好了铺垫。只有当 mergerfs + snapraid 建立起来,才算是真正的给数据建立起了安全的港湾。

同志们如果觉得我的内容有用,还请给我留个赞和评论,最好点个关注,俺都会很开心的!😘

最近看到很多水分很大的博文,内容朴素无华且同质化严重,俺终究还是不想变成这种营销号,愿开源精神长存

<think>我们正在讨论如何搭建NAS系统。根据引用内容,NAS系统搭建有详细说明[^1],也有家用简易搭建方案如使用树莓派等设备[^2]。用户明确要求提供搭建NAS系统的指导或教程,因此我将提供分步指南。 首先需要明确NAS(Network Attached Storage)是网络附加存储设备,通过局域网提供文件存储和共享服务。搭建方案主要分两种:购买品牌NAS设备(如群晖)或自行组装(使用旧电脑/树莓派等)。 ### 一、确定需求和预算 1. **存储需求**:估算数据量(如家庭照片、视频备份),决定磁盘数量和容量(建议RAID1/5保障数据安全)。 2. **功能需求**:仅文件存储?还是需要媒体服务器、云同步等高级功能? 3. **预算**:品牌NAS(群晖/威联通)约2000-5000元;自建NAS(旧电脑改造)可能仅需硬盘费用。 ### 二、选择硬件方案 #### 方案1:品牌NAS(推荐新手) - **优点**:系统成熟(如群晖DSM),维护简单,手机APP支持完善。 - **硬件选择**: - 入门级:群晖DS220+/威联通TS-251D(双盘位,约2000元) - 中高端:群晖DS920+/威联通TS-453D(四盘位,支持SSD缓存,约4000元) - **安装步骤**: 1. 装入硬盘并开机,按向导初始化系统。 2. 通过网页登录NAS管理界面,创建存储池和共享文件夹。 3. 安装套件(如Drive文件同步、Video Station媒体库)。 #### 方案2:自建NAS(适合技术爱好者) - **硬件清单**: - 主机:旧电脑/树莓派4B/购买工控小主机(需千兆网口,USB3.0)。 - 硬盘:根据需求选3.5英寸机械硬盘(如希捷酷狼,NAS专用)。 - 系统盘:8GB以上U盘或SSD(用于安装系统)。 - **推荐系统**: - **TrueNAS Core**(基于FreeBSD,ZFS文件系统保障数据安全)[^1] - **OpenMediaVault**(基于Debian,插件丰富)[^2] - **Ubuntu Server** + Samba(手动配置,灵活度高) ### 三、软件安装示例(以OpenMediaVault为例) ```bash # 1. 下载镜像:官网获OpenMediaVault ISO # 2. 制作启动盘:使用Rufus写入U盘 # 3. 从U盘启动主机,按提示安装系统到硬盘 # 4. 初始化配置(网页管理地址:http://NAS-IP) ``` > **关键配置步骤**: > - 存储管理:创建文件系统并挂载硬盘 > - 共享文件夹:设置SMB/NFS共享权限 > - 用户管理:添加访问账户 > - 插件中心:安装Plex媒体服务器等 ### 四、基础功能设置 1. **局域网访问**: - Windows:文件资源管理器输入`\\NAS-IP`访问共享文件夹。 - 手机:ES文件浏览器或专用APP(如群晖DS file)。 2. **数据备份**: - PC端:使用Syncthing或rsync定时备份。 - 手机相册:安装PhotoSync自动上传。 ### 五、进阶功能(可选) - **远程访问**:配置DDNS(如群晖QuickConnect)或内网穿透(Tailscale)。 - **媒体中心**:安装Jellyfin/Plex,实现视频转码串流。 - **Docker应用**:部署Nextcloud私有云、HomeAssistant智能家居。 ### 注意事项 - **数据安全**:重要数据遵循3-2-1原则(3份备份,2种介质,1份离线)。 - **功耗控制**:自建NAS建议选择低功耗CPU(如Intel J4125)。 - **网络优化**:千兆交换机+六类网线保障传输速度。 §§相关问题§§ 1. 如何选择适合家庭使用的NAS硬盘? 2. 自建NAS时TrueNAS和OpenMediaVault哪个更易用? 3. 如何实现NAS的远程安全访问? 4. 群晖NAS有哪些必装套件? [^1]: NAS系统搭建详细说明。 [^2]: 家用简易NAS系统搭建。</think>### NAS系统搭建详细指南 搭建NAS系统主要分为两种方案:**品牌NAS方案**和**自建NAS方案**。以下是分步指南: --- #### **一、品牌NAS方案(推荐新手)** **优点**:操作简单、系统稳定、官方支持完善 **适用人群**:非技术用户/注重省时的家庭用户 1. **硬件选择** - 主流品牌:群晖(Synology)、威联通(QNAP) - 入门型号:群晖DS220+/威联通TS-251D(双盘位,约¥2000) - 进阶型号:群晖DS920+/威联通TS-453D(四盘位,支持SSD缓存) 2. **搭建步骤** ```markdown 1. 装入硬盘(建议NAS专用盘如希捷酷狼/西数红盘) 2. 开机后通过路由器获NAS的IP地址 3. 电脑访问 `http://NAS-IP` 进入管理界面 4. 按向导初始化存储池(推荐SHR/RAID1) 5. 创建共享文件夹并设置用户权限 6. 安装应用套件:Drive(文件同步)、Photo(相册管理)等 ``` 3. **关键功能配置** - 远程访问:启用QuickConnect(群晖)或myQNAPcloud(威联通) - 手机备份:安装DS file/Qsync应用自动备份照片 - 媒体中心:通过Plex/Jellyfin套件搭建影音库 > **案例**:2盘位群晖DS220+配2×4TB硬盘,可存储约6TB有效数据(RAID1冗余),满足家庭照片+视频备份需求[^1]。 --- #### **二、自建NAS方案(适合技术爱好者)** **优点**:成本低、高度定制化 **核心成本**:旧电脑/迷你主机(¥300-800)+ 硬盘 1. **硬件选择建议** | 组件 | 推荐配置 | 备注 | |------------|-------------------------|--------------------------| | 主机 | 英特尔J4125工控机 | 功耗<10W,静音 | | 内存 | 8GB DDR4 | 保障多任务运行 | | 系统盘 | 32GB SSD | 安装OS用 | | 数据盘 | 2-4块3.5"机械硬盘 | 建议NAS专用盘 | | 网络 | 千兆网卡/USB3.0接口 | 传输速度>100MB/s | 2. **系统选择与安装** - **TrueNAS Core**(企业级稳定) ```bash # 安装流程 1. 官网下载ISO制作启动U盘 2. 从U盘启动选择"Install/Upgrade" 3. 分配系统盘(建议≥16GB) 4. 创建ZFS存储池(推荐RAIDZ1) ``` - **OpenMediaVault**(易用性强) ```bash # 特色功能 - 网页端管理(插件扩展丰富) - 支持Docker容器(部署Nextcloud等) - 内置SMB/NFS/FTP服务 ``` - **UnRAID**(付费但灵活) - 优势:混合硬盘容量,实时扩容 3. **基础服务配置** - **文件共享**:启用Samba服务(Windows访问)或NFS(Linux/Mac) - **自动备份**:用rsync定时同步PC数据 - **Docker应用**(示例): ```bash # 部署Nextcloud私有云 docker run -d -p 8080:80 \ -v /nas/data:/var/www/html/data \ nextcloud ``` > **案例**:用淘汰笔记本+2TB硬盘搭建OMV系统,成本约¥500,实现家庭文件共享和手机相册自动备份[^2]。 --- #### **三、关键注意事项** 1. **硬盘选择** - 避免使用普通台式机硬盘(7×24小时运行易损坏) - NAS专用盘推荐:希捷酷狼(带RV传感器)/西数红盘Plus 2. **数据安全实践** - 必做RAID1/5/10(至少一块冗余盘) - 启用SMART检测+定期坏道扫描 - 重要数据遵循3-2-1原则(3份副本,2种介质,1份离线) 3. **网络优化** - 有线连接 > 无线(千兆网络传输速率≈113MB/s) - 路由器开启端口转发实现外网访问(需公网IP或DDNS) --- #### **四、进阶方案对比** | 方案 | 成本 | 复杂度 | 扩展性 | 适合场景 | |---------------|------------|--------|--------|------------------| | 品牌NAS | 中高 | ★☆☆☆☆ | 中等 | 家庭/小微企业 | | 自建NAS | 低 | ★★★☆☆ | 高 | 技术爱好者 | | 云NAS服务 | 持续订阅 | ★☆☆☆☆ | 受限 | 移动办公需求 | > **避坑提示**:避免使用Windows共享文件夹作为NAS(权限管理混乱,休眠机制导致访问中断)
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林地宁宁

谢谢你给宁宁打米哦!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值