CentOSでのiSCSI環境構築

Table of Contents

はじめに

CentOS5を利用してiSCSIターゲットとiSCSIイニシエータを構築します。 CentOS6については下記をご覧ください。
CentOS6でのiSCSI環境構築

システム構成

iscsi - システム構成.jpg

iscsi-initiator側

  • ホスト名(IP)
    • serv100(192.168.11.100)
  • OS
    • CentOS 5.4(kernel 2.6.18-164.6.1.el5)
  • パッケージ
    • iscsi-initiator-utils.i386 6.2.0.871-0.10.el5

iscsi-target側

  • ホスト名(IP)
    • serv200(192.168.11.200)
  • OS
    • CentOS 5.4(kernel 2.6.18-164.6.1.el5)
  • パッケージ
    • scsi-target-utils 0.0-5.20080917snap.el5

iscsi-targetの構築 (192.168.11.200側)

iscsiターゲットのインストール

インストール

# yum install scsi-target-utils.i386

起動

# /etc/init.d/tgtd start

自動起動

# chkconfig tgtd on

iscsiターゲットの設定

iscsiターゲットの作成

  • iscsiターゲットを作成します。iscsiターゲット名はユニークな名称である必要があり、 以下のようなルールが推奨されています。
    iqn.<yyyy-mm>.<tld.domain.some.host>[:<identifier>]
  • 今回はルールに従ってターゲット名を設定します。
    # tgtadm --lld iscsi --op new --mode target --tid 0 --targetname \
    iqn.2009-11.net.oss-d.serv200:sdb1

公開パーティションのターゲット登録

  • ターゲットの作成後、公開パーティション(/dev/sdb1)をロジカルユニットとしてターゲットに登録します。
    # tgtadm --lld iscsi --op new --mode logicalunit --tid 0 --lun 1 \
    --backing-store /dev/sdb1

イニシエータの登録

  • イニシエータの登録を行います。初期状態では、イニシエータが登録されていないためターゲットにアクセスできません。 尚、イニシエータの登録は、IPアドレスまたはユーザー名の指定が可能ですが、今回はIPアドレスを利用します。
    # tgtadm --lld iscsi --op bind --mode target --tid 0 --initiator-address 192.168.11.100

設定確認

  • tgtadmコマンドで設定を確認します。 「LUN:0」はコントローラで、「LUN:1」が今回追加したロジカルユニットです。
    # tgtadm --lld iscsi --op show --mode target
    Target 0: iqn.2009-11.net.oss-d.serv200:sdb1
        System information:
            Driver: iscsi
            State: ready
        I_T nexus information:
        LUN information:
            LUN: 0
                Type: controller
                SCSI ID: deadbeaf0:0
                SCSI SN: beaf00
                Size: 0 MB
                Online: Yes
                Removable media: No
                Backing store: No backing store
            LUN: 1
                Type: disk
                SCSI ID: deadbeaf0:1
                SCSI SN: beaf01
                Size: 5363 MB
                Online: Yes
                Removable media: No
                Backing store: /dev/sdb1
        Account information:
        ACL information:
            192.168.11.100

ファイアウォールの設定

  • tgtdデーモンは「tcp:3260」をLISTENします。 必要に応じてiptablesを変更してください。

iscsi-initiatorの構築 (192.168.11.100側)

iscsiイニシエータのインストール

インストール

# yum install iscsi-initiator-utils

起動

# /etc/init.d/iscsi start

自動起動

# chkconfig iscsi  on

iscsiターゲットの設定

iscsiターゲットへの接続

  • イニシエータからターゲットへ接続を行います。
    # iscsiadm --mode=discovery --type=sendtargets --portal=192.168.11.200 \
    192.168.11.200:3260,1 iqn.2009-11.net.oss-d.serv200:sdb1

  • targetの接続一覧を表示して確認します。
    # iscsiadm -m node 192.168.11.200:3260,1 iqn.2009-11.net.oss-d.serv200:sdb1

  • ログインします(targetで認証等を設定しているとパスワード等を聞かれます。)
    # iscsiadm -m node \
    --targetname iqn.2009-11.net.oss-d.serv200:sdb1 \
    --portal 192.168.11.200:3260 \
    --login Login session [iface: default, target: iqn.2009-11.net.oss-d.serv200:sdb1, portal: 192.168.11.200,3260]
    
    
    Logging in to [iface: default, target: iqn.2009-11.net.oss-d.serv200:sdb1, portal: 192.168.11.200,3260]
    Login to [iface: default, target: iqn.2009-11.net.oss-d.serv200:sdb1, portal: 192.168.11.200,3260]: successful

iscsiボリュームのマウント

iscsiボリューム上にファイルシステム(ext3)を作成してマウントします。

iscsiボリュームの確認

  • fdiskコマンドでiscsiボリュームを確認します。
    (今回は/dev/sdbがiscsiボリュームとして割り当てられています)
    # fdisk -l
    
    Disk /dev/sda: 8589 MB, 8589934592 bytes
    255 heads, 63 sectors/track, 1044 cylinders
    Units = シリンダ数 of 16065 * 512 = 8225280 bytes
    
    デバイス Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1          13      104391   83  Linux
    /dev/sda2              14        1044     8281507+  8e  Linux LVM
    
    Disk /dev/sdb: 5362 MB, 5362850304 bytes
    165 heads, 62 sectors/track, 1023 cylinders
    Units = シリンダ数 of 10230 * 512 = 5237760 bytes
    
    ディスク /dev/sdb は正常な領域テーブルを含んでいません

領域の作成

  • fdiskコマンドで領域の作成を行います。
    # fdisk /dev/sdb
    デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
    含んでいません
    新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は
    メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。
    警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
    正常になります

  • nで領域を追加します。
    コマンド (m でヘルプ): n
    コマンドアクション
       e   拡張
       p   基本領域 (1-4)
    p
    領域番号 (1-4): 1
    最初 シリンダ (1-652, default 1):
    終点 シリンダ または +サイズ または +サイズM または +サイズK (1-652, default 652):
    Using default value 652

  • wで保存します。
    コマンド (m でヘルプ): w
    領域テーブルは交換されました!
    
    ioctl() を呼び出して領域テーブルを再読込みします。
    ディスクを同期させます。

ファイルシステムのフォーマット

  • 今回はext3でフォーマットします。
    # mke2fs -j /dev/sdb1

マウントポイントの作成

  • マウントポイントを/iscsiとして作成します。
    # mkdir /iscsi

マウント

  • iscsiボリュームをマウントします。
    # mount -t ext3 /dev/sdb1 /iscsi

  • マウントの確認を行います。/dev/sdb1のマウント位置が/iscsiになっていることを確認します。
    # df -h
    Filesystem          サイズ  使用  残り 使用% マウント位置
    /dev/mapper/VolGroup00-LogVol00
                          6.2G  2.5G  3.4G  43% /
    /dev/sda1              99M   18M   76M  20% /boot
    tmpfs                 379M     0  379M   0% /dev/shm
    /dev/sdb1             5.0G  139M  4.6G   3% /iscsi

  • 起動時にiscsiボリュームを自動マウントするようfstabを設定します。
    # vi /etc/fstab
    /dev/sdb1             /iscsi              ext3    _netdev        1 1

動作テスト

  • 最後にイニシエータ(serv100)で書き込みと削除のテストを行います。 問題なければこれで終了です。
    # touch /iscsi/test.txt
    # rm /iscsi/test.txt
このエントリーをはてなブックマークに追加
Last-modified: 2010-06-05 (土) 12:30:45   最終更新のRSS