存储介质只从硬盘考虑,无论是 HDD 机械硬盘还是 SSD 固态硬盘在适合的场合都是不错的选择。
HDD 全称是 Hard Disk Drive,采用纯机械结构,数据存储在一张环形的磁性盘片上,通过磁头持续移动来读取数据或写入数据(有点类似胶片机)
HDD 硬盘优点是存储容量大、价格便宜,缺点是容易损坏且噪音较大。为了突破更大的容量限制,硬盘厂商也在从各种科技层面持续改进诞生了 18T+ 大容量硬盘。
读写速度受转速、磁盘数量等因素影响。转速是指硬盘每分钟旋转的圈数,单位是 rpm(每分钟的转动数),常见的有 5400rpm 和 7200rpm 规格。一般来讲转速越高读写速度越好,但噪音、耗电量和发热量也越高;单个磁盘容量是有上限的,想要更大容量最简单的方案是增加更多磁性盘片。
多磁盘的出现就要引出 CMR/PMR 垂直磁记录(垂直盘)和 SMR 叠瓦磁记录(叠瓦盘)两个概念,传统机械硬盘都属于前者, 2013 年希捷发布了可以提高存储容量高出 25% 的 SMR 磁盘,但由于读取寻址复杂,写入影响之前的数据,现在非常不受大家欢迎。
硬盘厂商现在出售的 HDD 硬盘会两种混合出货,现在购买尽可能考虑 CMR/PMR 垂直盘。
SSD 全称是 Solid-state Drive,采用纯 NAND 存储芯片来减少损坏和提升高读写的速度,因为制造工艺复杂且芯片厂家较少目前价格还处于一个有竞争力的市场上,随着国内厂商的研发速度逐渐提升,从价格方面收益的还是广大的消费者的我们。
这种硬盘的特点是新技术的魅力:拥有超高速的读写速度,使用时不会担心晃动造成的硬盘损坏。但存储容量同样也是有单个或多个 NAND 芯片构成,但不会像机械硬盘那么大,4 TB 已经是很大的容量了。
读写速度受芯片的工艺、良品率和有无额外硬件外部缓存芯片等因素影响,在深入就不懂了,摘部分维基百科的介绍,有兴趣的自己再查吧。
目前用来生产固态硬盘的 NAND Flash 有四种,分别是单层式存储(SLC)、多层式存储(MLC,通常用来指称双层式存储)、三层式存储(TLC)、四层式存储(QLC)。有些厂商亦称 TLC 为 3-bit MLC。 SLC、MLC、TLC 的读写速度依序从快至慢(约4:2:1),使用寿命依序从长至短(约 6:3:2),成本依序从高至低,需要纠错比特数(ECC)则是相反地从低至高(同一制程下 1:2:4。不过 ECC 也受制程的影响,同一种芯片,越小尺度的制程需要越多的纠错比特)。固态硬盘的主流从 SLC 芯片转到 MLC 芯片,促成了 2011 年的大降价,固态硬盘因此普及。 |
早期 ATA 的串口改进版,SATA 规格的硬盘有 HDD 和 SSD 两种。其优点是抗干扰性强,线材细小且有较高的传输速度等原因一直沿用至今,现在已经成为主流的接口类型。最新的 SATA 3.0 标准能够达到 600 MiB/s 传输速度(6 Gbit/s 带宽)。
M.2 原本的名称是 NGFF(Next Generation Form Factor),本来是用于取代 mSATA 为了兼容早期硬件设计层面有 USB 规格、SATA 规格和 PCIE 规格,它们的传输速度依次递增。使用 PCIE 通道的往往又被叫做 NVMe。
一些国内工控机上还长能见到 mSATA 硬盘接口,它也遵循 SATA 协议只不过是采用的更小的接口的 SSD 硬盘,常用在小型化笔记本上,由于较小的体积优势特别适合放在工控机,虽然它的尺寸规格和 M.2 接口一样但接口协议是不一样的,无法兼容。
USB 硬盘还有另外一个更熟悉的名称:移动硬盘。常用在电脑本身空间不足,各类较大资源的存储或者摄影、影视行业作为临时存储使用等场景。有些开发板(比如早期树莓派)无法提供更多的存储接口而往往会提供 USB 3.0 接口,在做一些非高频的读写应用场景也是能够满足需求的。只需要记着至少满足 USB 3.0 标准(能够达到 400 MiB/s 传输速度),3.1 标准最好(1.2 GiB/s 传输速度)。
连接接口方面我已经不想吐槽了,尤其是 Type-C 接口,针脚定义的是全的,厂商为了成本考虑,卖的便宜的线往往只能满足充电需求,没有数据传输针脚;有的虽然只需要充电考虑,也会漏一些针脚无法满足高功率(30-100W)的充电标准(高功率需要额外的 e-mark 芯片);有点可能不支持 DP,HDMI 视频信号;绝大多数不支持雷雳/雷电/Thunderbolt 4 协议(需 Intel 认证),满满的坑,买的时候一点要看仔细,问清楚。
常见的主要有 2.5 寸和 3.5 寸两种规格。2.5 寸 HDD 和 SSD 两种都会有,3.5 寸基本上全是 HDD 硬盘,SSD 容量都是芯片颗粒不会占太大体积没必要。
任何的硬盘厂商都会给硬盘一个保质期外还会有一个额外的评判条件来做参考,对于 HDD 硬盘是平均无故障工作时间 MTBF(小时为单位);对于 SSD 硬盘是最大写入量(TBW 为单位)。两者的监控都可以通过支持 S.M.A.R.T 的任何应用完成。
HDD 受机械结构的影响,很容易因为振动过大,写入时突然掉电出现坏道,少量的坏道可以通过磁盘检测和修复工具可以规避,随着磁盘坏道越来越多赶紧备份并替换新的磁盘的好。虽然评判标准是平均无故障工作时间,然而在实验室恒定条件下机械硬盘能够无故障工作几万甚至几十万小时,实际上要看 S.M.A.R.T 检测报告的情况。
SSD 最大 TPW 值通常都会商品参数之中找到,实际写入 TBW 可以在 S.M.A.R.T 检测报告找到:
SATA 的 SSD 计算公式:
NVME 的 SSD 计算公式:
硬盘的门道多坑也多,有了大概了解真要买的话也别太过于担心,我们可以站在巨人的肩膀:Backblaze
该公司他们会采购不同容量,不同品牌,SSD 和 HDD 硬盘作为生产环境用于提供商业服务:类似亚马逊 S3 云存储、价格低廉的数据备份服务,每年都会布季度和年度的硬盘统计报告。
硬盘统计报告:https://www.backblaze.com/cloud-storage/resources/hard-drive-test-data
根据他们在 2021 年 12 月发布的磁盘使用寿命有多长的报告来看,中位数是在六年零九个月左右,这个时间是他们的使用场景的结果,家用肯定会更长。我现在服役最长的 HDD 是 10 年前,前不久有些坏道过多的 12 年 2.5 寸 5400rpm HDD 磁盘退役了。
说完了硬件部分,我们在来聊聊软件部分,在不考虑数据的文件系统的选购上来说,文件共享有 DAS、NAS 和 SAN 划分:
手机、电脑、服务器等电子设备自带的存储就是 DAS;
微软的 SMB/CIFS,*nux 的 NFS 和苹果的 AFP 等都属于 NAS;
前两个都很容易理解,SAN 的区别在于存储还是多节点应用服务器上,通过统一服务来做资源管理,比较常见的是 iSCSI。
Apple 专有协议,Linux 虽然还有 netatalk AFP 开源实现,仅可用在 macOS 挂载远程磁盘使用,很多的服务本身是不支持的,homelab 层面完全不用考虑。
SMB 协议常用在 Windows 系统之间的文件共享,也称之为 CIFS。在 Linux 可以通过安装 Samba 开源实现。不过基于用户身份鉴权和本身设计上有缺陷的原因并不能很好的在 homelab 中发挥最大的性能,可以使用但不太推荐,建议使用 SMB 3.0 及以上版本。
NFS 协议常用在 *nux 系统之间的文件共享。基于 IP 地址/地址段鉴权,配置简单可以很轻松上手,在 homelab 初期非常适合,建议使用 NFS 4.0 及以上版本。随着应用对存储服务的依赖越来越多,也会遇到 NFS 速度较慢,存在争用、分布式锁、单点服务等瓶颈。就会慢慢转向多集群分布且适合 homelab 尤其是 Kubernetes 的块存储服务。
SCSI 本身是一个支持热插拔的企业级硬盘的商业常用的硬件接口,前面加一个小 i 摇身一变成了一种网络文件共享协议来仿真模拟 SCSI 协议,基于块存储的特性让文件共享具有较高 IO 吞吐量也能够游刃有余。
存储系统的目的是实现核心存储数据的基础上提供文件共享,管理和其他扩展功能。通常情况下上面提到的 SMB 和 NFS 协议都属于内置的文件共享功能,iSCSI 只有部分系统内置支持。
用户受众最大的可能就是群晖机器,基本上大家入手的第一台 NAS 就可能是它,配置简单的话可以很轻松上手