网络驱动器设备:iscsi服务器

1.Ubuntu11.10node

2.使用背景:linux

   作为服务器的系统一般是须要储存设备的,而储存设备除了可使用系统内建的磁盘以外,若是内建的磁盘容量不够大, 并且也没有额外的磁盘插槽 (SATA 或 IDE) 可用时,那么常看法决的方案就是增长 NAS (网络附加储存服务器) 或外接式储存设备。再高档一点的系统,可能就会用到 SAN (储存局域网络) 。vim

   NAS (Network Attached Storage, 网络附加储存服务器)其实就是一部设定好的主机了,只要将 NAS 链接上网络,那么在网络上面的其余主机就可以存取 NAS 上头的资料了。简单的说,NAS 就是一部 file server,因为NAS也接在网络上面,因此,若是网络上有某个用户大量存取 NAS 上的数据时,会很容易形成网络停顿,低阶的 NAS 一般会使用 Linux 系统搭配软件磁盘阵列来提供大容量文件系统。此外,NAS 也一般支持 TCP/IP ,并会提供 NFS, SAMBA, FTP 等常见的通信协议来提供客户端取得文件系统。centos

   SAN (Storage Area Networks, 储存局域网络)能够透过某些特殊的接口或信道来提供局域网络内的全部机器进行磁盘存取,SAN 是提供『磁盘 (block device)』给主机用,而不是像 NAS 提供的是『网络协议的文件系统 (NFS, SMB...)』!SAN能够进行格式化操做而NAS却不能进行此类操做。SAN 开发的目的是要提供大量的磁盘给用户,早期的 SAN 大多配合光纤信道 (Fibre Channel) 来提供高速的数据传输。目前标准的光纤信道是速度是 2GB ,将来还可能到达 10GB 以上~不过,使用光纤等技术较高的设备,固然就比较贵一些。现今的以太网络媒体 (网络卡、交换器、路由器等等设备) 已经能够达到 GB 的速度了,离 SAN 的光纤信道速度其实差别已经缩小不少~那么是否咱们能够透过这个 GB 的以太网络接口来链接到 SAN 的设备呢?这就是咱们接下来要提到的 iSCSI 架构啦!服务器

3.iSCSI介绍:网络

   iSCSI技术是一种由IBM公司研究开发的,是一个供硬件设备使用的能够在IP协议的上层运行的SCSI指令集,这种指令集合能够实如今IP网络上运行SCSI协议,使其可以在诸如高速千兆以太网上进行路由选择。iSCSI技术是一种新储存技术,该技术是将现有SCSI接口与以太网络(Ethernet)技术结合,使服务器可与使用IP网络的储存装置互相交换资料。session

   iSCSI 主要是透过 TCP/IP 的技术,将储存设备端透过 iSCSI target (iSCSI 目标) 功能,作成能够提供磁盘的服务器端,再透过 iSCSI initiator (iSCSI 初始化用户) 功能,作成可以挂载使用 iSCSI target 的客户端,如此便能透过 iSCSI 协议来进行磁盘的应用了 。 架构

   iSCSI 这个架构主要将储存装置与使用的主机分为两个部分,分别是:工具

iSCSI target:就是储存设备端,存放磁盘或 RAID 的设备,目前也可以将 Linux 主机仿真成 iSCSI target 了!目的在提供其余主机使用的『磁盘』;spa

iSCSI initiator:就是可以使用 target 的客户端,一般是服务器。 也就是说,想要链接到 iSCSI target 的服务器,也必需要安装 iSCSI initiator 的相关功能后才可以使用 iSCSI target 提供的磁盘就是了。

以下图所示,iSCSI 是在 TCP/IP 上面所开发出来的一套应用,因此得要有网络才行啊!

 

iSCSI 与 TCP/IP 相关性

4.server端(磁盘供给者)安装软件:tgt

5.client 端(磁盘使用者)安装软件  :open-iscsi

6.实验条件:在安装Ubuntu的时候应该规划好磁盘配额,最好留出一部分磁盘空间方便后续的利用和实验

7.开始试验:

   server端

   

  • /etc/tgt/targets.conf:主配置文件;
  • /usr/sbin/tgt-admin:线上查询、删除target等功能的设定工具。

   mkdir /home/lyang/iscsi

   dd if=/dev/zero of=/home/lyang/iscsi/disk1.img bs=1M count=100

   chcon -Rv -t tgtd_var_lib_t /home/lyang/iscsi/

   vim /etc/tgt/targets.conf

    <target iqn.2014-03.ly.Ubuntu:lyangdisk>

           backing_store /home/lyang/iscsi/disk1.img

           initiator-address 192.168.2.0/24

           incominguser lyang 218909

           write-cache off

    </target> 

     /etc/init.d/tgt start

     chkconfig tgt on

     tgt-admin --show

     client 端

     apt-get install open-iscsi

     vim /etc/iscsi/iscsid.conf

     node.session.auth.username = lyang

     node.session.auth.passwd    = 218909

     discovery.sendtargets.auth.username = lyang

     discovery.sendtargets.auth.password  = 218909

  • 偵測 192.168.2.4 这部 target 的相关资料
[root@clientlinux ~]# iscsiadm -m discovery -t sendtargets -p IP:port
選項與參數: -m discovery :使用偵測的方式進行 iscsiadmin 指令功能; -t sendtargets :透過 iscsi 的協定,偵測後面的設備所擁有的 target 資料 -p IP:port :就是那部 iscsi 設備的 IP 與埠口,不寫埠口預設是 3260 囉!

範例:偵測 192.168.2.4 這部 iSCSI 設備的相關資料
[root@clientlinux ~]# iscsiadm -m discovery -t sendtargets -p 192.168.2.4
192.168.2.4:3260,1  iqn.2014-03.ly.Ubuntu:lyangdisk
# 192.168.2.4:3260,1 :在此 IP, 埠口上面的 target 號碼,本例中為 target1
# iqn.2014-03.ly.Ubuntu:lyangdisk :就是我們的 target 名稱啊!

[root@clientlinux ~]# ll -R /var/lib/iscsi/nodes/
/var/lib/iscsi/nodes/iqn.2011-08.vbird.centos:vbirddisk
/var/lib/iscsi/nodes/iqn.2011-08.vbird.centos:vbirddisk/192.168.100.254,3260,1
# 上面的特殊字體部分,就是我們利用 iscsiadm 偵測到的 target 結果!

現在我們知道了 target 的名稱,同時將全部偵測到的資訊统统寫入到上述 /var/lib/iscsi/nodes/iqn.2011-08.vbird.centos:vbirddisk/192.168.100.254,3260,1 目錄內的 default 檔案中, 若資訊有修訂過的話,那你能够到這個檔案內修改,也能够透過 iscsiadm 的 update 功能處理相關參數的。

 

  • 開始進行連線 iSCSI target

因為我們的 initiator 可能會連接多部的 target 設備,所以,我們得先要瞧瞧目前系統上面偵測到的 target 有幾部, 然後再找到我們要的那部 target 來進行登入的做業。不過,若是你想要將全部偵測到的 target 所有都登入的話, 那麼整個步驟能够再簡化:

範例:根據前一個步驟偵測到的資料,啟動所有的 target
[root@clientlinux ~]# /etc/init.d/open-iscsi restart
正在中止 iscsi:                                 [  確定  ]
正在啟動 iscsi:                                 [  確定  ]
# 將系統裡面所有的 target 统统以 /var/lib/iscs/nodes/ 內的設定登入 # 上面的特殊字體比較须要注意啦!你只要作到這裡便可,底下的瞧瞧就好。

範例:顯示出目前系統上面全部的 target 資料:
[root@clientlinux ~]# iscsiadm -m node
192.168.100.254:3260,1 iqn.2014-03.ly.Ubuntu:lyangdisk
選項與參數: -m node:找出目前本機上面全部偵測到的 target 資訊,可能並未登入喔

範例:僅登入某部 target ,不要从新啟動 iscsi 服務
[root@clientlinux ~]# iscsiadm -m node -T target名稱 --login
選項與參數: -T target名稱:僅使用後面接的那部 target ,target 名稱可用上個指令查到! --login :就是登入啊!
[root@clientlinux ~]# fdisk -l
 

惟一要注意的,就是 iSCSI target 每次都要比 iSCSI initiator 這部主機還要早開機,否則我們的 initiator 恐怕就會出問題。

                    iscsiadm -m node -l(Ubuntu用上述登陆命令出错,用此命令正常)

  • 更新/刪除/新增 target 資料的方法

若是你的 iSCSI target 可能因為某些缘由被拿走了,或者是已經不存在於你的區網中,或者是要送修了~ 這個時候你的 iSCSI initiator 總是得要關閉吧!可是,又不能所有關掉 (/etc/init.d/iscsi stop), 因為還有其余的 iSCSI target 在使用。這個時候該如何取消不要的 target 呢?很簡單!流程以下:

[root@clientlinux ~]# iscsiadm -m node -T targetname --logout
[root@clientlinux ~]# iscsiadm -m node -o [delete|new|update] -T targetname
選項與參數: --logout :就是登出 target,可是並沒有刪除 /var/lib/iscsi/nodes/ 內的資料 -o delete:刪除後面接的那部 target 連結資訊 (/var/lib/iscsi/nodes/*) -o update:更新相關的資訊 -o new :增长一個新的 target 資訊。

範例:關閉來自鳥哥的 iSCSI target 的資料,並且移除連結
[root@clientlinux ~]# iscsiadm -m node   <==還是先秀出相關的 target iqn 名稱
192.168.100.254:3260,1 iqn.2011-08.vbird.centos:vbirddisk
[root@clientlinux ~]# iscsiadm -m node -T iqn.2011-08.vbird.centos:vbirddisk \
>  --logout
Logging out of session [sid: 1, target: iqn.2011-08.vbird.centos:vbirddisk,
 portal: 192.168.100.254,3260]
Logout of [sid: 1, target: iqn.2011-08.vbird.centos:vbirddisk, portal:
 192.168.100.254,3260] successful.
# 這個時候的 target 連結還是存在的,雖然登出你還是看的到!

[root@clientlinux ~]# iscsiadm -m node -o delete \
>  -T iqn.2011-08.vbird.centos:vbirddisk
[root@clientlinux ~]# iscsiadm -m node
iscsiadm: no records found! <==嘿嘿!不存在這個 target 了~

[root@clientlinux ~]# /etc/init.d/iscsi restart
# 你會發現唔!怎麼 target 的資訊不見了!這樣瞭了乎!
相关文章
相关标签/搜索