iSCSI nedir? Nasıl Yapılandırılır?
Tags: iscsi, pardus, debian, disk
Published: 2020-06-14 13:36:56

# 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:

```bash
lsblk
```

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:

```bash
apt install tgt lvm2
```

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

```bash
pvcreate /dev/sd{b,c}
```

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

```bash
vgcreate aciklab_grup /dev/sd{b,c}
```

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:

```bash
lvcreate -n aciklab_lun1 -l 100%FREE aciklab_grup
```

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>
```

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.

```bash
systemctl restart tgt
```

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

```bash
tgtadm --mode target --op show
```

## 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.

```bash
apt install open-iscsi
```

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

```bash
iscsiadm -m discovery -t st -p HEDEFIPADRESI
```

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
```

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

```
/etc/iscsi/nodes/iqn.2020-06.aciklab.com\:lun1/HEDEFIPADRESI\,3260\,1/default
```

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
```

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

```bash
systemctl restart open-iscsi
```

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