RAIDZ2からのディスク切り離し

# 概要
自宅検証サーバでは、4台のHDDをRAIDZ2によりストレージプールを構成しています。
4本のHDDのうち1台を別用途で使うために、切り離してみました。
RAIDZ2（ZFSのRAID-Z2）では、2つのディスクまでの障害に対してデータ保護が提供されます。したがって、1つのディスクを切り離してもサービスに影響を及ぼすことはありません。
以下に作業手順を記載します。

# RAIDZ2からディスクを切り離す手順

## 1.**ストレージプールの確認**
`zpool status` コマンドを使って、現在のストレージプールの状態を確認します。

```sh
root@pve:~# zpool status
  pool: zpool
 state: ONLINE
status: Some supported and requested features are not enabled on the pool.
        The pool can still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
        the pool may no longer be accessible by software that does not support
        the features. See zpool-features(7) for details.
  scan: scrub repaired 0B in 08:24:09 with 0 errors on Sun Jun  9 08:48:11 2024
config:

        NAME        STATE     READ WRITE CKSUM
        zpool       ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            sda     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd2    ONLINE       0     0     0
            sdb     ONLINE       0     0     0
errors: No known data errors
   ```

## 2.**ディスクの識別**
切り離したいディスクを特定します。`smartctl` コマンドを使って、ディスクのIDを確認します。
今回は、6TBのディスクを取り外すため、/dev/sddであることが分かります。

```
root@pve:~# smartctl -a /dev/sda | egrep "Device Model|Serial Number|User Capacity"
Device Model:     WDC WD40EZRZ-00GXCB
Serial Number:    WD-WCC7K5XXXXXX
User Capacity:    4,000,787,030,016 bytes [4.00 TB]
root@pve:~# smartctl -a /dev/sdb | egrep "Device Model|Serial Number|User Capacity"
Device Model:     WDC WD40EZRZ-00GXCB0
Serial Number:    WD-WCC7K4XXXXXX
User Capacity:    4,000,787,030,016 bytes [4.00 TB]
root@pve:~# smartctl -a /dev/sdc | egrep "Device Model|Serial Number|User Capacity"
Device Model:     WDC WD30EZRX-00D8PB0
Serial Number:    WD-WCC4NCXXXXXX
User Capacity:    3,000,592,982,016 bytes [3.00 TB]
root@pve:~# smartctl -a /dev/sdd | egrep "Device Model|Serial Number|User Capacity"
Device Model:     WDC WD60EZAZ-00SF3B0
Serial Number:    WD-WX12DBXXXXXX
User Capacity:    6,001,175,126,016 bytes [6.00 TB]
```

## 3.**ディスクのオフライン化**
ディスクをオフラインにすることで、ストレージプールから安全に切り離す準備をします。以下のコマンドを実行します。

```sh
root@pve:~# zpool offline zpool sdd2
```

## 4.**プールの状態確認**
ディスクをオフラインにした後、プールの状態を再確認します。`zpool status` を再度実行し、ディスクがオフラインであることを確認します。

```sh
root@pve:~# zpool status
  pool: zpool
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Online the device using 'zpool online' or replace the device with
        'zpool replace'.
  scan: scrub repaired 0B in 08:24:09 with 0 errors on Sun Jun  9 08:48:11 2024
config:

        NAME        STATE     READ WRITE CKSUM
        zpool       DEGRADED     0     0     0
          raidz2-0  DEGRADED     0     0     0
            sda     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd2    OFFLINE      0     0     0
            sdb     ONLINE       0     0     0

errors: No known data errors
```

## 5.**ディスクの取り外し**
サーバをシャットダウンして、物理的にディスクを取り外します。
その後起動します。

## 6.**プールの状態確認**
プールの状態を再確認します。`zpool status` を再度実行し、ディスクがオフラインであることを確認します。

```sh
root@pve:~# zpool status
  pool: zpool
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Online the device using 'zpool online' or replace the device with
        'zpool replace'.
  scan: scrub repaired 0B in 08:24:09 with 0 errors on Sun Jun  9 08:48:11 2024
config:

        NAME        STATE     READ WRITE CKSUM
        zpool       DEGRADED     0     0     0
          raidz2-0  DEGRADED     0     0     0
            sda     ONLINE       0     0     0
            sdc     ONLINE       0     0     0
            sdd2    OFFLINE      0     0     0
            sdb     ONLINE       0     0     0

errors: No known data errors
```

## 7.**ディスクの交換（オプション）**
切り離したディスクを別の用途で利用する場合、新しいディスクを追加してプールをリビルドすることもできます。新しいディスクを挿入し、以下のコマンドでプールに追加します。

```sh
zpool replace zpool <オフラインにしたディスクID> <新しいディスクID>
```

例:
```sh
zpool replace mypool sdd2 /dev/sdg
```

## 8.**リビルドの進行状況の確認**
新しいディスクが追加されたら、リビルドの進行状況を確認します。`zpool status` コマンドを定期的に実行して進行状況を監視します。

```sh
zpool status
```

## 注意事項
- RAIDZ2は2つのディスクの障害に耐えることができますが、切り離し後は1つのディスクの障害にしか対応できなくなります。
- ディスクの切り離しや追加の際には、重要なデータのバックアップを取っておくことが重要です。