web-dev-qa-db-ja.com

プールからデバイスを削除する方法

Raidzプールに新しいデバイスを追加したときに、ZFSが自動的にそれを行うべきだと思って間違えました。

 :~# zpool status
  pool: data
 state: ONLINE

 scan: resilvered 78,3G in 2h4m with 0 errors on Tue May 10 18:12:31 2016
config:

    NAME         STATE     READ WRITE CKSUM
    data         ONLINE       0     0     0
      raidz2-0   ONLINE       0     0     0
        c2t2d0   ONLINE       0     0     0
        c2t3d0   ONLINE       0     0     0
        c2t4d0   ONLINE       0     0     0
        c2t5d0   ONLINE       0     0     0
        c2t6d0   ONLINE       0     0     0
        c2t7d0   ONLINE       0     0     0
        c2t8d0   ONLINE       0     0     0
        c2t9d0   ONLINE       0     0     0
        c2t10d0  ONLINE       0     0     0
        c2t11d0  ONLINE       0     0     0
      c2t13d0    ONLINE       0     0     0
    spares
      c2t12d0    AVAIL   
      c2t14d0    AVAIL 

C2t13d0はraidzプールにないと思いますよね?データプールからそれを削除する方法は?

助けてくれてありがとう。

4
dubis

できません。現在、シングルドライブvdevとしてプールにあります。 vdevをプールから削除することはできません。

それは悪いニュースです。

さらに悪いニュースは、raidz2-0vdevとc2t13d0vdevでRAID-0を効果的に使用できるようになったことです。これは良くない。それはdoubleplusungoodです。

オプションは次のとおりです。

  • あなたが作成したプールと一緒に暮らすために
  • プールをバックアップ、破棄、再作成し、復元します。

どちらのオプションも適切ではありません。バックアップ/再作成/復元は長期的にはrightオプションですが、かなりのダウンタイムが必要です(これを回避する唯一の方法は、同じサイズ以上のzfs sendの2番目のプールを作成することです。それに)。


ところで、冗長性の欠如を修正するためにできることの1つは、ミラーをc2t13d0vdevに接続することです。同じサイズのスペアの1つを使用するかもしれません。

次のようなものを使用します:

zpool attach data c2t13d0 anotherdisk

理想からはほど遠いですが、ミラーvdevでストライプ化されたRAIDZ2 vdevには冗長性があります(それでも嫌悪感はありますが、データを食い尽くすものではありません)。一方、シングルドライブでストライプ化されたRAIDZ2には信頼できる冗長性がありません(一部のデータシングルドライブvdevにのみ存在します。これは、常に最も価値があり、かけがえのないデータであることがわかります)。

それは最初のオプション(「それと一緒に暮らす」)をはるかに少なくします...少なくとも今のところは。長期的には、プールを再構築する必要があります。

Solarisのマニュアルページにアクセスできませんが、ZFS OnLinuxバージョンのzpoolのマニュアルページからの関連する抜粋です(強調のために太字で追加しています)。 Solarisのバージョンは同じか非常に似ている必要があります。

zpool attach [-f] [-o property=value] pool device new_device

New_deviceを既存のzpoolデバイスに接続します。 既存のデバイスをraidz構成の一部にすることはできません。デバイスが現在ミラーリングされた構成の一部ではない場合、デバイスは自動的にデバイスとnew_deviceの2面ミラーに変換されます。デバイスが2面ミラーの一部である場合、new_deviceをアタッチすると、3面ミラーが作成されます。いずれの場合も、new_deviceはすぐに再シルバー化を開始します。

7
cas

そうです、プールは2つのvdev、ディスクc2t13d0とraidz2-0で構成されており、これらはストライプ化されています。

残念ながら、ZFSは(まだ)プールからvdevを削除する可能性を提供していません。したがって、唯一のオプションは、プールを破棄して再作成し、バックアップから復元することです。

0
Marco