Questions tagged [scsi]

Small Computer System Interface (SCSI, pronounced skuz-ee) is a set of parallel interface standards developed by the American National Standards Institute (ANSI) for physically connecting and transferring data between computers and peripheral devices(like printers, disk drives, scanners and other). It is a fast bus and supported by all major operating systems.

Small Computer System Interface (SCSI, pronounced skuz-ee) is a set of standards for physically connecting and transferring data between computers and peripheral devices. The official name of the SCSI standard is: ANSI X3.131.

The SCSI standards define commands, protocols, and electrical and optical interfaces. SCSI uses a low-voltage differential (LVD) bus, a method where data is transmitted by comparing the difference in voltage between a pair of wires. SCSI is most commonly used for hard disks and tape drives, but it can connect a wide range of other devices, including scanners and CD drives.

Some important features:

  • SCSI is capable of supporting eight devices, or sixteen devices with Wide SCSI.
  • The latest version, 16-bit Ultra-640 (Fast-320) SCSI has a 640 MBps transfer speed.
  • SCSI standards are generally backward-compatible.

Common SCSI components:

  • Initiator - it issues requests for service by the SCSI device and receives responses.
  • Target - A SCSI target is typically a physical storage device like a hard-disk or a storage array
  • Service delivery subsystem - it allows communication to occur between the initiator and the target

The SCSI subsystem has a 3 level architecture with the "upper" level being closest to the user/kernel interface while the "lower" level is closest to the hardware.

For more info: http://en.wikipedia.org/wiki/SCSI

181 questions
2
votes
2 answers

Which version of Linux Kernel start to support SPC-4 for VMware 6.5 UNMAP

VMware 6.5 announced to support UNMAP commands (Space Reclamation from thin LUNs on storage systems) with VMFS6 and Linux virtual machines which supports SCSI Primary Commands - 4 (SPC-4). Which version of Linux Kernel start to support SPC-4 for…
BBK
  • 142
  • 8
2
votes
0 answers

How to get SCSI properties from Storage Spaces pooled physical disks with PowerShell?

I am trying to extract the SCSI* properties for all the VHD files attached to my Hyper-V VM, using PowerShell. This VM is configured with a Storage Space built upon 2 physical VHDs, in addition to the OS Disk. Before configuring the Storage Space I…
2
votes
1 answer

How to determine what bloks are allocated for the disk device?

A lot of modern storage types use Thin provisioning to allocate blocks. I need to get Block allocation map for the disk device. There is FSCTL_GET_VOLUME_BITMAP to get volume bitmap, but it is file-system specific and I need an approach that is…
Brans Ds
  • 4,039
  • 35
  • 64
2
votes
1 answer

SCSI persistent reservation in iSCSI

In iSCSI, the initiator port Id is defined as: iSCSI_Name,i,Initiator_Session_Id And target port id is defined as: iSCSI_Name,t,Target_Portal_Group_Tag After an initiator issues a "PR In - Reserve" SCSI command, the above info pertaining to an I_T…
Ahmed A
  • 3,362
  • 7
  • 39
  • 57
2
votes
1 answer

How can I limit the number of blocks written in a Write_10 command?

I have a product that is basically a USB flash drive based on an NXP LPC18xx microcontroller. I'm using a library provided from the manufacturer (LPCOpen) that handles the USB MSC and the SD card media (which is where I store data). Here is the…
Jotux
  • 147
  • 1
  • 9
2
votes
0 answers

Use ioctl to send self-defined scsi commands to usb devices

I implemented some self-defined scsi commands in one usb device. One is: { 0xB1, 0xF5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 }. I use the following code to send this self-defined command to the usb device. The OS is ubuntu 14.04. int main(int…
Jesse
  • 21
  • 1
2
votes
0 answers

"Bad CDB" message in VMware ESXi kernel logfile

I'm running the VMware ESXi 5.5 hypervisor and see a lot of error messages like below in its /var/log/vmkernel.log file: cpu11:34032 opID=1ad4dfbe)<3>ata1.00: bad CDB len=16, scsi_op=0x9e, max=12 The SCSI operation with code 0x9e is…
HEKTO
  • 3,876
  • 2
  • 24
  • 45
2
votes
1 answer

How to control hard drive motor speed with C on linux?

I've got an old HDD with which I planned to fiddle around a little. First thing I'm trying to do is spinning the motor with different speeds. Questions are: Is there a general way to do this or does it depend on the HDD model? Where do I find a…
defoe
  • 369
  • 2
  • 14
2
votes
4 answers

Creating SCSI 10 byte CDB

I am new to SCSI CDB programming . I have some piece of code written for write command using 6byte CDB ccb = (Exec_IO_CCB *)(buffer + header_size); ccb->ccb_length = sizeof(Exec_IO_CCB); ccb->cam_opcode = 0x1; ccb->connect_id = 0; …
arun
  • 41
  • 1
  • 6
2
votes
2 answers

Difference between SCSI and PCI

SCSI is standard electronic interfaces that allow personal computers to communicate with peripheral hardware such as disk drives, tape drives etc. Peripheral Component Interconnect (PCI), as its name implies is a standard that describes how to…
2
votes
3 answers

ioctrl using SCSI pass through

Using Windows I can easily communicate with my USB device using the following simplified code: DWORD dwJunk; // discard results from DeviceIOControl() int iReply; char cBuffer[100]; // cBuffer is initialized here. HANDLE hDevice; // handle to…
MaxiFlash
  • 103
  • 1
  • 2
  • 9
2
votes
1 answer

Where are IOSCSIBlockCommandsDevice.cpp and friends?

I am writing a driver which depends on the SCSI part of IOKit (I'm on 10.6, but this applies to 10.7 and 10.8 too), and I have the headers linked into my project with the Kernel framework. While I can see the headers for files like…
Inductiveload
  • 6,094
  • 4
  • 29
  • 55
1
vote
0 answers

Fail to communicate with driver via CreateFile in 64 bits

I am a scsi driver developer. I write a user space program to get data from driver via CreateFile. It works ok when testing in 32 bit windows environment but in 64 bit the following error appears: CreateFile return -1. GetLastError() would return…
1
vote
1 answer

How to get a list of SCSI-Disks in C/C++ under Linux?

i need to get a list or any other enumerable class with info about any connected SCSI-disks, with info just like /proc/scsi/sg/devices Please help me and thanks in advance
skeleten
  • 94
  • 1
  • 10
1
vote
4 answers

SCSIControllerDriverKit: Process gets stuck on UserCreateTargetForID

Context: We are working on migration of the driver, which is currently represented as a kernel extension, to the DriverKit framework. The driver works with Thunderbolt RAID storage devices. When connected through the Thunderbolt interface to the…
Alex
  • 29
  • 3
1 2
3
12 13