2x5TBミラーリングドライブと2x1TBミラーリングドライブを備えたRAID1ZFSプールがあり、2つの1TBデバイスを4TBデバイスに交換したいと考えています。 zpool add
は元に戻すことができるため[1]、目的のレイアウトで再作成した後、プールを破棄する必要があります。
したがって、
zpool detach
edし、それらを使用して新しいプールを作成しました。zpool import -R /mnt/data1
を使用して別のルートでそれをex-および再インポートしましたmigrate1
を実行できるようにするために、スナップショットSudo zfs send -R data@migrate1 | Sudo zfs receive -F data1
を作成しました。さて、zfs send
パイプが完了した後の最良の手順を知りたいのですが、私の理解では、古いプールdata
を代替ルートにマウントし、新しいプールdata1
を代替ルートなしで取得する必要があるためです。古いプールを削除し、そのデバイスを新しいプールに接続できるようにするには、再起動します。多分別の方法があります。
Linux4.13.0-16-genericを搭載したUbuntu17.10のソースからビルドされたZFS0.7.0-182_gc0daec32f8とSPL0.7.0-20_g35a44fcbを使用しています。
私はチェックした
ALTROOT
の必要性などの同じ問題はありませんこれは複雑であり、1 TBのデバイスをプール内に保持しても問題はないことを私は知っていますが、それは問題の一部ではありません。
[1]これをZFSOnLinuxの問題として https://github.com/zfsonlinux/zfs/issues/6857 でリクエストしました。これは、背後にある複雑な計画/ロードマップへのリンクを提供します。
2x5TBミラーリングドライブと2x1TBミラーリングドライブを備えたRAID1ZFSプールがあり、2つの1TBデバイスを4TBデバイスに交換したいと考えています。 zpool addは元に戻すことができるため[1]、目的のレイアウトで再作成した後、プールを破棄する必要があります。
これは、RAIDZ1(少なくとも3x1)よりもストライプミラー(2x2)のように聞こえます。どちらの方法でも、一度に1つのディスクを取り外して交換することで、両方の構成を適切に拡張できます。各リシルバーが終了するのを待ってから、次のディスクを交換します。最後に、すべてのディスクを交換した後、プールをzpool offline
、次にzpool online -e
して新しいサイズに拡張します(または拡張前にautoexpand=true
を設定します)。
zpool online [-e] pool device...
Brings the specified physical device online. This command is not
applicable to spares.
-e Expand the device to use all available space. If the
device is part of a mirror or raidz then all devices must
be expanded before the new space will become available to
the pool.
もちろん、最初に取り外したデバイスをケースに再接続します。これは、十分な冗長性がある場合にのみ交換が可能になるためです。
それとは別に、マウントポイントをその場で設定および変更したり、アクティブなマウントポイントを持つプールを破棄したりできます(アクティブなI/Oがない場合)。それが機能しない場合、zpool export
/zpool import
はほとんどの場合、再起動と同様に機能します(許可できる場合、これはルートプールではありません)。