linux存储技术学习资料

news2024/10/5 23:29:38

参考

https://www.cnblogs.com/pengdonglin137/p/16525428.html

image

Linux I/O栈

  • Linux内核的I/O栈大图
  • 知乎Linux I/O专栏1
  • Linux 块设备之Block Layer层架构演变
  • Linux VFS机制简析(一)
  • Linux VFS机制简析(二)
  • Linux Kernel文件系统写I/O流程代码分析(一)
  • Linux Kernel文件系统写I/O流程代码分析(二)bdi_writeback

工具

  • linux问题调查工具指南
  • Linux 要如何优化SSD(固态硬盘)?
  • linux-磁盘io监控相关工具整理

调试节点

  • Block layer statistics in /sys/block//stat

FIO

  • github: https://github.com/axboe/fio
  • https://fio.readthedocs.io/en/latest/index.html
  • Linux下磁盘IO读写测试工具-FIO详解
  • hdparm和fio简介

hdparm

  • 查看一个文件实际使用了哪些扇区
hdparm --fibmap xxx

dumpe2fs

用法(来自chatgpt)

dumpe2fs 是一个用于显示 ext2、ext3、ext4 文件系统信息的命令行工具。以下是 dumpe2fs 的用法:

dumpe2fs [选项] 设备文件名

其中,[选项] 可以是以下任意组合:

  • -h:显示帮助信息。
  • -V:显示版本信息。
  • -b:显示块位图的信息。
  • -i:显示 inode 位图的信息。
  • -I:显示 inode 表的信息。
  • -l:显示文件系统的块和 inode 的数量、大小、使用情况等信息。
  • -o:显示文件系统的挂载选项。
  • -p:显示文件系统的预读块数。
  • -r:显示文件系统的块组摘要信息。
  • -S:显示文件系统的超级块信息。
  • -x:显示文件系统的扩展信息。

设备文件名 是要显示信息的文件系统所在的设备文件名,例如 /dev/sda1

例如,要显示 /dev/sda1 文件系统的块和 inode 的数量、大小、使用情况等信息,可以使用以下命令:

dumpe2fs -l /dev/sda1

debugfs

debugfs 是一个用于调试文件系统的工具,可以用于查看和修改文件系统的内部状态。以下是一些常见的 debugfs 命令:

  1. 打开文件系统:debugfs /dev/sda1 (假设 /dev/sda1 是要调试的文件系统)

  2. 查看文件系统的超级块信息:stat <文件系统根目录的inode号>

  3. 查看文件系统的块位图:bmap <文件名>

  4. 查看文件系统的inode位图:imap <文件名>

  5. 查看文件系统的inode信息:inode <inode号>

  6. 查看文件系统的目录项信息:ls <目录名>

  7. 查看文件系统的文件内容:cat <文件名>

  8. 修改文件系统的inode信息:write <inode号> <偏移量> <数据>

  9. 修改文件系统的目录项信息:set <目录项名> <inode号>

  10. 退出 debugfsquit

请注意,使用 debugfs 可能会对文件系统造成不可逆的损坏,因此在使用之前请务必备份数据。

fsck

smartctl

sg3_utils

  • 官网:http://sg.danny.cz/sg/sg3_utils.html

blktrace

  • 仓库:https://git.kernel.dk/cgit/blktrace/
  • 静态编译的版本:blktrace_2.0.tar.gz
  • 利用blktrace分析磁盘I/O
  • 利用blktrace分析IO性能
  • io分析神器blktrace
  • Deep in blktrace
  • Linux IO性能分析blktrace/blk跟踪器
  • blktrace工具
  • Debugging disk issues with blktrace, blkparse, btrace and btt in Linux environment
  • ftrace interface for blktrace

iostat

  • 容易被误读的iostat

内核

  • 宋宝华:Linux文件读写(BIO)波澜壮阔的一生
  • block子系统内核文档
  • IOwait 到底在wait什么
  • BLOCK层代码分析(0)存储IO框架介绍
  • BLOCK 层这么多参数都是什么意思?!
  • Long Story of Block - DISCARD
  • Long Story of Block - 1 Data Unit
  • Long Story of Block - segment
  • linux block layer第一篇bio 子系统数据结构及初始化
  • linux block layer第二篇bio 的操作

模拟设备

  • Null block device driver
  • 基于内存的磁盘驱动

block cgroup

  • cgroup-blkio子系统分析
  • 关于IO throttle
  • cgroup–blkio子系统测试-1(throttle测试)
  • Linux Cgroup v1(中文翻译)(4):Block IO Controller
  • Cgroup blkio简介和测试(使用fio测试)

throttle

  • Buffer IO的throttle问题
  • Cgroup V2 and writeback support
  • Block Throttle
  • Block Throttle - Low Limit

io latency

  • The block I/O latency controller
  • The creation of the io.latency block I/O controller
  • iolatency

io prio

  • Block io priorities

blk-mq

  • linux内核block层Multi queue多队列核心点分析
  • Multi-queue 架构分析
  • Linux Block IO: Introducing Multi-queue SSD Access on Multi-core Systems
  • Block multi-queue 架构解析(一)数据结构
  • Block multi-queue 架构解析(二)流程与机制
  • blk-mq arch
  • Multi-Queue Block IO Queueing Mechanism (blk-mq)

IO调度器

  • BFQ (Budget Fair Queueing)

Integrity

  • Data Integrity
  • Using Linux Block Integrity in Building and Testing Storage Systems
    • Slide
    • Youtube
  • integritysetup

Encryption

  • Inline Encryption
  • Speeding Up Linux Disk Encryption

zoned block device

  • 用null_blk工具来实现模拟分区块设备

Device Mapper

  • 内核文档:Device Mapper
  • Device Mapper 简介
  • Linux Command dmsetup管理LVM
  • linux命令----dmsetup
  • 高性能存储的另一块拼图——DM 支持 IO Polling
  • Userspace block device driver (ublk driver)

Multipath

  • Linux 下存储多路径软件 MultiPath 源码分析
  • redhat DM Multipath
  • 红帽DM multipath技术文档
  • https://github.com/opensvc/multipath-tools
  • Linux multipathd多路径
  • 使用scsi_debug测试dm-multipath多路径软件的简单实验
  • 第1讲 多路径软件multipath的介绍与安装
  • 第2讲 scsi设备模拟器scsi_debug
  • 第3讲 multipath聚合由scsi_debug模拟的设备
  • 4.如何删除多路径设备和scsi设备
  • 第5讲 multipath的属性features
  • 第6讲 multipath的路径选择path-selector
  • 第7讲 multipath的路径分组策略
  • Beginners guide to Device Mapper (DM) multipathing

io_uring

  • Linux 异步 I/O 框架 io_uring:基本原理、程序示例与性能压测

direct io

  • DirectIO的对齐问题
  • Why does O_DIRECT require I/O to be 512-byte aligned?

脏页回写

  • writeback bdi脏页回写原理linux内核源码解析
  • VFS源码分析-Page Cache Writeback脏页回写机制

F2FS

  • F2FS源码分析系列文章

FUSE

  • 吴锦华/明鑫: 用户态文件系统(FUSE)框架分析和实战

Overlay

  • 深入理解overlayfs(一):初识
  • 深入理解overlayfs(二):使用与原理分析

SCSI

  • 协议
  • https://www.cnblogs.com/pengdonglin137/p/16383560.html
  • 内核文档:Documentation/scsi/
  • 内核文档:SCSI_EH
  • 内核文档:SCSI mid_level - lower_level driver interface
  • 内核文档:SCSI Kernel Parameters
  • linux scsi相关的一些学习笔记
  • SCSI代码分析(0)SCSI层框架
  • SCSI设备IO栈与块设备并发机制
  • Scsi_debug adapter driver for Linux
  • scsi设备模拟器scsi_debug
  • IO 能够保证在确定的时间回来吗?

iscsi

  • iscsi服务器介绍和搭建
  • ISCSI服务器搭建与配置
  • block & scsi & iscsi 开启调试日志
  • 聊一聊存储协议中的孪生兄弟SCSI和iSCSI
  • 什么是ISCSI?ISCSI又能干什么呢?
  • iscsiadm和iscsid的源码
  • Linux文件系统-ISCSI存储和Multipathd
  • Multipath 多路径
  • iSCSI与multipath部署
  • iSCSI initiator软件架构
  • ISCSI介绍
  • iSCSI(一) iSCSI详解 及 iSCSI配置
  • open-iscsi

NVME

  • NVME专栏
  • NVMe的Linux内核驱动分析

RAID

  • RAID1是什么
  • RAID 10是什么

书籍推荐

  • 《存储技术原理分析 基于Linux 2.6内核源代码》
  • 《Linux内核探秘:深入解析文件系统和设备驱动的架构与设计》
  • 《深入浅出ssd-固态存储核心技术原理与实战》
  • 《大话存储》

问题排查

  • How to check Fibre Channel HBAs in Linux
  • How to identify the HBA cards/ports and WWN in Linux

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/555573.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

keycloak入门

realm&#xff1a;领域&#xff0c;指的是在某一个软件业务领域中所涉及的用户认证授权管理相关的对象&#xff0c;在这个realm中有用户、角色、会话session等等用于认证授权管理的对象。 假设一个公司A使用一个erp系统&#xff0c;那么就可以给这个公司A设置一个realm&#xf…

微信小程序nodejs+vue高校食堂餐厅点餐订餐系统ja221

本文以实际运用为开发背景&#xff0c;运用软件工程原理和开发方法&#xff0c;它主要是采用 语言 node.js 框架&#xff1a;Express 前端:Vue.js 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;VScode 前端vueelementui, (1) vue引入elementu…

NFC入门介绍

缩写词 NFCNear Field Communication近场通信OEMOriginal Equipment Manufacturer原始设备制造商HWHardware硬件OMAPIOpen Mobile Application Programming Interface开发移动应用程序编程接口eSEEmbedded Secure Element嵌入式安全元件SEMSSecure Element Management Service…

5月22日比特币披萨日,今天你吃披萨了吗?

比特币披萨日 1. Laszlo Hanyecz2. 最贵披萨诞生记3. 梭哈买披萨4. 未完待续 2010年5月22日&#xff0c;美国佛罗里达州的程序员Laszlo Hanyecz&#xff08;拉兹洛哈涅克斯&#xff09;用10000个比特币购买了棒约翰&#xff08;Papa Johns&#xff09;比萨店一个价值25美元的奶…

Three.js--》实现3d水晶小熊模型搭建

目录 项目搭建 初始化three.js基础代码 加载背景纹理 加载小熊模型 今天简单实现一个three.js的小Demo&#xff0c;加强自己对three知识的掌握与学习&#xff0c;只有在项目中才能灵活将所学知识运用起来&#xff0c;话不多说直接开始。 项目搭建 本案例还是借助框架书写…

vTESTstudio概述

vTESTstudio支持的测试用例编写方式 项目层级结构 从用例编写到测试执行及生成报告的整个流程 vTESTsutido 开发&#xff0c;CANoe执行测试 界面简介 CANoe 创建的测试用例用Test Modules执行&#xff0c;vTESTstudio 创建的测试用例用Test Units执行 先在vTESTstudio里创建pr…

Quard Bayer(COMS SENSOR)

手机越做越紧凑需要模组和芯片尺寸越做越小&#xff0c;在尺寸一定的基础上&#xff0c;高像素和大像素&#xff0c;对于手机摄像头来说&#xff0c;一直是一对矛盾的存在。然而&#xff0c;高像素所带来的高分辨率画质&#xff0c;和大像素带给暗态高感度低噪声的画质&#xf…

Idea使用详解

01.idea简介 &#xff08;1&#xff09;idea介绍 IDEA 全称IntelliJ IDEA&#xff0c;是用于java语言开发的集成环境&#xff08;也可用于其他语言&#xff09;&#xff0c;IntelliJ在业界被公认为最好的java开发工具之一&#xff0c;尤其在智能代码助手、代码自动提示、重构、…

鸿蒙Hi3861学习十七-Huawei LiteOS-M(MQTT)

一、简介 有关MQTT的相关概念介绍&#xff0c;请看之前的文章&#xff0c;这里不做过多的介绍&#xff1a;MQTT学习总结_t_guest的博客-CSDN博客 本章节需要使用如下软件&#xff1a; Mosquitto&#xff08;MQTT消息代理工具&#xff09; Eclipsse paho MQTT工具 二、操作说明…

十款优质企业级Java微服务开源项目(开源框架,用于学习、毕设、公司项目、私活等,减少开发工作,让您只关注业务!)

Java微服务开源项目 前言一、pig二、zheng三、SpringBlade四、SOP五、matecloud六、mall七、jeecg-boot八、Cloud-Platform九、microservices-platform十、RuoYi-Cloud 前言 这篇文章为大家推荐几款优质的 Java 开源项目框架&#xff0c;可以用于学习&#xff0c;毕业设计&…

【腾讯云FinOps Crane 集训营】 Crane入门

前言 随着云计算的快速发展和云原生应用的兴起&#xff0c;容器技术成为了现代化应用部署和管理的重要工具。 越来越多的公司正在选择将应用运行在云上或者自建的 Kubernetes 集群上&#xff0c;但是许多机构的调研 发现&#xff0c;绝大多数的用户集群资源利用率并不高&…

STM8 使用74HC164外扩IO

背景 在嵌入式开发过程中&#xff0c;经常使用时、甚至设计时候&#xff0c;考虑成本等因素&#xff0c;需要外扩IO。这里就是使用STM8S003F3P6&#xff0c;这个芯片比较常用的&#xff0c;这个芯片封装很小&#xff0c;只有20个管脚的MCU&#xff0c;实际产品上用的非常多。 …

二进制部署高可用k8s集群

第一章、前置知识点 1.1 生产环境部署K8S集群的两种方式 kubeadm Kubeadm是一个K8S部署工具&#xff0c;提供kubeadm init 和 kubeadm join&#xff0c;用于快速部署Kubernetes集群。 二进制包 从GitHub下载发行版的二进制包&#xff0c;手动部署每个组件&#xff0c;组成…

Idea部署Tomcat项目位置问题

Tomcat部署路径问题 1 默认情况 Tomcat安装目录下有webapps,是部署项目的,项目就运行在那里。 但是IDEA会为每个项目都拷贝一份足够的Tomcat文件放在c盘 ${user.home}/.IntelliJIdea/system/tomcat 或者 ${user.home/AppData/Local/JetBrains/IntelliJIdea2021.1/tomcat这样做…

【MySQL新手到通关】第二章 MySQL卸载安装

文章目录 1. MySQL的卸载1.1 停止MySQL服务1.2 软件的卸载 2. MySQL的下载、安装、配置2.1 软件的下载2.2 MySQL8.0 版本的安装2.3 配置MySQL8.02.4 配置MySQL8.0 环境变量2.5 MySQL5.7 版本的安装、配置2.6 安装失败问题 3. MySQL 登录3.1 服务的启动与停止3.2 自带客户端的登…

提高效率与代码重用:使用React Native和小程序容器简化开发

React Native是一个强大的前端跨端框架&#xff0c;可以帮助开发者高效地构建移动应用程序&#xff0c;并充分利用跨平台开发的优势&#xff0c;同时提供接近原生应用程序的性能和用户体验。它具有许多技术上的优势&#xff1a; 跨平台开发&#xff1a;使用React Native&#x…

AIGC持续火爆大模型争相推出,庞大市场造就算力供应模式演变

本图由AI生成 文/王吉伟 近期的AIGC领域仍旧火爆异常。 但火的不只是AIGC应用&#xff0c;还有巨头之间的AI竞赛&#xff0c;以及接连不断上新的AI大模型&#xff08;LLM&#xff0c;Large Language Model&#xff09;。 面对ChatGPT带来的技术冲击&#xff0c;为了研发谷歌多…

Spring事务失效常见的五种方式及其解决方案【源码篇】

一、前言 在Web 开发中&#xff0c;Spring 框架已经成为了众多开发者的首选。Spring 的声明式事务管理是其中最重要的特性之一&#xff0c;它可以帮助我们简化业务逻辑的复杂度&#xff0c;并且确保在出现异常情况时数据的一致性。 事务失效情况很常见&#xff0c;但我们只要…

对计算机方向科研工作者的建议 - 易智编译EaseEditing

如果你正在进行计算机科学研究&#xff0c;以下是一些建议可以帮助你&#xff1a; 确定研究兴趣&#xff1a; 选择一个你感兴趣的研究领域或问题&#xff0c;并确保你对该领域有足够的知识基础和热情。 深入学习&#xff1a; 通过阅读学术论文、参加研讨会和课程&#xff0c;…

有意思的CVE-2022-0337复现

前言 前两天在刷tw&#xff0c;看到了个比较有意思的一个CVE漏洞&#xff0c;价值奖励是10000美&#x1f52a;&#xff0c;比较好奇的是价值10000美&#x1f52a;的漏洞是什么样子的[苦涩]&#xff0c;漏洞利用就是需要在浏览器中进行用户交互才能触发该漏洞&#xff0c;但由于…