SMR硬盘 Linux 环境下ext4的优化

2024-02-04 10:38
文章标签 linux 优化 环境 硬盘 ext4 smr

本文主要是介绍SMR硬盘 Linux 环境下ext4的优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

研究了几天SMR,总结一下。

  1. SMR是特殊的硬盘,一般不应该用于频繁多写的状态,家里用作仓库是不错的。你可以把SMR硬盘看作有几个快速小磁带机组成的硬盘设备。里面每一个strip就代表一个小磁带机,这个strip只能顺序读写。所以,SMR硬盘和传统意义上的硬盘内部存储原理不太一致,不是原始意义上的随机读写设备。
  2. SMR硬盘分区和碎片这里都不提倡,因为SMR内部会腾挪数据,可能会把你没有用过空白分区用来腾挪数据。有丢失数据的风险。SMR硬盘没必要碎片整理,因为你实际上无法知道内部的实际的保存情况,尤其DM SMR的情况下。
  3. SMR硬盘最好的方式是Host Managed SMR (HM-SMR),但需要特殊设计或者优化的文件系统,比如华为的存储设备 (为什么市场少见支持SMR硬盘的企业存储?请听我说 )。
  4. SMR 对 Linux EXT4的优化,可以参见权威论文:
    Evolving Ext4 for Shingled Disks Evolving Ext4 for Shingled Disks | USENIX
  5. DM-SMR 的EXT4 优化 lwn.net Evolving ext4 for SMR drives
  6. lazy-ext4补丁:https://github.com/tytso/ext4-patch-queue/blob/master/add-ext4-journal-lazy-mount-option
     
  7. 截至目前(2019-12),木有看到所谓SMR-lazy模式的EXT4补丁。
  8. 目前的SMR -ext4 优化,要开启TRIM,然后设置strip striped-width 。具体查找优化链接。先这么顶一阵。具体还是等适合HM-SMR的文件系统出来再说。

2020-09-28补充,

SMR硬盘还是需要特别的文件系统,Linux下比较好的是 F2FS。如果保存NAS,可以用SMR + F2FS 保存。

SMR F2FS介绍 时至今日(2019下半年),SMR硬盘的体验有所改善了吗? - 知乎  备注2 和 评论1

F2FS介绍 F2FS技术拆解_内核工匠的博客-CSDN博客_f2fs

2022-07-20 补充:

其实对于DM-SMR硬盘,可以模拟视为一台RAID,我们针对RAID优化,而不是针对RAID的硬盘优化。所以DM-SMR的文件系统优化等同于 RAID优化。对于ext4就是如下链接:

ext4 with SSD, stripes and strides.

stride = Page size / Filesystem block
stripe-width = Erase Block / Filesystem block

Calculating filesystem stride_size and stripe_width for best performance under RAID

stripe/stripe-width

也就是说,stride-width,等于缓冲区大小。

这篇关于SMR硬盘 Linux 环境下ext4的优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/677202

相关文章

Linux内核定时器使用及说明

《Linux内核定时器使用及说明》文章详细介绍了Linux内核定时器的特性、核心数据结构、时间相关转换函数以及操作API,通过示例展示了如何编写和使用定时器,包括按键消抖的应用... 目录1.linux内核定时器特征2.Linux内核定时器核心数据结构3.Linux内核时间相关转换函数4.Linux内核定时

Linux镜像文件制作方式

《Linux镜像文件制作方式》本文介绍了Linux镜像文件制作的过程,包括确定磁盘空间布局、制作空白镜像文件、分区与格式化、复制引导分区和其他分区... 目录1.确定磁盘空间布局2.制作空白镜像文件3.分区与格式化1) 分区2) 格式化4.复制引导分区5.复制其它分区1) 挂载2) 复制bootfs分区3)

python项目环境切换的几种实现方式

《python项目环境切换的几种实现方式》本文主要介绍了python项目环境切换的几种实现方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 如何在不同python项目中,安装不同的依赖2. 如何切换到不同项目的工作空间3.创建项目

Spring Boot基于 JWT 优化 Spring Security 无状态登录实战指南

《SpringBoot基于JWT优化SpringSecurity无状态登录实战指南》本文介绍如何使用JWT优化SpringSecurity实现无状态登录,提高接口安全性,并通过实际操作步骤... 目录Spring Boot 实战:基于 JWT 优化 Spring Security 无状态登录一、先搞懂:为什

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Linux服务器数据盘移除并重新挂载的全过程

《Linux服务器数据盘移除并重新挂载的全过程》:本文主要介绍在Linux服务器上移除并重新挂载数据盘的整个过程,分为三大步:卸载文件系统、分离磁盘和重新挂载,每一步都有详细的步骤和注意事项,确保... 目录引言第一步:卸载文件系统第二步:分离磁盘第三步:重新挂载引言在 linux 服务器上移除并重新挂p

Linux下屏幕亮度的调节方式

《Linux下屏幕亮度的调节方式》文章介绍了Linux下屏幕亮度调节的几种方法,包括图形界面、手动调节(使用ACPI内核模块)和外接显示屏调节,以及自动调节软件(CaliseRedshift和Reds... 目录1 概述2 手动调节http://www.chinasem.cn2.1 手动屏幕调节2.2 外接显

Linux(centos7)虚拟机没有IP问题及解决方案

《Linux(centos7)虚拟机没有IP问题及解决方案》文章介绍了在CentOS7中配置虚拟机网络并使用Xshell连接虚拟机的步骤,首先,检查并配置网卡ens33的ONBOOT属性为yes,然后... 目录输入查看ZFhrxIP命令:ip addr查看,没有虚拟机IP修改ens33配置文件重启网络Xh

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

linux实现对.jar文件的配置文件进行修改

《linux实现对.jar文件的配置文件进行修改》文章讲述了如何使用Linux系统修改.jar文件的配置文件,包括进入文件夹、编辑文件、保存并退出编辑器,以及重新启动项目... 目录linux对.jar文件的配置文件进行修改第一步第二步 第三步第四步总结linux对.jar文件的配置文件进行修改第一步进