linux存储技术学习资料

参考

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

linux存储技术学习资料_第1张图片

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监控相关工具整理
  • Linux block devices: hints for debugging and new developments

调试节点

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

dd

  • dd 工具使用; SSD 顺序写性能测试;
  • 汇报dd的进度

FIO

  • github: https://github.com/axboe/fio
  • HOWTO.rst
  • https://fio.readthedocs.io/en/latest/index.html
  • Linux下磁盘IO读写测试工具-FIO详解
  • hdparm和fio简介
  • linux 磁盘IO测试工具:fio (同时简要介绍dd工具测试)
  • Fio Output Explained

ioprof

  • 分析IO的工具 ioprof,支持导出图表

blktrace

  • 仓库:https://git.kernel.dk/cgit/blktrace/
  • 静态编译的版本:blktrace_2.0.tar.gz
  • blktrace分析IO 绘制图表
  • 利用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

iotrace

  • https://github.com/Open-CAS/standalone-linux-io-tracer
    • Case Study

iostat

  • 容易被误读的iostat
  • I/O statistics fields
  • 深入理解iostat
  • 深入分析diskstats
  • IOSTAT中关于%util,svctm存在的陷阱及解决办法
  • 瓶颈确认之IO瓶颈确认之第一篇

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

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

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

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

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

  10. 退出 debugfsquit

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

fsck

tune2fs

  • EXT4是否存在FS error

dumpe2fs

blockdev

  • blockdev --setra预读优化和IO请求的大小

smartctl

sg3_utils

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

Storcli64

  • Storcli64 工具操作指南

内核

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

文件系统

EXT2/3/4

  • EXT4文件系统的磁盘整体布局

F2FS

  • F2FS源码分析系列文章

FUSE

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

Overlay

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

脏页回写

  • writeback bdi脏页回写原理linux内核源码解析
  • VFS源码分析-Page Cache Writeback脏页回写机制
  • https://lwn.net/Kernel/Index/#Memory_management-Writeback

预读

  • 程序中如何禁用Linux文件预读和缓存机制

模拟设备

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

block cgroup

  • cgroup-blkio子系统分析
  • cgroupv2 权威指南
  • cgroup–blkio子系统测试-1(throttle测试)
  • Linux Cgroup v1(中文翻译)(4):Block IO Controller
  • Cgroup blkio简介和测试(使用fio测试)
  • I/O bandwidth controllers

throttle

  • 关于IO throttle
  • Buffer IO的throttle问题
  • Cgroup V2 and writeback support
  • Block Throttle
  • Block Throttle - Low Limit
  • Resource management in Docker

io latency

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

io prio

  • Block io priorities
  • How disk IO priority is related with process priority?
  • How to Manage the Priority of I/O Processes in Linux

io cost

  • blk-iocost: iocost: improve donation, debt and excess handling
  • blk-iocost权重限速
  • IOCost: Block IO Control for Containers in Datacenters

Discard

  • Long Story of Block - DISCARD
  • SSD的TRIM原理及实践

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

  • ZNS的前世今生
  • 西数 Zoned Storage 分区存储
  • ZNS : 解决传统SSD问题的高性能存储栈设计
  • 用null_blk工具来实现模拟分区块设备
  • Zoned Storage
  • Zoned Block Device Emulation

Device Mapper

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

LVM

  • LVM逻辑卷和手动创建逻辑卷
  • LVM 逻辑卷管理
    • lvm 逻辑卷管理(原理概念篇)
    • LVM 逻辑卷管理(实战篇)

Multipath

  • Linux 下存储多路径软件 MultiPath 源码分析
  • 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:基本原理、程序示例与性能压测

Bcache

  • Linux下SSD缓存加速之bcache使用
  • bcache原理及实践

Flashcache

  • 理解flashcache(1)

direct io

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

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 能够保证在确定的时间回来吗?
  • BLOCK_SCSI 专栏

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
  • iSCSI command
  • How to get scsi_id

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

你可能感兴趣的:(Linux存储知识,linux,运维,服务器,存储技术)