按照接口类型我们可以分为ATA、STATA、SCSI、SAS、FC,接下来我们分别就以上几种接口类型进行一些对比。 6Gb/s 600MB/s 2米 SATA 2.0 3Gb/s 300MB/s 1.5米 SATA 1.0 1.5Gb/s 150MB/s 1米 PATA 1Gb/s 133MB/s 0.5米 (三)SCSI 特点: SCSI 直译为小型计算机系统专用接口。它是一种连接主机和外围设备的接口,支持包括硬盘、光驱及扫描仪在内的多种设备。SCSI 总线是一种并行总线,常用于企业级存储领域。 (四)SAS(Serial Attached SCSI) 接口视图: ? 特点: SAS跟SATA 硬盘有点类似,都是采用串行技术以获得更高的传输速度。
Disk接在了SCSI controller下。 Driver在内核态,通过SCSI controller控制Disk。 Disk会被抽象成Block设备。 用户可以通过VFS访问Block设备。 4,SGIO 再或者,使用SG_IO发送SCSI命令给Driver,直接操作Disk。 这种更加“原始”的方式,比如执行inquery查询vendor id等。 6,Qemu qemu虚拟化出来SCSI Controller和Disk,用软件来模拟SCSI协议。其中,SCSI controller是接在PCI bus上的一个PCI device。 Qemu得到Guest的SCSI请求,Qemu选择要么使用软件模拟设备,要么透传给Driver(即passthrough)。 7,Passthrough qemu-2.8.0-rc4/hw/scsi/scsi-disk.c中,实现scsi-disk的几种typeinfo。
你看到的错误: SCSI DVD: The signed image's hash is not allowed (DB) 这说明: Hyper-V Generation 2 虚拟机启用了安全启动(Secure
位2003系统的pvscsi驱动,不适用32位XP系统 ②适用64位2003系统和64位XP系统的pvscsi驱动,不适用32位2003系统和32位XP系统 ③适用32位2003系统和32位XP系统的scsi 驱动,不适用64位2003系统和64位XP系统 winPreVista.iso中的scsi驱动是32位的,不适用64位2003系统和64位XP系统 二、xp、2003原版系统不带AHCI SATA驱动, 驱动,不适用32位XP系统 ④vmware scsi驱动,不适用64位2003系统和64位XP系统 ⑤32位XP系统 I/O控制器只能选BusLogic+IDE、BusLogic+SCSI、准虚拟化SCSI (PVSCSI)+IDE,选LSI Logic和LSI Logic SAS会提示没有驱动(BusLogic+SCSI的前提是ISO已经集成winPreVista.iso中的scsi驱动,否则就老老实实选 XP和2003*的原版ISO没有SATA驱动或SCSI驱动,如果不做集成驱动的改造,选原版ISO直接用,请不要按VMware的默认推荐选SCSI,而是要选IDE,一定得选IDE。
你需要扫描 SCSI 主机来寻找存储团队分配的新 LUN。 这可以通过两种方式进行,扫描每个 scsi 主机设备或运行 rescan-scsi-bus.sh 脚本来检测新磁盘。 你可以使用 echo 命令来扫描每个 SCSI 主机设备,如下所示: # echo "- - -" > /sys/class/scsi_host/host[n]/scan 当你运行上面的重新扫描所有的命令时 这些值如下: # echo "c t l" > /sys/class/scsi_host/host[n]/scan 这里: c:HBA 上的通道 t:SCSI 目标 ID l:LUN ID n:HBA "- - -" > /sys/class/scsi_host/host0/scan # echo "- - -" > /sys/class/scsi_host/host1/scan # echo "- # dnf install -y sg3_utils 现在你可以使用 rescan-scsi-bus.sh 脚本重新扫描 LUN。 # ./rescan-scsi-bus.sh
解决: 定制内核SCSI层协议, 修改用户态TGT项目来适配保留字段 环境 CentOS Linux (5.10.38-21.hl10.el7.x86_64) 7 (Core)(带有SCSI协议驱动), static blk_status_t scsi_queue_rq( -> scsi处理流程: https://blog.csdn.net/marlos/article/details/131171560 WARN_ON_ONCE(cmd->budget_token < 0) -> 预算令牌, scsi:blk-mq:从 .get_budget 回调中返回预算令牌 SCSI 使用全局原子变量来跟踪每个 LUN scsi_prepare_cmd(struct request *req) struct scsi_cmnd cmd->prot_op = SCSI_PROT_NORMAL 命令保护操作 , count=8 cmd->cmd_len = 10 static int scsi_dispatch_cmd(struct scsi_cmnd *cmd) trace_scsi_dispatch_cmd_start
1.通过fdisk -l 可以发现没有发现新添加的硬盘 2.cat /proc/scsi/scsi 3. echo “scsi add-single-device 2 0 1 0” >>/proc/scsi /scsi 注:对各个参数的理解: echo “scsi add-single-device x y z u” >> /proc/scsi/scsi x是硬盘所在SCSI控制器号(一般机器就一个SCSI 控制器,所以就是0); y是硬盘所在SCSI通道的编号(一般单通道的就是0,多通道的要看是哪个通道了) 单通道SCSI卡最多支持同时接15个盘,卡上只一个通道。 z是硬盘的SCSI ID号(在原有上面加1); u是硬盘的lun号(默认情况都是0) fdisk -l确认一下结果把: 如果需要移除刚才添加的硬盘 使用 echo “scsi remove-single-device 2 0 1 0” >>/proc/scsi/scsi 就可以 把add-single-device换成了remove-single-device
状态enum scsi_status { SCSI_STATUS_GOOD = 0, SCSI_STATUS_CHECK_CONDITION = 操作码enum scsi_opcode { SCSI_OPCODE_TESTUNITREADY = 0x00, SCSI_OPCODE_READ6 = 0x08 , SCSI_OPCODE_INQUIRY = 0x12, SCSI_OPCODE_MODESELECT6 = 0x15, SCSI_OPCODE_RESERVE6 , SCSI_OPCODE_STARTSTOPUNIT = 0x1b, SCSI_OPCODE_PREVENTALLOW = 0x1e, SCSI_OPCODE_READCAPACITY10 = 0x35, SCSI_OPCODE_READ_DEFECT_DATA10 = 0x37, SCSI_OPCODE_WRITE_SAME10 = 0x41, SCSI_OPCODE_UNMAP
主机适配器和设备都有一个SCSI ID,每个总线上可以有8个或16个ID,具体取决于SCSI版本。 您可能会听到SCSI目标这个术语,用于指代设备及其SCSI ID。 Figure 3-1. 较新版本的SCSI,如串行连接SCSI(SAS),提供了出色的性能,但在大多数机器上你可能找不到真正的SCSI设备。 In this example, there are four attached adapters (scsi0, scsi1, scsi2, and scsi3), each of which has 方括号中的数字,从左到右依次表示SCSI主机适配器编号、SCSI总线编号、设备SCSI ID和LUN(逻辑单元号,设备的进一步细分)。 在这个例子中,有四个连接的适配器(scsi0、scsi1、scsi2和scsi3),每个适配器都有一个总线(都是总线编号0),每个总线上只有一个设备(都是目标0)。
为了防止这种情况发生而导致的数据损坏,于是就引入了SCSI锁的概念。通过SCSI Reservation机制来进行SCSI锁的操作,目前绝大多数的磁盘都支持‘SCSI reservvation命令‘。 SCSI锁的分类: SCSI锁有两种类型:SCSI-2 Reservation和SCSI-3 Reservation。一个LUN上只能存在一种类型的SCSI锁。 SCSI-2 Reservation只允许设备被发出SCSI锁的Initiator访问,也就是主机的HBA。 Windows Cluster中的SCSI锁: Windows 2003集群中使用SCSI-2 reserve/release命令。 注意:这并不意味着所有磁盘都将属于类型 SCSI,指定称为 SCSI 硬件接口,但相反,存储单元都必须能够正确地解释和处理 SCSI 协议和命令。
1.通过fdisk -l 可以发现没有发现新添加的硬盘 2.cat /proc/scsi/scsi 3. echo “scsi add-single-device 2 0 1 0” >>/proc/ scsi/scsi 注:对各个参数的理解: echo “scsi add-single-device x y z u” >> /proc/scsi/scsi x是硬盘所在SCSI控制器号(一般机器就一个 SCSI控制器,所以就是0); y是硬盘所在SCSI通道的编号(一般单通道的就是0,多通道的要看是哪个通道了) 单通道SCSI卡最多支持同时接15个盘,卡上只一个通道。 z是硬盘的SCSI ID号(在原有上面加1); u是硬盘的lun号(默认情况都是0) fdisk -l确认一下结果把: 如果需要移除刚才添加的硬盘 使用 echo “scsi remove-single-device 2 0 1 0” >>/proc/scsi/scsi 就可以 把add-single-device换成了remove-single-device
对于Virtual Device Node 选择择SCSI2:0(此时SCSI0和SCSI1已经被使用,主要避免scsi总线故障。 如果选择SCSI0和SCSI1上的剩余Device,则需要重新配置ASM。因为磁盘sda,sdb,sdc是依据scsi的顺序以及之上的节点来分配的。 其余的新增加的磁盘如法炮制。 修改刚刚的添加的scsi总线的sharedBus项,将其改为VIRTUAL。 如本例中的 scsi2.sharedBus = "VIRTUAL" 其次添加下列项到配置文件 注意scsix:y的表示方法。x表示第几个总线,y表示该总线上的第几个设备。 scsi2:0.deviceType = "disk" scsi2:0.redo = "" scsi2:1.deviceType = "disk" scsi2:1.redo = "" 4、配置裸设备及
) KERNEL[1382973390.161793] add /devices/platform/host3/scsi_host/host3 (scsi_host) KERNEL 0:0:0/scsi_generic/sg2 (scsi_generic) KERNEL[1382973390.423154] add /devices/platform/host3 :0:0/3:0:0:1/scsi_device/3:0:0:1 (scsi_device) KERNEL[1382973390.425951] add /devices/platform /host3/session1/target3:0:0/3:0:0:1/scsi_generic/sg3 (scsi_generic) KERNEL[1382973390.426038] add 0:0/3:0:0:0/scsi_generic/sg2 (scsi_generic) UDEV [1382973390.649027] add /devices/platform
RAID 卡的分类: 一般根据集成的 SCSI 控制器来划分。如果没有集成 SCSI 控制器,而是借用主板上的 SCSI 控制器来管理硬盘,则为零通道 RAID 卡。 RAID卡的结构图: SCSI RAID卡上一定要包含SCSI控制器,因为其后端连接的依然是SCSI物理磁盘; 其前端连接到主机的PCI总线上,所以一定要有一个PCI总线控制器来维护PCI总线仲裁、数据发送接收等功能 RAID卡与 SCSI卡(SCSI控制器 )不是同一个东西(SCSI和RAID这两板卡功能是完全不同的,RAID卡的价格通常会比SCSI卡的价格高许多,原因是它们的用途不一样,SCSI卡仅用于连接SCSI 目前scsi RAID 卡最高有4通道,其后端可以接入4条SCSI总线,所以最多连接64个SCSI设备。 有了RAID卡之后,SCSI控制器(SCSI卡)就成了RAID程序代码的傀儡,raid让它干啥,他就干啥,SCSI控制器对它下面掌管的磁盘情况完全明了,它和RAID程序代码之间进行通信。
[root@rac1 by-path]# scsi_id -g -u /dev/sdc14f504e46494c45526769557069492d7a5958372d50743541[root@rac1 by-path]# scsi_id -g -u /dev/sdd14f504e46494c45524144767274662d65564d622d75734b73[root@rac1 by-path] # scsi_id -g -u /dev/sde14f504e46494c4552794966445a502d6771374a2d4c524361[root@rac1 by-path]# scsi_id by-path]# scsi_id -g -u /dev/sdj14f504e46494c4552713652304c332d655632592d375a7548[root@rac1 by-path] grid用户和asmadmin组,下期将介绍 [root@rac2]# vim /etc/scsi_id.configoptions=--whitelisted --replace-whitespace
Rev: 1.00 Type: Direct-Access ANSI SCSI revision: 02 Host: scsi3 Channel: 00 : 1.00 Type: Direct-Access ANSI SCSI revision: 02 Host: scsi3 Channel: 00 Id scsi disk sdb at scsi3, channel 0, id 1, lun 0 Attached scsi disk sdc at scsi3, channel 0, id 2, lun 0 Attached scsi generic sg3 at scsi3, channel 0, id 15, lun 0, type 3 Attached scsi generic sg4 at scsi3, channel 1, id 9, lun 0, type 3 Attached scsi generic sg5 at scsi3, channel 2, id 8, lun 0,
通过搜索,查到以下内容: 验证 SCSI-3 永久保留 此测试可验证群集存储是否使用最新的(SCSI-3 标准)永久保留命令(它们与较旧的 SCSI-2 标准保留/释放命令不同)。 永久保留命令可避免 SCSI 总线复位,这意味着它们与较旧的保留/释放命令相比,破坏性要小得多。因此,与运行早期版本操作系统的群集相比,故障转移群集在各种情况下的响应性更强。 SCSI-3 PR ensures persistent reservations across SCSI bus resets. --------------------------------- -3 PR就是一组SCSI命令集,用在多个系统访问一个共享存储的时候协调之用。 Windows 2008用SCSI-3 PR,而Windows 2003用SCSI-2。
s - SCSI-2 - 定义了通用命令集(Common Command Set, 简称CCS) - 提高了性能,可靠性,新增了一些特性 - SCSI-3 - SCSI最新版本 - 由多个相关的标准组成,不再是一个大文件 SCSI-3 架构 [SCSI-3架构] SCSI命令协议(应用层) - 各类型设备通用的主要命令 传输层协议 - 设备间互连和信息共享的标准规则 ,scsi-3、fc等等 物理层互连 - 接口细节: 比如电信号传输方法和数据传输模式 SCSI 协议模型 主机到存储磁盘间的通信由启动器发起,由目标器接收和处理 [SCSI模型] SCSI 协议寻址 总线号: 区分不同的SCSI 总线 设备ID: 区分SCSI 总线上不同的设备 逻辑单元号: 区分SCSI 设备中的子设备 ATA 和 SATA 高级技术附件(Advanced Technology (串行 SCSI 协议) 在企业级存储系统中,SAS(Serial Attached SCSI)接口已经取代并行连接SCSI 和 SATA 接口 特点 - 采用点对点连接方式 - 高带宽(300M
为了使硬盘能够适应大数据量、超长工作时间的工作环境,服务器一般采用高速、稳定、安全的SCSI硬盘。 同普通PC机的硬盘相比,服务器上使用的硬盘具有如下四个特点。 、Ultra2 Wide SCSI、Ultra160 SCSI、Ultra320 SCSI等标准的SCSI硬盘,每秒的数据传输率分别可以达到40MB、80MB、160MB、320MB。 3、多使用SCSI接口 多数服务器采用了数据吞吐量大、CPU占有率极低的SCSI硬盘。 SCSI硬盘必须通过SCSI接口才能使用,有的服务器主板集成了SCSI接口,有的安有专用的SCSI接口卡,一块SCSI接口卡可以接7个SCSI设备,这是IDE接口所不能比拟的。 从目前的情况来看,10000rpm的SCSI硬盘具有性价比高的优势,是目前硬盘的主流,而7200rpm及其以下级别的硬盘在逐步淡出硬盘市场。
控制器,选择VirtIO SCSI,Bios选择OVMF, 这里不要创建efi启动盘 下面的磁盘大小,cpu,内存,根据实际情况,自行调整。 创建完成后,信息如下 修改光驱CD/DVD 先移除已有的CD/DVD,原来的是ide接口的的,需要换成scsi接口 然后添加一个新的,光驱点击添加,选择CD/DVD,然后总线设备选择scsi,介质选择刚刚下载好的 调整启动顺序 将scsi0(硬盘),scsi1 (光驱)调整到前面,网卡(pxe)调整到最后。 原来的文件内容如下: bios: ovmf boot: order=scsi0;scsi1;net0 cores: 1 cpu: x86-64-v2-AES efidisk0: local-lvm:vm : local-lvm:vm-105-disk-1,size=32G scsi1: local:iso/debian-12.8.0-arm64-netinst.iso,media=cdrom,size=