■ インストール
# yum -y install targetcli
■ 設定用のソフトを起動する
# targetcli
■ バージョンの確認
/> version targetcli version 2.0rc1.fb8
■ 簡単な使い方
基本的に全てコマンドベースで作成していく。
・ルートからのディレクトリ階層
/> ls o- / ........................................................... [...] o- backstores ................................................ [...] | o- block ...................................... [0 Storage Object] | o- fileio ..................................... [0 Storage Object] | o- pscsi ...................................... [0 Storage Object] | o- ramdisk .................................... [0 Storage Object] o- ib_srpt ............................................. [Not found] o- iscsi ................................................ [0 Target] o- loopback ............................................. [0 Target] o- qla2xxx ............................................. [Not found] o- tcm_fc .............................................. [Not found]
ヘルプは使用出来るコマンドの一覧が表示されるが、ディレクトリ階層で異なる。
・ルートディレクトリからのヘルプ
/> help GENERALITIES ============ This is a shell in which you can create, delete and configure configuration objects. The available commands depend on the current path or target path you want to run a command in: different path have different sets of available commands, i.e. a path pointing at an iscsi target will not have the same availaible commands as, say, a path pointing at a storage object. The prompt that starts each command line indicates your current path. Alternatively (useful if the prompt displays an abbreviated path to save space), you can run the pwd command to display the complete current path. Navigating the tree is done using the cd command. Without any argument, cd will present you wil the full objects tree. Just use arrows to select the destination path, and enter will get you there. Please try help cd for navigation tips. COMMAND SYNTAX ============== Commands are built using the following syntax: [TARGET_PATH] COMMAND_NAME [OPTIONS] The TARGET_PATH indicates the path to run the command from. If ommited, the command will be run from your current path. The OPTIONS depend on the command. Please use help COMMAND to get more information. AVAILABLE COMMANDS ================== The following commands are available in the current path: - bookmarks action [bookmark] - cd [path] - clearconfig [confirm] - exit - get [group] [parameter...] - help [topic] - ls [path] [depth] - pwd - refresh - restoreconfig [savefile] [clear_existing] - saveconfig [savefile] - sessions [action] [sid] - set [group] [parameter=value...] - status - version />
・backstoresへ移動
/> cd backstores /backstores> ls o- backstores .................................................. [...] o- block ........................................ [0 Storage Object] o- fileio ....................................... [0 Storage Object] o- pscsi ........................................ [0 Storage Object] o- ramdisk ...................................... [0 Storage Object] /backstores>
・backstoresディレクトリからのヘルプ(一部抜粋)
/backstores> help ・・・ 抜粋 ・・・ AVAILABLE COMMANDS ================== The following commands are available in the current path: - bookmarks action [bookmark] - cd [path] - exit - get [group] [parameter...] - help [topic] - ls [path] [depth] - pwd - refresh - set [group] [parameter=value...] - status /backstores>
■ iSCSIを作成する
公式に書いてあるけれど、よくわからない。
作成後の自動移動?もしかしたらそのままの意味かも。とりあえず変更しておく。
/> set global auto_cd_after_create=false
作成出来るデバイスとして、投稿時点では4種類あります。
- block … 主に物理デバイス(HDD)を使用する
- fileio … ファイルを仮想ディスクとして使用する
- pscsi … 恐らくSCSIデバイスを使用する(未確認)
- ramdisk … 自身のメモリを消費してRAM Diskとして利用する
・block作成の場合のサンプル例
/backstores> cd /backstores/block /backstores/block> create name=myblock dev=/dev/disk/by-id/scsi-xxxx-part-1
・fileio作成の場合のサンプル例
/backstores> cd /backstores/fileio /backstores/fileio> create name=myscsi file_or_dev=/root/myscsi.img buffered=true /backstores/fileio> help create name file_or_dev [size] [buffered] [sparse] [size] [sparse] に関してはよく分からない。使用するファイルは事前にddなどで作成しておく。
サンプル例は150GBのファイルを作成
# dd if=/dev/zero of=/root/myscsi.img bs=1G count=150
・pscsi作成の場合のサンプル例
手持ちにSCSIデバイスが無いので未確認です。使い方は他と変わらないのでSCSIデバイスを指定してあげれば行けるかも知れない。
/backstores> cd /backstores/pscsi /backstores/pscsi> create name=xxxx dev=/dev/xxxx
・ramdisk作成の場合のサンプル例
RAM Diskとして自身のメモリをiSCSIデバイスとして提供出来ます。物理メモリが沢山搭載されている場合に有効なデバイスだと思います。
RAM Diskとしての特性があると思うので、
データバックアップ・リストアを自分で行う必要有りです。
/backstores> cd /backstores/ramdisk /backstores/ramdisk> create name=myram size=2G
・iSCSI Target情報の作成
デバイス作成した後はiSCSI Targetとしての設定を行う。デバイス作成でname指定した名称へ移動する。
※以降、fileioとして記載します。
/backstores/fileio/myscsi> /iscsi create Created target iqn.2003-01.org.linux-iscsi.hoge.x8664:sn.d2f860cab8b1. Created TPG 1. Entering new node /iscsi/iqn.2003-01.org.linux-iscsi.hoge.x8664:sn.d2f860cab8b1/tpg1
・LUNを設定する
/iscsi/iqn.20...60cab8b1/tpg1> cd / /> cd /iscsi/iqn.2003-01.org.linux-iscsi.hoge.x8664:sn.d2f860cab8b1/tpg1 /iscsi/iqn.20...60cab8b1/tpg1> luns/ create /backstores/fileio/myscsi Created LUN 0. Entering new node /iscsi/iqn.2003-01.org.linux-iscsi.hoge.x8664:sn.d2f860cab8b1/tpg1/luns/lun0
・iSCSI TargetのIPアドレスを設定する
/iscsi/iqn.20...60cab8b1/tpg1> portals/ create 192.168.2.109 Using default IP port 3260 Created network portal 192.168.2.109:3260.
・ACLを設定する
iSCSI Initiator側のイニシエータ名を指定します。/iscsi/iqn.20...60cab8b1/tpg1> acls/ create iqn.1991-05.com.microsoft:zzz-pc Created Node ACL for iqn.1991-05.com.microsoft:zzz-pc Created mapped LUN 0.
・ターゲットシークレットを設定する
Windows7 のiSCSIイニシエーターだと認証無しだと通過出来なかったのでユーザーとパスワードを設定します。
/iscsi/iqn.20...60cab8b1/tpg1> cd acls/iqn.1991-05.com.microsoft:zzz-pc /iscsi/iqn.20...icrosoft:zzz-pc> set auth userid=hogeuser Parameter userid is now 'hogeuser'. /iscsi/iqn.20...icrosoft:zzz-pc> set auth password=mytargetsecret Parameter password is now 'mytargetsecret'.
・設定情報を保存する
/iscsi/iqn.20...icrosoft:zzz-pc> cd / /> saveconfig Existing file /etc/target/saveconfig.json backed up to saveconfig.json.backup Configuration saved to /etc/target/saveconfig.json /> exit
・LIOを起動させる
# systemctl start targetcli.service # systemctl enable targetcli.service
・再設定する場合
再度targetcliを行ってlsコマンドを打つと初期化状態に戻る時があります。そんな時は下記のコマンドで設定状態を戻す。
/> restoreconfig /etc/target/saveconfig.json