[iSCSI] 建立iSCSI target / initiator on CentOS 6.x


1. 先準備兩台CentOS 6.x,vm配置如下:
  • iSCSIServer (192.168.38.10) - CentOS 6.4 
  • HA1 (192.168.38.11) - CentOS 6.4 
2. 於iSCSIServer安裝設定 iSCSI target
  • yum install scsi-target-utils -y
  • 安裝後可參考下列的組態跟可執行程式
         /etc/tgt/targets.conf:主要設定檔,設定要分享的磁碟格式與哪幾顆;
         /usr/sbin/tgt-admin:線上查詢、刪除 target 等功能的設定工具;
         /usr/sbin/tgt-setup-lun:建立 target 以及設定分享的磁碟與可使用的用戶端等工具軟體。
         /usr/sbin/tgtadm:手動直接管理的管理員工具 (可使用設定檔取代);
         /usr/sbin/tgtd:主要提供 iSCSI target 服務的主程式;
         /usr/sbin/tgtimg:建置預計分享的映像檔裝置的工具 (以映像檔模擬磁碟);
         (參考鳥哥的Linux 私房菜)


3. 於iSCSIServer上設定LUN
  • 設定要分享的空間,這裡用image檔來實作,也可用實際的partition或LV來做
         # mkdir /srv/iscsi
         # dd if=/dev/zero of=/srv/iscsi/disk1.img bs=1M count=1000
         # chcon -Rv -t tgtd_var_lib_t /srv/iscsi   #selinux=disabled的話就不用這行
         # ls -lh /srv/iscsi/disk1.img
           -rw-r--r-- 1 root root 1000M 2013-09-05 11:31 /srv/iscsi/disk1.img
  • 設定iSCSI target檔名 (iqn.yyyy-mm.:identifier)
         #vi /etc/tgt/targets.conf
  • 啟動及開機啟動
         # /etc/init.d/tgtd start
         # chkconfig tgtd on
         # netstat -tlunp | grep tgt   #3260就是使用的預設port
         tcp        0      0 0.0.0.0:3260                0.0.0.0:*         LISTEN      2488/tgtd
         tcp        0      0 :::3260                     :::*                        LISTEN      2488/tgtd
         # tgt-admin --show

        可以看到LUN: 1就是我們開好的 LUN了,另外如有設定firewall的話記得打開3206 port

4.於HA1安裝設定 iSCSI initiator
  • yum install iscsi-initiator-utils -y
  • 安裝後可參考下列的組態跟可執行程式
         /etc/iscsi/iscsid.conf:主要的設定檔,用來連結到 iSCSI target 的設定;
         /sbin/iscsid:啟動 iSCSI initiator 的主要服務程式;
         /sbin/iscsiadm:用來管理 iSCSI initiator 的主要設定程式;
         /etc/init.d/iscsid:讓本機模擬成為 iSCSI initiater 的主要服務;
         /etc/init.d/iscsi:在本機成為 iSCSI initiator 之後,啟動此腳本,讓我們可以登入 iSCSI target。所以 iscsid 先啟動後,才能啟動這個服務。為了防呆,所以          /etc/init.d/iscsi 已經寫了一個啟動指令, 啟動 iscsi 前尚未啟動 iscsid ,則會先呼叫 iscsid 才繼續處理 iscsi 喔!

5.於HA1上設定使用iSCSI target

  • # vi /etc/iscsi/iscsid.conf 
         node.session.auth.username = username
         node.session.auth.password = password
         discovery.sendtargets.auth.username = username
         discovery.sendtargets.auth.password = password
  • # chkconfig iscsid on
  • # chkconfig iscsi on
  • # iscsiadm -m discovery -t sendtargets -p IP:port
  • # ll -R /var/lib/iscsi/nodes/


  • # /etc/init.d/iscsi restart
  • # iscsiadm -m node
  • # iscsiadm -m node -T target名稱(iqn.xxx) --login
  • # fdisk -l   #看結果


6. 利用LVM的PV, VG, LV來使用這個 LUN
  • # pvcreate /dev/sdb
  • # vgcreate iscsi /dev/sdb
  • # vgdisplay    #可看到FreePESize
  • # lvcreate -l FreePESize -n disk iscsi
  • # lvdisplay 
  • # mkfs -t ext4 /dev/iscsi/disk
  • # mkdir -p /data/iscsi
  • # vi /etc/fstab
  • 加入/dev/iscsi/disk /data/iscsi ext4 default,_netdev 1 2
  • # mount -a
  • # df -Th

沒有留言:

張貼留言