组网环境

+----------+---------------+---------------+
| hostname | ip address | iscsi role |
+----------+---------------+---------------+
| cvm | 192.168.7.8 | target |
| client01 | 192.168.7.10 | initiator |
| client02 | 192.168.7.11 | initiator |
+----------+---------------+---------------+

机器cvm将本机上的/dev/sda8磁盘通过iscsi共享出去,机器client01和client02连接到共享的磁盘。

iSCSI target侧

修改tgt配置文件/etc/tgt/target.conf,将/dev/sda8共享出去。注意,target名称个格式为iqn.yyyy-mm.:identifier,即以iqn开头,后接日期和反转域名。identifier为target的标识,可以自己取,这里我们取为test-tgt。

root@cvm:~# cat /etc/tgt/targets.conf
<target iqn.2014-09.com.h3c.cvm:test-tgt>
backing-store /dev/sda8
</target>

配置文件修改完成后,重启tgt服务。tgtd默认监听3260端口。

root@cvm:~# service tgt restart        <== 重启target服务
root@cvm:~# netstat -npl | egrep 3260
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN 686/tgtd
tcp6 0 0 :::3260 :::* LISTEN 686/tgtd

查看配置文件共享出去的Lun的信息。注意,共享出去的分区/dev/sda8不能被使用,否则看不到相应的LUN

root@cvm:~# tgt-admin -s
Target 1: iqn.2014-09.com.h3c.cvm:test-tgt
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
Readonly: No
Backing store type: null
Backing store path: None
Backing store flags:
LUN: 1 <== 如果/dev/sda8被使用,那么这里不会显示LUN:1
Type: disk
SCSI ID: IET 00010001
SCSI SN: beaf11
Size: 280690 MB, Block size: 512
Online: Yes
Removable media: No
Readonly: No
Backing store type: rdwr
Backing store path: /dev/sda8
Backing store flags:
Account information:
ACL information:
ALL
root@cvm:~#

查询连接到target端的initiator节点,使用tgtadm --lld iscsi --op show --mode target命令。

iSCSI initiator侧

发现iscsi target

root@client01:~# iscsiadm -m discovery -t st -p 192.168.7.8
192.168.7.8:3260,1 iqn.2014-09.com.h3c.cvm:test-tgt

连接设备

root@client01:~# iscsiadm -m node iqn.2014-09.com.h3c.cvm:test-tgt -p 192.168.7.8 -l
Logging in to [iface: default, target: iqn.2014-09.com.h3c.cvm:test-tgt, portal: 192.168.7.8,3260] (multiple)
Login to [iface: default, target: iqn.2014-09.com.h3c.cvm:test-tgt, portal: 192.168.7.8,3260] successful.

查询挂接到本地的iscsi磁盘,因为本地已经有一块iscsi磁盘sda了,所以新的磁盘名字为sdb。

root@client01:~# ls -l /dev/disk/by-path/
lrwxrwxrwx 1 root root 9 Sep 18 04:15 ip-192.168.7.8:3260-iscsi-iqn.2014-09.com.h3c.cvm:test-tgt-lun-1 -> ../../sdb

查看iscsi连接状态

root@client01:~# iscsiadm -m node -S
192.168.7.8:3260,1 iqn.2014-09.com.h3c.cvm:test-tgt

卸载设备

root@client01:~# iscsiadm -m node -T iqn.2014-09.com.h3c.cvm:test-tgt -u
Logging out of session [sid: 3, target: iqn.2014-09.com.h3c.cvm:test-tgt, portal: 192.168.7.8,3260]
Logout of [sid: 3, target: iqn.2014-09.com.h3c.cvm:test-tgt, portal: 192.168.7.8,3260] successful.

initiator 权限

修改tgt的配置文件,可以指定能够连接到target的initiator。如下,只允许192.168.7.11的initiator节点连接到target。

root@cvm:~# cat /etc/tgt/targets.conf
<target iqn.2014-09.com.h3c.cvm:test-tgt>
backing-store /dev/sda8
initiator-address 192.168.7.11 <== 只准许7.11的节点连接到target
</target>

分别在client01和client02上连接target,只有client02可以连接到target。

root@client01:~# iscsiadm -m discovery -t st -p 192.168.7.8
iscsiadm: No portals found root@client02:~# iscsiadm -m discovery -t st -p 192.168.7.8
192.168.7.8:3260,1 iqn.2014-09.com.h3c.cvm:test-tgt

如果要使client01和client02都可以连接到target,那么只需要修改配置文件的initiator-address为192.168.0.0/16即可。

其它

1、tgt的日志信息位于/var/log/syslog文件

2、查看initiator的名字。名字记录在/etc/iscsi/initiatorname.iscsi文件中

参考资料

1、网络驱动器装置: iSCSI 服务器

2、ISCSI学习文档

iscsi: 环境搭建的更多相关文章

  1. JAVA web环境搭建(使用Tomcat8整合httpd)

    说明:这里是Linux服务综合搭建文章的一部分,本文可以作为单独搭建Tomcat并整合httpd的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭建综合)的顺序来做的. 如果需要查 ...

  2. .NET Core系列 : 1、.NET Core 环境搭建和命令行CLI入门

    2016年6月27日.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布,社区里涌现了很多文章,我也计划写个系列文章,原因是.NET Core的入门门槛相当高, ...

  3. Azure Service Fabric 开发环境搭建

    微服务体系结构是一种将服务器应用程序构建为一组小型服务的方法,每个服务都按自己的进程运行,并通过 HTTP 和 WebSocket 等协议相互通信.每个微服务都在特定的界定上下文(每服务)中实现特定的 ...

  4. rnandroid环境搭建

    react-native 环境搭建具体步骤这个大家已经玩烂了,这个主要是记录下来自己做win7系统遇到的坑 1.com.android.ddmlib.installexception 遇到这个问题,在 ...

  5. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  6. springMVC初探--环境搭建和第一个HelloWorld简单项目

    注:此篇为学习springMVC时,做的笔记整理. MVC框架要做哪些事情? a,将url映射到java类,或者java类的方法上 b,封装用户提交的数据 c,处理请求->调用相关的业务处理—& ...

  7. 【定有惊喜】android程序员如何做自己的API接口?php与android的良好交互(附环境搭建),让前端数据动起来~

    一.写在前面 web开发有前端和后端之分,其实android还是有前端和后端之分.android开发就相当于手机app的前端,一般都是php+android或者jsp+android开发.androi ...

  8. Nexus(一)环境搭建

    昨天,成功搭建了自己的 Maven 环境(详见:Maven(一)环境搭建),今天就来研究和探讨下 Nexus 的搭建! 使用背景: 安装环境:Windows 10 -64位 JDK版本:1.7 Mav ...

  9. 「译」JUnit 5 系列:环境搭建

    原文地址:http://blog.codefx.org/libraries/junit-5-setup/ 原文日期:15, Feb, 2016 译文首发:Linesh 的博客:环境搭建 我的 Gith ...

随机推荐

  1. 转:Tomcat启动过程中找不到JAVA_HOME JRE_HOME的解决方法

    转自:http://blog.sina.com.cn/s/blog_61c006ea0100l1u6.html 原文: 在XP上明明已经安装了JDK1.5并设置好了JAVA_HOME,可偏偏Tomca ...

  2. 【knowledgebase】如何知道partition数

    对于调优和排错来说,查看一个RDD有多少个partition是非常有用的.常用的查看方法有如下几种: 1.通过SparkUI查看Task执行的partition数 当一个stage执行时,能通过Spa ...

  3. mac java目录

    /Library/Java/JavaVirtualMachines/jdk1.7.0_10.jdk/Contents/Home mac java的安装目录为 /Library/Java/JavaVir ...

  4. AngularJs 入门系列-2 表单验证

    对于日常的开发来说,最常见的开发场景就是通过表单编辑数据,这里涉及的问题就是验证问题. angularjs 内置已经支持了常见的验证方式,可以轻松实现表单验证. 1. 绑定 为了方便,我们在 $sco ...

  5. VMware 中windows server 之DHCP 搭建与测试

    感悟: 由于打算将windows server 的服务器搭建维护从头重新学习总结一下,遇到搭建dhcp服务的时候,在虚拟机中一直测试不成功,耽误我好几星期了,一点也不夸张,心情和积极性也大大受到打击. ...

  6. <读书笔记>软件调试之道 :实证方法

    有效调试不仅仅是排除缺陷,其包含如下几个步骤 弄明白软件为何运行错误 修复这个问题 避免破坏其它部分 保持或者提高代码的总体质量 确保同样的问题不在其它地方发生,也不会再次发生 构建实验.观察结果 依 ...

  7. CentOS 6.5下搭建LAMP环境详细步骤

    1.确认搭建LAMP所需的环境是否已经安装: [root@localhost ~]#rpm -q make gcc gcc-c++ zlib-devel libtool libtool-ltdl li ...

  8. TJI读书笔记11-多态

    TJI读书笔记11-多态 再说说向上转型 多态的原理 构造器和多态 协变返回类型 使用继承进行设计 多态是数据抽象和继承之后的第三种基本特征. 一句话说,多态分离了做什么和怎么做(再次对埃大爷佩服的五 ...

  9. I/O阻塞非阻塞,同步异步

    http://www.cnblogs.com/luotianshuai/p/5098408.html "阻塞"与"非阻塞"与"同步"与&qu ...

  10. Vc++ 控件用法总结之List Control

    1.新建对话框MFC,在对话框上放一个ListCtrl ID:IDC_PATH View:Report 2.为ListCtrl添加变量 右击->添加变量m_wndPath 3.找到OnInitD ...