FreeBSD/zpool
表示
< FreeBSD
zpoolコマンドは、FreeBSDでZFSストレージプールを構成および管理するための主要なツールです。このコマンドを使用して、ストレージプールの作成、構成変更、モニタリング、トラブルシューティングを行うことができます。
以下は、zpoolコマンドの主要な用途とサブコマンドの概要です。
zpool コマンドの基本的な使い方
[編集]- コマンドシンタックス:
zpool subcommand [arguments]
- ヘルプ表示:
zpool -\?
- バージョン確認:
zpool version
主なサブコマンドとその用途
[編集]プールの作成と破棄
[編集]- プール作成 (
zpool-create)- 新しいZFSストレージプールを作成します。
zpool create pool_name [vdevs...]
- 例:
- RAID-Zプールの作成
zpool create tank raidz disk1 disk2 disk3
- プールの破棄 (
zpool-destroy)- ストレージプールを破棄し、デバイスを再利用可能にします。
zpool destroy pool_name
仮想デバイス (vdev) の管理
[編集]- デバイスの追加・削除 (
zpool-add/zpool-remove)- プールにデバイスを追加したり、削除したりします。
zpool add pool_name vdev zpool remove pool_name vdev
- ミラー構成への変更 (
zpool-attach/zpool-detach)- 単一デバイスをミラーに変換したり、ミラーを分離したりします。
zpool attach pool_name device new_device zpool detach pool_name device
プールのモニタリングとプロパティ
[編集]- プール一覧 (
zpool-list)- プールのステータスや容量情報を一覧表示します。
zpool list
- プールの詳細状態 (
zpool-status)- プールの詳細な状態を表示します。エラーの確認や修復時に使用します。
zpool status
- I/O統計情報の表示 (
zpool-iostat)- プールやデバイスのI/O統計情報を表示します。
zpool iostat
- イベント履歴の表示 (
zpool-events)- 最近のZFSイベントを一覧表示します。
zpool events
メンテナンス操作
[編集]- スクラブ (
zpool-scrub)- プール全体のデータ整合性をチェックし、エラーを修正します。
zpool scrub pool_name
- トリム操作 (
zpool-trim)- 未使用領域を解放するためにトリム操作を実行します。
zpool trim pool_name
- 同期 (
zpool-sync)- メモリ上のデータをディスクに同期します。
zpool sync pool_name
プールのインポートとエクスポート
[編集]- エクスポート (
zpool-export)- プールをシステムから切り離します。
zpool export pool_name
- インポート (
zpool-import)- 他のシステムやデバイスからプールをインポートします。
zpool import pool_name
その他の操作
[編集]- プロパティの取得と設定 (
zpool-get/zpool-set)- プールのプロパティを取得または設定します。
zpool get property pool_name zpool set property=value pool_name
- バージョンアップ (
zpool-upgrade)- プールのディスクフォーマットバージョンを管理します。
zpool upgrade pool_name
zpool upgrade を実行してZFSプールのバージョンを更新した場合、ブートコード (bootcode) を更新しないと、次回の再起動時にシステムがブートできなくなる可能性があります。これは、ZFSプールの新しいバージョンが古いブートローダーでは対応していない機能を使用する可能性があるためです。
特にFreeBSDの場合、ZFSブート環境を使用している場合は、gpart を使用して正しいブートコードをインストールする必要があります。以下に手順を示します。
- ブートコードを更新する手順
- 現在のシステム状態の確認
- ZFSプールを確認して、
zpool upgradeが成功していることを確認します。 zpool status zpool upgrade
- ZFSプールを確認して、
- パーティション構成の確認
- ブートコードを更新すべきパーティションを確認します。通常、
bootパーティションはgpart showで確認できます。 gpart show
- ブートコードを更新すべきパーティションを確認します。通常、
- 適切なブートコードのインストール
- システムのパーティションに応じて、以下のコマンドを実行します。たとえば、
ada0がターゲットディスクの場合:
- GPT形式の場合
gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada0
/boot/pmbr: プロテクティブMBR (GPT用)/boot/gptzfsboot: GPT用のZFSブートローダー-i 1: ZFSブート用のパーティション番号 (通常は1)
- MBR形式の場合
gpart bootcode -b /boot/boot ada0
- システムのパーティションに応じて、以下のコマンドを実行します。たとえば、
- ブートコードの確認
- ブートローダーが正しくインストールされたかを確認します。
gpart show ada0
- 再起動
- システムを再起動して、正常にブートすることを確認します。
reboot
- 注意点
gpartを使用する際は、ターゲットディスクを間違えないように十分注意してください。- ブートコードを更新する操作にはroot権限が必要です。
bootcodeのインストール前に、現在の環境をバックアップすることを推奨します。- もし再起動に失敗した場合にそなえ、USBメモリなどにブート可能な最新のFreeBSDを用意することを推奨します。
これらを行うことで、zpool upgrade 後も問題なくシステムをブートできるようになります。
使用例
[編集]- プールの作成
zpool create tank mirror disk1 disk2
- プールの破棄
zpool destroy tank
- プールのステータス確認
zpool status
- スクラブの開始
zpool scrub tank
zpoolコマンドはZFSプール管理の中心的な役割を担っており、ストレージの信頼性とパフォーマンスの向上に寄与します。