2012年02月19日

CentOS 6.2 + Hyper-V IC 3.2

CentOS 6.2 + Hyper-V IC 3.2に移行しました。
ラベル:Hyper-V
posted by さっしー at 16:17| 神奈川 ☀| Comment(0) | TrackBack(0) | Linux | このブログの読者になる | 更新情報をチェックする

2010年08月28日

Linux Integration Component V2.1をSUSE Linux Enterprise Server 11 SP1で試したが

Linux Integration Services v2.1 for Windows Server 2008 Hyper-V R2 now on Web !!
http://yamanxworld.blogspot.com/2010/07/linux-integration-services-v21-for.html
に触発されて、Linux Enterprise Server 11 SP1をSUSE Linux Enterprise Server 11 SP1で試すことにしました。

とりあえず、unameしてみる。
linux:/opt/linux_ic_v21_rtm # uname -a
Linux linux 2.6.32.12-0.7-pae #1 SMP 2010-05-20 11:14:20 +0200 i686 i686 i386 GNU/Linux


ソースをコピー後、make実行
linux:/opt/linux_ic_v21_rtm # make
Building all modules...
make -C /lib/modules/2.6.32.12-0.7-pae/build SUBDIRS=/opt/linux_ic_v21_rtm/src modules
make[1]: ディレクトリ `/usr/src/linux-2.6.32.12-0.7-obj/i386/pae' に入ります
make -C ../../../linux-2.6.32.12-0.7 O=/usr/src/linux-2.6.32.12-0.7-obj/i386/pae/. modules
CC [M] /opt/linux_ic_v21_rtm/src/osd.o
/opt/linux_ic_v21_rtm/src/osd.c:469:41: error: マクロ "INIT_WORK" に引数が 3 渡されましたが、2 しか受け取りません
/opt/linux_ic_v21_rtm/src/osd.c: In function ‘WorkQueueQueueWorkItem’:
/opt/linux_ic_v21_rtm/src/osd.c:469: error: ‘INIT_WORK’ undeclared (first use in this function)
/opt/linux_ic_v21_rtm/src/osd.c:469: error: (Each undeclared identifier is reported only once
/opt/linux_ic_v21_rtm/src/osd.c:469: error: for each function it appears in.)
/opt/linux_ic_v21_rtm/src/osd.c:487:41: error: マクロ "INIT_WORK" に引数が 3 渡されましたが、2 しか受け取りません
/opt/linux_ic_v21_rtm/src/osd.c: In function ‘QueueWorkItem’:
/opt/linux_ic_v21_rtm/src/osd.c:487: error: ‘INIT_WORK’ undeclared (first use in this function)
make[4]: *** [/opt/linux_ic_v21_rtm/src/osd.o] エラー 1
make[3]: *** [_module_/opt/linux_ic_v21_rtm/src] エラー 2
make[2]: *** [sub-make] エラー 2
make[1]: *** [all] エラー 2
make[1]: ディレクトリ `/usr/src/linux-2.6.32.12-0.7-obj/i386/pae' から出ます
make: *** [all] エラー 2

あれ、エラーになってるぞ。

ということで、そのマクロ "INIT_WORK"の部分を全ソースで探してみる。
linux:/opt/linux_ic_v21_rtm # grep "INIT_WORK" src/*
src/osd.c: INIT_WORK(&w->work, WorkItemCallback);
src/osd.c: INIT_WORK(&w->work, WorkItemCallback, w);
src/osd.c: INIT_WORK(&w->work, WorkItemCallback);
src/osd.c: INIT_WORK(&w->work, WorkItemCallback, w);
src/storvsc_drv.c: INIT_WORK(&host_device_ctx->host_rescan_work, storvsc_host_rescan_callback);
src/storvsc_drv.c: INIT_WORK(&host_device_ctx->host_rescan_work, storvsc_host_rescan_callback, device_obj);
src/vmbus_drv.c: INIT_WORK(&s_event->wq, (void *)(void *)my_usermodehelper, s_event);
src/vmbus_drv.c: INIT_WORK(&s_event->wq, (void *)(void *)my_usermodehelper, s_event);
src/vmbus_drv.c: INIT_WORK(&device_ctx->probe_failed_work_item, vmbus_probe_failed_cb);
src/vmbus_drv.c: INIT_WORK(&device_ctx->probe_failed_work_item, vmbus_probe_failed_cb, device_ctx);


エラーがでていたosd.cのソースコードの該当部分だけを抜粋すると
#ifdef KERNEL_2_6_27
INIT_WORK(&w->work, WorkItemCallback);
#else
INIT_WORK(&w->work, WorkItemCallback, w);
#endif

ん、カーネルバージョンでifdefされている。
マクロ "INIT_WORK" に引数が 3 渡されましたが、2 しか受け取りませんから、どうやらKERNEL_2_6_27のほうでないと正しくコンパイルできないようだ。

ちょっと直せるものなのかを確認するため、全ソースへgrepしてみたが、
linux:/opt/linux_ic_v21_rtm # grep "KERNEL_2_6_27" src/*
src/blkvsc_drv.c:#ifdef KERNEL_2_6_27
src/blkvsc_drv.c:#ifdef KERNEL_2_6_27
src/blkvsc_drv.c:#ifdef KERNEL_2_6_27
src/blkvsc_drv.c:#ifdef KERNEL_2_6_27
src/netvsc_drv.c:#if !defined(KERNEL_2_6_27)
src/osd.c:#ifdef KERNEL_2_6_27
src/osd.c:#ifdef KERNEL_2_6_27
src/osd.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#elif defined(KERNEL_2_6_27)
src/storvsc_drv.c:#if defined(KERNEL_2_6_27)
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/storvsc_drv.c:#ifdef KERNEL_2_6_27
src/vmbus_drv.c:#ifdef KERNEL_2_6_27
src/vmbus_drv.c:#elif defined(KERNEL_2_6_27)
src/vmbus_drv.c:#ifdef KERNEL_2_6_27
src/vmbus_drv.c:#ifdef KERNEL_2_6_27
src/vmbus_drv.c:#ifdef KERNEL_2_6_27
src/vmbus_drv.c:#ifdef KERNEL_2_6_27
src/vmbus_drv.c:#ifdef KERNEL_2_6_27
src/vmbus_drv.c:#ifdef KERNEL_2_6_27
src/vmbus_drv.c:#elif defined(KERNEL_2_6_27)
src/vmbus_drv.c:#ifdef KERNEL_2_6_27
src/vmbus_drv.c:#ifdef KERNEL_2_6_27
src/vmbus_drv.c:#ifdef KERNEL_2_6_27
src/vmbus_drv.c:#ifdef KERNEL_2_6_27
src/vmbus_drv.c:#ifdef KERNEL_2_6_27

ちょっとこれは無理そうなので、Microsoftさんの対応を待つしかなさそうという結論に(-_-;)続きを読む
ラベル:Hyper-V Linux
posted by さっしー at 11:24| 神奈川 ☀| Comment(0) | TrackBack(1) | Linux | このブログの読者になる | 更新情報をチェックする

2010年04月14日

iSCSIターゲット「ILO-Target」

1.背景
Windows Sever 2008以降のフェールオーバークラスタは、FC-SANおよびiSCSIをサポートしています。iSCSIはソフトウェアベースのターゲットがあるため、イニシャルコストをかけずに、Windows Sever 2008以降のフェールオーバークラスタ(ひいてはHyper-V のMigration)をテストできるのではないかと考えています。
Linux用のiSCSI Targetでは、iSCSI Enterprise Targetがメジャーですが、2008年時点で調査した際、SCSI-3のpersistent reservations(永続的な予約)をサポートしておらず、Windows Sever 2008フェールオーバークラスタの構築を断念した経緯があります。
今回、改めて調査したところILO-TargetというiSCSIターゲットがあることがわかったため、構築および使用の感触を調査することにしました。

2.ILO-Targetについて
ILO-Targetとは、SCSI-3のpersistent reservations(永続的な予約)をサポートしているLinuxのiSCSI Targetであり、Kernelソースおよびユーティリティのセットで提供されています。

LIO-Target

3.ILO-Target構築準備
Fedora 12を構築環境としました。
また、Fedora 12に搭載されているKernelソースをインストールし、/usr/src/linuxにln –sコマンドでシンボリックリンクを張っておきました。

4.ILO-Target構築手順
http://www.linux-iscsi.org/index.php/Howto
に従って構築しますが、適宜補足を入れていきます。
そのため、http://www.linux-iscsi.org/index.php/Howtoにあるボールド体の文字部分を手順に盛り込み、原文での手順と対比し易いようにしておきます。

(ア)Building Linux kernel and LIO sources
 1)Kernelとkernel Modulesを作ります。
  A)/usr/srcに移動します。
   # cd /usr/src/

  B)root権限に切り替えます。

  C)gitにより、ILO-Targetを含むKernelソースをダウンロードします。
   # git clone git://git.kernel.org/pub/scm/linux/kernel/git/nab/lio-core-2.6.git lio-core-2.6.git

  D)Kernelソースのディレクトリへ移動します。
   # cd lio-core-2.6.git

  E).configファイルコピーします。
   # cp ../linux/.config .

  F)Kernelの構成を設定します。
   # make menuconfig
   を実行後、[Device Drivers]を選択すると以下の画面が表示されます。
   kernel_ILO-Target.jpg

  G)念のため、環境変数を設定します。
   # export TARGET=/sys/kernel/config/target/core/
   # export FABRIC=/sys/kernel/config/target/iscsi/

  H)Kernelを構築します。
   # make dep
   # make clean
   # make bzImage

  I)Kernelモジュールを構築します。
   # make modules
    make modules中にutsrelease.hを作っているので、include/linux/utsrelease.hとしてコピーします。
   # make modules_install

  J)Kernel等をコピーします。
   # cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.34-rc3
   # chmod 755 /boot/vmlinuz-2.6.34-rc3
   # cp System.map /boot/System.map-2.6.34-rc3
   # yum install mkinitrd
   # mkinitrd initrd-2.6.34-rc3.img 2.6.34-rc3
   # cp initrd-2.6.34-rc3.img /boot/initramfs-2.6.34-rc3.img

  K)構築したKernelで起動するよう起動リストを編集します。
   # vi /boot/grub/menu.lst

  L)ILO-TargetのKernelモジュールが存在するかを確認します。
   $ pwd
   /lib/modules/2.6.34-rc3/kernel/drivers
   $ ls -R staging/hv target/
   staging/hv:
   hv_blkvsc.ko hv_netvsc.ko hv_storvsc.ko hv_vmbus.ko

   target/:
   lio-target target_core_mod.ko

   target/lio-target:
   iscsi_target_mod.ko

 2)lio-utilsを構築します。
  A)ホームディレクトリで作業します。
   $ cd ~

  B)gitにより、lio-utilsをダウンロードします。
   $ git clone git://git.kernel.org/pub/scm/linux/storage/lio/lio-utils.git lio-utils.git

  C)root権限に切り替えます。

  D)不足しているパッケージをインストールします。
   # yum install python-devel net-snmp net-snmp-devel

  E)lio-utils を構築、インストールします。
   # cd lio-utils.git
   # make
   # make install

(イ)ILO-Targetの実行、設定を行います。
 1)Start target_core_mod
  A)念のため、環境変数を設定します。
   # export TARGET=/sys/kernel/config/target/core/
   # export FABRIC=/sys/kernel/config/target/iscsi/

  B)iSCSIターゲットを起動します。
   # /etc/init.d/target start
   何度か起動後、うまく起動できない場合は、以下のコマンドを実行します。
   # rm /var/crash/target.fault

  C)必要に応じてdmesgでメッセージが出力されているかを確認する。

 2)Configure target_core_mod storage objects
  ) Linux/VFS with TCM/FILEIO
  A)10GBのファイルをiSCSIターゲットの提供領域として指定します。
   # tcm_node --fileio fileio_0/some_file /var/ilo-target_file01 10000000000
    ConfigFS HBA: fileio_0
   Successfully added TCM/ConfigFS HBA: fileio_0
    ConfigFS Device Alias: some_file
   Device Params ['fd_dev_name=/var/ilo-target_file01,fd_dev_size=10000000000']
   Status: DEACTIVATED Execute/Left/Max Queue Depth: 0/32/32 SectorSize: 512 MaxSectors: 1024
    TCM FILEIO ID: 0 File: /var/ilo-target_file01 Size: 10000000000 Mode: Synchronous
   Set T10 WWN Unit Serial for fileio_0/some_file to: 25132122-58f3-4c37-a05f-3a87d6095cd8
   Successfully created TCM/ConfigFS storage object: /sys/kernel/config/target/core/fileio_0/some_file

  B)ファイルが作成されているか確認します。
   # ls -l /var/ilo-target_file01
   -rw-------. 1 root root 9998172160 2010-04-07 16:34 /var/ilo-target_file01

 3)Display running status with init.d/target
  A)iSCSIターゲットの動作状況を確認します。
   # /etc/init.d/target status
   [---------------------------] TCM/ConfigFS Status [----------------------------]
   \------> fileio_0
    HBA Index: 1 plugin: fileio version: v3.4.0-rc1
    \-------> some_file
    Status: DEACTIVATED Execute/Left/Max Queue Depth: 0/32/32 SectorSize: 512 MaxSectors: 1024
    TCM FILEIO ID: 0 File: /var/ilo-target_file01 Size: 10000000000 Mode: Synchronous
    udev_path: N/A
   Traceback (most recent call last):
    File "/usr/sbin/tcm_node", line 794, in
    main()
    File "/usr/sbin/tcm_node", line 786, in main
    (options, args) = parser.parse_args()
    File "/usr/lib/python2.6/optparse.py", line 1381, in parse_args
    stop = self._process_args(largs, rargs, values)
    File "/usr/lib/python2.6/optparse.py", line 1421, in _process_args
    self._process_long_opt(rargs, values)
    File "/usr/lib/python2.6/optparse.py", line 1496, in _process_long_opt
    option.process(opt, value, values, self)
    File "/usr/lib/python2.6/optparse.py", line 775, in process
    self.action, self.dest, opt, value, values, parser)
    File "/usr/lib/python2.6/optparse.py", line 795, in take_action
    self.callback(self, opt, value, parser, *args, **kwargs)
    File "/usr/sbin/tcm_node", line 325, in tcm_list_hbas
    p = open(dev_root + "/" + dev + "/info", 'rU')
   IOError: [Errno 20] Not a directory: '/sys/kernel/config/target/core/fileio_0/hba_mode/info'

   [---------------------------] LIO-Target Status [----------------------------]

  B)エラーが発生していますが、そのまま作業を続行します。

 4)Create iSCSI Logical Units and Target Portal Groups
  A)論理ユニットを作成します。
   # lio_node --addlun iqn.2003-01.org.linux-iscsi.vpcn 1 0 some_file fileio_0/some_file
   Successfully created iSCSI Target Logical Unit

  B)論理ユニットの状態を確認します。
   # lio_node –listendpoints
   \------> iqn.2003-01.org.linux-iscsi.vpcn
    \-------> tpgt_1 TargetAlias: LIO Target
    TPG Status: DISABLED
    TPG Network Portals:
    TPG Logical Units:
    \-------> lun_0/some_file -> target/core/fileio_0/some_file
   Traceback (most recent call last):
    File "/usr/sbin/lio_node", line 803, in
    main()
    File "/usr/sbin/lio_node", line 795, in main
    (options, args) = parser.parse_args()
    File "/usr/lib/python2.6/optparse.py", line 1381, in parse_args
    stop = self._process_args(largs, rargs, values)
    File "/usr/lib/python2.6/optparse.py", line 1421, in _process_args
    self._process_long_opt(rargs, values)
    File "/usr/lib/python2.6/optparse.py", line 1496, in _process_long_opt
    option.process(opt, value, values, self)
    File "/usr/lib/python2.6/optparse.py", line 775, in process
    self.action, self.dest, opt, value, values, parser)
    File "/usr/lib/python2.6/optparse.py", line 795, in take_action
    self.callback(self, opt, value, parser, *args, **kwargs)
    File "/usr/sbin/lio_node", line 570, in lio_target_list_endpoints
    sourcelink = os.readlink(port_link)
   OSError: [Errno 22] Invalid argument: '/sys/kernel/config/target/iscsi/iqn.2003-01.org.linux-iscsi.vpcn/tpgt_1/lun/lun_0/alua_tg_pt_write_md'

 5)Create iSCSI Network Portals
  A)iSCSIターゲットのネットワークポータルを作成します。
   # lio_node --addnp iqn.2003-01.org.linux-iscsi.vpcn 1 192.168.1.90:3260
   Successfully created network portal: 192.168.1.90:3260 created iqn.2003-01.org.linux-iscsi.vpcn TPGT: 1

 6)FWで3260:tcp,3260:udpを開けます。

 7)Modify iSCSI Target Portal Group settings
  A)iSCSIイニシエーターに対して、論理ユニットのアクセス権を付与します。
   # lio_node --addlunacl iqn.2003-01.org.linux-iscsi.vpcn 1 iqn.1991-05.com.microsoft:vpcc.exsshzk.local 0 0
   Successfully added iSCSI Initiator Mapped LUN: 0 ACL iqn.1991-05.com.microsoft:vpcc.exsshzk.local for iSCSI Target Portal Group: iqn.2003-01.org.linux-iscsi.vpcn 1
   # lio_node --addlunacl iqn.2003-01.org.linux-iscsi.vpcn 1 iqn.1991-05.com.microsoft:vpcd.exsshzk.local 0 0
   Successfully added iSCSI Initiator Mapped LUN: 0 ACL iqn.1991-05.com.microsoft:vpcd.exsshzk.local for iSCSI Target Portal Group: iqn.2003-01.org.linux-iscsi.vpcn 1
 8)Enable iSCSI Target Portal Group

  A)iSCSIターゲットのネットワークポータルを有効にします。
   # lio_node --enabletpg iqn.2003-01.org.linux-iscsi.vpcn 1
   Successfully enabled iSCSI Target Portal Group: iqn.2003-01.org.linux-iscsi.vpcn 1

  B)Windows Server 2008 R2のiSCSIイニシエーターとCHAP認証の互換性がないため、認証そのものを無効にします。
   # lio_node --disableauth iqn.2003-01.org.linux-iscsi.vpcn 1
   Successfully disabled iSCSI Authentication on iSCSI Target Portal Group: iqn.2003-01.org.linux-iscsi.vpcn 1

  C)iSCSIターゲットのネットワークポータルの状態を確認します。
   # lio_node –listendpoints
   \------> iqn.2003-01.org.linux-iscsi.vpcn
    \-------> tpgt_1 TargetAlias: LIO Target
    TPG Status: ENABLED
    TPG Network Portals:
    \-------> 192.168.1.90:3260
    TPG Logical Units:
    \-------> lun_0/some_file -> target/core/fileio_0/some_file
   Traceback (most recent call last):
    File "/usr/sbin/lio_node", line 803, in
    main()
    File "/usr/sbin/lio_node", line 795, in main
    (options, args) = parser.parse_args()
    File "/usr/lib/python2.6/optparse.py", line 1381, in parse_args
    stop = self._process_args(largs, rargs, values)
    File "/usr/lib/python2.6/optparse.py", line 1421, in _process_args
    self._process_long_opt(rargs, values)
    File "/usr/lib/python2.6/optparse.py", line 1496, in _process_long_opt
    option.process(opt, value, values, self)
    File "/usr/lib/python2.6/optparse.py", line 775, in process
    self.action, self.dest, opt, value, values, parser)
    File "/usr/lib/python2.6/optparse.py", line 795, in take_action
    self.callback(self, opt, value, parser, *args, **kwargs)
    File "/usr/sbin/lio_node", line 570, in lio_target_list_endpoints
    sourcelink = os.readlink(port_link)
   OSError: [Errno 22] Invalid argument: '/sys/kernel/config/target/iscsi/iqn.2003-01.org.linux-iscsi.vpcn/tpgt_1/lun/lun_0/alua_tg_pt_write_md'

(ウ)Windows Server 2008 R2のiSCSIイニシエーターの設定を行い、フェールオーバークラスタを構築します。

5.考察
(ア)ILO-Targetは、設定ファイルがないようなので、起動毎にコマンドで設定する必要があります。本手順の途中(Start target_core_modから。ただし、"/etc/init.d/target start"は除く)からshスクリプトにしておけば、有る程度手間も減るのではないかと思います。
また、再度コマンドで設定を行っていくことから、論理ユニットを再指定時に、論理ユニットとして指定したファイルの内容が消失してしまうのではないかとの懸念がありました。しかし、論理ユニットして指定したファイルの内容が消失せず、そのまま利用できたことを確認しました。
(イ)CHAP認証を設定しましたが、Windows Server 2008 R2のiSCSIイニシエーターとの互換性がありません。そのため、接続するiSCSIイニシエーターに対してのみアクセス権を設定する形となり、セキュリティとしては最低限のレベルに留まりました。
(ウ)これらの理由から、現段階では、テスト用の環境としての利用が最も適切です。
(エ)Windows Server 2008 R2のフェールオーバークラスタで使用できるかの確認も行いました。結果として、問題なく利用できることを確認しています。以下に、事前検証時の「フェールオーバークラスター検証レポート」を載せておきます。
msfocverificationreport.jpg

6.参考情報
(ア)http://jp.kernelnewbies.org/Kernel_Hackers%27_guide_to_git
(イ)http://linux-iscsi.org/index.php/LIO-Target#Building_Generic_Target_Engine_and_LIO-Target_v3.x.0_from_kernel.org_git

posted by さっしー at 17:18| ☁| Comment(0) | TrackBack(1) | Linux | このブログの読者になる | 更新情報をチェックする

2008年08月10日

iSCSI Target on Linux

きっかけは、
http://forums.microsoft.com/technet-ja/ShowPost.aspx?PostID=3286005&SiteID=36
で、Windows Server 2008がパラレルSCSIによるフェールオーバークラスタを構築できない点からでした。
インターネット上で類似情報をすでにご存知の方もいらっしゃると思いますが、自分自身でiSCSIターゲットをLinux(CentOS 5.2)にインストールしてみた結果をまとめます。

iSCSIは、記憶装置のSCSIをTCP/IPでラップし、ネットワーク上で記憶装置にアクセスできる仕組みです。→ http://ja.wikipedia.org/wiki/ISCSI より抜粋

具体的な手順等は、以下のとおりです。

1.tarボールのダウンロード
http://iscsitarget.sourceforge.net/ 経由、http://sourceforge.net/project/showfiles.php?group_id=108475 から、tarボールのダウンロードします。
本稿執筆時点では、iscsitarget-0.4.16.tar.gz が最新版でした。

2.展開
以下のコマンドで展開します。
tar -zxvf iscsitarget-0.4.16.tar.gz

3.make
注意点があります。コンパイル時にKernel Sourceを使います。Kernel Sourceが必要なため、/usr/src/kernelなど、ファイルがインストールされているか確認してください。また、カーネルを新しくした場合は、makeおよびmake installをやり直す必要があります。
展開したディレクトリ(本稿の場合は、iscsitarget-0.4.16ディレクトリ)にcdし、makeコマンドを実行します。

4.make install
ひとつ注意点があります。depmodが通常ユーザの環境変数pathに含まれていません。結果、suやsudoにてmake installした際にdepmodを実行できず、make installは失敗します。
・PATH=$PATH:/sbin;export PATH を実行して、sudoやsuでmake install
・Makefileのdepmodの箇所をフルパス(depmod→/sbin/depmod)としてmake install
・rootで入りなおしてmake installします。
 このやり方は、ローカルのコンソールにアクセスできる場合のみ推奨です。sshのPermitRootLogin noの場合など、リモートの場合は、推奨できません。
そうすると、以下のようにファイルがインストールされます。
-----
# make install
`usr/ietd' -> `/usr/sbin/ietd'
`usr/ietadm' -> `/usr/sbin/ietadm'
`etc/initd/initd.redhat' -> `/etc/init.d/iscsi-target'
`doc/manpages/ietadm.8' -> `/usr/share/man/man8/ietadm.8'
`doc/manpages/ietd.8' -> `/usr/share/man/man8/ietd.8'
`doc/manpages/ietd.conf.5' -> `/usr/share/man/man5/ietd.conf.5'
`ChangeLog' -> `/usr/share/doc/iscsitarget/ChangeLog'
`COPYING' -> `/usr/share/doc/iscsitarget/COPYING'
`README' -> `/usr/share/doc/iscsitarget/README'
`README.vmware' -> `/usr/share/doc/iscsitarget/README.vmware'
`kernel/iscsi_trgt.ko' -> `/lib/modules/2.6.18-92.1.1.el5/kernel/iscsi/iscsi_trgt.ko'
Running depmod

6.ietd.confの編集
ietd.confファイルの編集は、suやsudoを使い、管理特権を取得してから行ってください。
ここでは、必要最低限のパラメータのみ設定しています。
-----
#iSCSIターゲットに接続する際の認証(CHAP認証)で使用します。
IncomingUser iscsi hogeinhogein
OutgoingUser iscsi hogeoutoutho
#[IncomingUser | OutgoingUser] ターゲットアクセス時のユーザ名パスワード
#なお、パスワードは、12文字とすることが必要です。
#匿名アクセスを行う場合は、ユーザ名とパスワードを省略できます。
Target iqn.2008-06.local.exsshzk.hogehoge:storage.disk2
#iqn.YYYY-MM.ドメイン名を逆に記載したもの:識別子は自由に設定 というようにtargetを命名します。
Lun 0 Path=/dev/sdb,Type=fileio
# Logical Unit definitionを指定します。
Alias usehostfoc
#ターゲットの別名を指定します。
Target iqn.2008-06.local.exsshzk.hogehoge:storage.disk3
Lun 1 Path=/dev/sdb,Type=fileio
Alias usehostfoc

7.IPアドレスによるアクセス制御を設定
initiator.allowおよびinitiators.denyファイルの編集は、suやsudoを使い、管理特権を取得してから行ってください。なお、initiator.allowおよびinitiators.denyへの、設定方法は、hosts.allowおよびhosts.denyファイルと同様です。
まずは、initiator.allowを設定します。
-----
#Targetに対して、許可するIPアドレス等を設定します。
#w.x.y.z:IPアドレスや、IPサブネットを指定します。
iqn.2008-06.local.exsshzk.hogehoge:storage.disk2 w.x.y.z
iqn.2008-06.local.exsshzk.hogehoge:storage.disk3 w.x.y.z
-----

続いて、initiators.denyを編集します。
-----
#initiator.allowで許可されたもの以外をすべて拒否します。
ALL ALL

8.手動で起動
シェルのプロンプトで、"service iscsi-target start"と入力し、Enterキーを押して実行します。
以下のように、 [ OK ]が表示されれば問題ありません。
# service iscsi-target start
Starting iSCSI target service: [ OK ]

もしくは、以下でもOK。
# /etc/init.d/iscsi-target restart

9.自動起動するために、ランレベルを設定
chkconfig --level 345 iscsi-target on

"chkconfig --list"コマンド等で、上記の内容が反映されているか確認しましょう。

10.Linuxのファイアウォール設定を変更
860/tcp,860/udp,3260/tcp,3260/udpが通過できるよう、Linuxのファイアウォール設定を変更します。
/etc/servicesにポートの一覧があるので、そこからiSCSI関連を確認しておいてください。

11.接続テストの準備
Windows XPおよびWindows Server 2003は、iSCSIイニシエータをダウンロードし、管理特権でインストールする必要があります。
http://www.microsoft.com/downloads/details.aspx?FamilyID=12cb3c1a-15d6-4585-b385-befd1319f825&DisplayLang=en
なお、Window VistaやWindows Server 2008以降は、コントロールパネルにiSCSIイニシエータのアプレットがあります。

12.接続テスト
iSCSIイニシエータは、Windows Server 2008およびVistaで標準装備です。Windows Server 2003およびXPは、ダウンロードする必要があります。
いずれのWindowsでも、概ね以下の手順でできると思います。
-----
管理特権でiSCSIイニシエータのアプレットを起動します。

Discoveryタブへ移動し、 Addボタンを押します。

iSCSIターゲットのIPアドレス(DNS名でも可)とポート番号を設定します。

認証を行うので、「Advanced...」ボタンを押します。

CHAP Logon Informationをチェックし、User Nameにietd.confで設定したIncomingUserのユーザ名を、Target Secretにietd.confで設定したIncomingUserのパスワードを設定し、OKボタンを押します。

Targetタブへ移動し、 Log onボタンを押します。

接続先を確認し、問題がなければ、OKボタンを押します。[Automatically resotre this connection when the system boots]にチェックしておくと、次回起動時に自動で接続してくれます。

コンピュータの管理]の[ディスクの管理]で接続されているか確認します。

ディスクのプロパティを表示させます。

12.考察
Linuxの管理経験、makeの経験があれば、容易に構築できると思います。特に、デバイスファイルとして、LUNを指定するため、OSで認識しているディスクであればなんであろうと、iSCSIのターゲットとして提供できるでしょう。
iSCSIターゲットは、パスワードやIPアドレスによるアクセス制御で保護できますが、それでも不十分な場合は、IPSec等の利用を検討すべきでしょう。

13.参考
Virtual Server 2005上のフェイルオーバークラスタ構成について:
http://forums.microsoft.com/technet-ja/ShowPost.aspx?PostID=3286005&SiteID=36

http://ja.wikipedia.org/wiki/ISCSI

Welcome to the iSCSI enterprise target project Wiki:
http://iscsitarget.sourceforge.net/wiki/index.php/Main_Page

A Quick Guide to iSCSI on Linux:
http://www.cuddletech.com/articles/iscsi/index.html

iSCSI Enterprise Targetをセットアップしよう:
http://srvhat09.anaheim-eng.com/modules/tinyd6/index.php?id=11
(現在、アクセスできないようです。。。)

iSCSIを入れてみた(2):
http://www.rottarte.net/blog/2007/08/iscsi2.html

iSCSI Enterprise Target:
http://bougaidenpa.org/wanatabe/entry/iscsi_enterprise_target
ラベル:iSCSI
posted by さっしー at 08:59| ☔| Comment(0) | TrackBack(0) | Linux | このブログの読者になる | 更新情報をチェックする

2008年05月20日

Fedora 9

前述のとおり、Fedora 9を押しのけて、Ubuntu 8.04を使っています。

なんでかというと、(インストール方法が悪かったのか不明ですが)日本語入力が有効にならなくて。。。
機会があったら、インストール時点で、もう一度確認してみたいと思います。
#過去のFedoraでこういう経験はないのだが、何を間違えたのだろうか。
ラベル:Linux
posted by さっしー at 21:37| ☔| Comment(0) | TrackBack(0) | Linux | このブログの読者になる | 更新情報をチェックする

で、現在どのディストリビューションを使っているかというと

Ubuntuになりました。
DVD再生の情報を参考にしてます。
あと、以下の書籍を見ながら、Cairo-Dockやら、compizやらを有効にしました!
「週刊アスキー」がUbuntu特集のムック本を発売!
週刊アスキー/カンタンUbuntu!

めちゃくちゃ快適ですが、Cairo-Dockがスタートアップしてくれない。しょうがないので、ログイン後、手動で起動。。。
ラベル:Linux
posted by さっしー at 21:34| ☔| Comment(0) | TrackBack(0) | Linux | このブログの読者になる | 更新情報をチェックする

Samba 3

ひさしぶりにLinuxでも触ってみようと、Ubuntu 8.04、CentOS 5.1、Fedora 9のISOイメージを落とし、スクラップ&ビルドでインストールを繰り返す。

そして、PATAな300GBへ写真などのバックアップを行うため、Sambaを入れることにした。
が、いきなりSamba 3とWindows Vistaを組み合わせたので、うまく認証できず、ユーザの共有フォルダにつながらない。
そもそも、tdbsamがよくわかっていなかったのが、まずかった。

いろいろ調べていると「Windows Vista対応 最新 Samba 3.0.24パッケージをリリース」というのを見つける。ああ、Samba側での対応もあったんだと思いつつ、さらにいろいろ調べる。

みていると、Windows Vista側のセキュリティレベルと下げる情報はあるのだが、「Windows Vista対応 最新 Samba 3.0.24パッケージをリリース」にあるような、"VistaからのNTLMv2認証対応"の情報に行き当たらない。そこで、NTLMv2で調べてみると、「Vista から Samba に接続 - Tosshi のメモ書き」に行き当たる。

これなら、つながるなと思い、まず、smbpasswdで、tdbsamのエントリーにパスワードを設定。つづいて、smb.confで、
security=user
client ntlmv2 auth = yes
てな感じ(ほかのエントリーは端折ってます)にしてやると、うまくつながった。

そこで、昔の設定を思い出し、"Valid Users=xxxx"を増やすとうまくいかなくなる。"Valid Users=xxxx"を書くと、tdbsamを見なくなるような挙動だったので、コメントアウト。再び、うまくいった。

tdbsamになってから、"Valid Users=xxxx"は、[homes]セクションではあまり気にしなくてもよさそうだ。
ラベル:samba Linux
posted by さっしー at 21:12| ☔| Comment(0) | TrackBack(0) | Linux | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。