Voir aussi :
Voir :
Matériel / schémas :
Voir :
Par défaut, c'est le port TCP 3260 qui est utilisé.
IQN : iSCSI Qualified Name
Identifiant unique de la carte
Les clients sont appelés initiateurs (ou Initiator en anglais)
Les périphériques de stockage SCSI sur des serveurs distants sont appelés Cible (ou targets en anglais)
Voir :
En général il faut privilégier le Multipath, le bonding peut être utilisé en active-passif.
/etc/sysctl.d/98-san.conf
net.ipv4.conf.enp0s9.rp_filter=0 net.ipv4.conf.enp0s9.arp_ignore=1 net.ipv4.conf.enp0s9.arp_announce=2 net.ipv4.conf.enp0s10.rp_filter=0 net.ipv4.conf.enp0s10.arp_ignore=1 net.ipv4.conf.enp0s10.arp_announce=2
sysctl -p /etc/sysctl.d/98-san.conf
A adapter !
Remplacer enp0s9, enp0s10 par vos cartes réseaux dédiées au SAN
Il existe :
apt-get install iscsitarget iscsitarget-dkms
Pour lister les LUN
cat /proc/net/iet/volume
/etc/default/iscsitarget
ISCSITARGET_ENABLE=true # Comment binder sur plusieurs interfaces ? # Finalement je vais jouer avec iptables #ISCSITARGET_OPTIONS="--address 192.168.25.12"
/etc/iet/targets.allow
#ALL ALL #ALL 192.168.25.12 # IP de la carte de ce serveur (Target) ALL 192.168.25.12,192.168.26.12
Aucun service à redémarré
/etc/iet/initiators.allow
#ALL ALL #nom-libre:fs.iscsi.disk 192.168.25.21 nom-libre:fs.iscsi.disk iqn.1994-05.com.redhat:b51429c7fc6
Aucun service à redémarré
La règle d'autorisation au LUN nom-libre:fs.iscsi.disk peut se faire avec l'adresse IP
nom-libre:fs.iscsi.disk 192.168.25.21
Ou bien avec l'IQN :
nom-libre:fs.iscsi.disk iqn.1994-05.com.redhat:b51429c7fc6
Faire la conf dans /etc/iet/ietd.conf
systemctl restart iscsitarget
Vérif
cat /proc/net/iet/volume
apt-get install tgt
Voir :
# Interface LAN : eth0 eth1 # Intercace SAN : eth2 eth3 # VLAN SAN : 192.168.25.0/24 (eth2), 192.168.26.0/24 (eth3) # ALL : Autoriser les pings iptables -A INPUT -p icmp -j ACCEPT # SAN : Permettre réponse iptables -A OUTPUT -o eth2 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth3 -m state --state NEW,ESTABLISHED -j ACCEPT # SAN : Ouverture port TCP 3260 iptables -A INPUT -i eth2 -p tcp -m tcp --dport 3260 -j ACCEPT iptables -A INPUT -i eth3 -p tcp -m tcp --dport 3260 -j ACCEPT # Hors SAN : Bloquer le port TCP 3260 iptables -A INPUT -p tcp -m tcp --dport 3260 -j REJECT # SAN : utilisable que pour le SAN iptables -A INPUT -i eth2 -j REJECT iptables -A INPUT -i eth3 -j REJECT
Voir
/sys/class/iscsi_session/lsscsiyum install iscsi-initiator-utils
Changer éventuellement le IQN
/etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.1994-05.com.redhat:b51429c7fc6
Générer un nouveau nom IQN
iscsi-iname
Pour prendre en compte le changement d'IQN initiatorname.iscsi
systemctl restart iscsid.service
Lister les LUNs disponibles
#iscsiadm -m discovery --type sendtargets --portal 192.168.25.12 iscsiadm -m discovery -t st -p 192.168.25.12
Connexion à tous les LUNs dispo et autorisé
iscsiadm -m discovery -t st -p 192.168.25.12 --login
Connexion à un LUN spécifique
iscsiadm -m discovery -t st -p 192.168.25.12
192.168.25.12:3260,1 nom-libre:fs.iscsi.disk
iscsiadm -m node -p 192.168.25.12 -T nom-libre:fs.iscsi.disk --login
Vérif
iscsiadm -m session ls -l /dev/disk/by-path/*iscsi*
Déconnexion
#iscsiadm -m node -u -p $(iscsiadm -m session |awk '{print $3}') #iscsiadm -m node -u -T $(iscsiadm -m session | cut -d ' ' -f 4) iscsiadm -m node -p 192.168.25.12 -u
Connaître tous les disques /dev/sd[a-z] SAN
ls -l /dev/disk/by-path/*iscsi*
lrwxrwxrwx 1 root root 9 9 nov. 14:18 /dev/disk/by-path/ip-192.168.25.12:3260-iscsi-nom-libre:fs.iscsi.disk-lun-0 -> ../../sdc lrwxrwxrwx 1 root root 10 9 nov. 14:18 /dev/disk/by-path/ip-192.168.25.12:3260-iscsi-nom-libre:fs.iscsi.disk-lun-0-part1 -> ../../sdc1
Info
tree /var/lib/iscsi/ iscsiadm -m node iscsiadm -m session -P3
Effacement config
umount /dev/disk/by-path/*iscsi*[1-9] iscsiadm -m node --portal 192.168.25.12 -u systemctl stop iscsid.service systemctl stop iscsid.socket yum remove iscsi-initiator-utils-iscsiuio iscsi-initiator-utils rm -rf /var/lib/iscsi/ rm -rf /etc/iscsi/
iscsiadm -m session -P1 |grep State
OK
iSCSI Connection State: LOGGED IN
iSCSI Session State: LOGGED_IN
Internal iscsid Session State: NO CHANGE
NKO
iSCSI Connection State: TRANSPORT WAIT
iSCSI Session State: FREE
Internal iscsid Session State: REOPEN
apt-get install open-iscsi
dmesg |grep sd
[ 241.189053] sd 4:0:0:0: [sdc] Attached SCSI disk
iscsiadm -m session iscsiadm -m session -P 3
yum install -y targetcli
Notes
#iscsiadm -m discovery --type sendtargets --portal 192.168.25.12 #iscsiadm -m node --targetname nom-libre:fs.iscsi.disk --portal 192.168.25.12 --login iscsiadm -m iface -I iface0 --op=new -n iface.hwaddress -v "08:00:27:85:d1:16" iscsiadm -m discovery --type sendtargets --portal 192.168.25.12 -I iface0 iscsiadm -m node --targetname nom-libre:fs.iscsi.disk --portal 192.168.25.12:3260 -I iface0 --login
iscsiadm -m discoverydb
192.168.25.12:3260 via sendtargets 192.168.56.12:3260 via sendtargets 192.168.26.12:3260 via sendtargets
iscsiadm -m discoverydb -o delete -p 192.168.56.12:3260 -t st
iscsiadm -m session
tcp: [1] 192.168.25.12:3260,1 nom-libre:fs.iscsi.disk (non-flash)
iscsiadm -m node -p 192.168.25.12 -T nom-libre:fs.iscsi.disk -u
Logging out of session [sid: 1, target: nom-libre:fs.iscsi.disk, portal: 192.168.25.12,3260] iscsiadm: Could not logout of [sid: 1, target: nom-libre:fs.iscsi.disk, portal: 192.168.25.12,3260]. iscsiadm: initiator reported error (9 - internal error) iscsiadm: Could not logout of all requested sessions
iscsiadm -m session --sid=1 --op=delete iscsiadm: This command will remove the record [iface: default, target: nom-libre:fs.iscsi.disk, portal: 192.168.25.12,3260], but a session is using it. Logout session then rerun command to remove record. iscsiadm: Could not execute operation on all records: session exists
A tester
systemctl stop iscsi systemctl stop iscsid systemctl start iscsid systemctl start iscsi
# dmesg detected conn error (1020)
# iscsiadm -m discovery -t st -p 192.168.6.130 -l 24 - iSCSI login failed due to authorization failure
/etc/iscsi/iscsid.conf
discovery.sendtargets.timeo.login_timeout = 15 discovery.sendtargets.reopen_max = 5 discovery.sendtargets.timeo.auth_timeout = 45 discovery.sendtargets.timeo.active_timeout = 30 discovery.sendtargets.iscsi.MaxRecvDataSegmentLength = 32768
iscsiadm -m discovery -t st -p 192.168.6.130 -l
Où alors autoriser les accès concurrentiels sur le SAN, si c'est souhaité.
udevinfo -a -p $(udevinfo -q path -n /dev/sdb)
Manually Changing Queue Settings Not required unless LUNs are already in use with wrong settings. These settings can be safely changed on a running system, by locating the Pure LUNs:
grep PURE /sys/block/sd*/device/vendor
And writing the desired values into sysfs files:
echo noop > /sys/block/sdx/queue/scheduler
An example for loop is shown here to quickly set all Pure luns to the desired 'noop' elevator:
for disk in $(lsscsi | grep PURE | awk '{print $6}'); do echo noop > /sys/block/${disk##/dev/}/queue/scheduler done
All changes in this section take effect immediately, without rebooting for RHEL5 and higher. RHEL 4 releases will require a reboot. These changes will not persist unless they are added to the udev rule. Notice, noop has [noop] to designate it as the desired scheduler.
$ cat /sys/block/sdb/queue/scheduler [noop] deadline cfq