Linux配置ISCSI服务器

参考Vbird的博文

http://linux.vbird.org/linux_server/0460iscsi.php

 

 

18.1 �W路�n案系�y�是�W路磁碟
 

做�樗欧�器的系�y通常是需要�Υ嬖O�涞模�而�Υ嬖O�涑�了可以使用系�y�冉ǖ拇诺�之外,如果�冉ǖ拇诺�容量不�虼螅� 而且也�]有�~外的磁碟插槽 (SATA 或 IDE) 可用�r,那�N常�解�Q的方案就是增加 NAS (�W路附加�Υ嫠欧�器) 或外接式�Υ嬖O�洹T俑�n一�c的系�y,可能就��用到 SAN (�Υ�^域�W路) �@��高�F的玩意�� (�]1)。

不�^,不�是哪一�N架��,基本上,它��的�炔坑驳�通常是以磁碟�列 (RAID) 作�榛��A的。磁碟�列我��在基�A篇第三版的第十五章��^了,�@�e就不再�铀簟_@�e想要�t解的是,啥是 NAS 又啥是 SAN ? �@�烧哂泻尾煌�?�c本章主�}有�P的 iSCSI 又是啥呢?底下就�我���碚�一�。

 

小�祟}的�D示 18.1.1 NAS �c SAN

由於企�I的�Y料量越�碓酱螅�而且重要性�c保密性越�碓礁撸�尤其�似�Y料�斓�热荩�常常容量�挝皇且� TB (1TB = 1024GB) 在�M行�算的。哇!真可怕!所以�樱�磁碟�列的��用就很重要了。那�N磁碟�列通常是在哪�e呢? 磁碟�列通常是 (1)主�C�炔坑写诺��列控制卡,可以自行管理磁碟�列。不�^想要提供磁碟�列的容量, 得要透�^�~外的�W路服�詹判校� (2)外接式磁碟�列�O�洌�就是�渭�的磁碟�列�O�洌�必�透�^某些介面�B�Y到主�C上, 主�C也要安�b�m��的��映淌结幔�才能捉到�@���O�渌�提供的磁碟容量。

不�^,以目前的�Y�社���碚f,你���很少�到�冉�或外接的 RAID 了,常常�到的���是 NAS �c SAN ,那�@是啥咚咚? �我����蔚�碚f�f:

 

  • NAS (Network Attached Storage, �W路附加�Υ嫠欧�器)

基本上,NAS 其��就是一部客制化好的主�C了,只要�� NAS �B接上�W路,那�N在�W路上面的其他主�C就能�虼嫒� NAS 上�^的�Y料了。��蔚恼f,NAS 就是一部 file server �印�不�^,NAS 由於也是接在�W路上面,所以,如果�W路上有某��用�舸罅看嫒� NAS 上�^的�Y料�r,是很容易造成�W路停�D的���}的,�@��比�^麻��c~低�A的 NAS 通常��使用 Linux 系�y搭配��w磁碟�列�硖峁┐笕萘�n案系�y。不�^效能嘛就有待加��啦!此外,NAS 也通常支援 TCP/IP ,�K��提供 NFS, SAMBA, FTP 等常�的通��f定�硖峁┯�舳巳〉�n案系�y。

那�槭颤N不要直接使用��人��X安�b Linux 再搭配相�P的服�眨�即可提供 NAS �A�要提供的大容量空�g啦!�致镄枰� NAS 呢? 因�椋�通常 NAS ���包括很多�M�B的介面,通常是利用 Web 介面�砜刂拼诺��列的�O定��r、提供 IP 或其他相�P�W路�O定, 以及是否提供某些特定的服�盏鹊取R�榫哂休^�橛H和的操作�c控制介面,��於非 IT 的人�T�碚f,控管�^�槿菀桌病� �@也是 NAS 存在的目的。

不�^,目前倒是有�似 FreeNAS 的��w�_�l�0� (http://sourceforge.net/projects/freenas/, �]2),可以�你的 Linux PC �成一部可透�^ Web 控管的 NAS 哩!不�^不是本章的重�c,有�d趣的朋友可以自行前往下�d�c安�b���w�硗嫱妗�

 

  • SAN (Storage Area Networks, �Υ�^域�W路)

�纳厦娴恼f明�砜矗�其��那�� NAS 就是一部可以提供大容量�n案系�y的主�C嘛! 那我��知道�尾恐�C能�蛱峁┑牟宀墼僭觞N�f也是有限的! 所以�K不能�o限制的安插磁碟在同一部���w主�C上面。但是如果偏偏你就是有大量磁碟使用的需求,那�r�如何是好? �@�r就得要使用到 SAN �@玩意�豪玻�

最��蔚目捶ǎ�就是�� SAN ��橐��外接式的�Υ嬖O�洹V皇�渭�的外接式�Υ嬖O��H能透�^某些介面 (如 SCSI 或 eSATA) 提供�我徊恐�C使用,而 SAN �s可以透�^某些特殊的介面或通道�硖峁�^域�W路�鹊乃�有�C器�M行磁碟存取。要注意喔,SAN 是提供『磁碟 (block device)』�o主�C用,而不是像 NAS 提供的是『�W路�f定的�n案系�y (NFS, SMB...)』!�@�烧叩牟町�挺大的喔!因此,�燧d使用 SAN 的主�C��多出一��大磁碟,�K可��� SAN 提供的磁碟�M行分割�c格式化等�幼鳌O胂肟矗�你能�� NAS 提供的�n案系�y格式化�幔坎恍邪桑∵@�硬t解差��否?

另外,既然 SAN 可以提供磁碟,而 NAS �t是提供相�P的�W路�n案系�y,那�N NAS 能不能透�^�W路去使用 SAN 所提供的磁碟呢?答案��然是可以啊!因�� SAN 最大的目的就是在提供磁碟�o伺服器主�C使用,NAS 也是一部完整的伺服器, 所以 NAS ��然可以使用 SAN 啦!同�r其他的�W路伺服器也能�蚴褂眠@�� SAN �磉M行�Y料存取。

此外,既然 SAN �_�l的目的是要提供大量的磁碟�o使用者,那�N�鬏�的速度��然是非常重要的。因此,早期的 SAN 大多配合光�w通道 (Fibre Channel) �硖峁└咚俚馁Y料�鬏�。目前��实墓饫w通道是速度是 2GB ,未�磉�可能到�_ 10GB 以上呢~不�^,使用光�w等技�g�^高的�O�洌���然就比�^�F一些。

拜乙太�W路盛行,加上技�g成熟之�n,�F今的乙太�W路媒�w (�W路卡、交�Q器、路由器等等�O��) 已�可以�_到 GB 的速度了,�x SAN 的光�w通道速度其��差��已��s小很多啦~那�N是否我��可以透�^�@�� GB 的乙太�W路介面�磉B接到 SAN 的�O�淠兀窟@就是我��接下�硪�提到的 iSCSI 架��啦! ^_^

小�祟}的�D示 18.1.2 iSCSI 介面

早期的企�I使用的伺服器若有大容量磁碟的需求�r,通常是透�^ SCSI �泶�接 SCSI 磁碟,因此伺服器上面必�要加�b SCSI 介面卡,而且�@�� SCSI 是��凫对�伺服器的。後�磉@��外接式的 SCSI �O�浔簧鲜鎏岬降� SAN 的架��所取代, 在 SAN 的��始��下,�m然有很多的伺服器可以�ν�一�� SAN �M行存取的�幼鳎�不�^�榱怂俣刃枨螅�通常使用的是光�w通道。 但是光�w通道就是�F嘛!不但�O�滟F,伺服器上面也要有光�w介面,很麻��~所以光�w的 SAN 在中小企�I很�y普及啊~

後�砭W路��在太普及,尤其是以 IP 封包�榛��A的 LAN 技�g已�很成熟,再加上乙太�W路的速度越�碓娇欤� 所以就有�S商�� SAN 的�B接方式改�槔�用 IP 技�g�硖�理。然後再透�^一些��实挠�定,最後就得到 Internet SCSI (iSCSI) �@玩意的�a生啦!iSCSI 主要是透�^ TCP/IP 的技�g,��Υ嬖O�涠送高^ iSCSI target (iSCSI �说�) 功能,做成可以提供磁碟的伺服器端,再透�^ iSCSI initiator (iSCSI 初始化用��) 功能,做成能��燧d使用 iSCSI target 的用�舳耍�如此便能透�^ iSCSI �f定�磉M行磁碟的��用了 (�]3)。

也就是�f,iSCSI �@��架��主要��Υ嫜b置�c使用的主�C分����部分,分�e是:

  • iSCSI target:就是�Υ嬖O�涠耍�存放磁碟或 RAID 的�O�洌�目前也能��� Linux 主�C模�M成 iSCSI target 了!目的在提供其他主�C使用的『磁碟』;

     
  • iSCSI initiator:就是能�蚴褂� target 的用�舳耍�通常是伺服器。 也就是�f,想要�B接到 iSCSI target 的伺服器,也必�要安�b iSCSI initiator 的相�P功能後才能�蚴褂� iSCSI target 提供的磁碟就是了。

如下�D所示,iSCSI 是在 TCP/IP 上面所�_�l出�淼囊惶��用,所以得要有�W路才行啊!

iSCSI �c TCP/IP 相�P性
�D 18.1-1、iSCSI �c TCP/IP 相�P性
小�祟}的�D示 18.1.3 各元件相�P性

由上面的�f明中,我��可以知道一部伺服器如何取得磁碟或者是�n案系�y�砝�用呢?基本上就是:

  • 直接存取 (direct-attached storage):例如本�C上面的磁碟,就是直接存取�O�洌�
  • 透�^�Υ�^域�W路 (SAN):�碜�^�W�鹊钠渌��Υ嬖O�涮峁┑拇诺�;
  • �W路�n案系�y (NAS):�碜� NAS 提供的�n案系�y,只能立即使用,不可�M行格式化。

�@三���|西�c伺服器主�C能用的�n案系�y之�g可以用�S基百科的�D示�碚故荆�

伺服器取得�n案系�y的三���碓�
�D 18.1-2、伺服器取得�n案系�y的三���碓� (�Y料�碓�� �]1)

�纳�D中,我��可以�l�F在一般的主�C�h境下,磁碟�b置 (SATA, SAS, FC) 可以透�^主�C的介面 (DAS) �碇苯舆M行�n案系�y的建立 (mkfs �M行格式化),如果想要使用外部的磁碟,那可以透�^ SAN (�群�多��磁碟的�O��),然後透�^ iSCSI 等介面�磉B�, ��然,�是得要�M行格式化等�幼� (假�O�@�� SAN 尚未被使用�r)。最後,如果是 NAS 的�l件下,那�N NAS 必�要先透�^自己的作�I系�y�⒋诺��b置�M行�n案系�y的建立後,再以 NFS/CIFS 等方式�硖峁┢渌�主�C�燧d使用。

接下�恚��W路伺服器、用�舳讼到y、NAS �c SAN 的角色在�^�W�e面又是如何呢?我��依�f使用�S基百科的�D示�碚f明一下 (DAS 是每部主�C�炔康拇诺�,即底下�D示中的�A柱�w):

各元件之�g的相�P性
�D 18.1-3、各元件之�g的相�P性 (�Y料�碓�� �]1)

NAS 可以使用自己的磁碟,也能�蛲高^光�w或乙太�W路取得 SAN 所提供的磁碟�硌u作成�榫W路�n案系�y,提供其他人的使用。 Server 可以透�^ NFS/CIFS 等方式取得 NAS 的�n案系�y,��然也能�蛑苯哟嫒� SAN 的磁碟。用�舳酥饕��t是透�^�W路�n案系�y, �K且直接使用 Server 提供的�W路�Y源 (如 FTP, WWW, mail 等等)。

大�祟}的�D示18.2 iSCSI target 的�O定
 

能�蛲瓿� iSCSI target/initiator �O定的�0阜浅6� (�]4),�B哥找的到的就有底下�@���:

  • Linux SCSI target framework (tgt):http://stgt.sourceforge.net/
  • Linux-iSCSI Project:http://linux-iscsi.sourceforge.net/
  • Open-iSCSI:http://www.open-iscsi.org/

由於被我�� CentOS 6.x 官方直接使用的是 tgt �@����w,因此底下我����使用 tgt �斫榻B整�� iSCSI target 的�O定喔!

 

小�祟}的�D示 18.2.1 所需��w�c��w�Y��

CentOS �� tgt 的��w名�Q定�x�� scsi-target-utils ,因此你得要使用 yum 去安�b他才行。至於用�碜�� initiator 的��w�t是使用 linux-iscsi 的�0福���0杆�提供的��w名�Q�t�� iscsi-initiator-utils 。所以,�的�碚f,你需要的��w有:

  • scsi-target-utils:用��� Linux 系�y模�M成�� iSCSI target 的功能;
  • iscsi-initiator-utils:�燧d�碜� target 的磁碟到 Linux 本�C上。

那�N scsi-target-utils 主要提供哪些�n案呢?基本上有底下���比�^重要需要注意的:

  • /etc/tgt/targets.conf:主要�O定�n,�O定要分享的磁碟格式�c哪�最w;
  • /usr/sbin/tgt-admin:�上查�、�h除 target 等功能的�O定工具;
  • /usr/sbin/tgt-setup-lun:建立 target 以及�O定分享的磁碟�c可使用的用�舳说裙ぞ哕��w。
  • /usr/sbin/tgtadm:手�又苯庸芾淼墓芾�T工具 (可使用�O定�n取代);
  • /usr/sbin/tgtd:主要提供 iSCSI target 服�盏闹鞒淌剑�
  • /usr/sbin/tgtimg:建置�A�分享的映像�n�b置的工具 (以映像�n模�M磁碟);

其�� CentOS 已��⒑芏喙δ芏荚O定好了,因此我��只要修��O定�n,然後��� tgtd �@��服�站涂梢�樱� 接下�恚�就�我�����H�硗嬉煌� iSCSI target 的�O定吧!

小�祟}的�D示 18.2.2 target 的���H�O定

�纳厦娴姆治�砜矗�iSCSI 就是透�^一���W路介面,�⒓扔械拇诺��o分享出去就是了。那�N有哪些�型的磁碟可以分享呢? �@包括:

  • 使用 dd 指令所建立的大型�n案可供模�M�榇诺� (�o��A先格式化);
  • 使用�我环指畈� (partition) 分享�榇诺�;
  • 使用�我煌暾�的磁碟 (�o��A先分割);
  • 使用磁碟�列分享 (其���c�我淮诺�相同方式);
  • 使用��w磁碟�列 (software raid) 分享成�我淮诺�;
  • 使用 LVM 的 LV �b置分享�榇诺�。

其���]有那�N�}�s,我��大概知道可以透�^ (1)大型�n案; (2)�我环指畈郏� (3)�我谎b置 (包括磁碟、�列、��w磁碟�列、LVM 的 LV �b置�n名等等) �磉M行分享。在本小���中,我���⑼高^新的分割�a生新的�]有用到的分割槽、LVM ���暂S、大型�n案等三��咚咚�磉M行分享。既然如此,那就得要先�砀愣ㄟ@些咚咚�樱� 要注意喔,等一下我��要分享出去的�Y料,最好不要被使用,也最好不要�_�C就被�燧d (/etc/fstab ��中�]有存在��的意思)。 那�N就�硗嫱婵�樱�

 

  • 建立所需要的磁碟�b置

既然 iSCSI 要分享的是磁碟,那�N我��得要��浜冒。∧壳邦A���涞拇诺��椋�

  • 建立一��名�� /srv/iscsi/disk1.img 的 500MB �n案;
  • 使用 /dev/sda10 提供 2GB 作�榉窒� (�牡谝徽碌侥壳�橹沟姆指��);
  • 使用 /dev/server/iscsi01 的 2GB LV 作�榉窒� (再加入 5GB /dev/sda11 到 server VG 中)。

���H�理的方式如下:

# 1. 建立大型�n案:
[root@www ~]# mkdir /srv/iscsi
[root@www ~]# dd if=/dev/zero of=/srv/iscsi/disk1.img bs=1M count=500
[root@www ~]# chcon -Rv -t tgtd_var_lib_t /srv/iscsi/
[root@www ~]# ls -lh /srv/iscsi/disk1.img
-rw-r--r--. 1 root root 500M Aug  2 16:22 /srv/iscsi/disk1.img <==容量�Φ模�

# 2. 建立���H的 partition 分割:
[root@www ~]# fdisk /dev/sda  <==���H的分割方式自己�理吧!
[root@www ~]# partprobe       <==某些情�r下得 reboot 喔!
[root@www ~]# fdisk -l
   Device Boot      Start         End      Blocks   Id  System
/dev/sda10           2202        2463     2104483+  83  Linux
/dev/sda11           2464        3117     5253223+  8e  Linux LVM
# 只有�出 /dev/sda{10,11} �Y�,其他的都省略了。注意看容量,上述容量�挝� KB

[root@www ~]# swapon -s; mount | grep 'sda1'
# 自己�y�一下 /dev/sda{10,11} 不能�虮皇褂绵福∪粲斜皇褂茫�� umount 或 swapoff

# 3. 建立 LV �b置 :
[root@www ~]# pvcreate /dev/sda11
[root@www ~]# vgextend server /dev/sda11
[root@www ~]# lvcreate -L 2G -n iscsi01 server
[root@www ~]# lvscan
  ACTIVE            '/dev/server/myhome' [6.88 GiB] inherit
  ACTIVE            '/dev/server/iscsi01' [2.00 GB] inherit
  • ���分享的 iSCSI target �n名

iSCSI 有一套自己分享 target �n名的定�x,基本上,藉由 iSCSI 分享出�淼� target �n名都是以 iqn �殚_�^,意思是:『iSCSI Qualified Name (iSCSI 合格名�Q)』的意思(�]5)。那�N在 iqn 後面要接啥�n名呢?通常是�@�拥模�

iqn.yyyy-mm.<reversed domain name>:identifier
iqn.年年-月.�挝痪W域名的反�D��法  :�@��分享的target名�Q

�B哥做�@���y�的�r�g是 2011 年 8 月份,然後�B哥的�C器是 www.centos.vbird ,反�D�W域��法�� vbird.centos, 然後,�B哥想要的 iSCSI target 名�Q是 vbirddisk ,那�N就可以�@���:

  • iqn.2011-08.vbird.centos:vbirddisk

另外,就如同一般外接式�Υ嫜b置 (target 名�Q) 可以具有多��磁碟一�樱�我��的 target 也能��碛���磁碟�b置的。 每��在同一�� target 上�^的磁碟我��可以�⑺�定�x�����挝痪�� (Logical Unit Number, LUN)。我��的 iSCSI initiator 就是跟 target �f�{後才取得 LUN 的存取�嗑褪橇� (�]5)。在�B哥的�@����伟咐�中,最�K的�Y果,我����有一�� target ,在�@�� target ��中可以使用三�� LUN 的磁碟。

 

  • �O定 tgt 的�O定�n /etc/tgt/targets.conf

接下�砦��要�_始�硇薷脑O定�n了。基本上,�O定�n就是修改 /etc/tgt/targets.conf 啦。�@���n案的�热菘梢愿牡煤芎��危� 最重要的就是�O定前一�c�定的 iqn 名�Q,以及�名�Q所���的�b置,然後再�o予一些可能��用到的��刀�已。 多�f�o益,�我�����H���作看看:

[root@www ~]# vim /etc/tgt/targets.conf
# 此�n案的�Z法如下:
<target iqn.相�P�b置的target名�Q>
    backing-store /你的/��M�b置/完整�n名-1
    backing-store /你的/��M�b置/完整�n名-2
</target>

<target iqn.2011-08.vbird.centos:vbirddisk>
    backing-store /srv/iscsi/disk1.img  <==LUN 1 (LUN 的��通常照�序)
    backing-store /dev/sda10            <==LUN 2
    backing-store /dev/server/iscsi01   <==LUN 3
</target>

事��上,除了 backing-store 之外,在�@���O定�n��中�有一些比�^特�e的��悼梢杂��看看 (man tgt-admin):

  • backing-store (��M的�b置), direct-store (���H的�b置): �O定�b置�r,如果你的整�w磁碟是全部被拿�懋� iSCSI 分享之用,那�N才能�蚴褂� direct-store 。不�^,根���W路上的其他文件, 似乎�f明�@���O定值有�c危�U的�幼印K�以,基本上�是建�h�渭�使用模�M的 backing-store �^佳。例如�B哥的��伟咐�中,就通通使用 backing-store 而已。

     
  • initiator-address (使用者端位址): 如果你想要限制能�蚴褂眠@�� target 的用�舳�碓矗�才需要填���@���O定值。基本上,不用�O定它 (代表所有人都能使用的意思), 因�槲��後���使用 iptables �硪��可以�B�的客�舳寺铮�

     
  • incominguser (使用者�ぬ�密�a�O定): 如果除了�碓� IP 的限制之外,你�想要�使用者�入�っ懿拍苁褂媚愕� iSCSI target 的�,那�N就加用�@���O定�目。 此�O定後面接�����担�分�e是�ぬ��c密�a�印�

     
  • write-cache [off|on] (是否使用快取): 在�A�O的情�r下,tgtd ��使用快取�碓隹焖俣取2贿^,�@�涌赡��有�z失�Y料的�L�U。所以,如果你的�Y料比�^重要的�, 或�S不要使用快取,直接存取�b置��比�^妥��一些。

上面的�O定值要怎�N用呢?�F在,假�O你的�h境中,�H允�S 192.168.100.0/24 �@���W段可以存取 iSCSI target,而且存取�r需要�っ芊�e�� vbirduser, vbirdpasswd ,此外,不要使用快取,那�N原本的�O定�n之外,�得要加上�@�拥��挡判� (基本上,使用上述的�O定即可,底下的�O定是多加�y�用的,不需要填入你的�O定中)。

[root@www ~]# vim /etc/tgt/targets.conf
<target iqn.2011-04.vbird.centos:vbirddisk>
    backing-store /home/iscsi/disk1.img
    backing-store /dev/sda7
    backing-store /dev/server/iscsi01
    initiator-address 192.168.100.0/24
    incominguser vbirduser vbirdpasswd
    write-cache off
</target>
  • ��� iSCSI target 以及�^察相�P埠口�c磁碟�Y�

再��t是��印㈤_�C��樱�以及�^察 iSCSI target 所��拥牟嚎�樱�

[root@www ~]# /etc/init.d/tgtd start
[root@www ~]# chkconfig tgtd on
[root@www ~]# netstat -tlunp | grep tgt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address   Foreign Address   State   PID/Program name
tcp        0      0 0.0.0.0:3260    0.0.0.0:*         LISTEN  26944/tgtd
tcp        0      0 :::3260         :::*              LISTEN  26944/tgtd
# 重�c就是那�� 3260 TCP 封包啦!等一下的防火���毡匾��_放�@��埠口。

# �^察一下我�� target 相�P�Y�,以及提供的 LUN �Y料�热荩�
[root@www ~]# tgt-admin --show
Target 1: iqn.2011-08.vbird.centos:vbirddisk <==就是我��的 target
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller     <==�@是��控制器,�K非可以用的 LUN 喔!
....(中�g省略)....
        LUN: 1
            Type: disk       <==第一�� LUN,是磁碟 (disk) 喔!
            SCSI ID: IET     00010001
            SCSI SN: beaf11
            Size: 2155 MB      <==容量有�@�N大!
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: /dev/sda10 <==磁碟所在的���H�n名
        LUN: 2
            Type: disk
            SCSI ID: IET     00010002
            SCSI SN: beaf12
            Size: 2147 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: /dev/server/iscsi01
        LUN: 3
            Type: disk
            SCSI ID: IET     00010003
            SCSI SN: beaf13
            Size: 524 MB
            Online: Yes
            Removable media: No
            Backing store type: rdwr
            Backing store path: /srv/iscsi/disk1.img
    Account information:
        vbirduser        <==�~外的�ぬ��Y�
    ACL information:
        192.168.100.0/24 <==�~外的�碓� IP 限制

��⑸厦娴馁Y��φ找幌挛��的�O定�n呦!看看有�]有�e�`就是了!尤其注意每�� LUN 的容量、���H磁碟路�剑� 那���目不能�e�`就是了。(照理�f LUN 的�底����c backing-store �O定的�序有�P,不�^,在�B哥的�y�中, 出�F的�序�K不相同!因此,�是需要使用 tgt-admin --show 去查�查�才好!)

 

  • �O定防火��

不�你有�]有使用 initiator-address 在 targets.conf �O定�n中,iSCSI target 就是使用 TCP/IP �鬏��Y料的, 所以你�是得要在防火���仍O定可以�B�的用�舳瞬判校〖热� iSCSI �H�_�� 3260 埠口,那�N我��就�@�N�M行即可:

[root@www ~]# vim /usr/local/virus/iptables/iptables.allow
iptables -A INPUT  -p tcp -s 192.168.100.0/24 --dport 3260 -j ACCEPT

[root@www ~]# /usr/local/virus/iptables/iptables.rule
[root@www ~]# iptables-save | grep 3260
-A INPUT -s 192.168.100.0/24 -p tcp -m tcp --dport 3260 -j ACCEPT
# 最�K要看到上述的�出字�硬攀� OK 的呦!若有其他用�粜枰��B�,
# 自行�}�u iptables.allow �鹊恼Z法,修改�碓炊思纯伞�

大�祟}的�D示18.3 iSCSI initiator 的�O定
 

�完了 target 的�O定,�K且�^察到相�P target 的 LUN �Y料後,接下�砭褪且���燧d使用�印J褂玫姆椒ê芎��危� 只不�^我��得要安�b�~外的��w�砣〉� target 的 LUN 使用�嗑褪橇恕�

 

小�祟}的�D示 18.3.1 所需��w�c��w�Y��

在前一小�就��^了,要�O定 iSCSI initiator 必�要安�b iscsi-initiator-utils 才行。安�b的方法�使用 yum 去�理,�@�e不再多�v�。那�N�@����w的�Y��是如何呢?

  • /etc/iscsi/iscsid.conf:主要的�O定�n,用�磉B�Y到 iSCSI target 的�O定;
  • /sbin/iscsid:��� iSCSI initiator 的主要服�粘淌剑�
  • /sbin/iscsiadm:用�砉芾� iSCSI initiator 的主要�O定程式;
  • /etc/init.d/iscsid:�本�C模�M成�� iSCSI initiater 的主要服�眨�
  • /etc/init.d/iscsi:在本�C成�� iSCSI initiator 之後,��哟四_本,�我��可以登入 iSCSI target。所以 iscsid 先��俞幔�才能��舆@��服�铡�榱朔来簦�所以 /etc/init.d/iscsi 已���了一����又噶睿� ��� iscsi 前尚未��� iscsid ,�t��先呼叫 iscsid 才�^�m�理 iscsi 喔!

老���f,因�� /etc/init.d/iscsi �_本已�包含了��� /etc/init.d/iscsid 的步�E在�e面,所以,理�上, 你只要��� iscsi 就好啦!此外,那�� iscsid.conf �e面大概只要�O定好登入 target �r的�っ芗纯桑� 其他的 target 搜�ぁ⒃O定、取得的方法都直接使用 iscsiadm �@��指令�硗瓿伞S伸� iscsiadm ��y到的�Y果��直接��入 /var/lib/iscsi/nodes/ ��中,因此只要��� /etc/init.d/iscsi 就能�蛟谙麓伍_�C�r,自�拥倪B�Y到正�_的 target �印� 那�N就�我���硖�理�理整���^程吧 (�]6)!

小�祟}的�D示 18.3.2 initiator 的���H�O定

首先,我��得要知道 target 提供了啥咚咚啊,因此,理�上,不�是 target �是 initiator 都���是要我��管理的�C器才�Α� 而�F在我��知道 target 其��有�O定�ぬ��c密�a的,所以底下我��就得要修改一下 iscsid.conf 的�热莶判小�

 

  • 修改 /etc/iscsi/iscsid.conf �热荩��K��� iscsi

�@���n案的修改很��危�因�檠e面的��荡蠖嘁呀��A�O做的不�e了,所以只要填�� target 登入�r所需要的�っ芗纯伞� 修改的地方有���,一��是��y�r (discovery) 可能��用到的�っ埽�一��是�B��r (node) ��用到的�っ埽�

[root@clientlinux ~]# vim /etc/iscsi/iscsid.conf
node.session.auth.username = vbirduser   <==在 target �r�O定的
node.session.auth.password = vbirdpasswd <==�s在 53, 54 行
discovery.sendtargets.auth.username = vbirduser  <==�s在 67, 68 行
discovery.sendtargets.auth.password = vbirdpasswd

[root@clientlinux ~]# chkconfig iscsid on
[root@clientlinux ~]# chkconfig iscsi on

由於我��尚未�c target �B�,所以 iscsi �K�o法�我���利��拥模∫虼松厦嬷灰� chkconfig 即可,不需要��铀�。 要�_始���y target �c��入系�y�Y��印H�部使用 iscsiadm �@��指令就可以完成所有�幼髁恕�

 

  • ��y 192.168.100.254 �@部 target 的相�P�Y料

�m然我��已�知道 target 的名字,不�^,�@�e假�O�不知道啦!因�橛锌赡苣囊惶炷愕墓�司有�X了, ��去�I���w的 iSCSI �列嘛!所以�@�e�是�v完整的��y�^程好了!你可以�@�邮褂茫�

[root@clientlinux ~]# iscsiadm -m discovery -t sendtargets -p IP:port
�x��c��担�
-m discovery   :使用��y的方式�M行 iscsiadmin 指令功能;
-t sendtargets :透�^ iscsi 的�f定,��y後面的�O�渌��碛械� target �Y料
-p IP:port     :就是那部 iscsi �O�涞� IP �c埠口,不��埠口�A�O是 3260 �樱�

�例:��y 192.168.100.254 �@部 iSCSI �O�涞南嚓P�Y料
[root@clientlinux ~]# iscsiadm -m discovery -t sendtargets -p 192.168.100.254
192.168.100.254:3260,1  iqn.2011-08.vbird.centos:vbirddisk
# 192.168.100.254:3260,1 :在此 IP, 埠口上面的 target ��a,本例中�� target1
# iqn.2011-08.vbird.centos:vbirddisk :就是我��的 target 名�Q啊!

[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
# 上面的特殊字�w部分,就是我��利用 iscsiadm ��y到的 target �Y果!

�F在我��知道了 target 的名�Q,同�r�⑺�有��y到的�Y�通通��入到上述 /var/lib/iscsi/nodes/iqn.2011-08.vbird.centos:vbirddisk/192.168.100.254,3260,1 目��鹊� default �n案中, 若�Y�有修��^的�,那你可以到�@���n案�刃薷模�也可以透�^ iscsiadm 的 update 功能�理相�P��档摹�

 

  • �_始�M行�B� iSCSI target

因�槲��的 initiator 可能���B接多部的 target �O�洌�因此,我��得先要瞧瞧目前系�y上面��y到的 target 有�撞浚� 然後再找到我��要的那部 target �磉M行登入的作�I。不�^,如果你想要�⑺�有��y到的 target 全部都登入的�, 那�N整��步�E可以再�化:

�例:根��前一��步�E��y到的�Y料,��尤�部的 target
[root@clientlinux ~]# /etc/init.d/iscsi restart
正在停止 iscsi:                                 [  �_定  ]
正在��� iscsi:                                 [  �_定  ]
# �⑾到y�e面全部的 target 通通以 /var/lib/iscs/nodes/ �鹊脑O定登入
# 上面的特殊字�w比�^需要注意啦!你只要做到�@�e即可,底下的瞧瞧就好。

�例:�@示出目前系�y上面所有的 target �Y料:
[root@clientlinux ~]# iscsiadm -m node
192.168.100.254:3260,1 iqn.2011-08.vbird.centos:vbirddisk
�x��c��担�
-m node:找出目前本�C上面所有��y到的 target �Y�,可能�K未登入喔

�例:�H登入某部 target ,不要重新��� iscsi 服��
[root@clientlinux ~]# iscsiadm -m node -T target名�Q --login
�x��c��担�
-T target名�Q:�H使用後面接的那部 target ,target 名�Q可用上��指令查到!
--login      :就是登入啊!

[root@clientlinux ~]# iscsiadm -m node -T iqn.2011-08.vbird.centos:vbirddisk \
>  --login
# �@次�M行��出�F�e�`,是因�槲��已�登入了,不可重�}登入喔!

接下�砟兀亢呛牵『馨舻氖牵�我��要�黹_始�理�@�� iSCSI 的磁碟了喔!怎�N�理?瞧一瞧!

[root@clientlinux ~]# fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes  <==�@是原有的那�w磁碟,略�^不看
....(中�g省略)....

Disk /dev/sdc: 2147 MB, 2147483648 bytes
67 heads, 62 sectors/track, 1009 cylinders
Units = cylinders of 4154 * 512 = 2126848 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Disk /dev/sdb: 2154 MB, 2154991104 bytes
67 heads, 62 sectors/track, 1013 cylinders
Units = cylinders of 4154 * 512 = 2126848 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

Disk /dev/sdd: 524 MB, 524288000 bytes
17 heads, 59 sectors/track, 1020 cylinders
Units = cylinders of 1003 * 512 = 513536 bytes
Sector size (logical/physical): 512 bytes / 512 bytes

你���l�F主�C上面多出了三��新的磁碟,容量�c����在 192.168.100.254 那部 iSCSI target 上面分享的 LUN 一�哟蟆� 那�@三�w磁碟可以怎�N用?你想怎�N用就怎�N用啊!只是,唯一要注意的,就是 iSCSI target 每次都要比 iSCSI initiator �@部主�C�要早�_�C,否�t我��的 initiator 恐怕就��出���}。

 

  • 更新/�h除/新增 target �Y料的方法

如果你的 iSCSI target 可能因�槟承┰�因被拿走了,或者是已�不存在於你的�^�W中,或者是要送修了~ �@���r候你的 iSCSI initiator �是得要�P�]吧!但是,又不能全部�P掉 (/etc/init.d/iscsi stop), 因�檫�有其他的 iSCSI target 在使用。�@���r候�如何取消不要的 target 呢?很��危×鞒倘缦拢�

[root@clientlinux ~]# iscsiadm -m node -T targetname --logout
[root@clientlinux ~]# iscsiadm -m node -o [delete|new|update] -T targetname
�x��c��担�
--logout :就是登出 target,但是�K�]有�h除 /var/lib/iscsi/nodes/ �鹊馁Y料
-o delete:�h除後面接的那部 target �B�Y�Y� (/var/lib/iscsi/nodes/*)
-o update:更新相�P的�Y�
-o new   :增加一��新的 target �Y�。

�例:�P�]�碜曾B哥的 iSCSI target 的�Y料,�K且移除�B�Y
[root@clientlinux ~]# iscsiadm -m node   <==�是先秀出相�P的 target iqn 名�Q
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.
# �@���r候的 target �B�Y�是存在的,�m然登出你�是看的到!

[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
# 你���l�F唔!怎�N target 的�Y�不�了!�@�硬t了乎!

如果一切都�]有���},�F在,�回到 discovery 的�^程,重新再�� iSCSI target ��y一次,再重新��� initiator �砣〉媚侨���磁碟吧!我��要��y��c利用�磁碟�樱�

小�祟}的�D示 18.3.3 一���y��例

到底 iSCSI 可以怎�N用?我��就�硗嬉煌妗<僭O:

  1. 你����如同�B哥的整���\作流程,已�在 initiator 上面�� target �Y料清除了;
  2. �F在我��只知道 iSCSI target 的 IP 是 192.168.100.254 ,而需要的�っ苁� vbirduser, vbirdpasswd;
  3. �っ苜Y�你已���入 /etc/iscsi/iscsid.conf �e面了;
  4. 假�O我���A�要�� target 的磁碟拿�懋�作 LVM �鹊� PV 使用;
  5. �K且�⑺�有的磁碟容量都�o一��名�� /dev/iscsi/disk 的 LV 使用;
  6. �@�� LV ��被格式化�� ext4 ,且�燧d在 /data/iscsi �取�

那�N,整�w的流程是:

# 1. ��� iscsi ,�K且�_始��y及登入 192.168.100.254 上面的 target 名�Q
[root@clientlinux ~]# /etc/init.d/iscsi restart
[root@clientlinux ~]# chkconfig iscsi on
[root@clientlinux ~]# iscsiadm -m discovery -t sendtargets -p 192.168.100.254
[root@clientlinux ~]# /etc/init.d/iscsi restart
[root@clientlinux ~]# iscsiadm -m node
192.168.100.254:3260,1 iqn.2011-08.vbird.centos:vbirddisk

# 2. �_始�理 LVM 的流程,由 PV, VG, LV 依序�理喔!
[root@clientlinux ~]# fdisk -l    <==出�F的�Y料中你���l�F /dev/sd[b-d]
[root@clientlinux ~]# pvcreate /dev/sd{b,c,d}  <==建立 PV 去!
  Wiping swap signature on /dev/sdb
  Physical volume "/dev/sdb" successfully created
  Physical volume "/dev/sdc" successfully created
  Physical volume "/dev/sdd" successfully created

[root@clientlinux ~]# vgcreate iscsi /dev/sd{b,c,d}  <==建立 VG 去!
  Volume group "iscsi" successfully created

[root@clientlinux ~]# vgdisplay  <==要找到可用的容量�樱�
  --- Volume group ---
  VG Name               iscsi
....(中�g省略)....
  Act PV                3
  VG Size               4.48 GiB
  PE Size               4.00 MiB
  Total PE              1148  <==就是�@玩意�海」� 1148 ��!
  Alloc PE / Size       0 / 0
  Free  PE / Size       1148 / 4.48 GiB
....(底下省略)....

[root@clientlinux ~]# lvcreate -l 1148 -n disk iscsi
  Logical volume "disk" created

[root@clientlinux ~]# lvdisplay
  --- Logical volume ---
  LV Name                /dev/iscsi/disk
  VG Name                iscsi
  LV UUID                opR64B-Zeoe-C58n-ipN2-em3O-nUYs-wjEZDP
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                4.48 GiB <==注意一下容量�Σ�Π。�
  Current LE             1148
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

# 3. �_始格式化,�K且�M行�_�C自��燧d的�幼鳎�
[root@clientlinux ~]# mkfs -t ext4 /dev/iscsi/disk
[root@clientlinux ~]# mkdir -p /data/iscsi
[root@clientlinux ~]# vim /etc/fstab
/dev/iscsi/disk   /data/iscsi   ext4   defaults,_netdev   1   2

[root@clientlinux ~]# mount -a
[root@clientlinux ~]# df -Th
�n案系�y      �型    Size  Used Avail Use% �燧d�c
/dev/mapper/iscsi-disk
              ext4    4.5G  137M  4.1G   4% /data/iscsi

比�^特殊的是 /etc/fstab �e面的第四���谖唬�加上 _netdev (最前面是底�) 指的是,因�檫@�� partition 位於�W路上, 所以得要�W路�_�C��油瓿舍岵���燧d的意思。�F在,��你的 iSCSI initiator 重新�_�C看看, �看看重新��酉到y後,你的 /data/iscsi 是否�存在呢? ^_^

然後,�我��切回 iSCSI target 那部主�C,研究看看到底�l有使用我��的 target 呢?

[root@www ~]# tgt-admin --show
Target 1: iqn.2011-08.vbird.centos:vbirddisk
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
        I_T nexus: 2
            Initiator: iqn.1994-05.com.redhat:71cf137f58f2 <==不是很喜�g的名字!
            Connection: 0
                IP Address: 192.168.100.10    <==就是�@�e�B��M��樱�
    LUN information:
....(後面省略)....

明明是 initiator 怎�N��是那�� redhat 的名字呢?如果你不介意那就算了,如果挺介意的�,那�N修改 initiator 那部主�C的 /etc/iscsi/initiatorname.iscsi �@���n案的�热荩��⑺��成�似如下的模�蛹纯桑�

Tips:
不�^,�@���幼髯詈迷谑褂� target 的 LUN 之前就�M行,否�t,��你使用了 LUN 的磁碟後,再修改�@���n案後, 你的磁碟�n名可能��改�。例如�B哥的案例中,改�^ initiatorname 之後,原本的磁碟�n名竟�成 /dev/sd[efg] 了!害�B哥的 LV 就不能再度使用了...
 
# 1. 先在 iSCSI initiator 上面�M行如下�幼鳎�
[root@clientlinux ~]# vim /etc/iscsi/initiatorname.iscsi
InitiatorName=iqn.2011-08.vbird.centos:initiator
[root@clientlinux ~]# /etc/init.d/iscsi restart

# 2. 在 iSCSI target 上面就可以�l�F如下的�Y料修�了:
[root@www ~]# tgt-admin --show
Target 1: iqn.2011-08.vbird.centos:vbirddisk
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
        I_T nexus: 5
            Initiator: iqn.2011-08.vbird.centos:initiator
            Connection: 0
                IP Address: 192.168.100.10
....(後面省略)....

 

 

 

你可能感兴趣的:(linux,iSCSI,伺服器)