zoukankan      html  css  js  c++  java
  • How to Configure iSCSI Target and Initiator on CentOS 8

    iSCSI (Internet Small Computer Systems Interface) is an Internet Protocol based storage networking for connecting remote storage devices over the network. It provides block-level access to storage devices. iSCSI is used to facilitate block-level data transfer between iSCSI initiator on a client machine and target on a storage server over local area networks (LANs), wide area networks (WANs).
    This article describes, How to configure iSCSI Target and Initiator on CentOS8 using 8 GB additional disk added to the server.

     
    ISCSI Target Configuration:
     
    [root@lc-storage1 ~]# fdisk –l
    ………………..
    Disk /dev/sdb: 8 GiB, 8589934592 bytes, 16777216 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    ………………..
    [root@lc-storage1 ~]#
     
    Step 1. Installing Packages: Run the following command to install iSCSI target binary and targetcli commands:
     
    [root@lc-storage1 ~]# dnf install targetcli –y
    ……………………
    Installed:
      targetcli-2.1.fb49-1.el8.noarch        python3-configshell-1:1.1.fb25-1.el8.noarch   python3-kmod-0.9-20.el8.x86_64         python3-pyparsing-2.1.10-7.el8.noarch
      python3-rtslib-2.1.fb69-3.el8.noarch   python3-urwid-1.3.1-4.el8.x86_64              target-restore-2.1.fb69-3.el8.noarch
     
    Complete!
    [root@lc-storage1 ~]#
     
    Once the targetcli package installed, start the iSCSI target service and enable it on system start up:
     
    [root@lc-storage1 ~]# systemctl enable target; systemctl restart target
    Created symlink /etc/systemd/system/multi-user.target.wants/target.service → /usr/lib/systemd/system/target.service.
    [root@lc-storage1 ~]#
     
    Once service is started, enter below command to get iSCSI CLI interactive prompt:
     
    [root@lc-storage1 ~]# targetcli
    Warning: Could not load preferences file /root/.targetcli/prefs.bin.
    targetcli shell version 2.1.fb49
    Copyright 2011-2013 by Datera, Inc and others.
    For help on commands, type 'help'.
     
    />
     
    Using ls command check the existing iSCSI configuration:
     
    /> ls
    o- / ......................................................................................................................... [...]
      o- backstores .............................................................................................................. [...]
      | o- block .................................................................................................. [Storage Objects: 0]
      | o- fileio ................................................................................................. [Storage Objects: 0]
      | o- pscsi .................................................................................................. [Storage Objects: 0]
      | o- ramdisk ................................................................................................ [Storage Objects: 0]
      o- iscsi ............................................................................................................ [Targets: 0]
      o- loopback ......................................................................................................... [Targets: 0]
    />
     
    Step 2. Configure iSCSI Target: Now create storage backend using disk /dev/sdb as a block-type backing store for storage object:
     
    /> cd backstores/block
    /backstores/block> create name=iscsi-disk1 dev=/dev/sdb
    Created block storage object iscsi-disk1 using /dev/sdb.
    /backstores/block>
     
    Step 3. Create iSCSI Target: Run the following commands to create an iSCSI target, here we are creating a default IQN:
     
    /backstores/block> cd /iscsi
    /iscsi> create iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1
    Created target iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1.
    Created TPG 1.
    Global pref auto_add_default_portal=true
    Created default portal listening on all IPs (0.0.0.0), port 3260.
    /iscsi>
     
     
    Step 4: Create iSCSI LUNs: add the LUNS or logical units to make the storage effective. The LUN should use the previously mentioned backing storage object named scsi-disk1.
     
    /iscsi> cd iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1/tpg1/luns
    /iscsi/iqn.20...de1/tpg1/luns> create /backstores/block/iscsi-disk1
    Created LUN 0.
    /iscsi/iqn.20...de1/tpg1/luns>
     
    Step 5: Create ACL: ACL restrict access to LUNs from unauthorized remote systems and exit from the iSCSI interactive session:
     
    /iscsi/iqn.20...sk1/tpg1/luns> cd ../acls
    /iscsi/iqn.20...de1/tpg1/acls> create iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1
    Created Node ACL for iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1
    Created mapped LUN 0.
    /iscsi/iqn.20...de1/tpg1/acls>
     
    Run the following command to get the list of created configuration:
     
    /iscsi/iqn.20...sk1/tpg1/acls> cd /
    /> ls
    o- / ................................................................................................................. [...]
      o- backstores ................................................................................................ [...]
      | o- block ............................................................................ [Storage Objects: 1]
      | | o- iscsi-disk1 ................................... [/dev/sdb (8.0GiB) write-thru activated]
      | |   o- alua ........................................................................... [ALUA Groups: 1]
      | |     o- default_tg_pt_gp ................................ [ALUA state: Active/optimized]
      | o- fileio ............................................................................. [Storage Objects: 0]
      | o- pscsi ............................................................................. [Storage Objects: 0]
      | o- ramdisk ........................................................................ [Storage Objects: 0]
      o- iscsi .............................................................................................. [Targets: 1]
      | o- iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1 ............ [TPGs: 1]
      |   o- tpg1 ......................................................................... [no-gen-acls, no-auth]
      |     o- acls ............................................................................................ [ACLs: 1]
      |     | o- iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1 ……..[Mapped LUNs: 1]
      |     |   o- mapped_lun0 .............................................[lun0 block/iscsi-disk1 (rw)]
      |     o- luns .......................................................................................... [LUNs: 1]
      |     | o- lun0 ............................. [block/iscsi-disk1 (/dev/sdb) (default_tg_pt_gp)]
      |     o- portals .................................................................................... [Portals: 1]
      |       o- 0.0.0.0:3260 .................................................................................... [OK]
      o- loopback ....................................................................................... [Targets: 0]
    />
     
    Run the exit command to exit with saving configuration from the targetcli interactive session:
     
    /> exit
    Global pref auto_save_on_exit=true
    Configuration saved to /etc/target/saveconfig.json
    [root@lc-storage1 ~]#
     
    Step 6. Firewall Configuration: Run the following commands configure firewall to allow port 3260 accessible from remote systems:
     
    [root@lc-storage1 ~]# firewall-cmd --permanent --add-port=3260/tcp; firewall-cmd --reload
    success
    success
    [root@lc-storage1 ~]#
     
    If iptables are running instead of firewalld, run the following commands:
     
    [root@lc-storage1 ~]# iptables -I INPUT -p tcp -m tcp -dport 3260 - ACCEPT; systemctl save iptables
     
     
    iSCSI Initiator Configuration:
     
    Step 1. Packages Installation: Install the iscsi-initiator-utils package to configure iSCSI initiator on Linux systems:
     
    [root@lc-node1 ~]# dnf install iscsi-initiator-utils –y
    ……………………
    Installed:
      iscsi-initiator-utils-6.2.0.876-7.gitf3c8e90.el8.x86_64     iscsi-initiator-utils-iscsiuio-6.2.0.876-7.gitf3c8e90.el8.x86_64     isns-utils-libs-0.97-6.el8.x86_64
     
    Complete!
    [root@lc-node1 ~]#
     
    Step 2. iSCSI Initiatorname Configuration: Edit the /etc/iscsi/initiatorname.iscsi file and replace the Initiatorname with the earlier created in ACL on target server and comment all other initiator names if any present in this and not in use anymore:
     
    [root@lc-node1 ~]# vi /etc/iscsi/initiatorname.iscsi
    #InitiatorName=iqn.1994-05.com.redhat:5cc8abcc5ada
    InitiatorName=iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1
     
    Step 3. Restart iSCSI services: Run the following commands to enable on system start up and restart the service to reflect the change:
     
    [root@lc-node1 ~]# systemctl enable iscsid; systemctl restart iscsid
    Created symlink /etc/systemd/system/multi-user.target.wants/iscsid.service → /usr/lib/systemd/system/iscsid.service.
    [root@lc-node1 ~]#
     
     
    Step 4. iSCSI Discovery: Discover the target using the below command:
     
    [root@lc-node1 ~]# iscsiadm --mode discovery --type sendtargets --portal 192.168.43.45 --discover
    192.168.43.45:3260,1 iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1
    [root@lc-node1 ~]#
     
    Step 5. Create iSCSI Initiator Session: Run the following command for making connection:
     
    [root@lc-node1 ~]# iscsiadm --mode node --targetname iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1 --login
    Logging in to [iface: default, target: iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1, portal: 192.168.43.45,3260] (multiple)
    Login to [iface: default, target: iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1, portal: 192.168.43.45,3260] successful.
    [root@lc-node1 ~]#
     
    Step 6. Verification: Once the session created successfully verify the LUNs using below commands:
     
    [root@lc-node1 ~]# lsscsi
    [1:0:0:0]    cd/dvd  VBOX     CD-ROM           1.0   /dev/sr0
    [2:0:0:0]    disk    ATA      VBOX HARDDISK    1.0   /dev/sda
    [3:0:0:0]    disk    LIO-ORG  iscsi-disk1      4.0   /dev/sdb
    [root@lc-node1 ~]#
     
    Here the iSCSI target mapped to the disk /dev/sdb. Use the following command to monitor the iSCSI session:
     
    [root@lc-node1 ~]# iscsiadm --mode node -P 1
    Target: iqn.2019-11.local.linuxcnf.lc-storage1:iscsi-disk1:lc-node1
            Portal: 192.168.43.45:3260,1
                    Iface Name: default
    [root@lc-node1 ~]#
     
    Done!!! Now session is created and iSCSI target mapped to the disk /dev/sdb in iSCSI initiator system.
  • 相关阅读:
    jenkins2.0以后的版本提供自动部署和远程部署功能?
    测试之路之同事
    jmeter分布式压力测试实践+登录为例
    模板渲染jnja2模块
    10 分离式web框架
    09 基于模块wsgiref版web框架
    08 返回动态页面web框架
    07 返回多个页面web框架
    06 返回静态文件的映射(函数/多线程)web框架
    05 返回静态文件的多线程web框架
  • 原文地址:https://www.cnblogs.com/dream397/p/12710933.html
Copyright © 2011-2022 走看看