存储基础 -- SCSI命令格式与使用场景
SCSI命令格式与使用场景
1. SCSI命令描述符块(CDB)
1.1 CDB基本概念
SCSI命令通过**命令描述符块(CDB, Command Descriptor Block)**表示。
- CDB长度:SCSI命令根据使用场景有不同长度的CDB,常见的有6字节、10字节、12字节、16字节。
- 示例:READ(6)、READ(10)、READ(12)、READ(16)命令表示的CDB长度不同。
- 操作码(Opcode):CDB的第一个字节是“操作码”,标识具体命令类型。例如:
0x00表示TEST UNIT READY命令。0x12表示INQUIRY命令。
- 参数字段:后续字段根据命令的功能定义不同的参数,例如逻辑块地址(LBA)、传输长度、标志位等。
1.2 CDB结构示例
READ(10)命令的CDB结构
Byte | 位 | 名称 | 含义
-----+------+-----------------------+--------------------------------------0 | 7-0 | Operation Code (0x28) | 标识READ(10)命令1 | 7 | RelAdr | 是否相对地址模式| 6-5 | Reserved | 保留字段| 4 | FUA | 强制直接读写介质| 3 | DPO | 禁用缓存换出| 2-0 | LUN | 逻辑单元号(Logical Unit Number)2-5 | | Logical Block Address | 要读取的起始LBA6 | | Reserved | 保留字段7-8 | | Transfer Length | 要读取的逻辑块数量9 | | Control | 控制位
示例说明
- Opcode标识命令类型。
- Logical Block Address指定操作的逻辑块地址。
- Transfer Length决定传输的逻辑块数量。
2. SCSI命令使用场景
以下列举了常见的SCSI命令及其使用场景。
2.1 TEST UNIT READY
- 命令含义:检查目标设备是否已准备好接收命令。
- 场景与用途:
- 系统启动时用于检查设备是否就绪。
- 在读写操作前确认设备状态(例如光驱是否加载了介质)。
2.2 INQUIRY
- 命令含义:获取SCSI设备的基本信息,包括供应商ID、产品ID、固件版本等。
- 场景与用途:
- 系统识别设备型号和特性。
- 存储管理中用于识别RAID卡或SAN环境中的设备信息。
2.3 REQUEST SENSE
- 命令含义:获取设备错误信息或状态变化。
- 场景与用途:
- 当命令返回错误时,用于诊断原因。
- 存储故障排查和设备状态监控。
2.4 START STOP UNIT
- 命令含义:控制设备马达启动或停止,或装载/卸载介质。
- 场景与用途:
- 硬盘节能管理(停止磁盘旋转)。
- 光驱或磁带机装载/卸载介质。
2.5 READ CAPACITY
- 命令含义:获取设备的容量信息,包括逻辑块大小和最大逻辑块地址。
- 场景与用途:
- 确定磁盘容量,用于分区和文件系统配置。
- 对大容量设备(>2TB)使用READ CAPACITY(16)。
2.6 READ / WRITE
- 命令含义:对逻辑块进行读写操作。
- 场景与用途:
- 所有存储I/O操作的核心。
- 在现代存储环境中,READ(16)和WRITE(16)支持超大地址范围。
2.7 MODE SENSE / MODE SELECT
- 命令含义:
- MODE SENSE:读取设备模式参数。
- MODE SELECT:修改设备模式参数。
- 场景与用途:
- 查询或配置硬盘缓存策略。
- 磁带数据压缩或光驱特性调整。
2.8 SYNCHRONIZE CACHE
- 命令含义:将设备缓存中的数据写回物理介质。
- 场景与用途:
- 系统关机或文件系统卸载时保证数据一致性。
- RAID控制器或存储阵列切换前的缓存同步。
2.9 FORMAT UNIT
- 命令含义:低级格式化设备,重新初始化物理扇区布局。
- 场景与用途:
- 磁带或硬盘的出厂初始化。
- 修复介质异常。
2.10 VERIFY
- 命令含义:校验指定逻辑块范围的数据。
- 场景与用途:
- 确保写入数据正确性。
- RAID一致性校验。
2.11 PREVENT / ALLOW MEDIUM REMOVAL
- 命令含义:控制是否允许手动移除介质。
- 场景与用途:
- 写入或读取光盘/磁带时防止介质被意外弹出。
2.12 LOG SENSE / LOG SELECT
- 命令含义:
- LOG SENSE:读取设备日志信息(如温度、错误统计等)。
- LOG SELECT:修改日志参数或清空日志。
- 场景与用途:
- 获取设备状态和运行记录。
- 监控设备性能和健康状况。
2.13 REASSIGN BLOCKS / WRITE SAME
- 命令含义:
- REASSIGN BLOCKS:将坏块重新映射到备用扇区。
- WRITE SAME:批量写入固定数据。
- 场景与用途:
- 修复磁盘坏块。
- 快速初始化或清零逻辑块。
2.14 READ DEFECT DATA
- 命令含义:读取存储介质上的缺陷信息。
- 场景与用途:
- 查看硬盘或磁带的缺陷分布。
- 判断设备健康状态。
2.15 SEND DIAGNOSTIC / RECEIVE DIAGNOSTIC RESULTS
- 命令含义:执行设备自检或获取诊断结果。
- 场景与用途:
- 存储设备的在线自检。
- 高端存储的维护和健康检查。
3. 总结
SCSI命令通过CDB表示,并通过不同的传输协议(如SAS、Fibre Channel、iSCSI等)进行传输。常见的命令包括设备就绪检测(TEST UNIT READY)、信息获取(INQUIRY)、读写操作(READ/WRITE)、容量查询(READ CAPACITY)、错误诊断(REQUEST SENSE)等。
在实际应用中,这些命令由操作系统或驱动封装,用户通过文件系统或存储管理工具间接使用。深入了解CDB格式和命令用途,对于驱动开发或存储调优具有重要意义。
相关文章:
存储基础 -- SCSI命令格式与使用场景
SCSI命令格式与使用场景 1. SCSI命令描述符块(CDB) 1.1 CDB基本概念 SCSI命令通过**命令描述符块(CDB, Command Descriptor Block)**表示。 CDB长度:SCSI命令根据使用场景有不同长度的CDB,常见的有6字节…...
PyTorch广告点击率预测(CTR)利用深度学习提升广告效果
目录 广告点击率预测问题数据集结构广告点击率预测模型的构建1. 数据集准备2. 构建数据加载器3. 构建深度学习模型4. 训练与评估 总结 广告点击率预测(CTR,Click-Through Rate Prediction)是在线广告领域中的重要任务,它帮助广告平…...
算法每日双题精讲 —— 二分查找(寻找旋转排序数组中的最小值,点名)
🌟快来参与讨论💬,点赞👍、收藏⭐、分享📤,共创活力社区。 🌟 别再犹豫了!快来订阅我们的算法每日双题精讲专栏,一起踏上算法学习的精彩之旅吧💪 在算法的…...
Flutter TextPainter 计算文本高度和行数
在开发中有的时候需要去计算文本的高度或者行数,从而控制展示的内容,比如进一步设置展示控件的高度,或者根据行数进行不同的内容展示。 在原生 Android 开发时,View 的绘制流程分为 measure,layout,draw 三…...
STM32-时钟树
STM32-时钟树 时钟 时钟...
算法知识补充2
一部分:Tire树:高效地存储和查找字符串集合的数据结构acwing835 #include<iostream> #include<cstring> using namespace std; const int N100010; int son[N][26],cnt[N],idx; char str[N]; void insert(char str[]){int p0;for(int i0;st…...
微信小程序-点餐(美食屋)02开发实践
目录 概要 整体架构流程 (一)用户注册与登录 (二)菜品浏览与点餐 (三)订单管理 (四)后台管理 部分代码展示 1.index.wxml 2.list.wxml 3.checkout.wxml 4.detail.wxml 小结优点 概要…...
WPF基础 | WPF 常用控件实战:Button、TextBox 等的基础应用
WPF基础 | WPF 常用控件实战:Button、TextBox 等的基础应用 一、前言二、Button 控件基础2.1 Button 的基本定义与显示2.2 按钮样式设置2.3 按钮大小与布局 三、Button 的交互功能3.1 点击事件处理3.2 鼠标悬停与离开效果3.3 按钮禁用与启用 四、TextBox 控件基础4.…...
CentOS7使用源码安装PHP8教程整理
CentOS7使用源码安装PHP8教程整理 下载安装包解压下载的php tar源码包安装所需的一些依赖扩展库安装前的配置修改配置文件1、进入php8的安装包 配置环境变量开机自启启动服务创建软连接常见问题1、checking for icu-uc > 50.1 icu-io icu-i18n... no2、configure: error: Pa…...
强化学习 - 基于策略搜索和策略优化: 高斯策略
最近在做毕设需要用强化学习来做控制,对强化学习的知识点做一下总结。 高斯策略 高斯策略属于强化学习中的基于策略优化的分支(Policy Optimization),尤其是策略梯度方法(Policy Gradient Methods) 的一部…...
126周日复盘 (166)本周回顾
关键词:帧数测试 1、上午继续各处排查,优化帧数。 中午打包测试。 显卡锁60帧,720p窗口模式,画质3下, 低负载时50-60帧,密集战斗时35-45帧,基本达到预期, 硬件占用,显…...
08-Elasticsearch
黑马商城作为一个电商项目,商品的搜索肯定是访问频率最高的页面之一。目前搜索功能是基于数据库的模糊搜索来实现的,存在很多问题。 首先,查询效率较低。 由于数据库模糊查询不走索引,在数据量较大的时候,查询性能很…...
SQL在DBA手里-改写篇
背景 最近运营需要做月报汇总交易情况,之前一直是他们手工出的数据,他们想做成月初自动发送邮件,从而减轻他们的工作量。于是他们提供SQL我们在邮件服务器配置做定时发送任务。 表介绍(表及字段已做脱敏处理) trans…...
02-机器学习-核心概念
以下是机器学习核心概念的详细梳理。 1. 机器学习三大范式 类型定义典型应用监督学习使用带标签的数据训练模型,预测未知数据的标签。分类(邮件垃圾过滤)、回归(房价预测)无监督学习从无标签的数据中发现隐藏模式或结…...
企业财务管理系统的需求设计和实现
该作者的原创文章目录: 生产制造执行MES系统的需求设计和实现 企业后勤管理系统的需求设计和实现 行政办公管理系统的需求设计和实现 人力资源管理HR系统的需求设计和实现 企业财务管理系统的需求设计和实现 董事会办公管理系统的需求设计和实现 公司组织架构…...
Couchbase UI: Server
在 Couchbase UI 中的 Server(服务器)标签页主要用于管理和监控集群中的各个节点。以下是 Server 标签页的主要内容和功能介绍: 1. 节点列表 显示集群中所有节点的列表,每个节点的详细信息包括: 节点地址࿱…...
【软件设计师中级】-笔记缩减版本-计算机系统基础知识
1. 计算机系统基础知识 1.1. 计算机系统硬件基本组成硬件 中央处理器(CPU)硬件系统的核心 运算器 控制器 存储器(记忆设备) 内部存储器(速度高,容量小):临时存放程序、数据及中间结…...
SAP MM 记录一次SAP外协采购收货提示 这种物料的特殊库存 O 0100003359 14019002不存在的问题
根据采购订单收货,调用时 BAPI_GOODSMVT_CREATE时返回 { "TYPE":"E", "ID":"M7", "NUMBER":"076", "MESSAGE":"这种物料的特殊库存 O 0100003359 14019002不存在"…...
2025牛客寒假算法基础集训营2
H 一起画很大的圆! 看起来像是一道计算几何的题,实际上通过分析和猜想,是有O1复杂度的结论的。具体证明略,结论是三点越接近共线,得出的半径越大。 #include <bits/stdc.h> using namespace std; #define endl \…...
统计学中的样本概率论中的样本
不知道当初谁想的把概率论和数理统计合并,作为一门课。这本身是可以合并,完整的一条线,看这里。但是,作为任课老师应该从整体上交代清楚,毕竟是两个学科,不同的学科合并必然会有各种不协调的问题。 举个最…...
DDD-全面理解领域驱动设计中的各种“域”
一、DDD-领域 在领域驱动设计(Domain-Driven Design,DDD)中,**领域(Domain)**指的是软件系统所要解决的特定业务问题的范围。它涵盖了业务知识、规则和逻辑,是开发团队与领域专家共同关注的核心…...
在 Ubuntu22.04 上安装 Splunk
ELK感觉太麻烦了,换个日志收集工具 Splunk 是一种 IT 工具,可帮助在任何设备上收集日志、分析、可视化、审计和创建报告。简单来说,它将“机器生成的数据转换为人类可读的数据”。它支持从虚拟机、网络设备、防火墙、基于 Unix 和基于 Windo…...
计算机网络 (60)蜂窝移动通信网
一、定义与原理 蜂窝移动通信网是指将一个服务区分为若干蜂窝状相邻小区并采用频率空间复用技术的移动通信网。其原理在于,将移动通信服务区划分成许多以正六边形为基本几何图形的覆盖区域,称为蜂窝小区。每个小区设置一个基站,负责本小区内移…...
壁纸设计过程中如何增加氛围感
在壁纸设计过程中,增加氛围感是提升整体视觉效果和情感传达的关键。以下是一些具体的方法和技巧,帮助你在设计中营造出强烈的氛围感: 一、色彩运用 选择主题色: 根据你想要传达的情感选择主色调。例如,温暖的色调&…...
|Python新手小白中级教程|第二十九章:面向对象编程(Python类的拓展延伸与10道实操题目)(5)
文章目录 前言1.类变量与实例变量2.静态方法和类方法1.静态方法2.类方法 3.实操使用1. 创建一个名为Person的类,包含属性name和age,并且有一个方法introduce()用于介绍自己的名字和年龄。2. 创建一个名为Circle的类,包含属性radius和color&am…...
专为课堂打造:宏碁推出三款全新耐用型 Chromebook
IT之家 1 月 25 日消息,宏碁(Acer)昨日(1 月 24 日)发布公告,针对教育市场,推出 Chromebook Spin 512 (R857T)、Chromebook Spin 511 (R757T) 和 Chromebook 511 (C737) 三款产品,兼…...
UE求职Demo开发日志#12 完善击杀获得物品逻辑和UI
1 实现思路 1.给WarehouseManager添加一个按TArray增加物品的函数 2.Enemy身上一个变量记录掉落物品,死亡时调用增加物品函数 3.同时调用UI显示 2 实现过程 2.1 在WarehouseManager里添加一个AddItemByArray函数 遍历数组调用添加函数 void UWarehouseManage…...
Oracle查看数据库表空间使用情况
Oracle RAC环境查看表空间使用情况 查询字段释义: NEED_ADDFILE,--是否需增加表空间文件 TABLESPACE_NAME,--表空间名称 TABLESPACE_FILE_COUNT, --表空间当前数据文件数量 NOW_FILEENABLE_BLOCKS,--表空间文件当前数据块数 NOW_FILEENABLE_BYTES_GB,--表空间文件当…...
安装Ubuntu22.04
1.引用教程 如何安装Ubuntu Server 22.04 LTS_ubuntu22.04 server-CSDN博客 2.空间分配 要使用 docker 比较多所以分别的 docker 空间大...
【阅读笔记】基于整数+分数微分的清晰度评价算子
本文介绍的是一种新的清晰度评价算子,整数微分算子分数微分算子 一、概述 目前在数字图像清晰度评价函数中常用的评价函数包括三类:灰度梯度评价函数、频域函数和统计学函数,其中灰度梯度评价函数具有计算简单,评价效果好等优点…...
