简单介绍两个概念:

iSCSI:Internet Small Computer System Interface.是一种基于 TCP/IP的协议,用来建立和管理 IP 存储设备、主机和客户机等之间的相互连接,并创建存储区域网络(SAN)。SAN 使得 SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行。

iSCSI的工作过程:当iSCSI主机应用程序发出数据读写请求后,操作系统会生成一个相应的SCSI命令,该SCSI命令在iSCSI initiator层被封装成ISCSI消息包并通过TCP/IP传送到设备侧,设备侧的iSCSI target层会解开iSCSI消息包,得到SCSI命令的内容,然后传送给SCSI设备执行;设备执行SCSI命令后的响应,在经过设备侧iSCSI target层时被封装成ISCSI响应PDU,通过TCP/IP网络传送给主机的ISCSI initiator层,iSCSI initiator会从ISCSI响应PDU里解析出SCSI响应并传送给操作系统,操作系统再响应给应用程序。

ISCSI通信双方:请求方:initiator即为客户端。接收方:target,即为服务器端

target  :成为target需要满足的条件:要有支持SCSI,ISCSI的模块,要有创建target、lum的用户空间工具。要有SCSI、ISCSI驱动,运行为服务,且此服务开机自行启动,接收客户请求要有监听的套接字。服务器端的配置需要保存至某个配置文件中,使其永久生效。

initiator:要有SCSI、ISCSI驱动,要能发现服务器端共享出来的磁盘存储,要能登录到服务器端

有了以上思路我们就可以开始做配置:

服务器端:

创建共享磁盘存储

# fdisk /dev/sda

查看是否已安装了SCSI、ISCSI的模块

# grep -i 'scsi' /boot//config-2.6.32-431.el6.x86_64

安装用户空间的工具软件

# yum -y install scsi-target-utils-1.0.24-10.el6.x86_64.rpm

开启服务

/etc/rc.d/init.d/tgtd

# service tgtd start

开机自动启动

# chkconfig tgtd on

监听套接字端口:

# ss -tnl 3260

用户空间使用工具

/usr/sbin/tgtadm

使用配置文件

/etc/tgt/targets.conf

开机重启后

/usr/sbin/tgt-admin会读取配置文件信息。

创建target

# tgtadm -L iscsi -o new -m target -t 1 -T iqn.2014-05.com.aperson.web:1

查看创建的targeto

# tgtadm -L iscsi -o show -m target

关联逻辑单元lun

# tgtadm -L iscsi -o new -m logicalunit -t 1 -l 1 -b /dev/sda5

再次查看

# tgtadm -L iscsi -o show -m target

开启逻辑单元对用户的访问,即基于ip的授权

# tgtadm -L iscsi -o bind -m target -t 1 -I 192.168.2.0/24

客户端:

安装软件

iscsi-initiator-utils-6.2.0.873-10.el6.x86_64.rpm

# rpm -ql iscsi-initiator-utils

两个启动服务脚本

/etc/rc.d/init.d/iscsi

/etc/rc.d/init.d/iscsid

iscsid的配置文件

/etc/iscsi/iscsid.conf

客户端使用工具

/sbin/iscsiadm

iscsi别名生成工具

/sbin/iscsi-iname

别名存放目录:

/etc/iscsi

启动服务

service iscsi start

service iscsid start

创建自己的名称跟别名

echo "InitiatorName=`iscsi-iname -p iqn.2014-05.com.aperson`" > /etc/iscsi/initiatorname.iscsi

echo "InitiatorAlias=initiator1" >> /etc/iscsi/initiatorname.iscsi

发现共享:

# iscsiadm -m discovery -t st -p 192.168.2.117:3260
192.168.2.117:3260,1 iqn.2014-05.com.aperson.web:1

登录共享服务器端

# iscsiadm -m node -T iqn.2014-05.com.aperson.web:1 -p 192.168.2.117:3260 -l
Logging in to [iface: default, target: iqn.2014-05.com.aperson.web:1, portal: 192.168.2.117,3260] (multiple)
Login to [iface: default, target: iqn.2014-05.com.aperson.web:1, portal: 192.168.2.117,3260] successful.

查看硬盘情况:

分区格式化对此磁盘 并挂载到本地,验证数据的输入删除等操作  

注意:共享存储不能同时给两个客户端使用,否则文件系统会崩溃。

退出登录:

iscsiadm -m node -T iqn.2014-05.com.aperson.web:1 -p 192.168.2.117 -u

我们下次登录的时候会自动发现共享存储是因为我们登录过一次以后就会在/var/lib/iscsi/目录下自动生成一些文件,记录我们曾经登录过的共享服务器的一些信息:

如果不想记录,我们可以删除这些文件,也可以使用iscsiadm的一条命令进行删除:

# iscsiadm -m node -T iqn.2014-05.com.aperson.web:1 -p 192.168.2.117:3260 -o delete

删除lun,删除target指令:

# tgtadm -L iscsi -o delete -m logicalunit -t 1 -l 1
# tgtadm -L iscsi -o delete -m target -t 1

命令的配置无法长久保存,所以我们需要基于配置文件的设置来实现持久配置

# vim /etc/tgt/targets.conf
<target iqn.2014-05.com.aperson.web2.2>direct-store /dev/sda5initiator-address 192.168.2.0/24
</target>

iscsi基于用户的认证配置:

在服务器端:

# vim /etc/tgt/targets.conf
<target iqn.2014-05.com.aperson.web2.2>direct-store /dev/sda5initiator-address 192.168.2.0/24incominguser admin admin
</target>

在客户端:

# vim /etc/iscsi/iscsid.conf
node.session.auth.authmethod = CHAP
node.session.auth.username = admin
node.session.auth.password = admin

如果是先前登录过的需要在客户端停止iscsi、iscsid服务,并删除/var/lib/iscsi/目录下的文件:重新发现,重新登录。

OK,以上就是iscsi的基础知识!

转载于:https://blog.51cto.com/aperson/1405592

基于iscsi实现文件存储共享相关推荐

  1. 基于Extent 的文件存储(fiemap)

    现代很多文件系统都采用了 extent 替代 block 来管理磁盘. Extent 就是一些连续的 block,一个 extent 由起始的 block 加上长度进行定义. Extent 能有效地减 ...

  2. springboot2.X手册:基于OSS解决文件存储(一年9元^^,赚了)

    今天有个非常巧合的机会,无意间发现阿里云的OSS一年只需要9块钱,5年只需要45块钱,有40G容量,这是什么概念?在送人吗?赶紧撸一把,有可能是我以前没发现,但是我记得以前好贵的~~~ OSS介绍 & ...

  3. springboot2.2.X手册:基于OSS解决文件存储(一年9元^^,赚了)

    上一篇:springboot2.2.X手册:对象复制哪种最快?7种复制方式性能对比 今天有个非常巧合的机会,无意间发现阿里云的OSS一年只需要9块钱,5年只需要45块钱,有40G容量,这是什么概念?在 ...

  4. 一文讲清:对象存储、文件存储、块存储。绝对好文

    从应用角度看块存储.文件存储.对象存储 产品和市场需求有各种相互影响的关系,但不管是哪一种,最终呈现都是产品和应用需求需要对应匹配.应用需求越多样化,市场也就划分得更加细,产品种类也就更加丰富.在存储 ...

  5. 块存储、文件存储、对象存储三者有什么区别,有什么关系?

    一.块存储.文件存储.对象存储,三者的本质差别是什么? 1.块存储 典型设备:磁盘阵列,硬盘 块存储主要是将裸磁盘空间整个映射给主机使用的,就是说例如磁盘阵列里面有5块硬盘(为方便说明,假设每个硬盘1 ...

  6. java中sofa并发访问,云上的日子:用块存储、文件存储还是对象存储?

    当今最流行的存储类型是哪种? 答案毫无疑问是:块存储.文件存储还有对象存储!作为伴随着云计算兴起的存储类型,这三种存储绝对是这个时代的存储明星,用C位出道来形容再合适不过. 那么,在云上的日子,究竟该 ...

  7. san分布式共享文件系统_基于SAN存储共享卷实现openstack高可用的方法与流程

    本发明涉及一种高可用方法,特别是一种基于SAN存储共享卷实现openstack高可用的方法. 背景技术: 云计算是利用虚拟化技术,将数据中心的计算.存储.网络等资源整合起来,形成统一的资源池,再将这些 ...

  8. RH358访问基于块的网络存储--自动化配置iSCSI initiator

    RH358访问基于块的网络存储–自动化配置iSCSI initiator 本章节介绍如何使用Ansible连接iSCSI存储和管理. RH358专栏地址:https://blog.csdn.net/q ...

  9. BigData之MongoDB:MongoDB基于分布式文件存储数据库的简介、下载、案例应用之详细攻略

    BigData之MongoDB:MongoDB基于分布式文件存储数据库的简介.下载.案例应用之详细攻略 目录 MongoDB的简介 1.MongoDB的主要功能特性 2.对MongoDB进行增删改查( ...

最新文章

  1. pandas常用函数说明及速查表
  2. 从简历筛选看怎么写一篇有亮点的简历
  3. 合并报表编制采用的理论_合并报表是否恢复子公司盈余公积
  4. python调用kafka拉取数据失败_无法使用kafkapython从另一个容器向Kafka容器发出请求...
  5. Django从理论到实战(part23)--模板继承
  6. 安川变频器跳os_变频器常见故障代码及处理实例(经典,建议收藏)
  7. 【重点】LeetCode 135. Candy
  8. 【物联网智能网关-16】成功移植SQLite(STM32 .NET MF平台)
  9. win10系统安装jdk8全过程
  10. 铁道交通运营管理专业对计算机要求高吗,铁道交通运营管理就业前景怎么样
  11. 用纯CSS3的animation制作雪花飘落、星星闪烁、按钮缩放、图片倾斜
  12. IDEA 中如何完成 Git 版本回退?
  13. Tensorflow(八) —— Tensor的合并与切割
  14. Quectel EC20 R2.1 AT指令集(基础部分)
  15. Android怎么查看手机中的本地数据库
  16. Flutter-使用http请求数据并展示
  17. 华为P50用鸿蒙系统吗,华为P50Pro+采用鸿蒙系统么-搭载鸿蒙OS么
  18. 厚屁股的 240Hz 次旗舰 — ROG 枪神 3 评测
  19. 论文阅读:DeepDDG:使用神经网络预测蛋白质点突变的稳定性变化
  20. Python采集网站ip代理, 检测IP代理是否可用,构建自己的ip代理池

热门文章

  1. JAVA相关基础知识(一)
  2. Docker安装和helloworld
  3. Windows核心编程 第十七章 -内存映射文件(下)
  4. 【BLE MIDI】MIDI 文件格式分析 ( FF 03 轨道名称 | FF 51 03 四分音符时长 )
  5. 【错误记录】PyCharm 运行 Python 程序报错 ( SyntaxError: Non-ASCII character ‘\xe5‘ in file x.py on line 1, but )
  6. 【Android FFMPEG 开发】Android 中使用 FFMPEG 对 MP3 文件进行混音操作
  7. MyBatis基本运行环境
  8. 怎么寻回执行页内操作时的错误磁盘的数据
  9. RabbitMQ 3.6 安装
  10. UVA-10054 The Necklace (欧拉回路)