• targetcli配置iSCSI


    概述:这篇文章来介绍LIO下的用户态工具targetcli来配置iSCSI服务

    虚拟机环境:centos7.x(内核版本3.10.0-862.el7.x86_64)

    IP分别为192.168.1.200/201

    targetcli安装

    centos一般都自带了此工具,没有的话去官网下载,这里就不再介绍

    快速创建IP-SAN

    1.命令行输入targetcli进入交互界面,在交互界面可以使用ls,cd等命令灵活简单的操作,如图所示,最上层目录包括backstores、iscsi等,如果有FC或Infiniband的话,还会有其余的一些子模块如qla2xxx等

    2.创建卷资源

    使用cd进入/backstores/block目录,

    cd backstores/block

    然后创建卷资源,使用块设备/dev/sdb

    create dev=/dev/sdb name=sdb

    提示sdb设备正在被使用,重新选择/dev/sdc来创建卷资源,提示创建成功(readonly属性表示读写权限,wwn号为卷资源的唯一标号)

    3.创建iSCSI

    快速创建一个iSCSI服务的步骤如下:

    a.首先创建一个iqn

    b.在iqn下添加提供服务的IP以及需要映射的卷

    c.设置认证

     操作如下:

    这里介绍一个技巧,在交互界面输入cd,可以进入下图界面,可以灵活快速地跳到指定目录

    接下来在iscsi目录下创建iqn

    然后在iqn的对应目录下添加服务IP,映射卷和权限设置

    initiator端发现:可以看到已经可以发现登录过来的逻辑卷

    发现命令:iscsiadm -m discovery -t st -p IP

    登录命令:在发现命令后面加入-l或者iscsiadm -m node -T IQN -l

    登出命令:iscsiadm -m node -T IQN -u 如 iscsiadm -m node -T iqn.2018-10.hzhrinet.com:test -u

     iSCSI认证

    iSCSI认证分为发现认证和登录认证,其中每种认证又分为单向认证和双向认证

    发现认证和登录认证的意思就和名字一样

    单向认证是指initiator端在发现target端的时候,要提供正确的认证才能发现在target端的iSCSI服务

    双向认证是指在单向认证的基础上,target端需要正确设置initiator端设置的认证才能被initiator端发现

    发现认证:

    1.首先我们来看发现认证的默认属性,这是一个全局的设置

    2.设置单向认证

    首先在target端执行命令,设置单向认证

    此时initiator端登录会出现认证错误,无法发现

    这时我们需要设置initiator端的配置文件/etc/iscsi/iscsid.conf

    此时再在initiator端发现,发现成功

    3.设置双向认证(必须建立在单向认证的基础上)

    首先在initiator端设置认证

    然后在target端设置initiator的认证

    PS:这里也可以不动配置文件,通过操作discoverydb来发现认证,首先我们看一下现在的数值

    复制代码
    [root@nodeb ~]# iscsiadm -m discoverydb -t st -p node -o show
    # BEGIN RECORD 6.2.0.874-10
    discovery.startup = manual
    discovery.type = sendtargets
    discovery.sendtargets.address = node
    discovery.sendtargets.port = 3260
    discovery.sendtargets.auth.authmethod = None
    discovery.sendtargets.auth.username = <empty>
    discovery.sendtargets.auth.password = <empty>
    discovery.sendtargets.auth.username_in = <empty>
    discovery.sendtargets.auth.password_in = <empty>
    discovery.sendtargets.timeo.login_timeout = 15
    discovery.sendtargets.use_discoveryd = No
    discovery.sendtargets.discoveryd_poll_inval = 30
    discovery.sendtargets.reopen_max = 5
    discovery.sendtargets.timeo.auth_timeout = 45
    discovery.sendtargets.timeo.active_timeout = 30
    discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
    # END RECORD
    复制代码

    然后可以通过类似如下命令来修改值

    iscsiadm -m discoverydb -t st -p node -o update -n discovery.sendtargets.auth.authmethod -v CHAP

    然后执行

    iscsiadm -m discoverydb -t st -p node -D

    这里注意,iscsiadm -m discovery命令默认是从配置文件去获取的,所以如果执行了discovery命令,discoverydb的默认值又会被改回来

    登录认证:

    登录认证和发现认证类似,也是分为单向认证和双向认证,设置的方法和发现认证几乎一样

    这里有几个注意的地方

    1.generate_node_acls属性表示是否开启ACL,当为no-gen-acls的是否,initiator端的iqn号(/etc/iscsi/initiatorname.iscsi下)必须加入acl才能登陆

    2.在tpg目录下打开认证set attribute authentication=1,作用类似发现认证的enable

    在acl的iqn目录下设置用户和密码,操作类似发现认证

    initiator端修改这些选项就可以了,和发现认证类似

     

    参考:http://blog.51cto.com/zhuxu91313/2154819

    -------------------------------------------------- 少年应是春风和煦,肩头挑着草长莺飞 -------------------
  • 相关阅读:
    2016.5.15——leetcode:Number of 1 Bits ,
    2016.5.14——leetcode-HappyNumber,House Robber
    记录学习过程
    npm 模块安装机制简介
    搭建Vue.js开发环境(window10)
    pwd 显示当前所在的工作路径
    Lucene 6.5.0 入门Demo
    java.lang.UnsupportedClassVersionError
    window.onload 和 $(document).ready(function(){}) 的区别
    plsql + 客户端 连接oracle数据库
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/15766697.html
Copyright © 2020-2023  润新知