iSCSI nedir? Nasıl Yapılandırılır?

Ali Orhun Akkirman - Jun 14 '20 - - Dev Community

iSCSI nedir?

iSCSI, SCSI (Small Computer System Interface) yönetimin internet ve daha doğrusu IP üzerinden kullanılmasına yarayan bir protokoldür. Temel ve basit bir protokoldür fakat güvenlik ve performans olarak alternatiflerine göre geride kalmaktadır.

iSCSI kavramları

iSCSI üzerinde temel 2 kavram bulunmaktadır.

  • Target (Hedef)
  • Initiator (Başlatıcı)

a. Target (Hedef) servisi

Kullanılacak depo birimini yöneten servistir. Debian tabanlı sistemlerde Logical Volume Management (LVM) olarak biçimlendirilecek depolama birimini ve tgt isimli target servisini kullanacak cihazdır. initiator tarafından kullanılabilecektir.

b. Initiator (Başlatıcı) servisi

Hedef depo birimi servisine bağlanacak ve bu yapıyı kullanacak cihazlardır. Debian tabanlı sistemlerde Logical Volume Management (LVM) olarak biçimlendirilecek depolama birimini ve tgt isimli target servisini kullanacak cihazdır. initiator tarafından kullanılabilecektir.

1. iSCSI Target Yapılandırması

Pardus ve Debian tabanlı sistemlerde aşağıdaki gibi bir yapılandırma yapabilirsiniz. iSCSI Target yapılandırması için elinizde cihazınıza takılmış olan disk veya diskler bulunmaktadır. Bu diskleri aşağıdaki komut ile görebilirsiniz:

lsblk
Enter fullscreen mode Exit fullscreen mode

lsblk komutu çıktısında sda, sdb, sdc... gibi disk isimlerini göreceksiniz. Bu sistemlerden muhtemelen sda sistemin kurulduğu disk olduğu için sdb'den başlayan diskleri iSCSI üzerinden yönetmeniz gerekecektir. Tabi bu kısım için kurumsal ortamlarda uzmanlık önemli olmaktadır.

Bu adımda aşağıdaki paketleri yüklemeniz gerekmektedir:

apt install tgt lvm2
Enter fullscreen mode Exit fullscreen mode

Belirlediğiniz diskleri LVM olarak kullanmadan önce pvcreate komutu ile oluşturmanız gerekmektedir. Aşağıdaki örnekte ekstra 2 disk takılmış sistem ve dolayısıyla sdb ve sdc disklerini oluşturmayı gördünüz

pvcreate /dev/sd{b,c}
Enter fullscreen mode Exit fullscreen mode

Bu komut sonrasında başarı ile oluşturuldu yazısı görüldüğünde "volume grup" olarak bunları birleştirmek gerekiyor.

vgcreate aciklab_grup /dev/sd{b,c}
Enter fullscreen mode Exit fullscreen mode

Ve tabi bu grubu görmek isterseniz kontrol etmek için vgs komutunu kullanabilirsiniz. Ve bu adımdan sonra sanal grup oluşturmak için aşağıdaki komutu kullanabilirsiniz:

lvcreate -n aciklab_lun1 -l 100%FREE aciklab_grup
Enter fullscreen mode Exit fullscreen mode

Bu adımdan sonra lvs komutu ile ilgili mantıksal birimin oluşup oluşmadığını kontrol edebilirsiniz.

Bu adımdan sonra başlatıcının bağlanabilmesi için target'ı yapılandırmak için /etc/tgt/conf.d/aciklab_grup.conf isimli bir dosya oluşturup içeriğini başlatıcı ve hedef IP adreslerini doğru yazacak şekilde düzenlemeniz gerekmektedir. Tabi ki CHAP parolası gibi bilgileri de doldurmanız gerekmektedir.

<target iqn.2020-06.aciklab.com:lun1>
     # Provided device as an iSCSI target
     backing-store /dev/mapper/aciklab_grup-aciklab_lun1
     initiator-address BASLATICIIPADRESI
    incominguser aciklab_grup-user password
     outgoinguser debian-iscsi-target secretpass
</target>
Enter fullscreen mode Exit fullscreen mode

Yapılandırma ayarını yaptıktan sonra servisi yeniden başlatmanız gerekmekte. Servis başarı ile yeniden başlamış ise ilk süreç tamamlanmış olacaktır.

systemctl restart tgt
Enter fullscreen mode Exit fullscreen mode

Yine de kontrol için aşağıdaki komut ile kontrolü yapabilirsiniz:

tgtadm --mode target --op show
Enter fullscreen mode Exit fullscreen mode

2. iSCSI Initiator Yapılandırması

Pardus ve Debian tabanlı sistemlerde aşağıdaki gibi bir yapılandırma yapabilirsiniz. Bu sistem için open-iscsi kullanabilirsiniz. Ve tabi ki target sisteminin yapılandırılmış olması gerekmektedir.

Aşağıdaki komut ile open-iscsi kurulumu yapabilirsiniz.

apt install open-iscsi
Enter fullscreen mode Exit fullscreen mode

Daha sonra target olarak kurduğunuz sunucunun IP adresini belirterek aşağıdaki komut ile target sistem üzerinde LUN bilgilerini alabilirsiniz.

iscsiadm -m discovery -t st -p HEDEFIPADRESI
Enter fullscreen mode Exit fullscreen mode

Bu komutun çıktısı olarak aşağıdaki gibi bir çıktı ortaya çıkacaktır ve bazı dosyalar oluşacaktır.

iqn.2020-06.aciklab.com\:lun1
Enter fullscreen mode Exit fullscreen mode

Aşağıdaki gibi bir dosya oluşacaktır:

/etc/iscsi/nodes/iqn.2020-06.aciklab.com\:lun1/HEDEFIPADRESI\,3260\,1/default
Enter fullscreen mode Exit fullscreen mode

Bu dosya içerisinde aşağıdaki ayarları hedef sunucuda yazdığınız şekilde düzenlemeniz gerekmekte.

node.session.auth.authmethod = CHAP
node.session.auth.username = aciklab_grup-user
node.session.auth.password = password
node.session.auth.username_in = debian-iscsi-target
node.session.auth.password_in = secretpass

node.startup = automatic
Enter fullscreen mode Exit fullscreen mode

Bu adımdan sonra open-iscsi servisini yeniden başlatmanız yeterlidir:

systemctl restart open-iscsi
Enter fullscreen mode Exit fullscreen mode

Eğer her şey yolunda ise lsblk komutu ile yeni bir disk göreceksiniz.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .