web-dev-qa-db-ja.com

ZFSミラーを成長させる

RAID10構成で6つのディスクを備えたZFSプールがあります。

ミラーの1つにあるドライブを1TBから3TBドライブにアップグレードしたいと思います。システムにすべてのドライブがインストールされています。

私はnot 1つのドライブ、resilver、repeatを交換してそれを行うことを好みます。取り外しているドライブの摩耗をすべて維持しながら、既存のミラーからすべての読み取りを実行する方法はありますか?

root@e7-4860:~# zpool status
  pool: stuffpoll
 state: ONLINE
  scan: scrub repaired 0 in 6h50m with 0 errors on Sun Dec 10 07:14:34 2017
config:

    NAME                                               STATE     READ WRITE CKSUM
    stuffpoll                                          ONLINE       0     0     0
      mirror-0                                         ONLINE       0     0     0
        ata-HGST_HTS721010A9E630_JR10004M0LGN6E-part1  ONLINE       0     0     0
        ata-HGST_HTS721010A9E630_JR10004M0M17TE-part1  ONLINE       0     0     0
      mirror-1                                         ONLINE       0     0     0
        ata-HGST_HTS541010A9E680_JA1000102MG9UR-part1  ONLINE       0     0     0
        ata-HGST_HTS541010A9E680_JA1009C03158BP-part1  ONLINE       0     0     0
      mirror-2                                         ONLINE       0     0     0
        ata-HGST_HTS721010A9E630_JR100X6P2TJKVE        ONLINE       0     0     0
        ata-HGST_HTS721010A9E630_JR100Y4M01200M        ONLINE       0     0     0

errors: No known data errors


root@e7-4860:~# zpool list
NAME        SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
stuffpoll  2.72T  2.47T   254G         -    48%    90%  1.00x  ONLINE  -


root@e7-4860:~# ls /dev/disk/by-id/ -1
ata-CT240BX200SSD1_1613F0194817
ata-CT240BX200SSD1_1613F0194817-part1
ata-HGST_HTS541010A9E680_JA1000102MG9UR
ata-HGST_HTS541010A9E680_JA1000102MG9UR-part1
ata-HGST_HTS541010A9E680_JA1000102MG9UR-part9
ata-HGST_HTS541010A9E680_JA1009C03158BP
ata-HGST_HTS541010A9E680_JA1009C03158BP-part1
ata-HGST_HTS541010A9E680_JA1009C03158BP-part9
ata-HGST_HTS721010A9E630_JR10004M0LGN6E
ata-HGST_HTS721010A9E630_JR10004M0LGN6E-part1
ata-HGST_HTS721010A9E630_JR10004M0LGN6E-part9
ata-HGST_HTS721010A9E630_JR10004M0M17TE
ata-HGST_HTS721010A9E630_JR10004M0M17TE-part1
ata-HGST_HTS721010A9E630_JR10004M0M17TE-part9
ata-HGST_HTS721010A9E630_JR100X6P2TJKVE
ata-HGST_HTS721010A9E630_JR100X6P2TJKVE-part1
ata-HGST_HTS721010A9E630_JR100X6P2TJKVE-part9
ata-HGST_HTS721010A9E630_JR100Y4M01200M
ata-HGST_HTS721010A9E630_JR100Y4M01200M-part1
ata-HGST_HTS721010A9E630_JR100Y4M01200M-part9
scsi-35000c50055fb009b
scsi-35000c50055fb395f

最終的にはmirror-1のドライブをscsi-35000c50055fb009bscsi-35000c50055fb395fに置き換えたいと思います

3
wmantly

ボリュームを手動で拡張したい場合は、-eオプションを使用してボリュームをオンラインにするだけです。

zpool online -e stuffpoll

自動展開オプションを切り替えて、自動的に実行することもできます。

zpool set autoexpand=on stuffpoll

それで、ミラー2に新しいドライブを追加して、それを拡張できるとしましょう。既存のデバイス名の1つをターゲットとして使用して、新しいドライブを接続する必要があります。古いデバイスを削除する前に、両方の新しいデバイスをミラーに追加できます。

# zpool attach pool existing_vdev_member new_device
zpool attach stuffpoll ata-HGST_HTS721010A9E630_JR100X6P2TJKVE new_dev1
zpool attach stuffpoll ata-HGST_HTS721010A9E630_JR100X6P2TJKVE new_dev2

新しいデバイスの同期が完了したら、古いデバイスを削除できます。

zpool attach stuffpoll ata-HGST_HTS721010A9E630_JR100X6P2TJKVE
zpool attach stuffpoll ata-HGST_HTS721010A9E630_JR100Y4M01200M

マンズプール

zpool attach [-f] pool device new_device

Attaches new_device to an existing zpool device. The existing device
cannot be part of a raidz configuration. If device is not currently
part of a mirrored configuration, device automatically transforms
into a two-way mirror of device and new_device.  If device is part of
a two-way mirror, attaching new_device creates a three-way mirror,
and so on. In either case, new_device begins to resilver immediately.
...

zpool online [-e] pool device ...

Brings the specified physical device online.
-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.

リンク

また、私は人々に思い出させるのが好きです。最初にバックアップ/復元を確認してください。何か悪いことが起こる可能性は常にあります。また、テストマシン/ VM上にzfsプールを構築し、事前にコマンドを練習することを検討してください。

2
Zoredache