zoukankan      html  css  js  c++  java
  • 网络存储(三)之ISCSI搭建的入门

    搭建iscsi

    我们就拿两台linux服务器来做吧,
    服务器系统均为CentOs6.6 64位的,信息如下

    IP 安装的软件
    192.168.22.142 iscsi target端:scsi-target-utils.x86_64
    192.168.160.191 iscsi客户端:iscsi-initiator-utils
    在172.16.22.142安装iscsi-target

    采用yum安装

    [root@salt ~]# yum -y install scsi-target-utils
    [root@salt ~]# rpm -ql  scsi-target-utils
    /etc/rc.d/init.d/tgtd      #启动脚本
    /etc/sysconfig/tgtd
    /etc/tgt/targets.conf        #配置文件
    /usr/sbin/tgt-admin
    /usr/sbin/tgt-setup-lun
    /usr/sbin/tgtadm
    /usr/sbin/tgtd
    /usr/sbin/tgtimg
    /usr/share/doc/scsi-target-utils-1.0.24
    /usr/share/doc/scsi-target-utils-1.0.24/README
    /usr/share/doc/scsi-target-utils-1.0.24/README.iscsi
    /usr/share/doc/scsi-target-utils-1.0.24/README.iser
    /usr/share/doc/scsi-target-utils-1.0.24/README.lu_configuration
    /usr/share/doc/scsi-target-utils-1.0.24/README.mmc
    /usr/share/man/man5/targets.conf.5.gz
    /usr/share/man/man8/tgt-admin.8.gz
    /usr/share/man/man8/tgt-setup-lun.8.gz
    /usr/share/man/man8/tgtadm.8.gz
    

    编辑配置文件,置iscsi。

    [root@salt ~]# vim /etc/tgt/targets.conf 
    '''
    <target iqn.2016-11.com.ljf:server.target1>
         backing-store /dev/sdb     #/dev/sdb 新硬盘,没有格式化和创建文件系统的
    </target>
    '''
    

    参数解释:
    iqn.2016-11.com.ljf:server.target1
    notice: :server这里的是为了不让有道markdown自动生成表情

    target 后面跟着的名称(也就是iqn.2016-11.com.ljf:server.target1)在同一子网内应该是唯一的。标准命名方式是:
    iqn.yyyy-mm.[:identifier]
    参数含义如下:

    • iqn iscsi Qualified name
    • YYYY-MM 表示“年份-月份”
    • reversed domain name 表示倒过来的域名
    • identified 表示识别代码。

    backing-store /dev/sdb

    关于backing-store,这里先解释下共享的两种store,

    • backing-store : 任何Initiator可以访问
    • direct-store:可以设定acl进行限制哪些Initiator访问

    /dev/sdb 表示把/dev/sdb/作为iscsi盘共享出去。

    启动服务

    确定配置没有问题后,启动

    [root@salt ~]# service  tgtd start
    Starting SCSI target daemon:                               [  OK  ]
    [root@salt ~]# service  tgtd status
    tgtd (pid 4839 4837) is running...
    [root@salt ~]# netstat -lnpt   |grep tgtd
    tcp        0      0 0.0.0.0:3260                0.0.0.0:*                   LISTEN      4837/tgtd  
    
    在172.16.160.191安装iscsi-initiator-utils

    命令如下

    [root@localhost ~]# yum -y install iscsi-initiator-utils
    [root@localhost ~]# rpm -ql iscsi-initiator-utils
    /etc/NetworkManager
    /etc/NetworkManager/dispatcher.d
    /etc/NetworkManager/dispatcher.d/04-iscsi
    /etc/iscsi
    /etc/iscsi/iscsid.conf
    /etc/logrotate.d/iscsiuiolog
    /etc/rc.d/init.d/iscsi
    /etc/rc.d/init.d/iscsid
    /sbin/brcm_iscsiuio
    /sbin/iscsi-iname
    /sbin/iscsiadm
    /sbin/iscsid
    /sbin/iscsistart
    /sbin/iscsiuio
    /usr/lib64/libiscsi.so.0
    /usr/lib64/python2.6/site-packages/libiscsimodule.so
    /usr/share/doc/iscsi-initiator-utils-6.2.0.873
    /usr/share/doc/iscsi-initiator-utils-6.2.0.873/README
    /usr/share/man/man8/iscsi-iname.8.gz
    /usr/share/man/man8/iscsiadm.8.gz
    /usr/share/man/man8/iscsid.8.gz
    /usr/share/man/man8/iscsistart.8.gz
    /usr/share/man/man8/iscsiuio.8.gz
    /var/lib/iscsi
    /var/lib/iscsi/ifaces
    /var/lib/iscsi/isns
    /var/lib/iscsi/nodes
    /var/lib/iscsi/send_targets
    /var/lib/iscsi/slp
    /var/lib/iscsi/static
    /var/lock/iscsi
    

    安装好iscsi-initiator-utils以后,我们可以使用它了,但是需要先了解下面三样:

    • iscsiadm
      此命令用来管理(更新,删除,插入,查询)iscsi配置数据库文件的命令行工具,用户能够用它对ISCSI nodes,sessions,connections 和discovery records进行以系列草走
    • /var/lib/iscsi/send_targets/
      在此目录下,会生成一个或者多个以ISCSI存储服务器的IP地址和端口号命名的文件夹,文件名“ISCSI Target ip,端口号”,例如我这里的显示的:172.16.22.142,3260
    • /var/lib/iscsi/nodes/
      在这个目录下会生成一个或者多个以ISCSI存储服务器上的Target命名的文件夹,在该文件夹下有一个文件名为“iscsi portal IP,端口号”,例如:iqn.2016-11.com.ljf:server.target1。该文件是ISCSI Initiator登陆ISCSI target使用的参数,而这些参数的设置从/etc/iscsi/iscsi.conf中的参数继承而来,可以通过一个iscsiadm命令对这个参数进行更改的。

    了解上面的以后,下面执行命令试试看

    [root@localhost ~]# iscsiadm -m discovery --type sendtargets --portal 172.16.22.142
    172.16.22.142:3260,1 iqn.2016-11.com.ljf:server.target1
    或者下面这条
    [root@localhost ~]# iscsiadm -m discovery --type sendtargets -p 172.16.22.142
    172.16.22.142:3260,1 iqn.2016-11.com.ljf:server.target1
    

    iqn.2016-11.com.ljf:server.target1 是ISCSI target的名称。由于在配置ISCSI target的时候,没有做任何限制,所以允许所有的客户端连接ISCSI target共享磁盘。
    在第一次成功执行上面的命令后,ISCSI Initiator就会将查询记录写到/var/lib/iscsi/send_targets对应的目录下。

    接下来登陆iscsi共享出来的磁盘

    [root@localhost ~]# iscsiadm -m node -T iqn.2016-11.com.ljf:server.target1 -p 172.16.22.142 -l
    

    参数解释

    • -l login,登陆
    • -T name of target
    • -p ip of HOST

    登陆后,我们通过“fdisk -l”检查下本地是否正常识别出来了,或者查看dmesg也可以看出来。

    [root@localhost ~]# fdisk -l   
    
    Disk /dev/sda: 32.2 GB, 32212254720 bytes
    255 heads, 63 sectors/track, 3916 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0003a69b
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          26      204800   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              26         157     1048576   82  Linux swap / Solaris
    Partition 2 does not end on cylinder boundary.
    /dev/sda3             157        3917    30202880   8e  Linux LVM
    
    Disk /dev/mapper/VolGroup-LogVol00: 30.9 GB, 30924603392 bytes
    255 heads, 63 sectors/track, 3759 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
    
    # 看/dev/sdb已经在本地显示了,说明挂载成功了,
    Disk /dev/sdb: 21.5 GB, 21474836480 bytes    
    64 heads, 32 sectors/track, 20480 cylinders
    Units = cylinders of 2048 * 512 = 1048576 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    

    或者通过iscsiadmin命令查看,命令如下:

    [root@localhost ~]# iscsiadm -m session 
    tcp: [2] 172.16.22.142:3260,1     iqn.2016-11.com.ljf:server.target1 (non-flash)  #[2]代表seesion id
    [root@localhost ~]# iscsiadm -m session -r 2  # -r 指明session id即可。
    # BEGIN RECORD 6.2.0-873.13.el6
    node.name = iqn.2016-11.com.ljf:server.target1
    node.tpgt = 1
    node.startup = automatic
    node.leading_login = No
    此处省略一万字
    

    至此,我们可以像使用本地磁盘一样的操作/dev/sdb这块磁盘了.

    Notice
    关机之前或者不使用的时候切记一定要取消target的挂载,避免浪费资源,命令如下:

    [root@localhost ~]# iscsiadm -m node -T iqn.2016-11.com.ljf:server.target1 -p 172.16.22.142 -u
    Logging out of session [sid: 1, target: iqn.2016-11.com.ljf:server.target1, portal: 172.16.22.142,3260]
    Logout of [sid: 1, target: iqn.2016-11.com.ljf:server.target1, portal: 172.16.22.142,3260] successful.
    [root@localhost ~]# fdisk -l
    
    Disk /dev/sda: 32.2 GB, 32212254720 bytes
    255 heads, 63 sectors/track, 3916 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x0003a69b
    
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          26      204800   83  Linux
    Partition 1 does not end on cylinder boundary.
    /dev/sda2              26         157     1048576   82  Linux swap / Solaris
    Partition 2 does not end on cylinder boundary.
    /dev/sda3             157        3917    30202880   8e  Linux LVM
    
    Disk /dev/mapper/VolGroup-LogVol00: 30.9 GB, 30924603392 bytes
    255 heads, 63 sectors/track, 3759 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x00000000
    
    很明显,/dev/sdb已经取消挂载了。
    
  • 相关阅读:
    Nginx + FastCGI 程序(C/C++)搭建高性能web service的demo
    微服务架构
    异常点/离群点检测算法——LOF
    多边形区域填充算法--递归种子填充算法
    Java 关于容器集合等数据结构详情图解,一目了然
    平衡小车项目解读日志
    &lt;LeetCode OJ&gt; 101. Symmetric Tree
    【JVM】模板解释器--字节码的resolve过程
    hexo博客的相关配置
    【LeetCode】Find Minimum in Rotated Sorted Array 解题报告
  • 原文地址:https://www.cnblogs.com/liaojiafa/p/6046007.html
Copyright © 2011-2022 走看看