iSCSI 設定 · 5 min read · Feb 07, 2026

Ubuntu 9.04でのiSCSIの使用 (イニシエーターとターゲット)

Ubuntu 9.04でのiSCSIの使用 (イニシエーターとターゲット)

バージョン 1.0
著者: Falko Timme

このガイドでは、Ubuntu 9.04を実行しているiSCSIターゲットとiSCSIイニシエーター(クライアント)を設定する方法を説明します。iSCSIプロトコルは、ストレージエリアネットワーク(SAN)プロトコルであり、iSCSIイニシエーターが通常のイーサネットケーブルを使用して(リモート)iSCSIターゲット上のストレージデバイスを使用できるようにします。iSCSIイニシエーターにとって、リモートストレージは通常のローカル接続されたハードドライブのように見えます。

これがあなたにとって機能するという保証はありません!

1 前提条件

ここでは、2台のUbuntu 9.04サーバーを使用しています:

  • server1.example.com (イニシエーター): IPアドレス 192.168.0.100
  • server2.example.com (ターゲット): IPアドレス 192.168.0.101

このチュートリアルのすべてのステップをroot権限で実行するため、チュートリアル内のすべてのコマンドの前に文字列sudoを付けるか、次のようにして今すぐrootになります。

sudo su 

2 ターゲットの設定 (server2)

server2:

まず、ターゲット(server2)を設定します:

aptitude install iscsitarget

/etc/default/iscsitargetを開きます…

vi /etc/default/iscsitarget

… そしてISCSITARGET_ENABLEをtrueに設定します:

| ISCSITARGET_ENABLE=true |

使用されていない論理ボリューム、イメージファイル、ハードドライブ(例:/dev/sdb)、ハードドライブパーティション(例:/dev/sdb1)またはRAIDデバイス(例:/dev/md0)をストレージとして使用できます。この例では、ボリュームグループvg0内にstorage_lun1という名前の20GBの論理ボリュームを作成します:

lvcreate -L20G -n storage_lun1 vg0 

(イメージファイルを使用したい場合は、次のように作成できます:

mkdir /storage
dd if=/dev/zero of=/storage/lun1.img bs=1024k count=20000

これにより、サイズ20GBのイメージファイル/storage/lun1.imgが作成されます。

次に、/etc/ietd.confを編集します…

vi /etc/ietd.conf

… そしてそのファイル内のすべてをコメントアウトします。最後に、次のスタンザを追加します:

| [...] Target iqn.2001-04.com.example:storage.lun1 IncomingUser someuser secret OutgoingUser Lun 0 Path=/dev/vg0/storage_lun1,Type=fileio Alias LUN1 #MaxConnections 6 |

ターゲット名はグローバルに一意である必要があります。iSCSI標準は「iSCSI Qualified Name」を次のように定義しています:iqn.yyyy-mm.<逆ドメイン名>[:identifier]; yyyy-mmはドメインが有効な日付です; identifierは自由に選択できます。IncomingUser行には、ユーザー名とパスワードが含まれており、このユーザー名とパスワードを提供するイニシエーター(クライアント)のみがログインしてストレージデバイスを使用できます。認証が不要な場合は、IncomingUser行にユーザー名とパスワードを指定しないでください。Lun行では、ストレージデバイスへのフルパスを指定する必要があります(例:/dev/vg0/storage_lun1、/storage/lun1.img、/dev/sdbなど)。

次に、ターゲットに対して、IPアドレス192.168.0.100(server1.example.com)からデバイスiqn.2001-04.com.example:storage.lun1への接続を許可するように指示します…

vi /etc/initiators.allow

| [...] iqn.2001-04.com.example:storage.lun1 192.168.0.100 |

… そしてターゲットを起動します:

/etc/init.d/iscsitarget start  

3 イニシエーターの設定 (server1)

server1:

server1で、イニシエーターをインストールします:

aptitude install open-iscsi

次に、/etc/iscsi/iscsid.confを開きます…

vi /etc/iscsi/iscsid.conf

… そしてnode.startupをautomaticに設定します:

| [...] node.startup = automatic [...] |

その後、イニシエーターを再起動します:

/etc/init.d/open-iscsi restart

次に、ターゲット(server2)に接続し、どのストレージデバイスが提供されているかを確認します:

iscsiadm -m discovery -t st -p 192.168.0.101

server1:~# iscsiadm -m discovery -t st -p 192.168.0.101
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
server1:~#

iscsiadm -m node

server1:~# iscsiadm -m node
192.168.0.101:3260,1 iqn.2001-04.com.example:storage.lun1
server1:~#

ストレージデバイスiqn.2001-04.com.example:storage.lun1の設定は、ファイル/etc/iscsi/nodes/iqn.2001-04.com.example:storage.lun1/192.168.0.101,3260,1/defaultに保存されます。そのファイル内でターゲットのユーザー名とパスワードを設定する必要があります。そのファイルを手動で編集する代わりに、iscsiadmコマンドを使用してこれを行うことができます:

iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –op=update –name node.session.auth.authmethod –value=CHAP
iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –op=update –name node.session.auth.username –value=someuser
iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –op=update –name node.session.auth.password –value=secret

これで、次のようにログインできます…

iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --login

server1:~# iscsiadm -m node –targetname “iqn.2001-04.com.example:storage.lun1” –portal “192.168.0.101:3260” –login
[iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.0.101,3260]にログイン中
[iface: default, target: iqn.2001-04.com.example:storage.lun1, portal: 192.168.0.101,3260]へのログイン:成功
server1:~#

… またはイニシエーターを再起動することでもできます:

/etc/init.d/open-iscsi restart 

(ログアウトしたい場合は、次のように実行できます。

iscsiadm -m node --targetname "iqn.2001-04.com.example:storage.lun1" --portal "192.168.0.101:3260" --logout

fdisk -l 

の出力には、新しいハードドライブ(この例では/dev/sdb)が表示されるはずです。それが私たちのiSCSIストレージデバイスです:

server1:~# fdisk -l
ディスク /dev/sda: 32.2 GB, 32212254720 バイト
255 ヘッダ、63 セクタ/トラック、3916 シリンダ
単位 = シリンダの 16065 * 512 = 8225280 バイト
ディスク識別子: 0x00031334

デバイス ブート 開始 終了 ブロック Id システム
/dev/sda1 * 1 3749 30113811 83 Linux
/dev/sda2 3750 3916 1341427+ 5 拡張
/dev/sda5 3750 3916 1341396 82 Linux swap / Solaris

ディスク /dev/sdb: 21.4 GB, 21474836480 バイト
64 ヘッダ、32 セクタ/トラック、20480 シリンダ
単位 = シリンダの 2048 * 512 = 1048576 バイト
ディスク識別子: 0x00000000

ディスク /dev/sdb には有効なパーティションテーブルが含まれていません
server1:~#

そのデバイスを使用するには、フォーマットする必要があります:

fdisk /dev/sdb

server1:~# fdisk /dev/sdb
デバイスには有効なDOSパーティションテーブルも、Sun、SGI、またはOSFディスクラベルも含まれていません
ディスク識別子0x882944dfで新しいDOSディスクラベルを構築しています。
変更は、あなたがそれらを書き込むことを決定するまで、メモリ内にのみ残ります。
その後、もちろん、以前の内容は回復できなくなります。

このディスクのシリンダ数は20480に設定されています。
それには何の問題もありませんが、これは1024より大きく、
特定のセットアップでは次のような問題を引き起こす可能性があります:

  1. ブート時に実行されるソフトウェア(例:古いバージョンのLILO)
  2. 他のOSからのブートおよびパーティショニングソフトウェア
    (例:DOS FDISK、OS/2 FDISK)
    警告:パーティションテーブル4の無効なフラグ0x0000はw(書き込み)によって修正されます

コマンド(ヘルプにはmを入力): <– m
コマンドアクション
a ブート可能フラグを切り替える
b bsdディスクラベルを編集する
c dos互換フラグを切り替える
d パーティションを削除する
l 既知のパーティションタイプをリストする
m このメニューを印刷する
n 新しいパーティションを追加する
o 新しい空のDOSパーティションテーブルを作成する
p パーティションテーブルを印刷する
q 変更を保存せずに終了する
s 新しい空のSunディスクラベルを作成する
t パーティションのシステムIDを変更する
u 表示/入力単位を変更する
v パーティションテーブルを検証する
w テーブルをディスクに書き込み、終了する
x 追加機能(専門家のみ)

コマンド(ヘルプにはmを入力): <– n
コマンドアクション
e 拡張
p プライマリパーティション(1-4)
<– p
パーティション番号(1-4): <– 1
最初のシリンダ(1-20480、デフォルト1): <– ENTER
デフォルト値1を使用
最後のシリンダまたは+サイズまたは+サイズMまたは+サイズK(1-20480、デフォルト20480): <– ENTER
デフォルト値20480を使用

コマンド(ヘルプにはmを入力): <– t
選択したパーティション1
16進数コード(Lを入力してコードをリスト): <– L

0 空
1e 隠しW95 FAT1 80 古いMinix
be Solarisブート
1 FAT12
24 NEC DOS
81 Minix / 古いLin
bf Solaris
2 XENIXルート
39 Plan 9
82 Linuxスワップ / So
c1 DRDOS/sec(FAT-
3 XENIX usr
3c PartitionMagic
83 Linux
c4 DRDOS/sec(FAT-
4 FAT16 <32M
40 Venix 80286
84 OS/2隠しC:
c6 DRDOS/sec(FAT-
5 拡張
41 PPC PRePブート
85 Linux拡張
c7 Syrinx
6 FAT16
42 SFS
86 NTFSボリュームセット
da 非FSデータ
7 HPFS/NTFS
4d QNX4.x
87 NTFSボリュームセット
db CP/M / CTOS / .
8 AIX
4e QNX4.x 2nd part
88 Linuxプレーンテキスト
de Dellユーティリティ
9 AIXブート可能
4f QNX4.x 3rd part
8e Linux LVM
df BootIt
a OS/2ブートマネージャ
50 OnTrack DM
93 Amoeba

e1 DOSアクセス
b W95 FAT32
51 OnTrack DM6 Aux
94 Amoeba BBT
e3 DOS R/O
c W95 FAT32 (LBA)
52 CP/M
9f BSD/OS
e4 SpeedStor
e W95 FAT16 (LBA)
53 OnTrack DM6 Aux
a0 IBM Thinkpad hi
eb BeOS fs
f W95 Ext’d (LBA)
54 OnTrackDM6
a5 FreeBSD
ee EFI GPT
10 OPUS
55 EZ-Drive
a6 OpenBSD
ef EFI(FAT-12/16/
11 隠しFAT12
56 Golden Bow
a7 NeXTSTEP
f0 Linux/PA-RISC b
12 Compaq診断
5c Priam Edisk
a8 Darwin UFS
f1 SpeedStor
14 隠しFAT16 <3
61 SpeedStor
a9 NetBSD
f4 SpeedStor
16 隠しFAT16
63 GNU HURDまたはSys
ab Darwinブート
f2 DOSセカンダリ
17 隠しHPFS/NTF
64 Novell Netware
b7 BSDI fs
fd Linux raid auto
18 AST SmartSleep
65 Novell Netware
b8 BSDIスワップ
fe LANstep
1b 隠しW95 FAT3
70 DiskSecure Mult
bb Boot Wizard hid
ff BBT
1c 隠しW95 FAT3
75 PC/IX
16進数コード(Lを入力してコードをリスト): <– 83

コマンド(ヘルプにはmを入力): <– w
パーティションテーブルが変更されました!

ioctl()を呼び出してパーティションテーブルを再読み込みします。
ディスクを同期しています。
server1:~#

その後、次の出力が得られるはずです:

fdisk -l

server1:~# fdisk -l
ディスク /dev/sda: 32.2 GB, 32212254720 バイト
255 ヘッダ、63 セクタ/トラック、3916 シリンダ
単位 = シリンダの 16065 * 512 = 8225280 バイト
ディスク識別子: 0x00031334

デバイス ブート 開始 終了 ブロック Id システム
/dev/sda1 * 1 3749 30113811 83 Linux
/dev/sda2 3750 3916 1341427+ 5 拡張
/dev/sda5 3750 3916 1341396 82 Linux swap / Solaris

ディスク /dev/sdb: 21.4 GB, 21474836480 バイト
64 ヘッダ、32 セクタ/トラック、20480 シリンダ
単位 = シリンダの 2048 * 512 = 1048576 バイト
ディスク識別子: 0x882944df

デバイス ブート 開始 終了 ブロック Id システム
/dev/sdb1 1 20480 20971504 83 Linux
server1:~#

次に、/dev/sdb1にファイルシステムを作成します…

mkfs.ext3 /dev/sdb1

… テスト目的でマウントします:

mount /dev/sdb1 /mnt

次の出力で新しいデバイスが表示されるはずです…

mount

server1:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
odev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 on /mnt type ext3 (rw)
server1:~#

… と

df -h

server1:~# df -h
ファイルシステム サイズ 使用済み 利用可能 使用% マウントポイント
/dev/sda1 29G 685M 27G 3% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 88K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /mnt
server1:~#

次のようにアンマウントできます:

umount /mnt

ブート時に自動的にデバイスをマウントするには、たとえば/storageディレクトリに、そのディレクトリを作成します…

mkdir /storage

… そして/etc/fstabに次の行を追加します:

vi /etc/fstab

| [...] /dev/sdb1 /storage ext3 defaults,auto,_netdev 0 0 |

テスト目的で、システムを再起動できます:

reboot

再起動後、デバイスはマウントされているはずです:

mount

server1:~# mount
/dev/sda1 on / type ext3 (rw,errors=remount-ro)
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
odev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
/dev/sdb1 on /storage type ext3 (rw,_netdev)
server1:~#

df -h

server1:~# df -h
ファイルシステム サイズ 使用済み 利用可能 使用% マウントポイント
/dev/sda1 29G 685M 27G 3% /
tmpfs 253M 0 253M 0% /lib/init/rw
udev 10M 88K 10M 1% /dev
tmpfs 253M 0 253M 0% /dev/shm
/dev/sdb1 20G 173M 19G 1% /storage
server1:~#

4 リンク

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。