FreeBSDZFSは、高いストレージ容量をサポートし、圧縮をサポートし、データ破損を防ぐことができるファイルシステムおよびボリュームマネージャーです。storage]と組み合わせると、セットアップと拡張が簡単なストレージソリューションが提供されます。このガイドでは、データを安全に保つために暗号化されたFreeBSD上のZFSのブロックストレージボリュームを構成します。*アカウントを使用します。FreeBSD]チュートリアルシリーズをご覧ください。Dropletを作成するときにこのボリュームを作成するか、https://www.digitalocean.com/community/tutorials/how-to-use-block-storage-on-digitalocean#creating-and-attaching-volumesを使用できます[このガイド]ボリュームを作成して接続します。このチュートリアルでは、2番目の100GBボリュームを使用して、ボリュームをプールに追加する方法を示しますが、事前に設定する必要はありません。手順は手順5で説明します。手順1-ボリュームのパーティション分割ボリューム全体を単一のファイルシステムに使用しますが、通常はボリュームにパーティションマップを配置することをお勧めします。これにより、作成した意味のあるラベルパーティションを適用できます。最初に、ボリュームが接続されて使用可能であることを確認しましょう。ドロップレットにログインします。`コマンドの出力を見て、ボリュームが接続されていることを確認します。+」デバイスとして表示されます。`コマンドの結果をフィルタリングします。Linuxでテキストパターンを検索する式]。grep次のような出力が表示されます。13054C)ボリュームが使用可能であることを確認したら、GPT形式を使用してパーティションマップを作成します。次のコマンドを実行してください。gpt次に、ZFS用の単一パーティションを作成します。+`オプションはパーティションにラベルを適用します。ラベルは好きなものにできます。この場合、物事をわかりやすくするために、ボリュームの名前と一致するようにします。次に、このパーティションに配置するデータをpr索好きな目から保護しましょう。ステップ2-暗号化のセットアップデータの暗号化には多くの利点があり、設定は簡単です。aesniドライバーをアクティブにして、ハードウェアアクセラレーションAES暗号化を使用できるようにします。aesniこれで、パーティションでhttps://www.freebsd.org/cgi/man.cgi?query=geli[geli]暗号化を構成できます。+`コマンドを使用して、キーの長さと暗号化するパーティションを指定します。+`オプションはキーの長さを指定します。これは、AES-XTSアルゴリズムの場合は128ビットまたは256ビットでなければなりません。前に指定したラベルを使用してパーティションを参照します。/dev/gpt/volume-nyc1-01ドロップレットを再起動するたびに、このパスフレーズを入力して暗号化されたパーティションを再接続する必要があります。セキュリティの向上と引き換えにささいな不便さがあります。次に、暗号化されたパーティションを添付します。+`がセットアップされます。これは、パーティションの復号化されたバージョンです。そのブロックデバイスに書き込まれたデータは暗号化され、基になるデバイスに書き込まれます。これは、次に作成するストレージプールに接続するパスです。手順3-ZFSプールのセットアップZFSストレージプール(zpool)はボリュームのコレクションであり、ZFSがそのファイルシステムを管理する方法です。それらは簡単に作成できます。DigitalOceanボリュームには独自のデータ冗長性が実装されているため、複数のボリュームを作成してミラーリングしたり、RAID-Z構成で実行したりする必要はありません。プール内で個々のボリュームを直接使用できます。+`コマンドは新しいzpoolを作成します。プールの名前と、プールに追加するボリュームを受け取ります。+」という一般名を使用していますが、好きな名前を使用できます。ボリュームはネットワークを介して接続されているため、ファイルアクセスはローカルSSD上よりも遅くなります。ネットワーク経由でデバイスに書き込まれるデータの量を最小限に抑えるために、ZFSファイルシステムレイヤーで圧縮を有効にしましょう。これは完全にオプションであり、ファイルシステムごとに設定できます。LZ4圧縮アルゴリズムを使用します。このアルゴリズムは、速度を最適化しながら、適切な圧縮を提供します。manページを参照してください。tankそれでは、プールを見てみましょう。+`コマンドを使用して詳細な情報を取得できます。ALTROOTパーティション化とフォーマットのオーバーヘッドにより、プールの合計サイズはボリュームの合計サイズよりわずかに小さくなります。+`コマンドを使用して、そのプールのZFSファイルシステムを表示することもできます。/devこれらのコマンドを頻繁に使用して、新しいファイルシステムの状態を確認します。先に進む前に、オペレーティングシステムの起動時にZFSカーネルモジュールが起動することを確認しましょう。+`コマンドを実行したときに自動的にロードされましたが、モジュールが自動的にロードされた方が良いでしょう。/etc/rc.confファイル内の既存の行の後に次の行を追加します。/etc/rc.confzfs_enable="YES"次に、ファイルへの変更を保存します。サーバーが再起動すると、ZFSカーネルモジュールがロードされます。ZFSの利点の1つは、ニーズの増加に応じてプールにストレージを追加できることです。それがどのように機能するかを探りましょう。ステップ4-追加のボリュームをプールに追加するさらにスペースが必要な場合は、追加のボリュームでプールを拡張できます。ZFSを使用する場合、プールにデバイスを追加するだけです。別のデバイスが必要です。新しい100GBボリュームをDropletに接続します。[このガイド]を参照してください。ボリュームの準備ができたら、サーバーのターミナルに戻り、新しいボリュームが存在し、接続されていることを確認します。+」として識別されます。13054C)次に、最初のボリュームで使用したのと同じプロセスを使用して、新しいボリュームのパーティションを作成し、ラベルを付けます。最初にパーティションを作成します。gpt次に、ボリュームを作成します。-l既存のボリュームは暗号化されているため、この新しいボリュームで暗号化を有効にします。/dev/gpt/もう一度、パスフレーズの入力を求められるので、ボリュームを復号化して接続できます。/dev/gpt/volume-nyc1-02次に、この新しいボリュームを接続し、プロンプトが表示されたらパスフレーズを提供します。/dev/gpt/最後に、ZFSプールに追加します。/dev/gpt/ファイルシステムは自動的にプールのサイズに拡張します。これは次のコマンドで確認できます。+」ボリュームと正しい容量が表示されます。/tankさらにスペースが必要な場合は、このプロセスを繰り返して、プールにさらにボリュームを追加してください。暗号化されたパーティションをプールに追加したので、サーバーの再起動後にパーティションを再接続する方法を見てみましょう。ステップ5-再起動の処理サーバーを再起動すると、暗号化されたパーティションは接続されなくなります。手動で添付する必要があります。練習のために、プロセスを確認できるようにリブートしてみましょう。+`コマンドを使用してサーバーを再起動すると、SSHセッションが切断されます。nowシステムの再起動には約1分かかります。マシンがオンラインに戻ったら、Dropletに再度ログインします。protected]次に、暗号化されたパーティションを接続します。/dev/gpt/volume-nyc1-02各パーティションをアタッチすると、そのパーティションを初期化したときに入力したパスフレーズの入力を求められます。+`を使用してプールの結果を確認します。listパーティションが接続されると、ZFSは自動的にプールを認識し、ファイルシステムをマウントします。ALTROOTボリュームを暗号化していない場合は、再起動中にこれらの追加手順を心配する必要はありません。セキュリティを高めるために利便性を犠牲にしています。誰もボリュームを添付してパスフレーズなしでコンテンツを見ることができません。結論ご覧のとおり、ZFSとDigitalOceanのブロックストレージを使用すると、ニーズに合わせてスケーラブルで暗号化されたファイルシステムを簡単に作成できます。Handbook]をご覧ください。