タグ: iSCSI

  • Proxmox VEで「storage ‘ストレージ名’ is not online (500)」のエラー

    Proxmox VEをテストしていて、仮想マシンの保存先をiSCSIにしている。いろいろとやっている中で、iSCSIターゲット(マウントされる側)のセキュリティアップデートを行った後に、Proxmox VEのウェブの管理画面で、該当のiSCSIターゲットにアクセスすると、次のエラーが表示された。

    storage 'ストレージ名' is not online (500)

    iSCSIターゲットに接続できなくなってしまったので、いろいろと試した。

    接続できなくなったのは、iSCSIターゲット側でFirewallが邪魔をして、アクセスできなくなっていたから。ただ、この原因にあたるまでにやったことは、Proxmox VE側でコンソール(CLI)から、iscsidを再起動して、iscsiadmで接続確認をした。

    systemctl restart iscsid open-iscsi iscsiadm -m discovery -t sendtargets -p IPアドレス

    「iscsiadm -m discovery -t sendtargets -p」でエラーになったので、ターゲットまでたどり着けていないことがわかり、iSCSIターゲット側に、問題を絞り込んで調べて、ファイアウォールの問題を発見して、解決した。

    その後、もう一度、iscsidを再起動して、「iscsiadm -m discovery -t sendtargets -p」を行ったら、正常に終了した。つぎはProxmox VEに再接続と、思ったら、すでに接続されており、Proxmox VEのウェブ画面からの正常にiSCSIディスクにアクセスできるようになっていた。

  • Veeam BackupでSQL Serverのリストア時にエラーになる

    Veeam Backupで、Windows Server 2003 R2上のSQL Server 2005のDBのリストアを実施したときに下記のエラーが発生した。(Schemaのリストアでは発生しなかった)(Windows Server 2019とSQL Server 2019でDBのリストアをしたときも発生しなかった)

    Failed to restore database: XXX
    Failed to call RPC function 'VerifyiSCSIServiceIsStarted': Microsoft iSCSI Initiator service is not installed.
    Microsoft iSCSI Initiator service is not installed.
    

    Veeam BackupでDBをリストアするときに、iSCSI Initiatorを使って、バックアップフォルダをWindowsにマウントするとのこと。iSCSI Initiatorがインストールされていない場合は、エラーになる。

    対応としては、iSCSI Initiatorをインストールする。特にWindows Server 2003 R2以前は、機能としては提供されていないので、マイクロソフトのサイトからプログラムをダウンロードしてインストールする。

    Windows Server 2003用のiSCSI Initiatorの配布ページは下記。

    Windows Server 2003のiSCSI Initiator
    https://www.microsoft.com/en-us/download/details.aspx?id=18986

  • ミスアライメントI/O

    ミスアライメントとは

    ストレージ側のブロックサイズにたいして、使用しているOSのアプリケーションデータの書き始めと終わりがストレージ側のブロックの中間から始まり、複数のブロックにまたがっている状態。

    ミスアライメントI/Oが発生する状況

    例えば、Windowsでは、iSCSIマウントしたストレージ側のブロックサイズが16Kのときに、フォーマットしたドライブのアロケートユニットサイズを4Kにしてしまうと、ミスアライメントI/Oが発生する。

    解消するには、アロケートユニットサイズをストレージ側のブロックサイズと同じ値でフォーマットする。

    ミスアライメントI/Oが発生していると、データの読み書きのパフォーマンス低下につながる。

  • システムバックアップからリストアしたところ、OSは正常起動したがOracleDBが自動で立ち上がらなくなった。

    OracleがインストールされたWindowsサーバをシャットダウンし、システムバックアップを取得し、データファイルを保存している先のiSCSIディスクのバックアップも取得し、完全な静止点のバックアップを作成した。作業後、静止点のシステムバックアップからリストアを実施。リストア後、OS(Windows)は正常起動し、iSCSIについても問題はなかった。

    しかし、OracleDBの接続確認したところ、「ORA-01034」が発生し、Oracle DBが正常に起動していなかった。Windowsのイベントログも確認したが、特に変なエラーはなし。唯一、Oracle DB起動時に権限系のエラーが出ていた。完全な静止点でのバックアップだったので、SCN番号も関係なし。しかも手動で`startup`すると正常にOracle DBが起動して使えるようになった。

    試行錯誤で、Windows OSの再起動も試したが、事象が再現するだけ。アーカイブログモードもオフにしてみたが状況は変わらず。ドメインへの再参加も実施したが変わらず。いろいろと試したが状況は変わらず。ひとつひとつ切り分けていった結果、原因を特定した。

    原因は、WindowsのOSが起動時に、iSCSIディスクがマウントされる前に、Oracle DBのサービスが起動していたため、データファイルがマウントできず、起動が失敗していた。

    対応として、Oracle DBのサービスを開始遅延で設定。これで、先にiSCSIドライブがマウントされるようになり、自動起動するようになった。

    今までは、たまたま起動順としてiSCSIのサービスが先に起動していただけ。それがイメージバックアップからのリストアがトリガーとなり、起動順番が変わり、Oracle DBが自動起動しなくなった、ということ。

  • ESX4.1がiSCSI関連エラーでクラッシュした。

    ESX4.1が原因不明のパープルスクリーンになった(Windowsでいうところのブルースクリーン)。
    パープルスクリーンの画面をみたところ、下記のようなiSCSIに関するエラーが表示されていた。

    ~~~~ iscsivmk_TaskHandleTx ~~~~
    ~~~~ iscsivmk_ConnProcessTxSchQueue ~~~~
    

    VMwareのナレッジを探したところ、該当するものが見つかった。
    iSCSIスタックに関する障害のナレッジが見つかった。

    原因は、ストレージ側にあるようで、背景を探ると、ストレージに問題があり、切断中に競合すると、ESXのiSCSIカーネルのスレッドで問題が出るようだ。

    iSCSIカーネルに対しては、VMwareから修正パッチが出ている。

    ■該当するナレッジ情報

    https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2007011

  • LaCie 2big NASをVMware ESXi にiSCSI接続する

    LaCie 2big NAS(LCN-2BN4TE)をVMware ESXi に接続しようと四苦八苦したときのメモ。

    LaCie 2big NAS は低価格でiSCSI接続もできるNASだ。簡単な設定でNASの領域とiSCSIで使う領域を変更することができ、1つのハードで両方とも使用することができて、結構便利なNASだ。

    LaCieのNASをESXi 5.1.0にiSCSIディスクとして接続させようとしたがどうしてもiSCSI接続し、ディスクとして使用することができなかった。失敗した手順は、以下のようになる。

    1. NASの管理画面から、iSCSIの設定を行う。
    2. ESXiにvSphere Clientで接続し、”構成タブ”の”ハードウェア”から”ストレージ アダプタ”を選択。
    3. デバイスに、iSCSI Software Adapterを追加(作ったときはvmhba32となった)
    4. 追加したアダプタを選択し、プロパティを開く。
    5. プロパティの”動的検出”のタブから、下のほうにある”追加”ボタンをクリックする。
    6. ここでiSCSIターゲットのアドレスを聞かれるので、サーバ名もしくはIPアドレスを入力し、OKをクリックする(ここで指定するのは、LaCieのNASのホスト名もしくはIPアドレスだ)。すると、ストレージアダプタの詳細欄に、追加したNASが表示されるはずだが、表示されない。ここにNASの名前(ESXiが割り振った名前)や識別子が表示されていれば成功。失敗した場合には、表示されていない。”イベントタブ”をクリックし、ログを確認する。すると以下のようなログが出力されていた。
    7. vmhba34 上の iSCSI ターゲット iqn.1995-05.com.lacie:LaCie-2big-NAS.localhost:target1 へのログインに失敗しました。 iSCSI イニシエータはターゲットへのネットワーク接続を確立できませんでした。
    8. CHAPなどのログイン設定を変えたり、そもそも認証をやめてしまっても同じエラーが出力されて接続できなかった。

    いろいろと調べたが、iSCSIターゲットであるLaCieのNASにログインするところで失敗しているということしかわからなかった。NAS側の設定画面で設定できる項目はほとんどなく、CHAP関連のところも設定を変えて試したが結局失敗した。

    NAS側の問題ということもあるので、Windows 7 からiSCSIでNASに接続を行ったが問題なく使用できた。ESXiもバージョン4.0.0のホストがあったので試しに接続を試みたところ、上記の手順で問題なく認識された。4.0.0のホストでは、そのiSCSIディスクをVMFS3でフォーマットし、実際に仮想マシンを作って稼働させてみた。これについても問題はなし。

    結論。

    VMware ESXi 5.1.0 でLaCie 2big NAS (LCN-2BN4TE)は、iSCSI接続できない。理由はログインできないことだが、詳しい原因は不明。相性問題ということありえる。

    なお、VMware ESXi 4.0.0を使用すれば、LaCie 2big NAS (LCN-2BN4TE)は、iSCSI接続し、使用することができる。(4.1.0系と5.0.0系は試していないのでわからない。)

    iSCSI接続できるNASなら、VMwareに接続できると思っていたけれど、実際には接続できないこともあるようだ。安いiSCSIのドライブでがんばろうと考える場合でも、安全のためにVMware Ready (CERTIFIED)の認定がされているiSCSIドライブを使用したほうがいい。

    ちなみに、このNASはiSCSI領域を1つしか作れない。iSCSI領域に2つ以上の機器から接続することもできない。安いNASなので、そこらへんは仕方ないだろう。