Linux target framework(tgt)是为创建、维护SCSI target 驱动(包括iSCSI、FC、SRP等)提供支持。它的关键目标是简洁地集成到scsi-mid层,并且实现大部分应用层空间的tgt(The key goals are the clean integration into the scsi-mid layer and implementing a great portion of tgt in user space)。

IET(iSCSI Enterprise Target )的开发者帮助开发了Linux SCSI target framework(stgt),

The developer of IET is also helping to develop Linux SCSI target framework (stgt) which looks like it might lead to an iSCSI target implementation with an upstream kernel component.

iSCSI Target可以用来:

a]用来安装stateless server/client (用于无盘安装)

b]通过局域网、无线网络或者因特网共享磁盘或者磁带设备

c]安装SAN——存储阵列

d]通过Linux下的分布式文件系统实现负载均衡的web服务器集群

在这个教程中,将要学到如何通过tgt框架构建一个全功能的Linux iSCSI SAN。

iSCSI target(server)

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

iSCSI initiator(client)

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

CentOS / RHEL / fedora 安装tgt

$yum install scsi-target-utils

Debian / Ubuntu Linux 安装tgt

$ sudo apt-get install tgt


tgtadm——Linux SCSI Target管理工具

tgtadm是用来监控、修改Linux SCSI target 的工具,包括target设置、卷设置,等等。这个工具允许提供为装有SCSI initiator的其它操作系统提供块级(block-level)的SCSI存储。这个功能最初被部署为Linux iSCSI target,通过网络向装有iSCSI initiator的系统提供存储服务。


启动tgtd

启动tgtd程序,可以输入:

$/usr/sbin/tgtd

RHEL / CentOS 系统下可以启动tgtd的服务程序,输入:

$/etc/init.d/tgtd start


定义iSCSI target名

以下的例子中,创建了一个id为1的target,它的iqn为:iqn.2001-04.com.example:storage.disk2.amiens.sys1.xyz,并且添加了一个lun( logical unit)号为1的逻辑单元(由/dev/hdc1提供)

$ tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2001-04.com.example:storage.disk2.amiens.sys1.xyz

iqn号是局域网内iSCSI target的唯一标识,用来区分不同的target,所以在一个网络内,iqn号一定不能相同

要显示当前的iqn号,输入:

$ tgtadm --lld iscsi --op show --mode target

通常输出如下:

Target 1: iqn.2001-04.com.example:storage.disk2.amiens.sys1.xyz
    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
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: None
    Account information:
    ACL information:

为target增加一个lun(/dev/sdb1)

tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1


对于家用电脑或测试系统的注意事项:

大部分产品只是通过真正的iSCSI设备使用iSCSI root。但是对于测试目的,这将很有变得很有用,比如在你的图片服务器上安装一个iSCSI target。这样,简单的使用文件系系统,在家中就可以测试、学习iSCSI target、initiator。使用dd 命令创建一个磁盘文件系统:

# dd if=/dev/zero of=/fs.iscsi.disk bs=1M count=512

创建了一个512M大小的文件/fs.iscsi.disk

把/fs.iscsi.disk当做一个lun加入到target中:

# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /fs.iscsi.disk

再查看lun信息:

# tgtadm --lld iscsi --op show --mode target

可以看到如下结果:

Target 1: iqn.2001-04.com.example:storage.disk2.amiens.sys1.xyz
    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
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: None
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 537 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: /fs.iscsi.disk
    Account information:
    ACL information:

接受iSCSI initiator的访问:

要使target接受initiator的访问,需要输入:

# tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL

这样将打开了3260端口

#netstat -tulpn | grep 3260

结果如下:

t c p        0      0 0.0.0.0:3260            0.0.0.0:*               LISTEN      27328/tgtd tcp6       0      0 :::3260                 :::*                    LISTEN      27328/tgtd        

当你做完这些操作,你的系统就被设置成一个iSCSI Target了。远程的客户端计算机就可以通过网络访问这台计算机上的硬盘了。你可以使用分布式的集群文件系统来安装真正的共享存储。如果需要的话,打开防火墙上的3260端口。

转:Linux下应用tgtadm构建iSCSI Target(SAN)相关推荐

  1. linux下通过mount挂载iscsi、ntfs、nfs详解

    通常服务器本机自带磁盘空间有限,都需要额外加载磁盘,可以采用mount方式把远程的共享存储磁盘加载进来,目前用过的有iscsi.ntfs.nfs三种类型 一,mount挂载iscsi类型 1,查找下准 ...

  2. 在 linux 下使用 CMake 构建应用程序

    CMake 简介 CMake 是一个跨平台的自动化建构系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或Windo ...

  3. linux openh264 编译,在Linux下为Android构建openh264

    我正在尝试构建openh264以在android上使用 -我有来自git的最新openh264源码 -我已经ndk 17 -我正在使用Ubuntu 16.04 跑步 make OS=android N ...

  4. linux 下项目自动化构建工具makefile详解

    什么是makefile 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚 ...

  5. linux下使用cmake构建C/C++项目

    cmake下载安装: 下载地址: http://www.cmake.org/cmake/resources/software.html wget http://www.cmake.org/files/ ...

  6. linux下phylip软件构建NJ树,进化树构建-NJ法lpar;megarpar;

    进化树构建-NJ法 V1.2 By ZHAO Yangguo, email: sunshine.zhao@yahoo.com.cn 通过长期的分析认为对于16S rDNA序列的进化(Phyligene ...

  7. 基于Linux下搭建NextCloud构建自己的私有网盘

    NextCloud是什么 Nextcloud是一款开源免费的私有云存储网盘项目,可以让你快速便捷地搭建一套属于自己或团队的云同步网盘,从而实现跨平台跨设备文件同步.共享.版本控制.团队协作等功能.它的 ...

  8. arm linux运行qemu,Linux下使用QEMU构建ARM运行环境

    以下所有步骤都是在Ubuntu 14.04系统上进行的,全部通过验证. 本文的搭建过程都是基于vexpress A9开发板进行的,这号称是qemu模拟得最好的arm开发板. 1.下载Linux内核 方 ...

  9. 自己动手构建iSCSI磁盘阵列

    在理想情况下,无论是对于关键业务应用需求,还是对于诸如开发.测试.磁盘到磁盘备份以及灾难恢复等应用需求,当需要更多存储空间时,大家首先想到的就是去购买最新技术的企业级存储设备.但在很多现实的情况下,由 ...

最新文章

  1. python编程300例_经典编程100例——python版(例9例10)
  2. 神策数据荣膺 2017 企业创新典范、最佳青年榜样双殊荣
  3. 运维少年系列 python and cisco (1)
  4. SAP CRM产品主数据的附件信息在搜索时就已经从后台被读取了
  5. 使用Apache Tomcat Maven插件部署运行 Web 项目
  6. Web服务器与Servlet容器初步认识
  7. Go语言程序的数组初始化
  8. 《数据结构与抽象:Java语言描述(原书第4版)》一Java插曲1
  9. 转载explicit关键字
  10. GB28181协议--GB28181协议简介
  11. win10如何安装IIS
  12. HUSTOJ教程(1)——安装部署
  13. VMware虚拟机桥接模式
  14. 基于FPGA的超声波测距(verilog)
  15. 一个简单的跑酷引擎-------bibibibi
  16. 使用SaltStack Returner将Salt作业信息接入Elasticsearch的实践(踩坑)
  17. OpenSSL自建CA和颁发SSL证书
  18. css 文字发光效果
  19. html文档注释多行,css注释的写法(单行和多行)
  20. 基于Matlab的三角函数方程组解算方法

热门文章

  1. 原创全新打包工具Parcel零配置VueJS开发脚手架
  2. 确保nginx安全的10个技巧
  3. 3、顺序表、内存、类型、python中的list
  4. Linux内存(手动释放cache)
  5. ios 常用数学函数
  6. java 集合框架(一)
  7. Heritrix 3.1.0 源码解析(八)
  8. 20个将 JavaScript 用到极致的网站
  9. REST,Web 服务,REST-ful 服务
  10. typeScript面试必备之-通识七:typeScript中的可索引接口(数组,对象)+类类型接口...