组网环境

+----------+---------------+---------------+
| 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. shell终极操作

    1.安装zsh Mac : 直接看下一节 Redhat/centos :sudo yum install zsh Ubuntu :sudo apt-get install zsh 2.安装oh my ...

  2. Angular(1)

    1.设计原则 1.YAGNI  不要把未来需求引入当前工程   2.KISS  keep it simple and stupid  语义化标记 合理注释 符合规定的命名 3.DRY(don't re ...

  3. 将插入的新行放入dataGridView的第一行

    将插入的新行放入dataGridView的第一行 习惯这样用的: dataGridView1.Rows.Add(dataRow);改成:dataGridView1.Rows.Insert(0,data ...

  4. Dapper ORM 用法—Net下无敌的ORM

    假如你喜欢原生的Sql语句,又喜欢ORM的简单,那你一定会喜欢上Dapper这款ROM.点击下载Dapper的优势:1,Dapper是一个轻型的ORM类.代码就一个SqlMapper.cs文件,编译后 ...

  5. XE6移动开发环境搭建之IOS篇(6):设置Mac OSX的网络。(有图有真相)

    网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 我们配置一下MAC的 ...

  6. (Forward) Music Player: From UI Proposal to Code

    Some developers have difficult to code when the UI proposal is a bit “sophisticated” or “complex”. M ...

  7. 精妙SQL语句

    asc 按升序排列desc 按降序排列 下列语句部分是Mssql语句,不可以在access中使用.SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据 ...

  8. Python TCP服务器

    TCP服务器的创建也比较简单: 1.建立一个socket对象 2.绑定要监听的IP地址和端口 3.当有客户端请求时,启动多线程处理客户端连接 import socket import threadin ...

  9. set QUOTED_IDENTIFIER ON事故记录

    作业执行失败: 看了一下执行脚本 delete  top(8000) from "interface"."完成" where  loggid in( selec ...

  10. .net中自定义过滤器对Response内容进行处理

    原文:http://www.cnblogs.com/zgqys1980/archive/2008/09/02/1281895.html 代码DEMO:http://files.cnblogs.com/ ...