zoukankan      html  css  js  c++  java
  • Target实现(IP SAN)

    先说明下,不建议在生产环境使用,写这个只是为了理解ISCSI以及Multipath* I/O 的工作方式;这次测试的操作系统是CENTOS6 ;没别的了懒得装 就先用这个,7系列可能包的名字有些不同, 根据情况百度吧!

    mark

    iSCSI目标创建

    iSCSI目标可以是网络中的专用物理设备,也可以是网络存储服务器上的iSCSI软件配置的逻辑设备。目标是SCSI总线通信的终点。由发起者访问的目标上的存储由LUN定义。

    创建iSCSI目标

    1. 安装 scsi-target-utils.

      yum install scsi-target-utils
      
    2. 打开iptables3260端口

      iptables -I INPUT -p tcp -m tcp --dport 3260 -j ACCEPT
      service iptables save
      
    3. 启动并启用target服务

      service tgtd start
      chkconfig tgtd on
      
    4. 为LUN分配存储空间。

      fdisk /dev/sdb
      Welcome to fdisk (util-linux 2.23.2).
      
      Changes will remain in memory only, until you decide to write them.
      Be careful before using the write command.
      
      Device does not contain a recognized partition table
      Building a new DOS disklabel with disk identifier 0x43eb8efd.
      
      Command (m for help): n
      Partition type:
         p   primary (0 primary, 0 extended, 4 free)
         e   extended
      Select (default p): *Enter*
      Using default response p
      Partition number (1-4, default 1): *Enter*
      First sector (2048-2097151, default 2048): *Enter*
      Using default value 2048
      Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +250M
      Partition 1 of type Linux and of size 250 MiB is set
      
      Command (m for help): w
      The partition table has been altered!
      
      Calling ioctl() to re-read partition table.
      Syncing disks.
      
    5. 编辑/etc/tgt/targets.conf创建目标容器

    cat /etc/tgt/targets.conf
    ...
    default-driver iscsi
    <target iqn.2015-06.com.example.test:target1>
    	backing-store /dev/sdb1
    	initiator-address 192.168.10.1
    </target>
    

    创建一个backing-store sdb1,允许192.168.10.1启动target,

    iqn命名规则:

    iqn.*YYYY*-*MM*.*reverse.domain.name*:*OptionalIdentifier*.

    1. 重启target服务.

      service tgtd restart
      Stopping SCSI target daemon:     [ OK ]
      Starting SCSI target daemon:     [ OK ]
      
    2. 查看配置.

      tgt-admin --show
      Target 1: iqn.2015.06.com.example.test: server
      	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: 2147 MB, Block size: 512
      			Online: Yes
      			Removable media: No
      			Prevent removal: No
      			Readonly: No
      			Backing store type: rdwr
      			Backing store path: /dev/sdb1
      			Backing store flags:
      	Account information:
      	ACL information:
      		10.10.1.1
      

    创建 iSCSI Initiator

    iSCSI启动器是希望访问目标或服务器上的存储的客户端。该过程需要知道目标的IP地址。

    创建 iSCSI Initiator

    1. 安装 iscsi-initiator-utils.

      yum install iscsi-initiator-utils
      
    2. 发现 target.使用target端ip.

      iscsiadm -m discovery -t sendtargets -p 192.168.1.2
      Starting iscsid:     [ OK ]
      192.168.1.2:3260,1 iqn.2015-06.com.example.test:target1
      

      显示了target端的iqn,login时需要此项.

    3. 连接到 target.

      iscsiadm -m node -T iqn.2015-06.com.example:target1 --login
      Logging in to [iface: default, target: iqn.2015-06.com.example:target1, portal: 192.168.1.2,3260] (multiple)
      Login in to [iface: default, target: iqn.2015-06.com.example:target1, portal: 192.168.1.2,3260] successful.
      
    4. 显示ISCSI磁盘名称.

      grep "Attached SCSI" /var/log/messages
      Jun 19 01:30:26 test kernel: sd 7:0:0:1 [sdb] Attached SCSI disk
      
    5. 创建个lvm玩.

      pvcreate /dev/sdb && vgcreate test /dev/sdb && lvcreate -n newtest -l 100%FREE test
      
    6. 挂载.

      mkdir /mnt/iscsiTest
      mount /dev/mapper/test-newtest /mnt/iscsiTest
      
    7. Make it persistent across reboots by editing the /etc/fstab file.

      blkid /dev/mapper/test-newtest
      /dev/sdb: UUID="b01cd289-0f48-4e7c-bf4b-3b822f0a4332" TYPE="ext4"
      vim /etc/fstab
      UUID=b01cd289-0f48-4e7c-bf4b-3b822f0a4332	/mnt/iscsiTest	ext4	_netdev	0 0
      

    命令手册

    名称

    iscsiadm - open-iscsi管理实用程序

    概要

    SYNOPSIS
           iscsiadm -m discovery [ -hV ] [ -d debug_level ] [ -P printlevel ] [ -I
           iface -t type -p ip:port [ -l ] ] | [ -o operation ] [ -n name ]  [  -v
           value ]
    
           iscsiadm  -m  node  [  -hV  ] [ -d debug_level ] [ -P printlevel ] [ -L
           all,manual,automatic ] [ -U all,manual,automatic  ]  [  -S  ]  [  [  -T
           targetname  -p  ip:port  -I  iface  ]  [  -l  |  -u | -R | -s] ] [ [ -o
           operation ]  [ -n name ] [ -v value ] [ -p ip:port ] ]
    
           iscsiadm -m session [ -hV ] [ -d debug_level ] [ -P printlevel ]  [  -r
           sessionid | sysfsdir [ -R ] [ -u | -s ] ]
    
           iscsiadm  -m  iface  [  -hV ] [ -d debug_level ] [ -P printlevel ] [ -I
           ifacename ] [ [ -o  operation  ] [ -n name ] [ -v value ] ]
    
           iscsiadm -m fw [-l]
    
           iscsiadm -m host [ -P printlevel ] [ -H hostno ]
    
           iscsiadm -k priority
    
    

    描述

           iscsiadm实用程序是一个允许发现的命令行工具
           登录到iSCSI目标,以及访问和管理开放源码,
           iscsi数据库。
    
           Open-iscsi不使用iSCSI RFC定义的术语节点,
           节点是单个iSCSI启动器或目标。Open-iscsi使用
           术语节点指向目标上的门户。
    
           对于会话模式,使用会话ID(sid)。一个会话的sid可以
           通过运行iscsiadm -m session -P找到。会话ID和sysfs
           路径目前不持续,部分由时间决定
           会话设置。
    
           请注意,许多节点和发现操作都要求
           iSCSI守护进程(iscsid)正在运行。
    
    

    OPTIONS

           -d,-- debug = debug_level
                  打印调试信息。debug_level的有效值为0
                  到8。
    
           -h,-- help
                  显示帮助文本并退出
    
           -I, - 接口[iface]
                  interface参数指定要用于的iSCSI接口
                  操作。iSCSI接口(iface)定义在
                  的/ etc /的iSCSI / ifaces。对于硬件iSCSI(qla4xxx),iface配置
                  必须具有硬件地址(iface.hwaddress = port的MAC
                  地址)和driver / transport_name(iface.transport_name)。
                  iface的名字是iface配置的文件名。对于
                  软件iSCSI,iface配置必须具有硬件
                  地址(iface.hwaddress)或网络层的接口名称
                  (iface.net_ifacename),它必须具有
                  驱动器/ TRANSPORT_NAME
    
                  可用的驱动程序/ iscsi_transports是tcp(软件iSCSI
                  通过TCP / IP),iser(软件iSCSI over infinniband)或qla4xxx
                  (Qlogic 4XXXX HBA)。hwaddress是MAC地址或for
                  软件iSCSI可能是特殊值“默认”
                  指示启动器不将会话绑定到特定的会话
                  硬件资源,而是允许网络或infinniband
                  层决定做什么。没有必要创建一个iface
                  配置默认行为。如果不指定iface,
                  那么使用默认行为。
    
                  如上所述,有一个特殊的iface名称是默认的。那里
                  是三个其他 -  cxgb3i,bnx2i和iser,它不绑定
                  会话到一个特定的卡,但会绑定会话
                  cxgb3i,bnx2i或iser传输。这些是实验和
                  不支持使用稳定的界面。
    
                  在发现模式下,多个接口可以通过传递
                  在多个I /  - 接口实例中。例如,
    
                  “iscsiadm -m discovery -t st -p mytarget -I iface0 -I iface2”
    
                  将直接使用iscsiadm设置节点数据库以创建记录
                  这将通过传入的两个内容创建会话。
    
                  在节点模式下,每个呼叫中只支持单个接口
                  到iscsiadm。
    
                  此选项对发现,节点和iface模式有效。
    
           -k,-- killiscsid = [priority]
                  当前优先级必须为零。这将立即停止
                  iscsid操作和关闭iscsid。它不注销任何
                  会话。运行此命令与执行“killall”相同
                  iscsid“,通常不能使用,因为如果iscsid
                  正在进行错误恢复,或者iscsid是否存在错误
                  没有运行,系统可能无法恢复。这个
                  命令和iscsid的SIGTERM处理是实验性的。
    
           -l,-- login
                  对于节点和fw模式,登录到指定的记录。发现
                  模式,登录到所有发现的目标。
    
                  此选项仅对发现和节点模式有效。
    
           -L,-- loginall == [all | manual | automatic]
                  对于节点模式,使用节点或连接启动登录所有会话
                  值得传入或全部运行,除了标记
                  onboot,如果全部被传入。
    
                  此选项仅对节点模式有效(它是有效的但不是
                  功能用于会话模式)。
    
           -m, -mode  op 
                  指定模式。  op必须是发现,节点,fw,主机
                  iface或会话之一。
    
                  如果没有指定其他选项:对于发现和   节点,全部显示各自的记录; 
                  为会议,所有显示活动会话和连接; 
                  对于fw,所有启动显示固件值; 
                  对于主机,所有iSCSI主机都是
                  显示; 对于iface,所有的ifaces都设置在/ etc / iscsi / ifaces中
                  被显示。
    
           -n,-- name = name   在记录中
                  指定字段   名称。用于更新
                  运营商。
    
           -o,-- op = op 
                  指定数据库操作符op。op必须是新的,删除,
                   更新或显示之一。
    
                  此选项对于除fw以外的所有模式均有效。删除不应该
                  用于运行会话。如果iscsiadm会停止
                  会话,然后删除记录。
    
                  new为给定的门户(IP地址)创建一个新的数据库记录
                  和端口号)。在发现模式下,iscsiadm将创建新的
                  目标返回的门户的记录。
    
                  删除删除指定的recid。在发现节点中,如果是iscsiadm
                  正在执行发现,它将删除门户的记录
                  不再退回。
    
                  更新   将使用名称将recid更新为指定的值。
                  在发现节点中,如果iscsiadm正在执行发现
                  不需要recid,   name    和   value   参数。更新
                  操作将对目标返回的门户进行操作,
                  并将使用配置文件中的info更新节点记录
                  和命令行。
    
                  show是node,discovery和iface的默认行为
                  模式。当没有传入命令时也会使用它
                  会话模式和一个运行的sid被传入。   名称和值是
                  当与show一起使用时,被忽略。
    
           -p,-- portal = ip [:port] 
                  使用ip-address ip和port的目标端口,默认端口
                  值为3260。
    
                  此选项仅对发现或节点操作有效
                  与新的操作员。
    
                  这应该与节点模式下的--target一起使用,以指定
                  open-iscsi文档被称为节点或节点记录。
                  注意:open-iscsi使用单词节点,不匹配
                  iSCSI RFC的iSCSI节点术语。
    
           -P,--   print = printlevel
                  如果在节点模式下以树形式打印节点。如果在会话模式
                  以树形式打印会话。如果在发现模式下打印
                  节点树形式。
    
           -T,--targetname = TARGETNAME 
                  使用目标 TARGETNAME。
    
                  这应该与节点模式中的--portal一起使用来指定
                  open-iscsi文档被称为节点或节点记录。
                  注意:open-iscsi使用单词节点,不匹配
                  iSCSI RFC的iSCSI节点术语。
    
           -r,   -- sid  = sid |  sysfsdir 
                  使用会话ID   sid。会话的sid可以从中找到
                  在会话模式下运行iscsiadm和--info参数。
    
                  可以使用包含会话的sysfs路径,而不是sid。
                  例如使用以下之一:
                  /sys/devices/platform/hostH/sessionS/targetH:B:I/H:B:I:L,
                  /sys/devices/platform/hostH/sessionS/targetH:B:I, or
                  /sys/devices/platform/hostH/sessionS,
    
                  sid  |  sysfsdir 仅用于会话模式。
    
           -R,--   rescan
                  在会话模式下,如果sid也通过重新扫描会话。如果
                  没有通过重新扫描所有正在运行的会话。
    
                  在节点模式下,重新扫描通过目标运行的会话,
                  门户,iface元组传入。
    
           -s,-- stats
                  显示会话统计信息
    
           -S,--show
                  显示记录时,不要隐藏屏蔽值,例如
                  CHAP密码(密码)。
    
                  此选项仅对节点和会话模式有效。
    
           -t,-- type = type 
                  类型必须是sendtargets(或缩写为st),   slp,   isns   或
                   fw。目前只支持sendtargets,fw和iSNS,请参阅
                  DISCOVERY TYPES部分。
    
                  此选项仅对发现模式有效。
    
           -u,-- logout
                  注销指定的记录。
    
                  此选项仅对节点和会话模式有效。
    
           -U,-- logoutall == [全部,手动,自动]
                  注销所有会话与节点或conn启动值传递
                  在或所有运行的sesssion,除了标记在启动,如果一切都是
                  传入
    
                  此选项仅对节点模式有效(它是有效的但不是
                  功能用于会话模式)。
    
           -v,-- value = value 
                  指定与更新运算符一起使用的值。
    
                  此选项仅对节点模式有效。
    
           -V,-- version
                  显示版本并退出
    
    

    发现 类型

           iSCSI定义了3种发现类型:SendTargets,SLP和iSNS。
    
           发送目标
                  一种本地iSCSI协议,允许每个iSCSI目标发送一个
                  启动器的可用目标列表。
    
           SLP(     可选)iSCSI目标可以使用服务定位协议
                  (SLP)宣布可用的目标。发起者可以
                  可以直接实现SLP查询,也可以使用单独的工具
                  获取有关可用目标的信息。
    
           iSNS    iSNS(Internet存储名称服务)记录有关信息
                  较大网络中的存储卷。利用iSNS,
                  使用iSNS服务器的地址必须在iscsid.conf中设置
                  “isns.address”值,iscsiadm必须在发现模式下运行
                  与“isns”发现类型。
    
                  open-iscsi中的iSNS支持是实验性的。iscsid.conf
                  设置,iscsiadm语法和节点DB布局可能会改变。
    
           fw      几个NIC和系统包含一个迷你iSCSI启动器
                  可用于启动。获取用于启动fw的值
                  选项可以使用。做fw发现,不存储
                  持久记录在节点或发现DB中,因为
                  值存储在系统或NIC的资源中。
    
                  执行fw发现将打印门户,像其他
                  发现方法。查看其他设置,如CHAP值和
                  启动器设置,就像在节点模式下一样,运行“iscsiadm”
                  -m fw“。
    
                  open-iscsi中的fw支持是实验性的。设置和
                  iscsiadm语法和输出格式可能会改变。
    
           iscsiadm支持iSNS  (isns)或SendTargets  (st)   发现类型。
           SLP实施正在开发中。
    
    

    例子

           发现给定IP地址的目标:
    
                iscsiadm  - 模式发现--type sendtargets --portal 192.168.1.10
    
           登录,必须使用发现找到的节点记录ID:
    
                iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --login
    
           登出:
    
                iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260 --logout
    
           列表节点记录:
    
                iscsiadm  --mode node
    
           显示给定节点记录的所有数据:
    
                iscsiadm --mode node --targetname iqn.2001-05.com.doe:test --portal 192.168.1.1:3260
    

    FILES

    /etc/iscsi/iscsid.conf
    启动时由iscsid和iscsiadm读取的配置文件。
    /etc/iscsi/initiatorname.iscsi
    启动时由iscsid和iscsiadm读取的包含iSCSI InitiatorName和InitiatorAlias的文件。
    /var/lib/iscsi/nodes/
    此目录包含具有目标的节点。
    /var/lib/iscsi/send_targets
    此目录包含门户。
    
  • 相关阅读:
    Android 自定义View修炼-Android 实现自定义的卫星式菜单(弧形菜单)View
    Android中SurfaceView的使用详解
    Android 自定义View修炼-【2014年最后的分享啦】Android实现自定义刮刮卡效果View
    Android 自定义View修炼-实现自定义圆形、圆角和椭圆ImageView(使用Xfermode图形渲染方法)
    Android 自定义View修炼-Android实现圆形、圆角和椭圆自定义图片View(使用BitmapShader图形渲染方法)
    框架 Spring Boot 技术入门到整合 8-1 Springboot整合Mybatis-使用generatorConfig生成mapper以及pojo
    框架 Spring Boot 技术入门到整合 7-3 Springboot配置全局的异常捕获 -同时兼容web和ajax
    框架 Spring Boot 技术入门到整合 7-2 Springboot配置全局的异常捕获 -ajax形式
    框架 Spring Boot 技术入门到整合 7-1 Springboot配置全局的异常捕获 -web页面跳转
    框架 Spring Boot 技术入门到整合 6-3 thymeleaf 常用标签的使用方法
  • 原文地址:https://www.cnblogs.com/xth0331/p/9655584.html
Copyright © 2011-2022 走看看