RHEL5 - iSCSI IP-SAN

RHEL5 - iSCSI(一) 什�N是 SAN / IP-SAN
什�N是 SAN (Storage area Network),他是一�N�Y料�Υ嫜b置(Raw Device),不�^他不像是 NAS 可以直接提供存取.他只提供�o Server �Y料�Υ嫜b置,� Server 能�蛴蓄~外的硬碟�b置.因�樗�可以很��性的提供�o不同的 serve 大小不同的空�g,所以常用在大企�I中.最早的 SAN �鬏�介面�楣饫w,但是�S著 1G,10Gb �W卡(有一�N�iT用在 iSCSI 的�W卡,因�橛� TOE:TCP/IP offload engine,它具有�\算的功能所以不��因此�子孟到y上的 CPU 的使用率)的上市,�W卡的�鬏��l��增加,�W卡也可以��任光�w提供的�l��(光�w的�l���� 2G,4Gb,光�w短波-850 mm,�L波-1310 mm),�@��技�g�Q�� iSCSI(Internet SCSI),也因此以�W卡��鬏��榻橘|的 SAN,被�Q�� IP-SAN.
相�P�S商 : EMC / NetApp / FalconStor

常�的 IP-SAN 有 iSCSI / FCoE / FCP / AoE

RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较


RHEL5 - iSCSI(二) 安�b iSCSI Target / initiator
Initiator 指的是 "使用磁碟" 的主�C端, Target 指的是 "提供磁碟" 的伺服器端.

iSCSI Target
iSCSI 是一�N SAN的�b置而 SAN的�b置主要是提供 Server �Υ骟w的空�g.相�^於�鹘y的 SAN 是以光�w��鬏�媒�w而 iSCSI(Internet SCSI)他是 IP-based 的�Y料�Υ娴难b置.使得他能更容易��用在企�I中. 1.一般的�W卡就能��作 iSCSI Target 但是缺�c就是��消耗太多的 CPU �Y源,����@�拥���}所以�l展出另外�煞N的 iSCSI Target �W卡.2.一�N是��w的 iscsi + TOE (TOE:TCP/IP offload engine),它可以��� TCP/IP 的封包直接在�W路卡上�\算所以不��因此�子孟到y上的 CPU 的使用率,  3.另外一�N就是硬�w式的 iSCSI + TOE. 它除了具有 TOE �可以直接��� iSCSI 的�Y料做�\算.基本上它的使用上就像是一般�Υ嫜b置 HBA.你可以直接在 BIOS �x�作 iSCSI 硬�w�_�C的�幼�.

RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较

note: SCSI Port - SCSI Protocol

在 RedHat 5 之前的版本是不支援 iSCSI Target 的,所以建�h大家使用 iet(iSCSI Enterprise Target) : http://iscsitarget.sourceforge.net/  但是�@一版本的 iSCSI Target �F在看起�硪呀��]有在更新了加上 RHEL5 已�包含了 iSCSI Target 的服��.所以�F在就不再使用 iet(iSCSI Enterprise Target) 有�d趣的可以�⒖家幌轮�前的文章 http://benjr.tw/?q=node/74

安�b��� iSCSI target:
在 RHEL5 光碟中的 /ClusterStorage/ 目���找到 scsi-target-utils-0.0-0.20070620snap.el5.i386.rpm �n案�@就是 iSCSI Target 的程式.一�_始�]�x�袢�部安�b�需要 perl-Config-General �@一��套件.

[root@benjr ~]# rpm -ivh /media/cdrom/ClusterStorage/scsi-target-utils-0.0-0.20070620snap.el5.i386.rpm
[root@benjr ~]# service tgtd start
[root@benjr ~]# chkconfig tgtd on

安�b��� iSCSI initiator:
在 RHEL5 光碟中的 /Server/ 目���找到 iscsi-initiator-utils-6.2.0.868-0.18.el5 �n案�@就是 iSCSI initiator 的程式

[root@localhost ~]# rpm -ivh iscsi-initiator-utils-6.2.0.868-0.18.el5
[root@localhost ~]# service iscsi start
[root@localhost ~]# chkconfig iscsi on


RHEL5 - iSCSI(三) 建立 iSCSI Target controller device

目前我的�h境如下所示:
1. RHEL5 Server - ��作 iSCSI Target 端,
    2�w硬碟,一��是 OS 另外一��就是�o iSCSI ��做分享出�淼� raw devices 所使用.
2. RHEL5 Client - ��作 iSCSI Initiator 端.
3.Switch - 因�槭� IP-SAN 所以不需要 Fiber switch,原�淼� Network Switch 即可使用.建�h使用 1Gb 以上的�h境.

RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较

第一步是新增 controller device 其中的 iqn(iSCSI Qualified Name)格式如下 iqn.yyyy-mm.<reversed domain name>[:identifier] 名�Q最好是根�� iqn �砻�名.不像是 iet(iSCSI Enterprise Target) 是�⒃O定��在�n案,要使用 tgtd 必�使用指令�硗瓿稍O定�幼�.不�^很�N心的是你在 /usr/share/doc/scsi-target-utils-0.0/README.iscsi �n案都可以找到�例.

[root@benjr ~]# tgtadm --lld iscsi --op new --mode target --tid 1 -T iqn.2009-4.tw.benjr:storage

--tid : �@�� id 必�唯一,��我��在指派硬�w�Y源(如硬碟空�g)�r就是依��此 id �砜词侵概山o哪一�� iqn.
-T : iqn(iSCSI Qualified Name)
先�砜匆幌����的指令做了什�N.

[root@benjr ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2009-4.tw.benjr:storage
    System information:
        Driver: iscsi
        Status: running
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: deadbeaf1:0
            SCSI SN: beaf10
            Size: 0
            Backing store: No backing store
    Account information:
    ACL information:

lun0 是��用�砉芾淼� controller device,是自�赢a生而且一但建立就�o法移除.

RHEL5 - iSCSI(四) 指定硬碟空�g�o iSCSI Target
����建立好了 iqn 接下�砭褪且� 指定硬碟空�g�o iSCSI Target.

[root@benjr ~]# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b /dev/sdb1

--tid 1 : ��得�����O定的 tid 吧!!
--lun 1 : 除了����自�咏�立好的 lun 0 ,第一��指定�� lun1,以此�推.
通常 SCSI RAID ��用多�w SCSI HD �M合成一�����b置(LUN),SCSI 控制器就可以使用�我坏倪���b置�碜龃嫒�. http://benjr.tw/?q=node/352
-b /dev/sdb1 : 除了一般 partition 外�可以用  LVM.一般系�y�S商所提供的 iSCSI Target 也都是配合 LVM �磉\作.
LVM(Logical Volume Manager)是一�N可以��B�更磁�^大小的方式,可以�你能更容易利用管理你的硬碟. http://benjr.tw/?q=node/55

除了可以指定一般的 partition ��作 iSCSI Target 端的 Lun 之外�可以使用 file ��作 block device.方式一�釉�先指定 partition �o他�Q成 file 就可以了!不�^先要建立一���n案是空的.

[root@benjr ~]# dd if=/dev/zero of=iscsidisk bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 18.005 seconds, 59.6 MB/s

�]有出�F�e�`�息你��看到和我一�拥� lun1 ���到 /dev/sdb1 ,lun2 ���到  /root/iscsidisk

[root@benjr ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2009-4.tw.benjr:storage
    System information:
        Driver: iscsi
        Status: running
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: deadbeaf1:0
            SCSI SN: beaf10
            Size: 0
            Backing store: No backing store
        LUN: 1
            Type: disk
            SCSI ID: deadbeaf1:1
            SCSI SN: beaf11
            Size: 9G
            Backing store: /dev/sdb1
        LUN: 2
            Type: disk
            SCSI ID: deadbeaf1:2
            SCSI SN: beaf12
            Size: 1G
            Backing store: /root/iscsidisk
 
   Account information:
    ACL information:

先移除掉 lun 2 一�_始�不需要�@�N多的 lun,移除的指令��在後面�f明.

[root@benjr ~]# tgtadm --lld iscsi --op delete --mode logicalunit --tid 1 --lun 2

RHEL5 - iSCSI(伍) iSCSI Target ACL
iSCSI Target �A�O是不�任何人存取,除非�O定了 ACL(Access Control List). 一�_始在����A段可以用 ALL �任意的 Initiator 都可以存取.

[root@benjr ~]# tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL

--tid 1 : ��得�����O定的 tid 吧!!
-I ALL  : 不限制任何 IP 的 initiators 都可以�泶嫒∵@�� iSCSI Target.  (-I : 大��的 i;ALL 必�都�榇��才��生效)) 

[root@benjr ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2009-4.tw.benjr:storage
    System information:
        Driver: iscsi
        Status: running
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: deadbeaf1:0
            SCSI SN: beaf10
            Size: 0
            Backing store: No backing store
        LUN: 1
            Type: disk
            SCSI ID: deadbeaf1:1
            SCSI SN: beaf11
            Size: 9G
            Backing store: /dev/sdb1
    Account information:
    ACL information:
        ALL

不�^�]人希望什�N阿�阿狗的 initiators 都�硎褂梦疫@一台 iSCSI Target.先把 "ALL" 移除.ALL 比�^�m合使用在 iSCSI Boot.

[root@benjr ~]# tgtadm --lld iscsi --op unbind --mode target --tid 1 -I ALL
[root@benjr ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2009-4.tw.benjr:storage
    System information:
        Driver: iscsi
        Status: running
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: deadbeaf1:0
            SCSI SN: beaf10
            Size: 0
            Backing store: No backing store
        LUN: 1
            Type: disk
            SCSI ID: deadbeaf1:1
            SCSI SN: beaf11
            Size: 9G
            Backing store: /dev/sdb1
    Account information:
    ACL information:

下面使用����例�碚f明 ACL IP 的指定方式:

[root@benjr ~]# tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.8.1.121
[root@benjr ~]# tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.8.1.0/24
[root@benjr ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2009-4.tw.benjr:storage
    System information:
        Driver: iscsi
        Status: running
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: deadbeaf1:0
            SCSI SN: beaf10
            Size: 0
            Backing store: No backing store
        LUN: 1
            Type: disk
            SCSI ID: deadbeaf1:1
            SCSI SN: beaf11
            Size: 9G
            Backing store: /dev/sdb1
    Account information:
    ACL information:
        192.8.1.121
        192.8.1.0/24

你除了可以指定特定 IP : 192.8.1.121 的 initiator 可以存取此 iSCSI Target device外�可以��ο嗤��W域的 IP: 192.8.1.0/24 �碓O定.

RHEL5 - iSCSI(六) iSCSI initiator
目前 RHEL5 提供一支程式 "iscsiadm" 我��只要透�^�@一支程式就可以� initiator 去�B接 Target 端的硬碟. iscsiadm 原自於 open-iscsi �P於指令���}可以�⒖� http://www.open-iscsi.org/docs/README 的���f明.

[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 192.8.1.55:3260
192.8.1.55:3260,1 iqn.2009-4.tw.benjr:storage

"iqn.2009-4.tw.benjr:storage" �@就是192.8.1.55:3260 的 iqn.
-p : iSCSI target 的 IP . iSCSI �A�O使用的 port 是 3260.
-T : 指定 target_iqn_name
-l: login

[root@localhost ~]# iscsiadm -m node -T iqn.2009-4.tw.benjr:storage -p 192.8.1.55:3260 -l
Logging in to [iface: default, target: iqn.2009-4.tw.benjr:storage, portal: 192.8.1.55,3260]
Login to [iface: default, target: iqn.2009-4.tw.benjr:storage, portal: 192.8.1.55,3260]: successful
[root@localhost ~]# iscsiadm -m session
tcp: [1] 192.8.1.55:3260,1 iqn.2009-4.tw.benjr:storage

在 iSCSI Target 端也��看到 iSCSI Initiator 是否有�B接.

[root@benjr ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2009-4.tw.benjr:storage
    System information:
        Driver: iscsi
        Status: running
    I_T nexus information:
        I_T nexus: 4
            Initiator: iqn.1994-05.com.redhat:116f23e2ef8
            Connection: 0
                IP Address: 192.8.1.121

    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: deadbeaf1:0
            SCSI SN: beaf10
            Size: 0
            Backing store: No backing store
        LUN: 1
            Type: disk
            SCSI ID: deadbeaf1:1
            SCSI SN: beaf11
            Size: 9G
            Backing store: /dev/sdb1
    Account information:
    ACL information:
        192.8.1.121
        192.8.1.0/24

如果成功�B接上 iSCSI target它使用的方式就如同一般的硬碟.

[root@localhost ~]# fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14       60801   488279610   8e  Linux LVM

Disk /dev/sdb: 10.0 GB, 10010133504 bytes
64 heads, 32 sectors/track, 9546 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

想登出或是移除 iSCSI initiator �O定�r使用:
-u: (logout) 相同 Login 的指令但使用��� -u
-o delete : 可以移除掉 Target 的�B�Y.只��在下一次重新��� iSCSI 才有效.

[root@localhost ~]# iscsiadm -m node -T iqn.2009-4.tw.benjr:storage -p 192.8.1.55:3260 -u
Logging out of session [sid: 1, target: iqn.2009-4.tw.benjr:storage, portal: 192.8.1.55,3260]
Logout of [sid: 1, target: iqn.2009-4.tw.benjr:storage, portal: 192.8.1.55,3260]: successful
[root@localhost ~]# iscsiadm -m node -T iqn.2009-4.tw.benjr:storage -p 192.8.1.55:3260 -o delete


RHEL5 - iSCSI(七) �� iSCSI Target 移除硬碟

����我��指定了一��硬碟 /dev/sdb1 �o iSCSI Target ,�F在我��再透�^指令新增另外一��硬碟 /dev/sdb2 ,後面就是�@一次的重�c如何移除指定好的硬碟.

[root@benjr ~]# tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 2 -b /dev/sdb2
[root@benjr ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2009-4.tw.benjr:storage
    System information:
        Driver: iscsi
        Status: running
    I_T nexus information:
        I_T nexus: 3
            Initiator: iqn.1994-05.com.redhat:116f23e2ef8
            Connection: 0
                IP Address: 192.8.1.121
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: deadbeaf1:0
            SCSI SN: beaf10
            Size: 0
            Backing store: No backing store
        LUN: 1
            Type: disk
            SCSI ID: deadbeaf1:1
            SCSI SN: beaf11
            Size: 9G
            Backing store: /dev/sdb1
        LUN: 2
            Type: disk
            SCSI ID: deadbeaf1:2
            SCSI SN: beaf12
            Size: 9G
            Backing store: /dev/sdb2

    Account information:
    ACL information:
        192.8.1.121
        192.8.1.0/24

透�^��� --op delete 去移除 --lun2 也就是 /dev/sdb2 的硬碟空�g.

[root@benjr ~]# tgtadm --lld iscsi --op delete --mode logicalunit --tid 1 --lun 2
[root@benjr ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2009-4.tw.benjr:storage
    System information:
        Driver: iscsi
        Status: running
    I_T nexus information:
        I_T nexus: 3
            Initiator: iqn.1994-05.com.redhat:116f23e2ef8
            Connection: 0
                IP Address: 192.8.1.121
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: deadbeaf1:0
            SCSI SN: beaf10
            Size: 0
            Backing store: No backing store
        LUN: 1
            Type: disk
            SCSI ID: deadbeaf1:1
            SCSI SN: beaf11
            Size: 9G
            Backing store: /dev/sdb1
    Account information:
    ACL information:
        192.8.1.121
        192.8.1.0/24

很好 --lun 2 已�不存在了.不�^很可惜是����所有使用 tgtadm 指令�O定 iSCSI Target 在重新�_�C後就不存在了,所以建�h��������指令��在 /etc/rc.local �n案中.

RHEL5 - iSCSI(八) CHAP 身分��C

除了指定 IP 做 ACL �可以透�^ user / password (CHAP-Challenge Handshake Authentication Protocol 使用 MD5 的加密��C) �碜錾矸烛��C.

CHAP 有很多�N除了
1.�蜗� CHAP ��C:在此安全性等�,只有目�� Target ��做��C.另外一�N是
2.相互(Mutual) CHAP ��C:在此安全性等�,目�� Target �c��悠� Initiator 皆��被彼此做��C.最後是
3.Reverse CHAP��C:一般的 CHAP 使用 one-way hash,密�a�n�o法回朔,但是使用 Reverse CHAP 是可以的.�P於 Reverse CHAP 目前�W路上我�查不太到很多的�Y料所以�o法做�f明.
https://fedoraproject.org/wiki/Scsi-target-utils_Quickstart_Guide

先�碚f明第一�N �蜗� CHAP ��CCHAP(Challenge Handshake Authentication Protocol)

�A�O iSCSI �裼昧� �蜗� CHAP(Challenge Handshake Authentication Protocol) 的身分��C方式,基本上是一�N以 MD5 的加密��C方式.方式如下:

1. 在�p方(Target / Initiator) 建立�B�後,Target 送出 "challenge" 的�息告知 Initiator 要做身分��C.
2. Initiator ���⑹褂谜呙艽a使用 md5 做 one-way hash �K送出去�o Target 端.
假如使用者密�a是 :123456 ,md5 做�^ one-way hash 之後�成 : f447b20a7fcbf53a5d5be013ea0b15af
3. Target 端�⒁越��^ md5 的密�a和 Initiator 做比��,如果比�φ��_,�@身份��C及成立要不然就���⒋舜芜B�Y做中��.
Target 端�K�]有�⒃�先密�a�Υ嫦��,而是�⒚艽a�o�成做�^ one-way hash  的 f447b20a7fcbf53a5d5be013ea0b15af.如果�蛇�的 md5 一�蛹创�表成立.
4. 在正常�B��^程中��不�r重�妥� 1~3 的 CHAP 身分��C.

�槭颤N身分��C���裼� One Way Hashes 其���c是原�Y料已�不存在,�魉驮诰W路上不需怕密�a�n被�I取.

note : One Way Hashes
One Way Hashes 主要���a生一�M固定�L度字串(fingerprint or message digests),�@�M字串用�肀�υ��Y料是否遭到修改,它的特性如下
1.原�Y料�入�L度�榭勺�
2.�出的 fingerprint �楣潭ㄩL度
3.���Y料任何 byte 改��r, fingerprint 也���的完全不同
4.我���o法依�� fingerprint �砘赝瞥稍��Y料,�@也是�槭颤N�Q�� One Way hash(�畏较虻馁Y料�\算,函�刀�σ坏奶匦�)
既然�o法回推成原�Y料,那怎知�Y料是否正�_, One Way hash ��再�①Y料再做一次 One Way hash 然後直接比�� fingerprint 是否一��.

不�^所有的�B��是��受到 ACL 的限制, CHAP 只是多加上一�颖Wo.先�⒅�前�O定先取消,�� ACL 改成 ALL.

[root@benjr ~]# tgtadm --lld iscsi --op unbind --mode target --tid 1 -I 192.8.1.121
[root@benjr ~]# tgtadm --lld iscsi --op unbind --mode target --tid 1 -I 192.8.1.0/24
[root@benjr ~]# tgtadm --lld iscsi --op unbind --mode target --tid 1 -I ALL

iSCSI 的�ぬ�跟本地端的 Linux �ぬ�密�a�o�P,所以必�透�^ "tgtadm" �斫�立.

[root@benjr ~]# tgtadm --lld iscsi --op new --mode account --user benjr --password benjr
[root@benjr ~]# tgtadm --lld iscsi --op show --mode account
Account list:
    benjr

�ぬ�是建立好了�要�⑺�指定到哪一�� target.

[root@benjr ~]# tgtadm --lld iscsi --op bind --mode account --tid 1 --user benjr
#使用 --op unbind 可以�⑦@使用者�倪@ iqn 移除.
[root@benjr ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2009-4.tw.benjr:storage
    System information:
        Driver: iscsi
        Status: running
    I_T nexus information:
        I_T nexus: 4
            Initiator: iqn.1994-05.com.redhat:116f23e2ef8
            Connection: 0
                IP Address: 192.8.1.121
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: deadbeaf1:0
            SCSI SN: beaf10
            Size: 0
            Backing store: No backing store
        LUN: 1
            Type: disk
            SCSI ID: deadbeaf1:1
            SCSI SN: beaf11
            Size: 9G
            Backing store: /dev/sdb1
    Account information:
        benjr
    ACL information:
        ALL

iSCSI initiator 如要使用 CHAP 登入 Target,我��需要修改 /etc/iscsi/iscsid.conf, node.session.auth.username 和 node.session.auth.password 都要修改�����O定好的 --user benjr --password benjr .
incoming 或是 outgoing 的 password 和 username 的最大限制是 256 字元.

[root@localhost~]# cat /etc/iscsi/iscsid.conf
node.session.auth.username = benjr
node.session.auth.password = benjr

RHEL5 - iSCSI(九) 相互(Mutual) CHAP incoming / outgoing ��C
相互(Mutual) CHAP ��C:CHAP 的�J�C端可�� Target(Incoming Authentication) 或是 Initiator(Outgoing Authentication) 任一端�碚J�C.也就是�f Target(Incoming Authentication) 是由 Target 端�� Initiator �J�C.�@�拥恼J�C方式可以允�S多�� Initiator �磉B接到 Target.而 Initiator(Outgoing Authentication) 是由 Initiator �碚J�C Target 端.

之前我��都是在 Target 端�O定�ぬ�密�a,�@就是使用 Incoming Authentication 是由 Target 端�� Initiator �J�C.要同�r使用 Outgoing Authentication 也很���.只要指定 outgoing 的 user 和 password

����已��O定�^ Incoming 的�J�C方式,�F在要透�^ "tgtadm" �斫�立 Outgoing 的�J�C.

[root@benjr ~]# tgtadm --lld iscsi --op new --mode account --user in_benjr --password in_benjr --outgoing
[root@benjr ~]# tgtadm --lld iscsi --op show --mode account
Account list:
    benjr
    in_benjr

�ぬ�是建立好了�要�⑺�指定到哪一�� target.

[root@benjr ~]# tgtadm --lld iscsi --op bind --mode account --tid 1 --user benjr --outgoing
[root@benjr ~]# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2009-4.tw.benjr:storage
    System information:
        Driver: iscsi
        Status: running
    I_T nexus information:
        I_T nexus: 4
            Initiator: iqn.1994-05.com.redhat:116f23e2ef8
            Connection: 0
                IP Address: 192.8.1.121
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: deadbeaf1:0
            SCSI SN: beaf10
            Size: 0
            Backing store: No backing store
        LUN: 1
            Type: disk
            SCSI ID: deadbeaf1:1
            SCSI SN: beaf11
            Size: 9G
            Backing store: /dev/sdb1
    Account information:
        benjr
        in_benjr  (outgoing)
    ACL information:
        ALL

iSCSI initiator 如要使用 Outgoing CHAP ,我��需要修改 /etc/iscsi/iscsid.conf, node.session.auth.username_in 和 node.session.auth.password_in 都要修改�����O定好的

[root@localhost ~]# cat /etc/iscsi/iscsid.conf
node.session.auth.username = benjr
node.session.auth.password = benjr
node.session.auth.username_in = in_benjr
node.session.auth.password _in= in_benjr

�⒖嘉募� : http://linux.vbird.org/somepaper/20081205-rhel5-iscsi.pdf
 

RHEL5 - iSCSI(十) Intel NIC + iSCSI Remote Boot ROM

硬�w需求:
一般的�W卡可以���� iSCSI initiator 的工作,市面上很多的作�I系�y(Windows, RHEL , SLES) 都以��w的方式去支援.但是如果你想�⒆�I系�y透�^�h端的 iSCSI  SAN ����,是需要透�^硬�w的 iSCSI �W卡才有�k法做到.

�m然 RHEL5 在安�b�r就可以�x�裼� iSCSI Boot . 不�^很可惜的是,如果你的 BIOS 不支援�� iSCSI Boot,那安�b完系�y後就再也�_不了�C,因�橐话� BIOS 只能�漠�地端的硬碟�_�C(硬�w的 iSCSI ��被��楫�地硬碟),目前只有 EFI(Extensible Firmware Interface,目前是由 Intel 主��,主要目的是取代�F前使用的 BIOS) 的系�y��支援�� iSCSI Boot ,所以呢!!!一般的�W卡是��w的 iSCSI + TOE �要有 EFI 才能���F由 iSCSI Boot (硬�w的 iSCSI 不在此限).

RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较

但是最近在查� iSCSI 的�Y料�r�l�F了 Intel 出了 Intel? iSCSI Remote Boot �@�� ROM 就包含了 iSCSI Boot 的功能.它可以�你原先的 Intel �W卡直接透�^他提供的功能能��倪h端的 iSCSI 直接�_�C.下�d�c在  http://support.intel.com/support/network/iscsi/remoteboot/  方式也不�y.
 
不�^在使用�@ Intel? iSCSI Remote Boot 有其限制,它主要是���Intel PCI-Express Server 等�的 Gigabit family �W卡所�O�的.所以如果你手上有下面�@���卡就可以使用.

  • Intel? Gigabit CT Desktop Adapter(Controller:82574L)
  • Intel? Gigabit ET Dual Port Server Adapter(Controller:82576)
  • Intel? Gigabit EF Dual Port Server Adapter(Controller:82576)
  • Intel? Gigabit ET Quad Port Server Adapter(Controller:82576)
  • Intel? PRO/1000 PT Quad Port Server Adapter(Controller:82571EB)
  • Intel? PRO/1000 PT Quad Port LP Server Adapter(Controller:82571EB)
  • Intel? PRO/1000 PF Quad Port Server Adapter(Controller:82571EB)
  • Intel? PRO/1000 PT Dual Port Server Adapter(Controller:82571EB)
  • Intel? PRO/1000 PF Dual Port Server Adapter(Controller:82571EB)
  • Intel? PRO/1000 PT Server Adapter(Controller:82572EI)
  • Intel? PRO/1000 PF Server Adapter(Controller:82572EI)
  • Intel? Gigabit PT Quad Port Server ExpressModule(Controller:82571)
  • Intel? 10 Gigabit AF DA Dual Port Server Adapter(Controller:82598EB)
  • Intel? 10 Gigabit AT Server Adapter(Controller:82598EB)
  • Intel? 10 Gigabit XF SR Server Adapter(Controller:82598EB)
  • Intel? 10 Gigabit XF LR Server Adapter(Controller:82598EB)
  • Intel? 10 Gigabit XF SR Dual Port Server Adapter(Controller:82598EB)
  • Intel? 10 Gigabit CX4 Dual Port Server Adapter(Controller:82598EB)

�@下�d�n案中�包含了 iSCSI Remote Boot 的 driver,�缀跏鞘忻嫔铣S玫淖�I系�y都包含在�e面.

  • Microsoft* Windows* Server 2003 SP1, SP2, R2 x86
  • Microsoft Windows Server 2008 x86
  • Red Hat* Enterprise Linux 4 U3, Red Hat* Enterprise Linux 5
  • Novell SUSE* Linux Enterprise 9 SP3, Novell SUSE* Linux Enterprise 10

更新 iSCSI Remote Boot ROM:
Intel 提供的�@一之工具 Intel iSCSI Network Adapter Boot Configuration Utility (iSCSIUtl) 是一�b DOS 的程式,所以第一步就是先回到 DOS 先行更新 Intel NIC firmware 的 iSCSI Remote Boot ROM.在����下�d的�n案中解�_後���l�F目� iSCSIUtl\DOS\iscsiutl.exe 就是更新 Intel NIC 的 iSCSI Remote Boot ROM 的主程式.使用方式也很���:
iSCSIUtl -[OPTION] or -[OPTION]=[VALUE]

C:\iscsiutl -all -up
Intel(R) iSCSI Boot Utility
iSCSIUtl version 2.3.17.00
Copyright (C) 2003-2009 Intel Corporateion
 
Programming flash on part 1 with iSCSI Boot image
An Intel(R) Boot Agent setting has been detected on this device. Programming
this device with Intel(R) iSCSI Boot will erase this setting.
Would you like to continue? (Y)es or (N)o: Y
*
Flash update successful.
 
Flash not enabled on port 2
 
Use the "-FLASHENABLE" parameter to enable to flash
 
Port Network Address Series  WOL Boot ROM Type           Version
==== =============== ======  === ======================= =======
1    001517785DD6    Gigabit YES iSCSI Enabled           2.3.17  
2.   001517785DD7    Gigabit N/A FLASH Disabled          2.3.17  

 

上面的指令��找出任何包含 pre-installed Intel Boot Agent image 的�W卡,通常���埠的�W卡第一��埠��被更新.系�y�����你是否更新回答 Y(yes) 系�y就���_始更新,如果你需要更新其他的�W路埠�r可以指定埠�砀�新.
ISCSIUTL -NIC=1 -FLASHENABLE

等系�y重新�_�C後你���l�F Intel 的�W卡的 Option ROM �的不一��.

Intel(R) iSCSI Boot version 2.3.17
Copyright (c) 2003-2009 Intel Corporation. All rights reserved.
Press ESC key to skip iSCSI boot initialization.
Press <Ctrl-D> to run setup...

按下 <Ctrl-D> 就可以�M入 Intel iSCSI Remote Boot 的 Option ROM.��� iSCSI initiator 端作�O定.

�O定 iSCSI Remote Boot
接下�砦��就可以直接在 Intel 的 Option ROM 上�O定 iSCSI Target 所指定的 Lun ,如果你�]有硬�w的 iSCSI Target 端也�]�P�S,你可以先用 RHEL5 的 iSCSI Target 端的功能 RHEL5 - iSCSI IP-SAN 先�M入 Intel iSCSI Remote Boot 的 option ROM.

RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较

�M入 iSCSI Remote Boot Port Selection Menu 你可以看到目前系�y所有的 Intel iSCSI Remote Boot-capable adapters.你可以在此�面看到系�y上 Intel �W卡的 PCI device ID, PCI bus/device/function 以及 MAC Address

�@�e最多可以�@示出�� 10 iSCSI Remote Boot-capable ports ,超�^系�y就�@示不出�砹�,我想一台 Server 要超�^ 10 ���W路埠的�C��不大.�@�e需要做�f明的是 iSCSI Remote Boot status ,也就是�@示在最後的 BOOT:PRIMARY, BOOT:DISABLED

Boot 的�x�可以分成下面�追N.

  • Primary:

    ���W路埠�x�癯� Primary(按 'P' �I可以把��B改�成 Primary) Intel iSCSI Remote Boot ��以此��作�B上 iSCSI Target �榈谝��先�O定值.��系�y有多���W路埠�r只能有一�� Primary.

  • secondary:

    ���W路埠�x�癯� secondary(按 'S' �I可以把��B改�成 secondary) , 只有�� Primary �B�失��r secondary 才��向 iSCSI Target 要求�B�.��系�y有多���W路埠�r只能有一�� secondary.

  • 按 'D' �I可以把 iSCSI Remote Boot �W路埠的功能�和J褂�.
  • 按 'B' �I可以��W路埠的 LED �W�q.
  • 按 'ESC' �I可以�x�_�O定.

前面更新 iSCSI Boot ROM �r我只��σ�� port 做更新,所以我��只��看到一����B是 PRIMARY 另外一��是 DISABLED.

�x�衲愕木W卡之後�M入 iSCSI setup menu 主要的�x�有四�N:
RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较
  • iSCSI Remote Boot Configuration

    �@�的�O定就是 iSCSI Remote Boot initiator 和 target 的�x�包括了 IP ,name 以及 Boot Lun 皆是在�e�O定.

  • CHAP Configuration

    �A�O iSCSI �裼昧� CHAP(Challenge Handshake Authentication Protocol) 的身分��C方式,基本上是一�N以 MD5 的加密��C方式.如果你的系�y有�裼妹艽a的保�o就需要在�@�e做�O定.

  • Discard Changes and Exit

    如果����在 iSCSI Remote Boot Configuration 或是 CHAP Configuration �O定不�M意�x��"Discard Changes and Exit" 系�y就不�Υ����所有的�O定了.�K且回到上一�� "iSCSI Remote Boot Port Selection Menu

  • Save Changes and Exit

    �x�� "Save Changes and Exit" 就可以�����在  iSCSI Remote Boot Configuration 或是 CHAP Configuration 所�O定的��下��,�K且回到上一�� "iSCSI Remote Boot Port Selection Menu

我��先�碓O定 "SCSI Boot Configuration"

RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较

�O定可以分成 "Initiator" 和 "Target" 端,上面那一部分就是本�C "Intel iSCSI Remote Boot " 也就是 "Initiator" 端的�O定.

  • Use Dynamic IP Configuration (DHCP)

    如果你的 DHCP 有��� iSCSI �O定你只要直接勾�x由 DHCP 指派 client IP address, subnet mask, and gateway IP address.

  • Initiator Name

    �@�e就是�O定 iSCSI initiator name 主要是�榱俗�  iSCSI target 可以辨�R Intel iSCSI Remote Boot 的名�Q.

  • Initiator IP

    �O定固定的 IP �@ IP 必�要和 Target 同�W段也必�能和 Target 建立�B�.

  • Subnet Mask

    IP 的 subnet-mask 取�Q於你的�W路 IP 的�W段.

  • Gateway IP

    ��你的 Target 和 Initiator �於不同�W段�r需要 gateway �磙D送封包.

下面半步就是 Target 端的�O定,除了 Target Name(就是 IQN ) �入�r注意不要打�e外,其他就是 iSCSI Target 端的 IP.

  • Use DHCP for iSCSI Target Information

    如果你的 DHCP 有��� iSCSI �O定你只要直接勾�x由 DHCP 指派 iSCSI target's IP address, IP port number, iSCSI target name, and SCSI LUN ID.

  • Target Name

    Target 端的 IQN (iSCSI Qualified Name)格式如下 iqn.yyyy-mm.<reversed domain name>[:identifier] .

  • Target IP

    iSCSI Target 端的 IP 位置.

  • Target Port

    iSCSI 所使用的 TCP Port Number(�A�O�� 3260).

  • Boot LUN

    通常 SCSI RAID ��用多�w SCSI HD �M合成一�����b置(LUN),SCSI 控制器就可以使用�我坏倪���b置�碜龃嫒�,通常 LUN 是由 0 �_始但是 RHEL5 的 iSCSI Target 的 lun0 是用�懋�作管理控制 controller device.

iSCSI �裼� CHAP-Challenge Handshake Authentication Protocol(以 MD5 �榛��A的加密��C),�碜錾矸烛��C. �蜗� CHAP ��C:在此安全性等�,只有目�� Target ��做��C.

RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较
  • User Name

    iSCSI target 端所�O定的 CHAP 使用者名�Q.

  • Target Secret

    iSCSI target 端所�O定的 CHAP 密�a. �@密�a不可和 Initiator Secret 端所�O定的密�a相同.

  • Use Mutual CHAP

    相互(Mutual) CHAP ��C,在此安全性等�,目�� Target �c��悠� Initiator 皆��被彼此做��C

  • Initiator Secret

    iSCSI Initiator Mutual CHAP 密�a.�@密�a不可和 Target Secret 端所�O定的密�a相同.

如果�]有�O定上的�e�`登出之後你可以看到系�y��多出一�� iSCSI 的 drive.

Intel(R) iSCSI Boot version 2.3.17
Copyright (c) 2003-2009 Intel Corporation. All rights reserved.
Press ESC key to skip iSCSI boot initialization.

Initializing adapter configuration - MAC address(001517785DD6).
Using STATIC configuration for primary port, please wait.
iSCSI Target Name       : iqn.2009-4.bios:storage
iSCSI Target IP Address : 192.8.1.1
LUN ID: 1                Port: 3260
iSCSI Initiator IP      : 192.8.1.24
iSCSI Gateway IP        : 192.8.1.1
iSCSI Initiator Name    : iqn.ben

Attempting to connect to target disk using MAC address(001517785DD6)
LUN: 1  DEVICE: IET VIRTUAL-DISK  18.63 GB

BIOS Boot Menu
更新完 Intel iSCSI Remote Boot 後在 BIOS 的 Boot Menu ��多出一�� Intel? iSCSI Remote Boot 的�x�.下面你看到的是我 IBM 的 Server 每一家的 Boot Menu �@示出�淼亩疾槐M相同.

RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较

自�� RHEL5 �_始安�b的�r候多了一���x� "Advanced Storage Configuration" ,�@�x�就是可以�你�� iSCSI �_�C.步�E如下:
�x�� "Add iSCSI Target" 如果你�W路�h境�]有 iSCSI Target 可以使用 RHEL5 建立出 iSCSI Target 端的服�� http://benjr.tw/?q=node/434

RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较

Target IP Address :�@就是 iSCSI Target 端的 IP
iSCSI initiator Name : iSCSI Target 所指定的 iqn(iSCSI Qualified Name)

RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较

如果�利完成即刻就��看到 iSCSI Target 所指派的硬碟空�g.

RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较
RHEL5 U3 iSCSI boot 多加了  user / password (CHAP-Challenge Handshake Authentication Protocol 使用 MD5 的加密��C) �碜錾矸烛��C.
RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较
接下�戆惭b的步�E都��像是安�b在一般硬碟上面.RHEL5 U3 有支援 IBFT(iSCSI Boot Firmware Table) 所以可以直接安�b在�@一�w硬碟上安�b作�I系�y不需要其他 dirver.

RHEL5 - iSCSI(十一) MPIO
iSCSI remote boot 可以透�^ MPIO(multipath I/O) �泶_保他的�B�不��因��我坏木W路�嗑�而失去�B�,但是�@功能是不是用 teaming (teaming 是一���橥ㄟ^由多���W卡��建的 team,多���W卡�同一��,可以提供��d平衡 load-balancing,容�e fault-tolerance 的功能) 一�泳涂梢越�Q了.�槭颤N���用到 MPIO �@�|西.

RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较

�D片出自於 http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/DM_Multipath/index.html

�P於�@一�c在 Intel 的官方�W站文件 Intel? PRO/1000 Server Adapter iSCSI and iSCSI Remote Boot Frequently Asked Questions - 
http://www.intel.com/network/connectivity/products/316975.pdf 有提到,�@�e面提到的都�凫队搀w的 iSCSI remote boot.

Q18: Does Intel iSCSI boot support adapter teaming?
A18: Adapter teaming is not supported on ports configured for iSCSI remote boot due to limitations in the OS stack, which does not support teaming for iSCSI traffic. Storage failover and load balancing support is provided by using MPIO.

Q16: Is Multipath I/O (MPIO) supported by Intel iSCSI boot?

A16: Intel iSCSI boot solutions use the standard OS iSCSI boot initiators to provide remote boot support, so MPIO and other advanced features are supported for iSCSI boot via the OS initiator once the OS boots.

上面������}提到了一�c " iSCSI remote boot(系�y支援由 iSCSI SAN �h端�_�C)" 因�� OS �o法在�_�C�r就支援 teaming 所以如果要�_保�W路品�|建�h使用 MPIO �@一�功能(需要硬�w的 iSCSI �W卡),但是���}二�s�到了目前 Intel 的�W卡是否支援 iSCSI MPIO Boot 的功能.答案是不支援.�m然我��在�O定 Intel iSCSI Boot 可以�x�� Primary 以及 Secondary 但�@不代表�@就是支援 MPIO.以 Intel iSCSI NIC 的��t是如果 Primary 的�O定�B接失��r才��使用 Secondary 的�O定值,也因此�@�陕�讲��同�r存在.
 
�F在我��就�砜纯慈绾巫龅� MPIO 的功能.不�^到目前�橹刮叶歼��]�成�^以硬�w的 iSCSI �W卡加上 MPIO 的功能�_�C成功.下面的例子是在 RHEL5 作�I�h境下以一般��w式的 iSCSI Initiator + MPIO.
RHEL5 - iSCSI IP-SAN - zhuzhu - 津津计较

配置 iSCSI 多路境 MPIO(Multipath),需要同�W段的�W卡���埠,目前我的 iSCSI Target 端�� 192.8.1.55

[root@benjr ~]# ifconfig | grep 192.8
          inet addr:192.8.1.214  Bcast:192.8.1.255  Mask:255.255.255.0
          inet addr:192.8.1.85  Bcast:192.8.1.255  Mask:255.255.255.0

先�_定�@���埠和 iSCSI Target 互通.

[root@benjr ~]# ping -I eth0 192.8.1.55
[root@benjr ~]# ping -I eth1 192.8.1.55

iSCSI initiator �A�O��依���W路��B只和 iSCSI Target 建立一�� session,�m然你的�W路上同�W段的埠有���以上.他�是只��建立一�� session.如果我��要使用 iSCSI interfaces (iface) binding 的功能必�要在 /var/lib/iscsi/ifaces 指定多���W路埠.我��可以使用 iscsiadm 的指令�斫�立.建立 ieth0 和 ieth1

[root@benjr ~]# iscsiadm -m iface -I ieth0 --op=new
[root@benjr ~]# iscsiadm -m iface -I ieth1 --op=new

ieth0 和 ieth1 真����指向���w�b置 eth0 和 eth1

[root@benjr ~]# iscsiadm -m  iface -I ieth0 --op=update -n iface.net_ifacename -v eth0
[root@benjr ~]# iscsiadm -m  iface -I ieth1 --op=update -n iface.net_ifacename -v eth1

除了可以指定�W路�b置名�Q外 ethx �可以依���W卡的 MAC address �碇付� "iface.hwaddress",�_定一下����建立出�淼� ieth0 和 ieth1

[root@benjr ~]# iscsiadm -m iface
ieth0 tcp,default,eth0
ieth1 tcp,default,eth1

iscsiadm 主要��在 /var/lib/iscsi/ifaces 目�下面建立����所�O定的 iface �b置, iscsiadm ��依���@�的�O定同�r向 iSCSI Target 建立�B�.

[root@benjr ~]# cat /var/lib/iscsi/ifaces/ieth0
iface.iscsi_ifacename = ieth0
iface.net_ifacename = eth0
iface.hwaddress = default
iface.transport_name = tcp
[root@benjr ~]# cat /var/lib/iscsi/ifaces/ieth1
iface.iscsi_ifacename = ieth1
iface.net_ifacename = eth1
iface.hwaddress = default
iface.transport_name = tcp

��我��只要透�^ iscsiadm �@一支程式去向 iSCSI Target  端建立�B��r,要特�e去指定����我��建立好的 iSCSI interfaces (iface) binding �b置,�@�泳涂梢宰� iSCSI Initiator 和 iSCSI  Target 端建立多�l�B�.

[root@benjr ~]# iscsiadm -m discovery -t sendtargets -p 192.8.1.55 -I ieth0 -I ieth1
192.8.1.55:3260,1 iqn.2009-4.tw.benjr:storage
192.8.1.55:3260,1 iqn.2009-4.tw.benjr:storage

"iqn.2009-4.tw.benjr:storage" �@就是192.8.1.55:3260 iSCI Target 的 iqn.

[root@benjr ~]# iscsiadm -m node --loginall=all
Logging in to [iface: ieth1, target: iqn.2009-4.tw.benjr:storage, portal: 192.8.1.55,3260]
Logging in to [iface: ieth0, target: iqn.2009-4.tw.benjr:storage, portal: 192.8.1.55,3260]
Login to [iface: ieth1, target: iqn.2009-4.tw.benjr:storage, portal: 192.8.1.55,3260]: successful
Login to [iface: ieth0, target: iqn.2009-4.tw.benjr:storage, portal: 192.8.1.55,3260]: successful

登入 iSCSI Target 之後我�����l�F多出��深w硬碟,不管是大小�是��B都一��,�@就是 iSCSI Initiator 已�和 Target 端透�^��l路�浇�立了不同的�B�.接下�砭托枰��O定一下所�^的 MPIO , 在 Linux 下是被�Q�� device-mapper multipath

[root@benjr ~]#  fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14       60801   488279610   8e  Linux LVM

Disk /dev/sdb: 20.0 GB, 20012106240 bytes
64 heads, 32 sectors/track, 19085 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdc: 20.0 GB, 20012106240 bytes
64 heads, 32 sectors/track, 19085 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes

   Device Boot      Start         End      Blocks   Id  System

DM(Device-Mapper) multipath 的�O定�n�Υ嬖� /etc/multipath.conf ,我��只需要�⑾到y�A�O的 blacklist - devnode,�⑺�用 "#"�]解掉.�系�y自己���y即可.

[root@benjr ~]# vi /etc/multipath.conf
blacklist {
#        devnode "*"
}

DM(Device-Mapper) multipath 的服�彰��Q�� multipathd ,�_�C���r�O定 chkconfig ,立即�⒂梅��帐褂� service 程式.

[root@benjr ~]# chkconfig multipathd on
Start multipathd:

 

[root@benjr ~]# service multipathd start
List multipath devices:

��我�� "multipathd" 的服���又�後使用 multipath 指定�碛^看可以�l�F����由 iSCSI Initiator �B�所建立出�淼� 2 �w硬碟已�其��是指向同一�� SCSI ID 而 DM-Multipath 也�_�J的出��.

[root@benjr ~]# multipath -ll
mpath1 (16465616462656166313a3100000000000000000000000000) dm-2 IET,VIRTUAL-DISK
[size=19G][features=0][hwhandler=0]
\_ round-robin 0 [prio=1][active]
 \_ 7:0:0:1 sdb 8:16  [active][ready]
\_ round-robin 0 [prio=1][enabled]
 \_ 6:0:0:1 sdc 8:32  [active][ready]

我��也可以透�^指令 scsi_id ��z�硬碟�b置的 ID 是否相同.

[root@benjr ~]# scsi_id -x -g -u -s /block/sdb
ID_VENDOR=IET
ID_MODEL=VIRTUAL-DISK
ID_REVISION=0001
ID_SERIAL=16465616462656166313a3100000000000000000000000000
ID_TYPE=disk
ID_BUS=scsi
[root@benjr ~]# scsi_id -x -g -u -s /block/sdc
ID_VENDOR=IET
ID_MODEL=VIRTUAL-DISK
ID_REVISION=0001
ID_SERIAL=16465616462656166313a3100000000000000000000000000
ID_TYPE=disk
ID_BUS=scsi

我��透�^系�y就可以�^看到 /dev/dm 的�b置了.�@���b置就如同一般的硬碟�b置,如同 /dev/sda 你可以��λ�做分割,格式化,�x��等�幼�.而且�具�� MPIO 的功能.

[root@benjr ~]# fdisk -l
Disk /dev/dm-2: 20.0 GB, 20012106240 bytes
255 heads, 63 sectors/track, 2433 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

     Device Boot      Start         End      Blocks   Id  System
/dev/dm-2p1   *           1          13      104391   83  Linux
/dev/dm-2p2              14        2433    19438650   8e  Linux LVM

如果系�y�]有自�赢a生 /dev/dm 的�b置�r可以透�^程式 kpartx �懋a生.

[root@benjr ~]# kpartx -a /dev/mapper/16465616462656166313a3100000000000000000000000000

�⒖假Y料 : http://blog.chinaunix.net/u3/92556/showart_1842981.html

你可能感兴趣的:(职场,SAN,iSCSI,休闲)