2009年11月19日木曜日

デグレード後使えなくなっていたZFSプールのインポートに成功

OpenSolaris 2009.06 で、Degrade ステータスとなった ZFS プールをインポートできなくなり
困っていたのですが、先ほど紹介した ZFS プールの rewind 機能を試したら無事マウントできるようになりました。

実はディスクを3台収容できるエンクロージャに物理的な障害が発生し 3本中1本のディスクが認識できなくなりました。冗長性を失ったままずっと動いていたのですが、障害原因の切り分けを行うべく OpenSolaris を停止したところ二度と import できなくなり、2ヶ月ほど放置してあったものです。

root@opensolaris:~# zpool import
  pool: array1
    id: 12644204788362156509
 state: DEGRADED
status: The pool was last accessed by another system.
action: The pool can be imported despite missing or damaged devices.  The
        fault tolerance of the pool may be compromised if imported.
   see: http://www.sun.com/msg/ZFS-8000-EY
config:

        array1        DEGRADED
          raidz1      DEGRADED
            c5t0d0p1  ONLINE
            c5t1d0p1  FAULTED  corrupted data
            c4t1d0p1  ONLINE

2009/11/6付の ONNV では同じ操作をするとこんな感じ。ステータス表記が DEGRADED から FAULTED に変更されるなど、メッセージにいくらかの変更があります。

root@opensolaris:~# zpool import
  pool: array1
    id: 12644204788362156509
 state: FAULTED
status: The pool was last accessed by another system.
action: The pool cannot be imported due to damaged devices or data.
        The pool may be active on another system, but can be imported using
        the '-f' flag.
   see: http://www.sun.com/msg/ZFS-8000-EY
config:

        array1        FAULTED  corrupted data
          raidz1-0    FAULTED  corrupted data
            c5t0d0p1  ONLINE
            c5t1d0p1  FAULTED  corrupted data
            c4t1d0p1  ONLINE


これまでインポートできなかった ZFS プール array1 ですが、無事インポートできるようになりました。 cannot share ... のメッセージが表示されていますが、これは iSCSI ターゲットのパッケージが入っておらずサービスが復旧できないために表示されており、 ZFS プールとしてはきちんとオンラインになっています。

root@opensolaris:~# zpool import -Ff array1
cannot share 'array1/timemachine': iscsitgtd failed request to share
cannot share 'array1/iscsi/elena4': iscsitgtd failed request to share

ちなみに -F オプションなしだと下記のようにエラーが表示されました。
プールを作り直せとメッセージが表示されるようになったのは最近のことです。
おそらくインポートできなくなったプールに関する問い合わせが相次いでいたのでしょうね。:-)

root@opensolaris:~# zpool import -f array1
cannot import 'array1': one or more devices is currently unavailable
        Destroy and re-create the pool from
        a backup source.



ZFSに、直近書き込み内容をロールバックする機能が搭載された?

マイコミジャーナルで先日掲載されていた「ZFSにはfsckが必要?」で ZFS にも fsck 的なツールが必要ではないかというお話が書かれていましたが、今日なんとなく ZFS のソースコードを見ていて目にとまったネタがあるので紹介します。


http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/zpool/zpool_main.c


   1556 /*
   1557  * zpool import [-d dir] [-D]
   1558  *       import [-o mntopts] [-o prop=value] ... [-R root] [-D]
   1559  *              [-d dir | -c cachefile] [-f] -a
   1560  *       import [-o mntopts] [-o prop=value] ... [-R root] [-D]
   1561  *              [-d dir | -c cachefile] [-f] [-n] [-F] <pool | id> [newpool]
   (..snip..)
   1582  *       -f Force import, even if it appears that the pool is active.
   1583  *
   1584  *       -F     Attempt rewind if necessary.
   1585  *

zpool import コマンドのオプションとして、必要であれば rewind するというオプションができたようです。細かくは語られていませんが、おそらく ZFS の領域を正しくマウントできなかった場合に、いくらか直近の書き込みをロールバックしてマウントを試みる機能のように思われます。

現状 zpool import でインポートできない ZFS プールを復旧する手段は特に用意されていないようですが、この rewind オプションに対応した ZFS モジュールとコマンドが一般的に使えるようになれば、RAID やライトキャッシュのせいでインポートできなくなった ZFS プールに対する手段となるのかもしれません。


というわけで OpenSolaris に最新の ONNV を適用する方法について調査中な私でした。


2009年11月10日火曜日

VMware ESXに関連する通信をまとめた図

Firewall diagram – updated to version 3に、VMware ESXを中心に関連する通信が1枚のシートに整理されています。

これは、ファイアウォール ルールの設計に便利ですね。


2009年10月29日木曜日

仮想化友の会 in OSC2009 Tokyo/Fall

10/30(金), 31(土)と開催される OSC2009 Tokyo/Fall に仮想化友の会として出展予定です。
最初私もセミナーコマ貰おうと思ってたけど、殿がスゲェたくさんスライド作ってたから(wじっと見守ることにします、、、


■ セミナー枠


2009-10-31 (土) 仮想化友の会 「濃ぃ~い話」(通称濃いバナ)
担当者 risa 登録日時 2009-09-30 14:28 (457 ヒット)

講師:平 初、他(調整中)
担当:仮想化友の会
対象者:仮想化を愛するすべての仮想人(かそんちゅ)

『仮想化インフラをプログラミングする libvirt 入門』(平 初)
Xen、KVM、QEMUなど様々な仮想化ソフトウェアを制御できる仕組み。それがlibvirtです。
このセッションでは、libvirt の仕組みと、簡単なサンプルを交えてご紹介します。

『Vnet - その概要と実例』(wakatono)
Vnetは、Xen 2.0で追加された仮想ネットワーク機能です。
ここでは、Vnetを構成する技術とその使い方、そして注意点について解説を行います。

http://www.ospn.jp/osc2009-fall/modules/eguide/event.php?eid=74 より転載





■ 展示



  • KVM (Kernel-mode Virtual Machine) を利用したデモを準備予定。
    今、自宅でデモ機が暴れてます、、、ふがふがふが


■ 物販ほか


『Xen徹底入門 第2版 発刊記念セール』

仮想化書籍してはVMware徹底入門の次に売れている(らしい)Xen徹底入門。
翔泳社ブースも出てるのに、空気読まずに刷りたてホヤホヤの第2版を一冊3,000円(17%OFF)で特別販売します。特別販売は今回っきりです(楽しいけど大変なので……)。購入予定の方はこの機会をお見逃しなく。

※ちなみに翔泳社ブースは10% OFFだとか。


なお、土曜日にはXen徹底入門 第2版の著者陣が総集合。書籍の内容について問い詰めたり、仮想化技術最前線の平さん&宮本さんにサインをおねだりするならチャンスです。


2009年10月27日火曜日

nographic

 仮想フレームバッファ(VFB)を利用するかどうかを指定します。フレームバッファが不要な場合は0 を指定します。

 本パラメータが有効となっている場合、仮想マシンマネージャ(virt-manager)や仮想マシンコンソール(virt-viewer)からグラフィックコンソールを利用できません(シリアルコンソールのみとなります)。


■ ドメイン


  • 準仮想化ドメイン(PV)

  • 完全仮想化ドメイン(HVM)


■ 書式

nographic=<n>


■ <n>の値の例


  • 0 …… 無効

  • 1 …… 有効


■ 例

nographic=1


■ 注意点


  • nographic=1 の場合のみ有効です。

  • 本情報はXen 3.4.0時点の内容です


■ 参考





paused

 ドメイン作成時にドメインの実行を開始せず、一時停止状態とします。

 デフォルトでは、ドメイン生成時(xm createコマンドなど)、作成されたドメインはその時点で実行を開始します。本パラメータを有効にすると、ドメイン作成後に実行を開始せず、最初から一時停止状態となります。


■ ドメイン


  • 準仮想化ドメイン(PV)

  • 完全仮想化ドメイン(HVM)


■ 書式

paused=<n>


■ <n>の値の例


  • 0 …… ドメイン作成時、実行を開始する

  • 1 …… ドメイン作成時、ポーズ状態にする


■ 例

paused=1


■ 注意点


  • 本情報はXen 3.4.0時点の内容です


■ 参考





2009年10月24日土曜日

usbdevice

 USB マウスのエミュレーション方式を指定します。ペンタブレットのエミュレーション(tablet)は、マウスポインタの絶対位置をエミュレートします。


■ ドメイン


  • 完全仮想化ドメイン(HVM)


■ 書式

usbdevice='<type>'


■ <type>の値の例


  • mouse …… 一般的なマウスをエミュレート

  • tablet …… ペンタブレットをエミュレート


■ 例

usbdevice='tablet'


■ 注意点


  • 画面上でのゲストOS のポインタ操作性が向上するので、tablet の指定を推奨します。

  • 本情報はXen 3.4.0時点の内容です


■ 参考