ZFS では、デバイスを個別にオフラインまたはオンラインにできます。ハードウェアが信頼できない場合または正しく機能しない場合でも、ZFS ではその状態を一時的な状態と見なして、デバイスからのデータの読み取りまたはデバイスへのデータの書き込みを続行します。一時的な状態でない場合には、デバイスをオフラインにして無視されるように設定できます。オフラインのデバイスには、要求はまったく送信されません。
デバイスを置き換えるときに、オフラインにする必要はありません。
一時的にストレージを切断する必要がある場合は、zpool offline コマンドを使用できます。たとえば、ファイバチャネルスイッチのセットからアレイを物理的に切断し、そのアレイを別のセットに接続する必要がある場合は、ZFS ストレージプールで使用されているアレイから LUN をオフラインにできます。新しいスイッチのセットでアレイが再接続されて使用できるようになると、続いて同じ LUN をオンラインにできます。LUN がオフラインの間にストレージプールに追加されたデータは、オンラインに戻されたあとの LUN と再同期化されます。
このシナリオが可能になるのは、新しいスイッチにストレージが接続されたあとに、該当のシステムが場合によっては以前と異なるコントローラを介してそのストレージを検出でき、使用しているプールが RAID-Z 構成またはミラー構成として設定されている場合です。
zpool offline コマンドを使用して、デバイスをオフラインにできます。デバイスがディスクの場合は、パスまたは短縮名を使って指定できます。次に例を示します。
# zpool offline tank c1t0d0 bringing device c1t0d0 offline |
デバイスをオフラインにするときは、次の点を考慮します。
プールをオフラインにすることはできません。エラーになります。たとえば、raidz1 構成の 2 つのデバイスをオフラインにしたり、最上位レベルの仮想デバイスをオフラインにしたりすることはできません。
# zpool offline tank c1t0d0 cannot offline c1t0d0: no valid replicas |
デフォルトでは、OFFLINE 状態は持続的です。システムを再起動しても、デバイスはオフラインのままです。
デバイスを一時的にオフラインにするには、zpool offline -t オプションを使用します。次に例を示します。
# zpool offline -t tank c1t0d0 bringing device 'c1t0d0' offline |
システムを再起動すると、このデバイスは自動的に ONLINE 状態に戻ります。
デバイスはオフラインになるとき、ストレージプールから切り離されません。オフラインのデバイスを別のプールで使用しようとすると、元のプールが破棄されたあとであっても、次のようなメッセージが表示されます。
device is part of exported or potentially active ZFS pool. Please see zpool(1M) |
元のストレージプールを破棄したあとで、オフラインのデバイスを別のストレージプールで使用する場合は、まずデバイスをオンラインに戻してから、元のストレージプールを破棄します。
元のストレージプールを破棄しないで、デバイスを別のストレージプールから使用する場合は、元のストレージプールにある既存のデバイスを別の類似したデバイスに置き換える方法もあります。デバイスを置き換える方法については、「ストレージプール内のデバイスを置き換える」を参照してください。
オフラインのデバイスは、プール状態のクエリー検索を行うと、OFFLINE 状態として表示されます。プール状態のクエリー検索については、「ZFS ストレージプールの状態のクエリー検索を行う」を参照してください。
デバイスの健全性の詳細については、「ZFS ストレージプールの健全性状態を調べる」を参照してください。
デバイスをオフラインにしたあとで、zpool online コマンドを使ってデバイスをオンラインに戻すことができます。次に例を示します。
# zpool online tank c1t0d0 bringing device c1t0d0 online |
デバイスがオンラインになると、プールに書き込まれたすべてのデータは、新しく使用可能になったデバイスと再同期化されます。デバイスをオンラインにする操作を利用して、ディスクを置き換えることはできません。デバイスをオフラインにしてから、そのデバイスを置き換えてオンラインにしようとしても、エラー状態のままです。
エラー状態のデバイスをオンラインにしようとすると、次のようなメッセージが表示されます。
# zpool online tank c1t0d0 warning: device 'c1t0d0' onlined, but remains in faulted state use 'zpool replace' to replace devices that are no longer present |
ディスクのエラーに関するメッセージがコンソールに表示されるか、/var/adm/messages ファイルに書き込まれる場合もあります。次に例を示します。
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Jun 30 14:53:39 MDT 2010 PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: 504a1188-b270-4ab0-af4e-8a77680576b8 DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. AUTO-RESPONSE: No automated response will occur. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device. |
エラー状態のデバイスを置き換える方法については、「見つからないデバイスに関する問題を解決する」を参照してください。
zpool online -e コマンドを使用して LUN を拡張できます。デフォルトでは、プールに追加された LUN は、プールの autoexpand プロパティーが有効でない場合はその最大サイズにまで拡張されません。zpool online -e コマンドを使用すると、LUN がその時点でオンラインかオフラインかに関係なく、LUN を自動的に拡張できます。次に例を示します。
# zpool online -e tank c1t13d0 |