web-dev-qa-db-ja.com

マルチディスクzfszpoolを単一の(より大きな)ディスクに統合できますか?

私はこのzpoolを持っています:

    bash-3.2# zpool status dpool
  pool: dpool
 state: ONLINE
 scan: none requested
 config:
        NAME                                     STATE     READ WRITE CKSUM
        dpool                                    ONLINE       0     0     0
          c3t600601604F021A009E1F867A3E24E211d0  ONLINE       0     0     0
          c3t600601604F021A00141D843A3F24E211d0  ONLINE       0     0     0

これらのディスクを両方とも1つの(より大きなディスク)に交換したいと思います。それはできますか? zpool attach 1つの物理ディスクを交換できますが、両方を一度に交換することはできません。

5
rmeden

いいえ、あなたが説明している方法ではこれは不可能だと思います。

ただし、canは、単一のディスクで新しいプールを作成し、単純な zfs send /)を使用してZFSファイルシステムを新しいプールにコピーします。 receive プロセス。

7
ewwhite

新しい大きなドライブをzpool attachし、ミラーリングが完了するのを待ってから、古いドライブをzpool detachできるはずです。

編集:あなたの質問を読み間違えました。あなたがそれらをミラーとして実行していると確信していました。

新しいプールを作成し、すべてのデータセットを新しいプールに再帰的に送信することが最善の行動であることに同意しますが、それが本当にできない場合でも、新しいプールを分割すれば、私が概説している手順に従うことができます。 、より大きなディスクを2つのパーティションに分割します。各パーティションは、交換する予定のディスクと同じ大きさです。

これは、主に(1)管理がより複雑になり、(2)ドライブの書き込みキャッシュを利用できなくなるためです。

最近のIllumosボックスで実行されたシーケンスをここに貼り付けます。そのボックスで物理デバイスを操作できないため、ディスク全体とスライス/パーティションを使用する代わりに、これを表示するために空のファイルを作成していることに注意してください。ファイルの名前はaa1aa2、およびaa3です。

  1. デバイスを準備します。 aa3のサイズは200Mですが、aa1aa2のサイズは100Mのみです。

    # dd if=/dev/zero of=/opt/local/aa1 bs=1M count=100
    # dd if=/dev/zero of=/opt/local/aa2 bs=1M count=100
    # dd if=/dev/zero of=/opt/local/aa3 bs=1M count=200
    
  2. テストプールを作成します。

    # zpool create test mirror /opt/local/aa1 /opt/local/aa2
    

    すべてがスムーズに進んだことを確認します。

    # zpool list -v test
    NAME                 SIZE  ALLOC   FREE  EXPANDSZ    CAP  DEDUP  HEALTH  ALTROOT
    test                95,5M   106K  95,4M         -     0%  1.00x  ONLINE  -
      mirror            95,5M   106K  95,4M         -
        /opt/local/aa1      -      -      -         -
        /opt/local/aa2      -      -      -         -
    
  3. autoexpandプロパティを設定します。

    # zpool set autoexpand=on test
    
  4. 新しいデバイスを接続します。

    # zpool attach test /opt/local/aa2 /opt/local/aa3
    

    すべてはまだ大丈夫ですか?

    # zpool list -v test
    NAME                 SIZE  ALLOC   FREE  EXPANDSZ    CAP  DEDUP  HEALTH  ALTROOT
    test                95,5M   120K  95,4M         -     0%  1.00x  ONLINE  -
      mirror            95,5M   120K  95,4M         -
        /opt/local/aa1      -      -      -         -
        /opt/local/aa2      -      -      -         -
        /opt/local/aa3      -      -      -         -
    

    はい、そうです。

  5. 最初の2つの開発者を切り離します。

    # zpool detach test /opt/local/aa1
    # zpool detach test /opt/local/aa2
    

最後に、プールをもう一度確認しましょう。

# zpool list -v test
NAME               SIZE  ALLOC   FREE  EXPANDSZ    CAP  DEDUP  HEALTH  ALTROOT
test               196M   124K   195M         -     0%  1.00x  ONLINE  -
  /opt/local/aa3   196M   124K   195M         -

正しく200MBに成長しました。

1
pino42