2013年12月21日土曜日

CentOS6.5のRPM版PHP5.3.xでpdo_mysql.soが無いといわれた時の対処法

CentOS6.5のRPM版PHPを使うとき、pdo_mysql.soをphp.iniで有効にすると、そんなファイルは無いと怒られる。
peclでインストールしようとするとエラーを吐くので調べていたら、以下の方法でインストールできる。

# yum install pdo php-mysql

2013年10月20日日曜日

Windows7のiSCSI boot

世間はすでにWindows8.1の話題ですね。
そんな中、約1年くらいずっと悩んでたWindows7のiSCSI Bootに成功したので、その話をしてみます。
今更感たっぷりですがお付き合いください。

環境

今回使用した機材は次のとおり

iSCSI Target :
 Server: DELL PowerEdge R410
 OS : Scientific Linux release 6.2  (2.6.32-220.17.1.el6.x86_64)

Client: Intel DC3217IYE  
 OS: Windows 7 Home Edition

基本的にはWindowsの iSCSI Boot の方法を参照してください。
このBlogでは苦労した点について中心に記述します。

iPXEとgPXEの違い

iPXEとgPXEの両方がやる方として出てくるので、どちらを使うか迷いました。
google先生で聞くところ、iPXEのほうが開発が活発であるとのこと。
今回の環境ではiPXEを使いましたが、違いはあまりないと思われます。

#ちなみにgPXEではカーソルキーの↑でコマンドヒストリが出てきませんが、iPXEではコマンドヒストリが出てくるようです。

sanboot コマンドパラメータ

検索する情報現ほとんどがLUNの記述がありませんでしたが、今回の環境ではLUNを設定しないと、iSCSIDriveとして正しく認識をされませんでした。

sanboot --drive 0x80 --keep iscsi:192.168.1.10:::1:iqn.2011-10.local.home:windows7

--driveオプションと--keepオプションはおまじないです。実際にはこのコマンドの前に「set keep-san 1」を入れています。

WindowsインストーラにNICが認識されない

今回利用したクライアントはNICが新しすぎて標準のWindowsインストーラから認識されませんでした。
KVM上Windows7をインストールしたイメージをBootしようと試みたりしましたがうまくいきいかなかったので、正攻法でNICドライバをインストーラ起動時に入れることで認識し、あっさり解決しました。

通常はDiskドライバを入れて認識させる機能にNICドライバをインストールすることでiSCSIドライブが認識するというのはなかなか想像が結びつかないですが、同様な問題が発生した場合はやってみる価値がありそうです。

chainを使って試行錯誤

今回iPXEはUSBメモリに入れて実行しました。
iPXEの対話モードで毎回コマンドを入れるのが面倒だったので、iSCSI TargetにApacheをインストールし、boot.ipxeファイルを作成して、chainコマンドをつかうことで試行錯誤のスピードが上がります。

> dhcp net0
> chain http://192.168.1.10/boot.ipxe

iPXEイメージにスクリプトを埋め込む

自動起動をさせる場合にスクリプトをiPXEのイメージに入れる必要がありますが、めんどくさいなと思ってたら便利なサイトが見つかりました。

Generate iPXE images - http://rom-o-matic.eu/

USBイメージの場合は「Choose an output format:」をUSBKeyImageを選択し、「Embedded script:」に起動したいスクリプトを書きます。
今回は以下のように書きました。

#!ipxe

dhcp net0
set keep-san 1
sanboot --drive 0x80 --keep iscsi:192.168.1.10:::1:iqn.2011-10.local.home:windows7


参考:



2013年1月16日水曜日

Vyatta 6.5R1 のNAT Ruleの旧バージョンからの変更点

Vyattaの新しいバージョン 6.5R1が2012年10月中旬ごろにリリースされ、すでにCommunity Versionでも6.5R1がダウンロードできるようになっています。
  
私の自宅ではVyattaが動いていて新しくPBRが使えるようになったので、VersionUPをすることにしました。
しかしConfigを移し替えようとしたところ、そのままのConfigでは入ってくれない。
原因はNAT Ruleの記述が違うこと。
その移行のメモを書いておきます。

  1. NAT Ruleがserviceセクションから外れた。
    6.3の場合:
      set service nat rule ....
    6.5R1の場合:
      set nat (source|destination) rule ...
  2. inbound-address, outbound-addressが translation に変わった
    例:
    6.3の場合:
      set service nat rule 10 outside-address address 'aa.bb.cc.dd'
    6.5R1の場合:
      set service nat rule 10 translation address 'aa.bb.cc.dd'
    ※inside-addressも同様。
  3. sshの protocol-version がなくなった
    sshのprotocol-version が廃止された様子
    ※そもそもssh v1は脆弱なため、使わないほうがいい)
本当はConfig変換のスクリプトを書きたかったけど、直ぐに思いつかなかったので、また思いついたら書くことにします。