4.6.1 ISCSIネットワークストレージ



現在、コンピュータ分野のストレージソリューションには、主にダイレクトストレージ(DAS)、ストレージエリアネットワーク(SAN)、ネットワーク付加ストレージ(NAS)の3種類があります.
DAS(Direct-Attached Storage)とは、ホストバスがSCSIインタフェースを介してストレージデバイスに直接接続されていることを意味し、この接続方式は主に家庭のパソコン環境に応用されている.
SAN(Storage Area Network)はストレージネットワーク全体のソリューションを指し、SANはファイバチャネル技術を採用し、SANはファイバスイッチを通じてサーバとストレージ設備を接続するネットワーク全体の環境であり、SANの優位性はその先進的なファイバ通信技術にあり、現在の爆発的なデータ成長環境に迅速かつ効率的なストレージ方案を提供している.
NAS(Network-ATtached Storage)は一般的なネットワーク環境を使用でき、イーサネットスイッチなどの機器を介してサーバとストレージ機器を接続できる.NASの利点は、ネットワーク環境を改造する必要がなく、NASは既存のネットワーク環境を使用することができ、また異なるメーカーの設備はTCP/IPプロトコルを使用すれば、機器間の互換性の要求を満たすことができ、NFSとCIFSはネットワーク付加ストレージの解決策に属する.ファイルシステムの共有を提供します.
従来のSANは高価な光ファイバデバイスを基盤としているため、IP技術に基づくSANがあり、IPネットワークを介してデータストレージを行うことができ、サーバはいかなる改造も行わずに既存のイーサネットカードを使用してIP SANにアクセスすることができる(ISCSIはこのような技術である).
NASとSANの主な違いは、NASが共有しているのはファイルシステムであり、SANが共有しているのはブロックデバイスである.
このセクションでは、ISCSIネットワークストレージとデータ同期rsyncシステムに焦点を当てます.
 
4.6.1 ISCSIネットワークストレージ
ISCSI(Internet Small Computer System Interface)は典型的なIP-SAN技術であり、インターネットベースのSANストレージ技術であり、IPプロトコルベースのネットワーク上でSCSIコマンドを伝送することができ、ISCSI環境ではクライアント(initiators)がリモートのSCSIストレージ装置(targets)にSCSIコマンドを送信し、データのストレージとバックアップ機能を実現する.ISCSIは、TCPの860および3260ポートを使用して通信する.
ISCSIとSCSIの最大の違いは、ISCSIがストレージデバイスの距離の制限から脱し、どのホストもローカルエリアネットワークまたは広域ネットワークを通じてストレージデバイスにアクセスできるようにすることであり、データセンターにとって重要です.
次に、Centos 6.3にISCSIサーバとクライアントがアクセスする環境を配備します.
1.ISCSIサービスの導入
Centos 6.3プラットフォームでISCSIサービスを導入するにはtargetソフトウェアをインストールする必要があります.インストールが完了した後、コマンドまたはプロファイルの変更の2つの方法でISCSIサービスを導入できます.
コマンド構成サービスを使用する必要がある場合は、tgtadmコマンドのmanマニュアルを参照してください.詳細な例があります.次の操作は、プロファイルを変更する方法で行います.まず、LUN、IQNの2つの概念を明らかにします.
LUN(Logic Unit Number)はデバイスの論理ユニット番号であり、一般的には数値であり、LUNを使用してストレージデバイスを識別します.
IQN(ISCSI Qualified Name)はISCSI合格名称であり、一般的なフォーマットはiqnである.yyyy-mm:identifier、yyyyは年、mmは月、reversed domain nameはドメイン名の逆書き、identifierは識別名です.
ISCSIサーバを配備する場合は、まずscsi-target-utilsソフトウェアをインストールする必要があります.デフォルトのサーバプロファイルは/etc/tgt/targetsです.conf、プロファイルに共有デバイスを追加し、共有デバイスのLUNとIQNを作成する必要があります.
[root@instructor ~]# yum -y install scsi-target-utils
[root@instructor ~]# vim /etc/tgt/targets.conf 
   
  backing-store /dev/sdb3    
 backing-store /dev/sdb5 
  
   
  backing-store /dev/sdc3    
 lun 10    
 vendor_id jacob Inc.   
  incominguser tom tompass12 
 
    
 backing-store /dev/sdd3   
  lun 20    
 initiator-address 192.168.0.102   
  incominguser tom tompass12 
    
[root@instructor ~]# service tgtd restart && chkconfig tgtd on

 
/etc/tgt/targets.confプロファイルの説明は以下の通りです.
最初のtargetは2つのLUNを定義し、LUN番号は自動的にLUN 1、LUN 2に順番に割り当てられ、LUN 0は一般的にSCSIコントローラに割り当てられます.デフォルトでは、targetにすべての人がアクセスできます./dev/sdb 3および/dev/sdb 5は、共有を準備するデバイスであり、backing-storeによってデバイスパスを指定し、backing-storeはファイルまたはブロックデバイスをサポートする.また、direct-storeを使用してデバイスパスを指定することもできますが、direct-storeはローカルSCSIデバイスのみをサポートします.
2番目のtargetはLUNを定義し、LUN番号は手動で構成された10であり、共有デバイスは/dev/sdc 3であり、手動でデバイスを変更するメーカー情報はjacob Inc.である.また、incominguserオプションでtargetをtomアカウントのみのアクセスを許可するように設定し、パスワードはtompass 12です.
3番目のtargetはLUNを定義します.LUN番号は20、共有デバイスは/dev/sdd 3であり、tomアカウントのみが192.168.0.102ホストを介してtargetにアクセスできるようにします.
backing-storeバックアップストレージは、一般にlvボリューム、パーティション、ファイルなどの非現実的な物理ディスクからなるブロックデバイスを指す.direct_storeは直接保存され、backing-storeとは対照的に、ハードディスク全体などの実際の物理ディスクを指します.initiator-addressはchap認証プロトコルを使用し、targetによってinitiator側を認証します.フォーマットは「incominguser username userpasword」です.outgingUsernameはchap認証プロトコルを使用し、initiatorによってtarget側を認証し、フォーマットは「outgoingusername username userpasword」で、使用は少ない.
サーバ側がtgtdサービスを開始すると、いつでもtgtadmコマンドでISCSIの詳細を表示できます.以下のtgtadmの出力内容は、簡略化された部分出力結果である.
[root@instructor ~]# tgtadm --lld iscsi --op show --mode target( tgt-admin -s)
Target 1: iqn.2014-08.com.example.instructor:disk2
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
        LUN: 10
            Type: disk
            SCSI ID: IET     0001000a
            SCSI SN: beaf110
            Size: 1086 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdc3
            Backing store flags: 
    Account information:
        tom
    ACL information:
        ALL
Target 2: iqn.2014.08.com.example.instructor:disk1
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 1
            Type: disk
            SCSI ID: IET     00020001
            SCSI SN: beaf21
            Size: 1086 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb3
            Backing store flags: 
        LUN: 2
            Type: disk
            SCSI ID: IET     00020002
            SCSI SN: beaf22
            Size: 1086 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdb5
            Backing store flags: 
    Account information:
    ACL information:
        ALL
Target 3: iqn.2014.08.com.example.instructor:disk3
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 20
            Type: disk
            SCSI ID: IET     00030014
            SCSI SN: beaf320
            Size: 1086 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sdd3
            Backing store flags: 
    Account information:
        tom
    ACL information:
        192.168.0.102

 
2.クライアントアクセス
LinuxクライアントがISCSIサーバにアクセスするにはiscsi-initiator-utilsパッケージをインストールする必要があります.第1部では,iscsiadmコマンドのdiscoveryオプションによりサーバ側ISCSIのIQNを発見する.ステップ2では、サーバのIQNをloginオプションでロードします.
[root@desktop24 ~]# iscsiadm -m discovery -t sendtargets -p 192.168.0.254
Starting iscsid:                                           [  OK  ]
192.168.0.254:3260,1 iqn.2014-08.com.example.instructor:disk2
192.168.0.254:3260,1 iqn.2014.08.com.example.instructor:disk1
192.168.0.254:3260,1 iqn.2014.08.com.example.instructor:disk3
[root@desktop24 ~]# iscsiadm -m node -T iqn.2014.08.com.example.instructor:disk1 -p 192.168.0.254 -l

 
このHDDを電源を入れて自動的にマウントするには、defaultではなく_netdev.
[root@desktop24 ~]# echo '/dev/sdc1 /iscsi_ceshi ext4 _netdev 0 0' >> /etc/fstab

 
現在のリンクステータスの表示
[root@desktop24 ~]# iscsiadm -m node -S
192.168.0.254:3260,1 iqn.2014.08.com.example.instructor:disk3
192.168.0.254:3260,1 iqn.2014.08.com.example.instructor:disk1
192.168.0.254:3260,1 iqn.2014-08.com.example.instructor:disk2

アンインストール
[root@desktop24 ~]# umount /iscsi_ceshi/
[root@desktop24 ~]# iscsiadm -m node -T  iqn.2014.08.com.example.instructor:disk1 -u
Logging out of session [sid: 2, target: iqn.2014.08.com.example.instructor:disk1, portal: 192.168.0.254,3260]
Logout of [sid: 2, target: iqn.2014.08.com.example.instructor:disk1, portal: 192.168.0.254,3260] successful.

キャッシュ情報はまだシステムにあり、次回起動すると自動的にリンクされます.
[root@desktop24 ~]# ls /var/lib/iscsi/nodes
iqn.2014.08.com.example.instructor:disk1
iqn.2014-08.com.example.instructor:disk2
iqn.2014.08.com.example.instructor:disk3

キャッシュ情報の削除
[root@desktop24 ~]# iscsiadm -m node -T iqn.2014.08.com.example.instructor:disk
{1,2,3} -o delete

 
クライアントがパーティションを暗号化する構成
[root@desktop24 ~]# vim /etc/iscsi/iscsid.conf
node.session.auth.authmethod = CHAP 
node.session.auth.username = tom 
node.session.auth.password = tompass12 
discovery.sendtargets.auth.authmethod = CHAP 
discovery.sendtargets.auth.username = tom 
discovery.sendtargets.auth.password = tompass12    
 
[root@desktop24 ~]# iscsiadm -m discovery -t st -p 192.168.0.254
[root@desktop24 ~]# service iscsi restart
[root@desktop24 ~]# ls /dev/sd*( )
/dev/sdc   /dev/sdd   /dev/sde  /dev/sdf