Skip to main content

How to create Storage array for iscsi disk on a linux machine

 Use Case:

I have to create a KVM cluster using GFS Datastore.


#Create a Ubuntu Linux to act as storage server array:

# Make sure the system have enough resources(Storage,MEM&CPU)

#Install TargetCLI tool:  

     apt install targetcli-fb -y

#Create LUN:

 mkdir -p /iscsi_disks

 fallocate -l 600G /iscsi_disks/disk01.img

 targetcli 

     /backstores/fileio create disk01 /iscsi_disks/disk01.img 600G

     /iscsi create iqn.2025-01.com.example:storage1

     /iscsi/iqn.2025-01.com.example:storage1/tpg1/luns create /backstores/fileio/disk01

     /iscsi/iqn.2025-01.com.example:storage1/tpg1/acls create iqn.2025-01.com.example:client1

     /iscsi/iqn.2025-01.com.example:storage1/tpg1/acls create iqn.2025-01.com.example:client2

    /iscsi/iqn.2025-01.com.example:storage1/tpg1/acls create iqn.2025-01.com.example:client3


#Allow all network to access this LUN:

    cd /iscsi/iqn.2025-01.com.example:storage1/tpg1/portals

    create 0.0.0.0

#enable target service:

    systemctl enable --now target


#on host1:

    echo "InitiatorName=iqn.2025-01.com.example:client1" | sudo tee /etc/iscsi/initiatorname.iscsi

    systemctl restart open-iscsi

#on host2:

    echo "InitiatorName=iqn.2025-01.com.example:client2" | sudo tee /etc/iscsi/initiatorname.iscsi

    systemctl restart open-iscsi

#on host 3:

    echo "InitiatorName=iqn.2025-01.com.example:client3" | sudo tee /etc/iscsi/initiatorname.iscsi

    systemctl restart open-iscsi


#scan target lun on each hosts:

    iscsiadm -m discovery -t sendtargets -p <Storage_IP>

  #login from each hosts

   iscsiadm -m node -p <storage_IP> --login

    #verify new lun:

     lsblk

#To make the iscsi login permanent after reboots: on all hosts:

iscsiadm -m node -T iqn.2025-01.com.example:storage1 -p <Storage_IP>--op update -n node.startup -v automatic

Comments