问题标签 [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.
storage - SCSI和PCI之间的区别
SCSI 是标准电子接口,允许个人计算机与磁盘驱动器、磁带驱动器等外围硬件进行通信。
外围组件互连 (PCI),顾名思义,是描述如何将系统的外围组件连接在一起的标准。结构化和受控的方式。
现在我的问题是是什么让它们与众不同,数据传输的方式?还是硬件?
谢谢你的帮助 。
storage - NVMe排队接口和PCIe排队接口的区别
任何人都可以让我知道两者之间的区别。
如果有,请避免相关链接。
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?
linux - 确定拥有磁盘的 linux 驱动程序
我正在尝试调试正确的设备驱动程序未检测到我的硬件上的 SSD 的情况。应该拥有 SSD 的设备驱动程序是软件 RAID 驱动程序 (megasr),它将自动将 2 个 SSD 配置为镜像模式。我很确定 megasr 驱动程序没有检测/拥有 SSD,但我不确定哪个驱动程序实际检测到它们。
在 Linux 中有没有一种方法可以确定哪个设备驱动程序拥有 /dev 目录中的特定磁盘。
因此,例如,我想确定哪个驱动程序拥有设备 /dev/sda。
操作系统是 RHEL 6.x。
非常感谢。
c - 创建 SCSI 10 字节 CDB
我是 SCSI CDB 编程的新手。我有一些使用 6 字节 CDB 为写入命令编写的代码
从上面的代码我不明白 cdb[2] 和 cdb[3] 是如何派生的?
在类似的行中,我正在尝试为写入命令开发 10 字节 CDB。如何填写占LBA的cdb[2-5]的数据?
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 结构数据?
类型定义结构{
} 查询数据;
scsi - 写入磁盘上的每个 LBA
需要使用 SCSI CDB 写入磁盘上的每个 LBA。在这里,我构建了一个用于写入每个 LBA 的 while/for 循环。我正在使用 10 字节 CDB 。
我如何表示 32 位 LBA 以便它从 LBA 0 迭代到 Maximun LBA 。如果我打算在每个 LBA 上写入,数据传输长度应该是多少。每个 LBA 大小为 512 字节。
scsi - 关于 SCSI READ 命令
我正在尝试使用 SCSI 读取容量命令获取磁盘的最大 LBA。
我创建了 10 字节的 CDB,如下所示
SCSI 命令成功。不幸的是,我没有得到预期的 LBA,它显示为零。
我的基本问题是上面创建的 SCSI CDB 命令是否正确?
powershell - 使用 Powershell 在服务器上获取虚拟 SCSI 硬件
我正在尝试使用 Powershell 从多个虚拟服务器获取 SCSI 硬件并获取每个特定服务器的操作系统。我已经设法通过我的代码获得了我想找到的特定 SCSI 硬件,但是我无法弄清楚如何正确获取每个服务器的操作系统。此外,我正在尝试将我找到的所有数据发送到 csv 日志文件中,但是我不确定如何让 powershell 脚本创建多个列。
这是我的代码(几乎可以工作,但出了点问题):
当我运行此代码时,我没有收到任何错误,但是每当我运行它时,我只会得到服务器的名称而不是操作系统的名称。此外,我不确定我需要做什么才能使操作系统出现在与我正在创建的 csv 日志中的服务器名称不同的列中。
我需要更改代码以获取每个虚拟机的操作系统版本并将其输出到 csv 日志文件的不同列中?
macos - RetrieveINQUIRYData() 中偶尔出现 OSX 内核崩溃
我有一个 SCSI 驱动程序,它IOSCSIPrimaryCommandsDevice::RetrieveINQUIRYData()
作为启动过程的一部分调用。有时,在测试期间拔出、弹出、重新插入和一般滥用设备后,会发生内核崩溃。
这个函数的签名是:
调用它的例程是这样开始的。它以 IOSCSITargetDevice.cpp 中的PublishUnitSerialNumber为模型
这在大多数情况下都有效,只是偶尔会出现恐慌。GDB 回溯没有帮助,因为该函数中没有符号,所以我只知道它是在另一个函数调用之后。我也找不到这个函数的源代码——我认为它是闭源 IOKit 代码的一部分。
RetrieveINQUIRYData()
在调用上述代码中我没有做的事情之前,我应该检查或做些什么吗?据我所知,所有的指针都被检查为 NULL,长度被设置为常量,唯一的另一个参数是 EVPD 的文字。