参考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 又是啥呢?底下就�我���碚�一�。
由於企�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 其��就是一部客制化好的主�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�硗嫱妗�
�纳厦娴恼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 架��啦! ^_^
早期的企�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是:
如下�D所示,iSCSI 是在 TCP/IP 上面所�_�l出�淼囊惶��用,所以得要有�W路才行啊!
由上面的�f明中,我��可以知道一部伺服器如何取得磁碟或者是�n案系�y�砝�用呢?基本上就是:
�@三���|西�c伺服器主�C能用的�n案系�y之�g可以用�S基百科的�D示�碚故荆�
�纳�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):
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 等等)。
18.2 iSCSI target 的�O定
能�蛲瓿� iSCSI target/initiator �O定的�0阜浅6� (�]4),�B哥找的到的就有底下�@���:
由於被我�� CentOS 6.x 官方直接使用的是 tgt �@����w,因此底下我����使用 tgt �斫榻B整�� iSCSI target 的�O定喔!
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有:
那�N scsi-target-utils 主要提供哪些�n案呢?基本上有底下���比�^重要需要注意的:
其�� CentOS 已��⒑芏喙δ芏荚O定好了,因此我��只要修��O定�n,然後��� tgtd �@��服�站涂梢�樱� 接下�恚�就�我�����H�硗嬉煌� iSCSI target 的�O定吧!
�纳厦娴姆治�砜矗�iSCSI 就是透�^一���W路介面,�⒓扔械拇诺��o分享出去就是了。那�N有哪些�型的磁碟可以分享呢? �@包括:
其���]有那�N�}�s,我��大概知道可以透�^ (1)大型�n案; (2)�我环指畈郏� (3)�我谎b置 (包括磁碟、�列、��w磁碟�列、LVM 的 LV �b置�n名等等) �磉M行分享。在本小���中,我���⑼高^新的分割�a生新的�]有用到的分割槽、LVM ���暂S、大型�n案等三��咚咚�磉M行分享。既然如此,那就得要先�砀愣ㄟ@些咚咚�樱� 要注意喔,等一下我��要分享出去的�Y料,最好不要被使用,也最好不要�_�C就被�燧d (/etc/fstab ��中�]有存在��的意思)。 那�N就�硗嫱婵�樱�
既然 iSCSI 要分享的是磁碟,那�N我��得要��浜冒。∧壳邦A���涞拇诺��椋�
���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名的定�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就可以�@���:
另外,就如同一般外接式�Υ嫜b置 (target 名�Q) 可以具有多��磁碟一�樱�我��的 target 也能��碛���磁碟�b置的。 每��在同一�� target 上�^的磁碟我��可以�⑺�定�x�����挝痪�� (Logical Unit Number, LUN)。我��的 iSCSI initiator 就是跟 target �f�{後才取得 LUN 的存取�嗑褪橇� (�]5)。在�B哥的�@����伟咐�中,最�K的�Y果,我����有一�� target ,在�@�� target ��中可以使用三�� LUN 的磁碟。
接下�砦��要�_始�硇薷脑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):
上面的�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> |
再��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 去查�查�才好!)
不�你有�]有使用 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法,修改�碓炊思纯伞� |
18.3 iSCSI initiator 的�O定
�完了 target 的�O定,�K且�^察到相�P target 的 LUN �Y料後,接下�砭褪且���燧d使用�印J褂玫姆椒ê芎��危� 只不�^我��得要安�b�~外的��w�砣〉� target 的 LUN 使用�嗑褪橇恕�
在前一小�就��^了,要�O定 iSCSI initiator 必�要安�b iscsi-initiator-utils 才行。安�b的方法�使用 yum 去�理,�@�e不再多�v�。那�N�@����w的�Y��是如何呢?
老���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)!
首先,我��得要知道 target 提供了啥咚咚啊,因此,理�上,不�是 target �是 initiator 都���是要我��管理的�C器才�Α� 而�F在我��知道 target 其��有�O定�ぬ��c密�a的,所以底下我��就得要修改一下 iscsid.conf 的�热莶判小�
�@���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 �@��指令就可以完成所有�幼髁恕�
�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��档摹�
因�槲��的 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 恐怕就��出���}。
如果你的 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利用�磁碟�樱�
到底 iSCSI 可以怎�N用?我��就�硗嬉煌妗<僭O:
那�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 ....(後面省略).... |