Ubuntu 20.04でのZFSの設定
Ubuntu 20.04にZFSのインストールが完了したら、次のステップはハードディスクの設定を行うことです。ZFSには多くの可能性があり、選択肢は利用可能なドライブの数やストレージの目標によって異なります。例えば、ストレージアレイは速度に重点を置きたいのか、冗長性が重要なのか、どちらを選びますか?ディスクは3枚ですか、それとも20枚ですか?暗号化についてはどうですか?
どのような構成を目指している場合でも、このガイドで始める方法をお教えします。ZFSの基本的な使用コマンドやzpoolsの設定、RAID-Z、暗号化などについて解説していきますので、ご覧ください。
このチュートリアルでは、あなたは学びます:
- Ubuntu 20.04にZFSをインストールする方法
- Zpoolを作成して削除する方法
- 異なるRAIDおよびRAID-Zのレベルを構成する
- ZFSで暗号化を使用する方法
Ubuntu 20.04上のZFS
前提条件
ZFSを始めるために必要なのは、私たちのガイドに従うためのUbuntu 20.04 Focal Fossa、ストレージアレイで使用したいハードドライブ、そしてシステムにインストールされたZFSユーティリティです。まだZFSがインストールされていない場合は、ターミナルを開き、次の2つのコマンドでzfsutils-linuxパッケージをインストールできます。
sudo apt update
sudo apt install zfsutils-linux
以下のコマンドをターミナルで実行することで、ZFSがインストールされているか確認できます:
zfs --version
ZFSがシステムにインストールされていることを確認するためにZFSのバージョンを確認してください
ZFSの基本的な使用法とコマンド
私たちは、ZFSと共に使用する予定のテストシステムにいくつかのハードドライブがあります。このセクションでは、それらを使用してできるさまざまなことをお見せします。
新しいハードディスクをシステムに接続すると、ZFSはそれらをデバイス名で識別します - 通常、/dev/sdaのようなものです。どのハードドライブが利用可能かを確認するには、fdiskコマンドを使用できます。
sudo fdisk -l
fdiskコマンドは、zpoolsで使用できる私たちのシステム上のすべてのハードディスクを表示します。
ZFSストレージプールを作成および削除する
ZFSはディスクを「プール」することによって動作します。これらのプール(一般的に「zpools」と呼ばれます)は、さまざまなRAIDレベルに構成することができます。
最初に見ていくzpoolはRAID 0です。これは、データを複数のディスクにストライピングすることで機能します。ストレージプールからファイルが読み込まれたり書き込まれたりすると、すべてのディスクが協力してデータの一部を提供します。これにより、読み取り速度と書き込み速度が向上しますが、冗長性には何も役立ちません。実際には、プール内のディスクの故障はデータの完全な損失を引き起こします。
sudo zpool create mypool /dev/sdb /dev/sdc
zpool status コマンドは、私たちの RAID 0 ストライプ zpool を表示します。
このコマンドは、2つのハードドライブ、/dev/sdbと/dev/sdcを使って「mypool」という名前のZFSストレージプールを作成しました。ストレージプールの詳細は、次のコマンドを実行することでいつでも確認できます:
zpool status
そして、次のコマンドを実行することで、ZFSストレージプールのより簡潔なレポートを見ることができます。
zpool list
zpoolリストコマンドの出力
新しく作成したプールは自動的にマウントされ、すぐに使用を開始できます。ZFSの素晴らしい特徴の一つは、パーティショニング(全ディスクを使用する場合)やフォーマットプロセスを経る必要がないことです。ストレージはすぐにアクセス可能です。
df -hT | grep zfs
df コマンドを使用して、マウントされた zpool を確認してください
プールに別のハードディスクを追加したい場合は、以前に作成したストレージプール「mypool」にハードディスク/dev/sddを追加するこのコマンドを見てください:
sudo zpool add mypool /dev/sdd
zpool statusコマンドを使うことで、ドライブがzpoolに追加されたことが確認できます。
新しいハードディスクが私たちのzpoolに追加されました。
私たちは次のコマンドを使っていつでもzpoolを削除することができます:
sudo zpool destroy mypool
私たちのzpoolを破壊する
RAID 0のzpoolsの場合、プールを完全に破壊してすべてのデータを失うことなく、プールからディスクを取り除くことはできません。ZFSには多くの異なるオプションがあり、その中にはプールの整合性を維持しながらディスクの取り外しや故障を許可するものもあります。
他の種類のZFSストレージプールは、上で示したのと同様の方法で作成されますが、プールを作成する際にはzpoolコマンドに追加の引数を供給する必要があります。いくつかの例を見てみましょう。
ミラーリングストレージプールはZFSのRAID 1に相当します。これにより、すべてのデータが1台のハードディスクから1台以上の他のハードディスクにミラーリングされるため、冗長性が得られます。ミラーリングストレージプールを作成するには、以下のコマンド構文を使用します:
sudo zpool create mypool mirror /dev/sdb /dev/sdc
ミラーリングされた (RAID 1) zpool の作成
もちろん、プールに追加のディスクを追加して、冗長性を高めることができます。
さて、RAID-Zプールについて見てみましょう。RAID-ZはRAID 5に非常に似ていますが、速度の向上とRAID 5に関連するいくつかの一般的なエラーを回避することで改善されています。
RAID-Zは、ブロックレベルのストライピングと分散パリティを使用することで、速度と冗長性を提供します。必要なパリティの量に応じて、3種類のRAID-Zがあります。
- raidz1(または単にraidz) - シングルパリティ
- raidz2 - ダブルパリティ
- raidz3 - トリプルパリティ
RAID-Zプールを作成する方法は次のとおりです。このコマンドでraidzの代わりにraidz2またはraidz3を使用してください。より多くのパリティが必要な場合(その場合、追加のディスクも必要になることに注意してください)。
sudo zpool create mypool raidz /dev/sdb /dev/sdc /dev/sdd
RAID-Zプールを作成する
ZFSの暗号化
ZFSストレージプールを作成した後、次のコマンドを使用して暗号化を構成できます。この例では、まだ私たちの三ディスクRAID-Zプールであるmypoolを使用しています。
sudo zfs create -o encryption=on -o keylocation=prompt -o keyformat=passphrase mypool/encrypted
暗号化のために、パスフレーズを2回入力するよう求められます。
ZFSでの暗号化の設定
/mypool/encryptedの下に新しいディレクトリが作成され、そのディレクトリ内のすべてのものは暗号化されます。再起動するたびに、暗号化されたデータセットを手動でマウントする必要があります。暗号化されたデータセットをマウントする際には、-lフラグを使用することを忘れないでください。以前に選択したパスフレーズの入力を求められます。
sudo zfs mount -l mypool/encrypted
暗号化されたZFSデータセットのマウント
結論
ZFSは、高い可用性とデータ整合性に焦点を当てたファイルシステムです。ストレージ/NASサーバーや、読み取りおよび書き込み速度が重要で、ハードドライブの冗長性が必要な環境に最適です。
このガイドでは、Ubuntu 20.04 Focal FossaにおけるZFSの基本的な使用コマンドについて学びました。自分のシステムでのzpoolsを使用してZFSを設定する方法を示しましたが、ZFSの設定ははるかに広範囲になる可能性があります。











