Skip to content

Commit

Permalink
ops/storage: trim
Browse files Browse the repository at this point in the history
  • Loading branch information
taoky committed Feb 12, 2024
1 parent e47a3b6 commit 513fb91
Showing 1 changed file with 16 additions and 0 deletions.
16 changes: 16 additions & 0 deletions docs/ops/storage/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,22 @@ $ sudo smartctl -a /dev/bus/4 -d megaraid,8 # 添加参数可以看到真实的

有关 S.M.A.R.T. 指标解释与监控的内容将会在 [LVM 与 RAID](./lvm-raid.md) 中介绍。

### Trim (Discard/Unmap)

SSD 的闪存存储的特点是:不支持任意的随机写,修改数据只能通过清空区块之后重新写入来实现。并且区块能够经受的写入次数是有限的。
SSD 中的固件会进行区块管理,以将写入带来的磨损分散到所有区块中。但是,固件并不清楚文件系统的情况,因此在文件系统中删除某个文件之后,
SSD 固件会仍然认为对应的区块存储了数据,不能释放。Trim 操作由操作系统发出,告诉固件哪些区块可以释放,以提升性能,延长 SSD 使用寿命。一些特殊的存储设备也会支持 trim 操作,例如虚拟机磁盘(`virtio-scsi`)、部分企业级的 SAN 等。

??? note "关注存储的可用空间比例"

不建议将存储的可用空间全部或接近全部耗尽,这是因为:

- 机械硬盘:可用空间不足时,文件系统为了存储数据,会不得不产生大量磁盘碎片,而机械硬盘的随机读写性能很差;
- 固态硬盘:可用空间不足会导致没有足够的空区块改写内容,因此可能不得不大量重复擦写已有的区块,加速磨损。

一般来说,确保 `fstrim.timer` 处于启用状态即可。一些文件系统也支持调整 trim/discard 参数(立即 discard 或周期性 discard,
一般推荐后者)。

## RAID

RAID(Redundant Array of Inexpensive Disks)是一种将多个磁盘组合在一起实现数据冗余和性能提升的技术。不同的磁盘组合方式称为“RAID 级别(RAID Level)”,常见的有 RAID 0、RAID 1、RAID 5、RAID 6、RAID 10 等。
Expand Down

0 comments on commit 513fb91

Please sign in to comment.