Linux İşletim Sistemlerinde iSCSI Hedef ve Başlatıcı Yapılandırması

iSCSI

Bu makalemizde Linux İşletim Sistemlerinde iSCSI (iSCSI Targets and Initiators) yapılandırmasını inceleyeceğiz.

iSCSI Nedir ? (Internet Small Computer System Interface)

iSCSI, depolama aygıtlarını TCP/IP kullanan bir ağ üzerinden bağlama yöntemidir. Yerel ağ (LAN), geniş alan ağı (WAN) veya Internet üzerinden kullanılabilir. iSCSI aygıtları, ağ üzerinden erişilebilen başka bir bilgisayarda bulunan, bağlanabileceğiniz disk, teyp, CD ve benzeri diğer depolama aygıtlarıdır. Bu depolama aygıtları bazen depolama alanı ağı (SAN) olarak adlandırılan ağın parçasıdır. Bilgisayarınız ve depolama aygıtı arasındaki ilişkilendirmede, aygıtla bağlantıyı (hedef denir) bilgisayarınız başlattığı için başlatıcı olarak adlandırılır. Tek dezavantajı diğer disk yapılandırmalarına göre network tabanlı olduğu için performans onlar kadar yoktur. Ancak günümüzde gelişen Cloud mimarisi içerisinde önemli bir yeri vardır.

  • Şimdi  iSCSI hedef yapılandırmasına geçelim;

1. Öncelikle “root” kullanıcısı ile sunucumuza iSCSI Target paketini kuruyoruz.

# yum install scsi-target-utils

2. Kurulum işlemi tamamlandıktan sonra servisi başlatıyoruz ayrıca sunucumuz yeniden başladığında servisin otomatik olarak başlaması için gerekli ayarı yapıyoruz.

# service tgtd start
Starting SCSI target daemon: [  OK  ]

# chkconfig tgtd on

3. Sunucumuza iSCSI olarak atanmış diski buluyoruz. Sonrasında “/etc/tgt/targets.conf” dosyası içinde gerekli yapılandırmaları yapıyoruz.

# ll /dev/sd*
brw-rw---- 1 root disk 8,  0 Mar 15 14:51 sda
brw-rw---- 1 root disk 8,  1 Mar 15 14:51 sda1
brw-rw---- 1 root disk 8,  2 Mar 15 14:51 sda2
brw-rw---- 1 root disk 8, 16 Mar 15 14:51 sdb
brw-rw---- 1 root disk 8, 17 Mar 15 14:51 sdb1
brw-rw---- 1 root disk 8, 32 Mar 15 14:51 sdc
brw-rw---- 1 root disk 8, 33 Mar 15 14:51 sdc1
brw-rw---- 1 root disk 8, 48 Mar 15 14:51 sdd

-- Benim sunucuma göre burada gördüğümüz "sdd" isimli
diskimiz iSCSI ile atanmış olandır.

-- iSCSI yapılandırma dosyası gerekli ayarları yapıyoruz.

# vim /etc/tgt/targets.conf

-- açtığımız dosyadaki en alt satıra aşağıdaki gibi
ayarlarımızı giriyoruz. Burada ben kendi sunucu ismimi
ve disk adımı kullandım bu değişkenleri kendi sunucunuza
göre ayarlamalısınız.

# iSCSI Server Yapilandirmasi
<target koraykey-db:drive1>
    backing-store /dev/sdd
</target>

-- Bu ayarları tamamlandıktan sonra değişikliklerin geçerli
olabilmesi için servisimizi yeniden başlatıyoruz.

# service tgtd restart
Stopping SCSI target daemon: [  OK  ]
Starting SCSI target daemon: [  OK  ]

4. iSCSI hedefimiz aşağıdaki komutu kullandığımızda görünür olacaktır.

# tgtadm --lld iscsi --mode target --op show
Target 1: koraykey-db:drive1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 1
            Type: disk
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 1074 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdd
            Backing store flags: 
    Account information:
    ACL information:
        ALL

5. Sunucumuzda firewall servisimiz etkin ise aşağıdaki ayarlamaları yaparak gerekli izinleri vermeliyiz. Eğer firewall servisimiz devre dışı ise bu adımı atlayabiliriz.

# iptables -A INPUT -p udp --dport 3260 -j ACCEPT
  • iSCSI hedefi oluşturma işlemimiz tamamlandı şimdi başlatıcı yapılandırmasına geçebiliriz.

1. Öncelikle sunucumuzda mevut değilse aşağıdaki paketi kuruyoruz. Genelde iSCSI target paketini kurduğumuzda bağımlılık olarak bu pakette kurulmuş oluyor.

# yum install iscsi-initiator-utils
Loaded plugins: aliases, changelog, downloadonly, kabi,
presto, refresh-packagekit, security, tmprepo, verify
Loading support for kernel ABI
Setting up Install Process
Package iscsi-initiator-utils-6.2.0.873-2.0.1.el6.x86_64 
already installed and latest version
Nothing to do

-- Görüldüğü gibi benim sunucumda kurulu olduğu için gerek yok
uyarısı alıyoruz.

2.  Kurulum işlemi tamamlandıktan sonra servisi başlatıyoruz ayrıca sunucumuz yeniden başladığında servisin otomatik olarak başlaması için gerekli ayarı yapıyoruz.

# service iscsi restart
Stopping iscsi: [  OK  ]

3. iSCSI target ile oluşturmuş olduğumuz diskimizi yapılandırıp formatlıyoruz. 

# fdisk /dev/sdd
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-130, default 1): 
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-130, default 130): 
Using default value 130

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

1. soruda "n" diyerek yeni bölüm oluşturuyoruz.
2. soruda "p" diyerek primary bölüm oluşturuyoruz.
3. soruda "1" diyerek partition numarasını veriyoruz.
4. ve 5. soruda "enter" tuşuna basarak default değerlerini veriyoruz.
6. soruda "w" diyerek değişiklikleri uyguluyoruz.

-- Ardından diskimizi istediğimiz dosya sistemi ile formatlıyoruz.

# mkfs.ext4 /dev/sdd1
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65280 inodes, 261048 blocks
13052 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 23 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.

4. Aşağıdaki komut ile diskimizin UUID’sinin oluştuğunu doğruluyoruz.

# blkid /dev/sdd1
/dev/sdd1: UUID="cb96f7b4-4342-4200-b10e-d0afe4fdbadf" TYPE="ext4"

5. Diskimizi oluşturduktan sonra erişebilmemiz için “/” dizini altına bağlamalıyız bunun için öncelikle bir dizin oluşturuyoruz.

# mkdir /koraykey_iscsi_disk1

-- Buradaki dizin isimlendirmesini istediğinize göre yapabilirsiniz
sadece /etc/fstab dosyamızda da aynı ismi girmeliyiz. 

6. Şimdi sunucumuz açıldığında otomatik mount olabilmesi için “/etc/fstab” dosyamıza disk bilgilerimizi giriyoruz. Diskimizi hemen mount edebilmek içinde bu bilgilerin girilmesi gerekmektedir.

# vim /etc/fstab

UUID="cb96f7b4-4342-4200-b10e-d0afe4fdbadf"    /koraykey_iscsi_disk1    ext4    defaults    0 0

-- Burada dikkat edeceğimiz UUID az önce sorguladığımız ID olmalı 
disk yoluda oluşturduğumuz dizin ismi olmalıdır.

7. Diskimizi hemen mount edebilmek için aşağıdaki komutu kullanıyoruz.

# mount /koraykey_iscsi_disk1

-- Diskimiz kullanıma hazır artık diske erişebiliriz.

-- Deneme için bir dizin yaratıyorum.

# cd /koraykey_iscsi_disk1/
# mkdir denemedizini
# ls
denemedizini  lost+found

iSCSI hedef ve başlatıcı (iSCSI Targets and Initiators) yapılandırmamızı tamamladık artık kullanabilir.

Burada uygulanan adımlar Oracle Enterprise Linux 6.4 64 Bit üzerinde denenmiştir. Aynı zamanda diğer Linux sürümleriyle uyumludur.

Başka bir makalede görüşmek üzere…

Bu yazı Unix / Linux kategorisine gönderilmiş ve , , , , , , , , , ile etiketlenmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.