Ubuntu 20.04 で ZFS を設定する
Ubuntu 20.04 で ZFS のインストールが完了したら、次のステップはハード ディスクに関する設定を行うことです。 ZFS には多くの可能性があり、何をするかは、使用可能なドライブの数とストレージの目標によって決まります。 例えば、ストレージアレイはスピードと冗長性のどちらに重点を置くべきでしょうか? ディスクは3台か20台か? 暗号化についてはどうでしょうか。
どのタイプの構成であっても、このガイドで始める方法を説明します。 ZFS の基本的な使用コマンドと、zpool、RAID-Z、暗号化などの設定について説明します。
このチュートリアルでは、次のことを学びます。
- How to install ZFS on Ubuntu 20.04
- How to create and destroy zpools
- Configure different levels of RAID and RAID-Z
- How to use encryption with ZFS

カテゴリ | 要件、慣習または使用ソフトウェア バージョン | |
---|---|---|
システム | インストールまたは更新 Ubuntu 20.04.0 Ubuntu 20.0.1 | Ubuntu 20.04 Focal Fossa |
ソフトウェア | ZFS ユーティリティ | |
その他 | ||
Conventions | # – 与えられた linux コマンドは、root ユーザーとして直接、または sudo コマンドを使用することで root 権限で実行する必要があります $ -。 は、与えられたLinuxコマンドを非特権ユーザーとして実行する必要があります |
Prerequisites
ZFSを使い始め、我々のガイドに従うために必要なものは、Ubuntu 20.X.X.X.X.X. です。04 Focal Fossa、ストレージ アレイに使用するいくつかのハード ドライブ、およびシステムにインストールされた ZFS ユーティリティです。 ZFS がまだインストールされていない場合は、ターミナルを開き、次の 2 つのコマンドを使用して zfsutils-linux
パッケージをインストールできます:
$ sudo apt update$ sudo apt install zfsutils-linux
ZFS がインストールされているかどうかは、ターミナルで次のコマンドを実行して確認できます。
$ zfs --version

ZFS 基本使用法とコマンド
テスト システムではいくつかのハード ドライブを ZFS とともに使う予定になっています。
システムに新しいハードディスクを接続すると、ZFS はデバイス名でそれらをアドレスします – 通常は /dev/sda
のようなものです。 fdisk
コマンドを使用して、利用可能なハードディスクを確認することができます。
$ sudo fdisk -l

Create and destroy ZFS storage pools
ZFS works by “pool” disk together. これらのプール (一般に「zpool」と呼ばれます) は、さまざまな RAID レベルに設定できます。
最初に見る zpool は、RAID 0 です。 これは、複数のディスク間でデータをストライピングすることによって動作します。 ファイルがストレージプールから読み込まれるか、またはストレージプールに書き込まれるとき、すべてのディスクはデータの一部を提示するために一緒に動作します。 これにより、読み込みと書き込みの速度が向上しますが、冗長性には何の効果もありません。
$ sudo zpool create mypool /dev/sdb /dev/sdc

このコマンドにより、/dev/sdb
と /dev/sdc
という 2 つのハードディスクで「mypool」という ZFS 記憶プールが生成されました。 このコマンドを実行すれば、いつでもストレージ プールの詳細を見ることができます:
$ zpool status
また、実行すれば、より簡潔な ZFS ストレージ プールのレポートを見ることができます。
$ zpool list

新しく作成したプールは自動的にマウントされて、すぐに使い始めることができます。 ZFS の良い特徴は、長いパーティショニング (ディスク全体を使用する場合) やフォーマット処理を行う必要がないことです。 ストレージにはすぐにアクセスできるのです。
$ df -hT | grep zfs

プールに別のハードディスクを追加したい場合、このコマンドを見て、ハードディスク /dev/sdd
を以前に作成した mypool
記憶プールに加えてみてください。
$ sudo zpool add mypool /dev/sdd
ドライブが zpool status
コマンドで zpool に追加されたことを確認できます。

Zpool はいつでも次のコマンドで破棄することが可能です。
$ sudo zpool destroy mypool

RAID 0 zpool の場合は、プールを完全に破壊してすべてのデータを失わずにプールからどのディスクも削除することが出来ません。 ZFS には多くの異なるオプションがあり、プールの整合性を維持しながらディスクの除去または故障を可能にするものもあります。
他のタイプの ZFS ストレージ プールは、上で示したのと同じ方法で作成しますが、プールを作成するときに zpool
コマンドで追加の引数を指定する必要があります。 いくつかの例を見てみましょう。
ミラーリングされたストレージ プールは、ZFS の RAID 1 に相当します。 これは、すべてのデータが 1 つのハード ディスクから 1 つまたは複数の別のハード ディスクにミラーリングされるため、冗長性が得られます。 ミラーリングされたストレージプールを作成するには、次のコマンド構文を使用します:
$ sudo zpool create mypool mirror /dev/sdb /dev/sdc

もちろん、さらに冗長度を作るためにプールにディスクを追加することは可能です。
では、RAID-Z プールを見てみましょう。 RAID-Z は RAID 5 と非常によく似ていますが、より優れた速度と、RAID 5 に関連する一般的なエラーのいくつかを回避することで改良されています。
RAID-Z では、ブロック レベルのストライピングと分散パリティを使用して、速度と冗長性を得ることができます。
- raidz1 (または単に raidz) – シングルパリティ
- raidz2 – ダブルパリティ
- raidz3 – トリプルパリティ
ここで RAID-Z プールを作成する方法について説明します。 より多くのパリティが必要な場合は、このコマンドの raidz
の代わりに raidz2
または raidz3
を使用します(その場合、追加のディスクも必要であることに留意してください)。
$ sudo zpool create mypool raidz /dev/sdb /dev/sdc /dev/sdd

Encryption on ZFS
ZFSストレージプールを作成したら、次のコマンドで暗号化を設定することができます。 この例では、mypool という名前の 3 つのディスク RAID-Z プールをまだ使用しています。
$ sudo zfs create -o encryption=on -o keylocation=prompt -o keyformat=passphrase mypool/encrypted
暗号化のためにパスフレーズを 2 回入力するよう求められます。

/mypool/encrypted
以下に新しいディレクトリが作成されて、そのディレクトリ内のすべてのものは暗号化されています。 再起動するたびに、暗号化されたデータセットを手動でマウントする必要があります。 暗号化されたデータセットをマウントするときは、必ず -l
フラグを使用してください。
$ sudo zfs mount -l mypool/encrypted

Conclusion
ZFS は高い稼働率とデータの完全性に焦点を当てたファイル システムです。 ストレージ/NAS サーバーや、ハードドライブの冗長性とともに読み取りおよび書き込み速度が重要なあらゆる環境に最適です。
このガイドでは、Ubuntu 20.04 Focal Fossa で ZFS のいくつかの基本使用コマンドについて学習しました。 zpools を使用して自分のシステムで ZFS を構成することから始める方法を紹介しましたが、ZFS の構成ははるかに広範囲になる可能性があります
。