一,概述

SCSI最初是一种专门为小型计算机系统设计的I/O技术,但由于其架构和协议自身的优点,后被广泛应用于实现DAS以及SAN的底层技术。

SCSI的定义:

SCSI: Small Computer System Interface

SCSI是一种I/O技术

SCSI规范了一种并行的I/O总线和相关的协议

SCSI的数据传输是以块的方式进行的

SCSI的特点:

设备无关性

多设备并行

高带宽

低系统开销

SCSI总线:

SCSI总线是SCSI设备之间传输数据的通路

SCSI总线又被称作SCSI通道

SCSI终结器:

SCSI终结器位于SCSI总线的末端,用来减小相互影响的信号,维持SCSI链上的电压恒定

SCSI链的最后一个SCSI设备需要使用终结器

SCSI链上的中间设备是不需要使用终结器的

SCSI控制器:

SCSI总线通过SCSI控制器来和硬盘之类的设备进行通信

SCSI控制器逻辑上可分为一个任务管理单元和多个逻辑单元(LU)

SCSI ID:

一个独立的SCSI总线按照规格不同可以支持8或16个SCSI设备,设备的编号需要通过SCSI ID来进行控制,系统中每个SCSI设备都必须有自己唯一的SCSI ID,SCSI ID实际上就是这些设备的地址,窄SCSI总线最多允许8个、宽SCSI总线最多允许16个不同的SCSI设备和它进行连接。

LUN:

LUN(Logical Unit Number,逻辑单元号)是为了使用和描述更多设备及对象而引进的一个方法,每个SCSI ID上最多有32个LUN,一个LUN对应一个逻辑设备。

SCSI连接示意图:

SCSI通信模式:

二,linux下ISCSI的实现:

ISCSI 是基于TCP/IP传输封装的SCSI数据包的块级别的共享,其也为C/S架构模型,服务器端提供客户端所需要的存储设备,客户端只需要进行挂载就可以将其当作自己主机上的存储设备进行分区、格式话使用。

实现ISCSI需要的2个角色:

iSCSI target(server)

存储资源所在的iSCSI服务器被称为“target”。iSCSI target通常是一个硬盘存储设备。当前大部分的主流操作系统都提供了配合iSCSI target使用的客户端软件initiator。

iSCSI initiator(client)

initiator就是iSCSI传输的服务端。典型的initiator都有共同的目的,就是作为一个SCSI总线的适配器,代替物理上的SCSI设备(类似硬盘或者磁带)。iSCSI initiator通过IP网络传输SCSI命令。

实验环境

192.168.30.115  CentOS 6.4 x86_64   target server

192.168.30.116  CentOS 6.4 x86_64   initiator client

192.168.30.117  CentOS 6.4 x86_64   initiator client

首先在target server上安装scsi-target-utils[root@tgtd ~]# yum -y install scsi-target-utils

[root@tgtd ~]# cp /etc/tgt/targets.conf /etc/tgt/targets.conf.bak

编辑target配置文件,定义target

[root@tgtd ~]# vi /etc/tgt/targets.conf

# 添加如下内容

backing-store /dev/sdb

initiator-address 192.168.30.0/24

incominguser luojianlong mypass

[root@tgtd ~]# service tgtd restart

backing-store:指定后端要共享的磁盘编号

initiator-address:授权客户端访问的网络地址

incominguser:设置登录用户的账号密码

启动target并查看

[root@tgtd ~]# tgtadm -L iscsi -m target -o show

Target 1: iqn.2014-04.com.luojianlong:target1

System information:

Driver: iscsi

State: ready

I_T nexus information:

LUN information:

LUN: 0

Type: controller

SCSI ID: IET 00010000

SCSI SN: beaf10

Size: 0 MB, Block size: 1

Online: Yes

Removable media: No

Prevent removal: No

Readonly: No

Backing store type: null

Backing store path: None

Backing store flags:

LUN: 1

Type: disk

SCSI ID: IET 00010001

SCSI SN: beaf11

Size: 2048 MB, Block size: 512

Online: Yes

Removable media: No

Prevent removal: No

Readonly: No

Backing store type: rdwr

Backing store path: /dev/sdb

Backing store flags:

Account information:

luojianlong

ACL information:

192.168.30.0/24

看到新生成的target 1,和自动创建的LUN 1,以及创建的用户认证信息

登录客户端,安装scsi-initiator-utils

[root@localhost ~]# yum -y install iscsi-initiator-utils

修改客户端配置文件:[root@localhost ~]# vi /etc/iscsi/iscsid.conf

# 启用如下几项

node.session.auth.authmethod = CHAP

node.session.auth.username = luojianlong

node.session.auth.password = mypass

[root@localhost ~]# service iscsid restart

在客户端使用iscsiadm工具发现设备[root@localhost ~]# iscsiadm -m discovery -t st -p 192.168.30.119

192.168.30.119:3260,1 iqn.2014-04.com.luojianlong:target1

[root@localhost ~]# iscsiadm -m node -T iqn.2014-04.com.luojianlong:target1 -p 192.168.30.119:3260 -l

Logging in to [iface: default, target: iqn.2014-04.com.luojianlong:target1, portal: 192.168.30.119,3260] (multiple)

Login to [iface: default, target: iqn.2014-04.com.luojianlong:target1, portal: 192.168.30.119,3260] successful.

iscsiadm的命令汇总:

发现iscsi存储:iscsiadm -m discovery -t st -p ISCSI_IP

查看iscsi发现记录: iscsiadm -m node

删除iscsi发现记录 iscsiadm -m node -o delete -T LUN_NAME -p ISCSI_IP

登录iscsi存储 iscsiadm -m node -T LUN_NAME -p ISCSI_IP -l

登出iscsi存储 iscsiadm -m node -T LUN_NAME -p ISCSI_IP -u

删除此前登录生成的数据:

rm -rf /var/lib/iscsi/node/*

rm -rf -rf /var/lib/iscsi/send_targets/*

测试设备是否可用[root@localhost ~]# fdisk -l /dev/sd[a-z]

Disk /dev/sda: 32.2 GB, 32212254720 bytes

255 heads, 63 sectors/track, 3916 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000b12a1

Device Boot Start End Blocks Id System

/dev/sda1 * 1 64 512000 83 Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2 64 3917 30944256 8e Linux LVM

Disk /dev/sdb: 2147 MB, 2147483648 bytes

67 heads, 62 sectors/track, 1009 cylinders

Units = cylinders of 4154 * 512 = 2126848 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

[root@localhost ~]# fdisk /dev/sdb

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0xd498549c.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

switch off the mode (command 'c') and change display units to

sectors (command 'u').

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4):

Value out of range.

Partition number (1-4): 1

First cylinder (1-1009, default 1):

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-1009, default 1009): +1G

Command (m for help): p

Disk /dev/sdb: 2147 MB, 2147483648 bytes

67 heads, 62 sectors/track, 1009 cylinders

Units = cylinders of 4154 * 512 = 2126848 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xd498549c

Device Boot Start End Blocks Id System

/dev/sdb1 1 506 1050931 83 Linux

Command (m for help): w

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

[root@localhost ~]# mke2fs -t ext4 /dev/sdb1

mke2fs 1.41.12 (17-May-2010)

Filesystem label=

OS type: Linux

Block size=4096 (log=2)

Fragment size=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

65808 inodes, 262732 blocks

13136 blocks (5.00%) reserved for the super user

First data block=0

Maximum filesystem blocks=272629760

9 block groups

32768 blocks per group, 32768 fragments per group

7312 inodes per group

Superblock backups stored on blocks:

32768, 98304, 163840, 229376

Writing inode tables: done

Creating journal (8192 blocks): done

Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 36 mounts or

180 days, whichever comes first. Use tune2fs -c or -i to override.

[root@localhost ~]# mount /dev/sdb1 /mnt/

[root@localhost ~]# cp /etc/fstab /mnt/

[root@localhost ~]# cd /mnt/

[root@localhost mnt]# ls

fstab lost+found

[root@localhost mnt]# cat fstab

#

# /etc/fstab

# Created by anaconda on Thu Jan 9 23:01:31 2014

#

# Accessible filesystems, by reference, are maintained under '/dev/disk'

# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

#

/dev/mapper/VolGroup-lv_root / ext4 defaults 1 1

UUID=db4bad23-32a8-44a6-bdee-1585ce9e13ac /boot ext4 defaults 1 2

/dev/mapper/VolGroup-lv_swap swap swap defaults 0 0

tmpfs /dev/shm tmpfs defaults 0 0

devpts /dev/pts devpts gid=5,mode=620 0 0

sysfs /sys sysfs defaults 0 0

proc /proc proc defaults 0 0

注意:同一个iscsi设备分区不能同时让不同客户端同时写入数据,否则数据文件会崩溃。

scsi 教程 linux,SCSI存储详解以及Linux下ISCSI的实现相关推荐

  1. Linux /dev目录详解和Linux系统各个目录的作用

    Linux /dev目录详解和Linux系统各个目录的作用 标签: linuxtcpfunctionclassfirefoxtimer 2012-01-11 23:08 45517人阅读 评论(2) ...

  2. 19. linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解

    linux中权限详解,Linux权限位,读写执行权限真正含义,chmod详解 文章目录 Linux权限位 读写执行 三种权限真正含义和作用 权限对文件的作用 权限对目录的作用 示例 chmod 使用数 ...

  3. Linux进程退出详解(do_exit)--Linux进程的管理与调度(十四)

    Linux进程的退出 linux下进程退出的方式 正常退出 从main函数返回return 调用exit 调用_exit 异常退出 调用abort 由信号终止 _exit, exit和_Exit的区别 ...

  4. Linux chmod命令详解,Linux修改文件权限

    「作者主页」:士别三日wyx 「作者简介」:CSDN top100.阿里云博客专家.华为云享专家.网络安全领域优质创作者 chmod 命令 一.常用操作 1. 字母形式 2. 数字形式 3. 递归设置 ...

  5. Linux ps命令详解,Linux查看进程

    「作者主页」:士别三日wyx 「作者简介」:CSDN top100.阿里云博客专家.华为云享专家.网络安全领域优质创作者 ps命令详解 一.常用操作 1.查看所有进程(连带命令行) 2.显示所有包含其 ...

  6. linux cpu load 详解,理解linux cpu load - 什么时候应该担心了

    load average: 0.09, 0.05, 0.01 1 大多数人对这些数都有一个模糊的概念:三个数分别代表了一个随着更长时间上的一个平均值(1分钟, 5分钟, 15分钟). 并且值越小越好. ...

  7. Linux rm命令详解,Linux删除文件目录

    「作者主页」:士别三日wyx 「作者简介」:CSDN top100.阿里云博客专家.华为云享专家.网络安全领域优质创作者 rm 命令 一.常用操作 1. 删除文件 2. 删除目录 二.其他操作 作用: ...

  8. linux+nm+内容详解,【Linux】nm命令中符号类型详解

    DATE: 2018.11.13 nm命令介绍的很多,但大多不介绍其函数符号标志的含义. 最近在调试动态库时常用到,其中用的最多的用法: nm -A * |grep "aaa" | ...

  9. Linux恐慌信息详解,调试linux内核恐慌

    我是内核调试的新手.Below是最后一个内核消息.根据我的理解,它试图访问空指针.但我不明白为什么它会关闭杯子0. Unable to handle kernel paging request at ...

最新文章

  1. python序列类型-python序列类型种类详解
  2. 使用jquery的getJSON从服务器端获得数据
  3. 初中数学分几个模块_【初中数学】8大模块61个必考易错知识点!
  4. 积分路径上有奇点的积分_复变函数导数与积分与级数
  5. Fireworks 期望,几何分布,概率,三分(2020.12.南京)
  6. java 反射 Constructor、Method、Field 基本用法
  7. [给 ASP.NET初学者的话]挑书与买书,买适合自己的书
  8. 下载android4.4.2源代码全过程(附已下载的源代码)
  9. uestc 方老师的分身 III 拓扑排序
  10. HtmlUnitDriver 网页内容动态抓取
  11. MySQL使用规范手册,程序员必知必会
  12. 数据库基础知识(面试)
  13. 宏观视角看抖音全生态
  14. 计算机软件编程英语词汇集锦一
  15. 0CTF2017 WEB WriteUp
  16. Windows下通过远程桌面连接向远程电脑传输文件
  17. r语言中如何进行两组独立样本秩和检验
  18. 人生启示录效应篇之破窗效应:及时矫正和补救正在发生的问题
  19. 不安分的 Go 强势入侵前端,后端难道要抢前端饭碗了?
  20. USB转RS232不稳定

热门文章

  1. 老师计算机组合照说说,关于老师的空间说说23句
  2. ipad iphone开发_如何从iPhone或iPad连接到Windows远程桌面
  3. 详细浮点型数据的存储讲解
  4. 计算机职业生涯测评,皮纹检测职业版——职业生涯规划指南测评系统
  5. 文件压缩算法详细分析(ZIP)及解压实例解释
  6. linux命令小记(grep、awk、sed)
  7. 【杂烩】Tesla M40 训练机组装与散热改造
  8. Git 版本控制/项目迭代
  9. 1010 - 线性dp - 除虫药水
  10. RDD -- 其他操作