问题标签 [scsi]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
11350 浏览

storage - SCSI和PCI之间的区别

SCSI 是标准电子接口,允许个人计算机与磁盘驱动器、磁带驱动器等外围硬件进行通信。
外围组件互连 (PCI),顾名思义,是描述如何将系统的外围组件连接在一起的标准。结构化和受控的方式。

现在我的问题是是什么让它们与众不同,数据传输的方式?还是硬件?

谢谢你的帮助 。

0 投票
1 回答
523 浏览

storage - NVMe排队接口和PCIe排队接口的区别

任何人都可以让我知道两者之间的区别。

如果有,请避免相关链接。

0 投票
1 回答
1727 浏览

linux - 在 Linux 上重新扫描 LUN

我们已经在 EMC 存储上扩展了现有的 LUN 大小,现在我想在主机端重新扫描,但我不知道如何找出该特定 LUN 的 SCSI ID。我是存储新手..这就是我正在做的,但不知道这是否是正确的方式

在这里,我在 sdX 设备上运行 find 命令以找出 SCSI ID,以便我可以echo 1 > /sys/bus/scsi/drivers/X:X:X:X/rescan重新扫描 LUN

或者有替代或其他方式来扫描 LUN?

0 投票
2 回答
5881 浏览

linux - 确定拥有磁盘的 linux 驱动程序

我正在尝试调试正确的设备驱动程序未检测到我的硬件上的 SSD 的情况。应该拥有 SSD 的设备驱动程序是软件 RAID 驱动程序 (megasr),它将自动将 2 个 SSD 配置为镜像模式。我很确定 megasr 驱动程序没有检测/拥有 SSD,但我不确定哪个驱动程序实际检测到它们。

在 Linux 中有没有一种方法可以确定哪个设备驱动程序拥有 /dev 目录中的特定磁盘。

因此,例如,我想确定哪个驱动程序拥有设备 /dev/sda。

操作系统是 RHEL 6.x。

非常感谢。

0 投票
4 回答
1860 浏览

c - 创建 SCSI 10 字节 CDB

我是 SCSI CDB 编程的新手。我有一些使用 6 字节 CDB 为写入命令编写的代码

从上面的代码我不明白 cdb[2] 和 cdb[3] 是如何派生的?

在类似的行中,我正在尝试为写入命令开发 10 字节 CDB。如何填写占LBA的cdb[2-5]的数据?

0 投票
1 回答
2664 浏览

scsi - SCSI 查询数据

我是 SCSI 编程的新手,因此很抱歉提出基本问题。我通过 6 字节 CDB 向磁带设备发送了 SCSI 查询命令

ccb = (Exec_IO_CCB *)( 缓冲区 + header_size );

ccb->ccb_length = sizeof(Exec_IO_CCB);

ccb->cam_opcode = 0x1;

ccb->connect_id = 0;

ccb->sense_buf_ptr = (long)(header_size + ccb->ccb_length);

ccb->sense_buf_length = MAX_SENSE_LEN;

ccb->time_out = CAM_TIMEOUT;

ccb->cdb_length = 6;

/* 对于 INQUIRY 设置 cam_flags 和 cdb[0] */

ccb->cam_flags = NO_DATA;

ccb->cdb[0] = 查询;/* 0x12 用于查询命令的 SCSI 操作码 */

ccb->cdb[1] = 0;

ccb->cdb[2] = 0;

ccb->cdb[3] = 0;

ccb->cdb[4] = 3200;

ccb->cdb[5] = 0;

SCSI 命令成功。如何捕获 INQUIRY 命令的输出,以便我可以获得供应商 ID / 产品 ID ?

我已按如下方式声明了 Execute I/O SCSI 缓冲区

类型定义结构{

} 执行_IO_CCB;

这种结构永远不会捕获 SCSI 输出?

我已将查询结构声明如下。但我不确定 Inquire 命令将如何填充 Inquiry_Data 结构数据?

类型定义结构{

} 查询数据;

0 投票
1 回答
813 浏览

scsi - 写入磁盘上的每个 LBA

需要使用 SCSI CDB 写入磁盘上的每个 LBA。在这里,我构建了一个用于写入每个 LBA 的 while/for 循环。我正在使用 10 字节 CDB 。

我如何表示 32 位 LBA 以便它从 LBA 0 迭代到 Maximun LBA 。如果我打算在每个 LBA 上写入,数据传输长度应该是多少。每个 LBA 大小为 512 字节。

0 投票
1 回答
522 浏览

scsi - 关于 SCSI READ 命令

我正在尝试使用 SCSI 读取容量命令获取磁盘的最大 LBA。

我创建了 10 字节的 CDB,如下所示

SCSI 命令成功。不幸的是,我没有得到预期的 LBA,它显示为零。

我的基本问题是上面创建的 SCSI CDB 命令是否正确?

0 投票
1 回答
354 浏览

powershell - 使用 Powershell 在服务器上获取虚拟 SCSI 硬件

我正在尝试使用 Powershell 从多个虚拟服务器获取 SCSI 硬件并获取每个特定服务器的操作系统。我已经设法通过我的代码获得了我想找到的特定 SCSI 硬件,但是我无法弄清楚如何正确获取每个服务器的操作系统。此外,我正在尝试将我找到的所有数据发送到 csv 日志文件中,但是我不确定如何让 powershell 脚本创建多个列。

这是我的代码(几乎可以工作,但出了点问题):

当我运行此代码时,我没有收到任何错误,但是每当我运行它时,我只会得到服务器的名称而不是操作系统的名称。此外,我不确定我需要做什么才能使操作系统出现在与我正在创建的 csv 日志中的服务器名称不同的列中。

我需要更改代码以获取每个虚拟机的操作系统版本并将其输出到 csv 日志文件的不同列中?

0 投票
1 回答
149 浏览

macos - RetrieveINQUIRYData() 中偶尔出现 OSX 内核崩溃

我有一个 SCSI 驱动程序,它IOSCSIPrimaryCommandsDevice::RetrieveINQUIRYData()作为启动过程的一部分调用。有时,在测试期间拔出、弹出、重新插入和一般滥用设备后,会发生内核崩溃。

这个函数的签名是:

调用它的例程是这样开始的。它以 IOSCSITargetDevice.cpp 中的PublishUnitSerialNumber为模型

这在大多数情况下都有效,只是偶尔会出现恐慌。GDB 回溯没有帮助,因为该函数中没有符号,所以我只知道它是在另一个函数调用之后。我也找不到这个函数的源代码——我认为它是闭源 IOKit 代码的一部分。

RetrieveINQUIRYData()在调用上述代码中我没有做的事情之前,我应该检查或做些什么吗?据我所知,所有的指针都被检查为 NULL,长度被设置为常量,唯一的另一个参数是 EVPD 的文字。