Debian 9'da iSCSI Sunucusu (Hedef) ve İstemci (Başlatıcı) Kurulumu


Veri merkezi dünyasında, büyük kapasiteli Depolama Alanı Ağları (SAN) minimum standart haline geldi. Bulut sağlayıcıları ve sanallaştırma teknoloji dünyasında büyük etkiler yaratmaya devam ederken, daha fazla SAN depolama alanına olan ihtiyaç da ortaya çıktı.

Çoğu SAN donanımı, minimalist bir denetleyiciden (veya denetleyici kümesinden) ve tümü yüksek miktarda veri kullanılabilirliğini ve bütünlüğünü destekleyecek şekilde yapılandırılmış geniş bir yüksek kapasiteli sürücü koleksiyonundan oluşur.

Bu özel ürünlerin çoğu, Netapp, Dell Equalogic, HP Storageworks veya EMC gibi ünlü satıcılar tarafından üretilmekte ve üzerlerinde yalnızca en büyük kuruluşların karşılayabileceği fiyat etiketleri bulunmaktadır.

Gerçekçi olmak gerekirse, bu cihazlar, bu sabit disklerin alanını ağ bağlantılı istemcilere sağlayan bir denetleyiciye sahip büyük sabit disk dizilerinden başka bir şey değildir. Yıllar boyunca bu işlevselliği veya benzer işlevleri çok daha ucuz bir fiyatla sağlayan birçok teknoloji mevcut olmuştur.

Debian GNU/Linux dağıtımı, bir Debian sisteminin kurumsal düzeyde bir SAN depolama aygıtının amacına çok düşük bir maliyetle hizmet etmesine olanak tanıyan paketler sağlar! Bu, temel ev kullanıcılarından büyük veri merkezlerine kadar herkesin, satıcının özel çözümüne bir servet harcamak zorunda kalmadan SAN depolamanın avantajlarından yararlanmasına olanak tanır.

Bu makale, bir Debian 9 (Stretch) sisteminin, İnternet Küçük Bilgisayar Sistemleri Arayüzü veya kısaca iSCSI olarak bilinen bir sistemi kullanarak disk alanını dağıtmak üzere nasıl kurulabileceğine bakacaktır. iSCSI, diğer sistemlere blok (sabit sürücü) depolama sağlamak için İnternet Protokolü (IP) tabanlı bir standarttır. iSCSI, istemci sunucu modelinde çalışır ancak istemciyi sunucudan ayırmak için farklı adlar kullanır.

iSCSI terminolojisinde, 'disk alanını' sunan sunucu, iSCSI 'Hedefi' olarak bilinir ve istekte bulunan sistem /disk alanının kullanılması iSCSI 'Başlatıcı' olarak bilinir. Başka bir deyişle, bir "Başlatıcı", bir "Hedef"ten blok depolama isteğinde bulunur.

Ortam Kurulumu

Bu kılavuz, basit bir iSCSI sunucusu (hedef) ve istemci (başlatıcı) içeren temel kurulumu anlatacaktır. Debian 9 (Stretch) çalıştırılıyor.


Debian iSCSI Target: 192.168.56.101/24
Storage: Contains two extra hard drives to be used as the storage in the iSCSI setup
Debian iSCSI Initiator: 192.168.56.102/24

Ağ aşağıdaki gibi görüntülenebilir:

Debian iSCSI Hedef Yapılandırması

iSCSI dünyasında hedef, başlatıcı tarafından kullanılacak depolama cihazlarını içeren ana bilgisayar olarak kabul edilir.

Bu makalede 192.168.56.101 IP'sine sahip sunucu hedef olarak kullanılıyor. Bu bölüm için tüm konfigürasyonlar o host üzerinde yapılacaktır.

İlk adım, Debian sisteminin iSCSI hedeflerine hizmet vermesini sağlamak için gerekli paketlerin kurulmasıdır. Bu yazılım paketi Target Framework (TGT) olarak bilinir.

Bu kılavuz için kullanılan diğer öğe, Mantıksal Birimler (LV'ler) olarak Mantıksal Birim Yönetimi (LVM) araçlarıdır. Strong>), iSCSI hedefi için depolama desteği olarak kullanılacaktır.

Her iki paket de aşağıdaki komutlarla kurulabilir.


apt-get update
apt-get install tgt lvm2

Paketler yüklendikten sonra LVM, hedefteki sabit diskleri iSCSI LUN olarak kullanıma hazırlamak için kullanılacaktır. İlk komut, diskleri LVM kurulumuna dahil edilmek üzere hazırlamak için kullanılır. Farklı senaryolar için komutu gerektiği gibi değiştirdiğinizden emin olun!


lsblk (Only used to confirm disks to be used in the LVM setup)
pvcreate /dev/sd{b,c}

Diskler yukarıdaki 'pvcreate' komutuyla hazırlandıktan sonra, bu belirli disklerden bir birim grubu oluşturmanın zamanı gelmiştir. Daha sonra iSCSI depolama alanı olarak görev yapacak Mantıksal Birimler'i oluşturmak için birim grubu gereklidir.

Bir birim grubu oluşturmak için 'vgcreate' komutu gereklidir.


vgcreate tecmint_iscsi /dev/sd{b,c}
vgs  (Only needed to confirm the creation of the volume group)

Yukarıdaki çıktıda sistemin Birim Grubunun oluşturulduğunu bildirdiğine dikkat edin, ancak yukarıda görüldüğü gibi 'vgs' komutuyla tekrar kontrol etmek her zaman iyi bir fikirdir. Bu birim grubunun kapasitesi yalnızca 9,99 GB'tır. Bu özellikle küçük hacimli bir grup olsa da, süreç daha büyük kapasiteli diskler için de aynı olacaktır!

Bir sonraki adım, iSCSI istemcisine (başlatıcı) disk görevi görecek mantıksal birimin oluşturulmasıdır. Bu örnekte cilt grubunun tamamı kullanılacaktır ancak gerekli değildir.

Mantıksal birim 'lvcreate' komutu kullanılarak oluşturulacaktır.


lvcreate -l 100%FREE tecmint_lun1 tecmint_iscsi
lvs  (Simply used to confirm the creation of the logical volume)

Yukarıdaki 'lvcreate' komutu ilk bakışta biraz kafa karıştırıcı olabilir ancak dökümü şu şekildedir:

  • lvcreate – Mantıksal birimi oluşturmak için kullanılan komut.
  • -l %100 ÜCRETSİZ – Birim grubunun tüm boş alanını kullanarak mantıksal birimi oluşturun.
  • -n tecmint_lun1 – Oluşturulacak mantıksal birimin adı.
  • tecmint_iscsi – İçinde mantıksal birimin oluşturulacağı birim grubunun adı.

Mantıksal birim oluşturulduktan sonra, gerçek LUN'u (Mantıksal Birim Numarası) oluşturmanın zamanı gelir. LUN, başlatıcının bağlanıp daha sonra kullanacağı depolama cihazı olacaktır.

LUN oluşturmak çok basittir ve yalnızca birkaç adım gerektirir. İlk adım, yapılandırma dosyasının oluşturulması olacaktır. Bu dosya '/etc/tgt/conf.d' dizininde yer alacak ve bu makale için 'TecMint_iscsi.conf' olarak adlandırılacaktır.

Bu dosyayı oluşturmak için bir metin düzenleyici kullanın.


nano /etc/tgt/conf.d/TecMint_iscsi.conf

Bu dosyada, bu LUN için gerekli tüm yapılandırma bilgileri yapılandırılacaktır. Bu dosyaya yerleştirilebilecek çok sayıda seçenek var ancak şimdilik karşılıklı Challenge El Sıkışma Kimlik Doğrulama Protokolü (CHAP) içeren temel bir LUN yapılandırılabilir.

LUN'un tanımı iki "hedef" ifadesi arasında yer alacaktır. Hedef ifadesine girebilecek daha fazla parametre için, 'targets.conf' dosyasının kılavuz sayfasını 'man 5 target.conf' düzenleyerek inceleyin.


<target iqn.2018-02.linux-console.net:lun1>
     # Provided device as an iSCSI target
     backing-store /dev/mapper/tecmint_iscsi-tecmint_lun1
     initiator-address 192.168.56.102
    incominguser tecmint-iscsi-user password
     outgoinguser debian-iscsi-target secretpass
</target>

Yukarıda çok şey oluyor. Hızlı bir açıklama çoğu kişiye yardımcı olabilir.

  • İlk satır, belirli iSCSI LUN yapılandırmasını başlatır. Bu durumda LUN, 'iqn.2018-02.linux-console.net:lun1' olarak etiketlenmiştir. 'iqn' kısmı bunun iSCSI nitelikli bir ad olacağını belirtir. '2018-02' keyfi olarak seçilmiş bir tarih kombinasyonudur. 'linux-console.net' bu LUN'un ait olduğu alan adıdır. Son olarak bu özel hedefin adı olarak 'lun1' kullanılır.
  • Yukarıdaki ikinci satır bir yorumu göstermektedir. Yorumlar, hedef yapılandırma dosyalarında mevcut olabilir ve başlarında bir '#' simgesi bulunmalıdır.
  • Üçüncü satır, başlatıcı tarafından kullanılacak gerçek depolama alanının bulunduğu yerdir. Bu durumda depolama desteği, kılavuzda daha önce oluşturulan mantıksal birim olacaktır.
  • Dördüncü satır, başlatıcıdan beklenen IP adresidir. Bu gerekli bir yapılandırma öğesi olmasa da güvenliğin artırılmasına yardımcı olabilir.
  • Beşinci satır, gelen kullanıcı adı/şifredir. Yukarıdaki başlatıcı adresine benzer şekilde bu parametre de gerekli değildir ancak LUN'un güvenliğinin sağlanmasına yardımcı olabilir. Bu kılavuz aynı zamanda iSCSI karşılıklı CHAP'i de kapsadığından bu parametre gereklidir. Bu satır, hedefin bu LUN'a bağlanmak için başlatıcıdan bekleyeceği kullanıcı adını ve şifreyi belirtir.
  • Altıncı satır, karşılıklı CHAP kimlik doğrulamasının gerçekleşmesine izin vermek için hedefin başlatıcıya sağlayacağı kullanıcı adı/şifredir. Normalde bu parametre gerekli değildir ancak bu makale karşılıklı CHAP kimlik doğrulamasını kapsadığından bu parametre gereklidir.
  • Son satır, hedef tanımının kapanış ifadesidir. Anahtar kelime hedefinin önündeki kapanış çizgisine dikkat edin!

LUN için uygun yapılandırmalar yazıldıktan sonra değişiklikleri kaydedin ve metin düzenleyiciden çıkın. Nano kullanıyorsanız, kaydetmek için ctrl+o tuşlarına basın ve ardından nano'dan çıkmak için ctrl+x tuşlarına basın.

Yapılandırma dosyası oluşturulduktan sonra tgt hizmetinin yeniden başlatılması gerekir, böylece tgt yeni hedeflerden ve ilgili yapılandırmadan haberdar olur.

Bu, aşağıdaki komutlardan biriyle yapılabilir ve kullanılan başlatma sistemine bağlıdır.


service tgt restart  (For sysv init systems)
systemctl restart tgt  (For systemd init systems)

tgt yeniden başlatıldığında, iSCSI hedefinin oluşturulan yapılandırma dosyasına göre kullanılabilir hale getirilip getirilmediğini kontrol etmek önemlidir.

Bu, 'tgtadm' komutuyla gerçekleştirilebilir.


tgtadm --mode target --op show   (This will show all targets)

Bu, hedefin yapılandırmasını tamamlar. Sonraki bölümde başlatıcının yapılandırması ele alınacaktır.

Debian iSCSI Başlatıcı Yapılandırması

Önceden yapılandırılmış iSCSI hedefini kullanmanın bir sonraki adımı, iSCSI başlatıcısının yapılandırılmasıdır.

Bu makalede başlatıcı olarak farklı bir Debian 9 sistemi kullanılacaktır ancak iSCSI protokolünü kullanabilen herhangi bir sistem önceden yapılandırılmış hedefe bağlanabilir; bu, XenServer/ESXi gibi hipervizörleri veya Red Hat, Debian veya Ubuntu gibi diğer dağıtımları içerebilir.

Bu Debian başlatıcısı için bu süreçteki ilk adım, iSCSI için uygun paketlerin kurulumudur.


apt-get update
apt-get install open-iscsi

apt, open-iscsi paketlerinin yapılandırmasını tamamladıktan sonra iSCSI başlatıcı yapılandırması başlayabilir. İlk adım, hazırlanan hedef için ilk yapılandırma bilgilerini almak üzere hedef ile iletişim kurmak olacaktır.


iscsiadm -m discovery -t st -p 192.168.56.101

Bu komut çalıştırıldığında, bu belirli ana bilgisayar için daha önce yapılandırılan lun'un adıyla yanıt verecektir. Yukarıdaki komut ayrıca yeni keşfedilen LUN bilgileri için iki dosya oluşturacaktır.

Artık, bu iSCSI hedefinin başlatıcı tarafından gerçekten erişilebilmesi için, bu düğüm için oluşturulan dosyanın CHAP bilgilerinin yapılandırılmış olması gerekecektir.

Teknik olarak bu bilgiler bir bütün olarak sistemin tamamı için ayarlanabilir ancak bir ana bilgisayarın farklı LUN'lara farklı kimlik bilgileriyle bağlanması durumunda, bu kimlik bilgilerinin belirli düğüm yapılandırma dosyasına yerleştirilmesi her türlü sorunu azaltabilir.

Düğüm yapılandırma dosyası '/etc/iscsi/nodes/' dizininde bulunacaktır ve LUN başına kullanılabilir bir dizine sahip olacaktır. Bu makale durumunda (isimler/IP adresleri değiştirilirse yolların değişeceğini unutmayın).


/etc/iscsi/nodes/iqn.2018-02.linux-console.net\:lun1/192.168.56.101\,3260\,1/default

Bu dosyayla çalışmak için herhangi bir metin düzenleyici kullanılabilir.


nano /etc/iscsi/nodes/iqn.2018-02.linux-console.net\:lun1/192.168.56.101\,3260\,1/default

Bu dosyada, daha önce 'iscsiadm' komutunun çalıştırılması sırasında belirlenen, ilgili hedef için önceden yapılandırılmış birkaç seçenek olacaktır.

Bu özel Debian hedef/başlatıcı kurulumu karşılıklı CHAP kullandığından, bazı seçeneklerin daha değiştirilip bu dosyaya eklenmesi ve ardından iSCSI hedefinde oturum açılması gerekir. gerçekleştirildi.

Bu dosyadaki değişiklikler şunlardır:


node.session.auth.authmethod = CHAP                    #Enable CHAP Authentication
node.session.auth.username = tecmint-iscsi-user        #Target to Initiator authentication
node.session.auth.password = password                  #Target to Initiator authentication
node.session.auth.username_in = debian-iscsi-target    #Initiator to Target authentication
node.session.auth.password_in = secretpass             #Initiator to Target authentication

Yukarıdaki seçenekler, bu hedefin başlatıcıya kimlik doğrulaması yapmasına ve ayrıca başlatıcının hedefe kimlik doğrulaması yapmasına olanak tanır. >.

Bu özel dosyada yöneticinin tercihlerine bağlı olarak değiştirilmesi gerekebilecek başka bir seçenek daha vardır ve o da 'node.startup' parametresidir.

Bu kılavuzu izlerseniz, "node.startup" seçeneği bu noktada "manuel" olarak ayarlanacaktır. Bu arzu edilmeyebilir. Yönetici, sistem başlatıldığında iSCSI hedefinin bağlanmasını isterse, 'manuel'i şu şekilde 'otomatik' olarak değiştirin:


node.startup = automatic

Yukarıdaki değişiklikleri yaptıktan sonra dosyayı kaydedin ve çıkın. Bu noktada, bu yeni değişiklikleri okuyabilmek ve iSCSI hedefine bağlanabilmek için open-iscsi başlatıcı hizmetinin yeniden başlatılması gerekiyor.

Bu, kullanılan başlatma sistemine bağlı olarak aşağıdaki komutlardan biriyle gerçekleştirilebilir.


service open-iscsi restart   (For sysv init systems)
systemctl restart open-iscsi (For systemd init systems)

Yukarıdaki yeşil kutuda iSCSI başlatıcısının hedefe giriş yapabildiğine dikkat edin. iSCSI hedefinin gerçekten başlatıcı tarafından kullanılabilir olduğunu doğrulamak için, 'lsblk ' kullanarak sistemde kullanılabilir ekstra disk sürücüleri olup olmadığını kontrol edebiliriz. ' komutunu çalıştırın ve ekstra sürücüler için çıktıyı kontrol edin.


lsblk

Hedef ile bağlantıyı onaylamak için başlatıcı'da kullanılabilecek diğer komut şu şekilde "iscsiadm"dir:


iscsiadm -m session

Bağlantıyı onaylamak için son yer, tüm iSCSI bağlantılarını listelemek için 'tgtadm' komutunu kullanan hedefin kendisi olacaktır.


tgtadm --mode conn --op show --tid 1

Bu noktadan itibaren, yeni eklenen iSCSI cihazı normal olarak takılan herhangi bir diske benzer şekilde kullanılabilir! Bölümleme, dosya sistemi oluşturma, bağlama ve/veya kalıcı bağlamanın tümü normal şekilde gerçekleştirilebilir.

iSCSI cihazlarda dikkat edilmesi gereken önemli bir husus, iSCSI hedefinin başlatıcı önyükleme yaparken gerekli olan önemli dosya sistemlerini içeriyorsa, iSCSI cihazının sistem önyüklemesine devam etmeden önce bağlandığından emin olmak için '/etc/fstab' dosyasındaki '_netdev' girişini kullanmak için!