Advertisement
logost

Configuration of TCM Cluster over DLM

Aug 3rd, 2022 (edited)
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 4.39 KB | None | 0 0
  1. export LUN_COUNT=3
  2. export IQN=iqn.2017-01.com.yadro:tatlin:sn.090722008b1002
  3. export CLUSTER_NAME="tatlin-ha"
  4. export TPG=tpgt_10
  5. export PORT_IPS="172.20.28.210 172.20.28.211"
  6. export ACL="iqn.1996-04.de.suse:01:ad73852d2452"
  7. export LUNS=$(($LUN_COUNT-1))
  8.  
  9. # reload kernel modules
  10. targetcli /iscsi delete $IQN
  11. targetcli /remote delete $IQN
  12. targetcli /backstores/block delete foo
  13. for i in $(seq 0 1 $LUNS); do
  14.     targetcli /backstores/block delete foo$i
  15. done
  16. rmdir /sys/kernel/config/target/iscsi/
  17. rmdir /sys/kernel/config/target/qla2xxx/
  18. rmdir /sys/kernel/config/target/remote/
  19.  
  20. rmmod null_blk tcm_loop iscsi_target_mod target_cluster_dlm target_core_file target_tatlin_tblock target_core_iblock iscsi_target_mod tcm_qla2xxx qla2xxx target_core_pscsi target_core_user dlm_ckv tcm_remote target_core_mod
  21. rmmod null_blk tcm_loop iscsi_target_mod target_cluster_dlm target_core_file target_tatlin_tblock target_core_iblock iscsi_target_mod tcm_qla2xxx qla2xxx target_core_pscsi target_core_user dlm_ckv tcm_remote target_core_mod
  22. insmod /lib/modules/$(uname -r)/updates/dlm_ckv.ko
  23. insmod /lib/modules/$(uname -r)/updates/target_core_mod.ko
  24. insmod /lib/modules/$(uname -r)/updates/target_cluster_dlm.ko
  25. insmod /lib/modules/$(uname -r)/updates/iscsi_target_mod.ko
  26. insmod /lib/modules/$(uname -r)/updates/target_core_iblock.ko
  27. insmod /lib/modules/$(uname -r)/updates/qla2xxx.ko qlini_mode=disabled
  28. insmod /lib/modules/$(uname -r)/updates/tcm_qla2xxx.ko
  29. insmod /lib/modules/$(uname -r)/updates/tcm_remote.ko
  30. modprobe null_blk nr_devices=$LUN_COUNT
  31.  
  32. echo "module target_core_mod +p" > /sys/kernel/debug/dynamic_debug/control
  33. echo "module iscsi_target_mod -p" > /sys/kernel/debug/dynamic_debug/control
  34. echo "module qla2xxx +p" > /sys/kernel/debug/dynamic_debug/control
  35.  
  36. echo $CLUSTER_NAME > /sys/kernel/config/target/cluster/dlm/cluster_name
  37.  
  38. mkdir -p /sys/kernel/config/target/iscsi/$IQN/$TPG
  39. mkdir -p /sys/kernel/config/target/remote/$IQN/tpgt_1
  40. for ip in $PORT_IPS; do
  41.     mkdir /sys/kernel/config/target/iscsi/$IQN/$TPG/np/$ip:3260
  42. done
  43.  
  44. for i in $(seq 0 1 $LUNS); do
  45.     echo "creating foo${i}"
  46.     targetcli /backstores/block create foo$i /dev/nullb$i
  47. done
  48.  
  49. for i in $(seq 0 1 $LUNS); do
  50.     echo "7a5972d3-9ad9-435f-9129-0000${i}" > /sys/kernel/config/target/core/iblock_$i/foo$i/wwn/vpd_unit_serial
  51.     echo 1 > /sys/kernel/config/target/core/iblock_$i/foo$i/attrib/emulate_pr_compat
  52.     echo 1 >  /sys/kernel/config/target/core/iblock_0/foo0/attrib/force_pr_aptpl
  53. done
  54.  
  55. # turn Cluster Mode ON
  56. for i in $(seq 0 1 $LUNS); do
  57.     echo "dlm" > /sys/kernel/config/target/core/iblock_$i/foo$i/attrib/cluster_impl
  58. done
  59.  
  60. #targetcli /iscsi create $IQN
  61. #targetcli /remote/ create $IQN
  62.  
  63. # turn off authentication
  64. echo 0 > /sys/kernel/config/target/iscsi/$IQN/$TPG/attrib/authentication
  65. # enabel dynamic ACLs
  66. echo 1 > /sys/kernel/config/target/iscsi/$IQN/$TPG/attrib/generate_node_acls
  67. echo 0 > /sys/kernel/config/target/iscsi/$IQN/$TPG/attrib/demo_mode_write_protect
  68.  
  69. # SP-1 only ( set correct RTPI )
  70. if ( [[ $(hostname) -eq "sp-0" ]] )
  71. then
  72. echo 1 > /sys/kernel/config/target/iscsi/$IQN/$TPG/attrib/rtpi
  73. echo 2 > /sys/kernel/config/target/remote/$IQN/tpgt_1/attrib/rtpi
  74. fi
  75. if ( [[ $(hostname) -eq "sp-1" ]] )
  76. then
  77. echo 3 > /sys/kernel/config/target/iscsi/$IQN/$TPG/attrib/rtpi
  78. echo 1 > /sys/kernel/config/target/remote/$IQN/tpgt_1/attrib/rtpi
  79. echo 2 > /sys/kernel/config/target/iscsi/$IQN/$TPG/attrib/rtpi
  80. fi
  81.  
  82.  
  83. for i in $(seq 0 1 $LUNS); do
  84.     echo "Export foo${i}"
  85.     # targetcli /iscsi/$IQN/tpg10/luns create /backstores/block/foo$i
  86.     mkdir /sys/kernel/config/target/iscsi/$IQN/$TPG/lun/lun_$i
  87.     ln -s /sys/kernel/config/target/core/iblock_$i/foo$i /sys/kernel/config/target/iscsi/$IQN/$TPG/lun/lun_$i/backstore
  88.  
  89.     mkdir -p /sys/kernel/config/target/iscsi/$IQN/$TPG/acls/$ACL/lun_$i
  90.     ln -s /sys/kernel/config/target/iscsi/$IQN/$TPG/lun/lun_$i /sys/kernel/config/target/iscsi/$IQN/$TPG/acls/$ACL/lun_$i/lun
  91.  
  92.     #targetcli /remote/$IQN/tpg10/luns create /backstores/block/foo$i
  93.     mkdir /sys/kernel/config/target/remote/$IQN/tpgt_1/lun/lun_$i
  94.     ln -s /sys/kernel/config/target/core/iblock_$i/foo$i /sys/kernel/config/target/remote/$IQN/tpgt_1/lun/lun_$i/backstore
  95.  
  96.     mkdir -p /sys/kernel/config/target/remote/$IQN/tpgt_1/acls/$ACL/lun_$i
  97.     ln -s /sys/kernel/config/target/remote/$IQN/tpgt_1/lun/lun_$i /sys/kernel/config/target/remote/$IQN/tpgt_1/acls/$ACL/lun_$i/lun
  98. done
  99.  
  100.  
  101. echo 1 > /sys/kernel/config/target/iscsi/$IQN/$TPG/enable
  102.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement