RAID、LVM、LUKSの最適な順序


13

Debian GNU / Linux 8でファイルサーバーをインストールします。

mdadmを使用したソフトウェアRAID-1とLUKSを使用した暗号化ディスクが欲しい。LVMの柔軟性も気に入っています。

これにはさまざまな方法があります。1つの方法は次のとおりです。最初にmdadmを使用してRAID-1をセットアップします。次に、作成された/ dev / mdXをカバーするようにLVM PVをセットアップします。次に、LVをセットアップし、LUKSを使用してそれらを暗号化します。次に、これらをファイルシステム、たとえばext4でフォーマットします。これにより、次のようなレイアウトになります。

RAID --> LVM --> LUKS --> ext4

または、別の順序でそれを行うこともできます:

RAID --> LUKS --> LVM --> ext4

または多分:

LVM --> RAID --> LUKS --> ext4

そして、たぶん、まったく異なる順序でさえも。

異なるアプローチの利点と欠点は何ですか?何が最高のパフォーマンス、セキュリティ、保守性などをもたらしますか?

これを行う「最善の方法」はありますか?

回答:


18

まず、LUKSとLVMの順序は、異なるLVに対して異なるLUKSパスワードまたは他の設定を使用するかどうかによって異なります。たとえば、LVごとに異なるパスワードを設定する必要がある場合は、LVMの上にLUKSを置く必要があります。一方、すべてのLVが同じパスワードとkeylenのような設定を共有している場合は、LVMの下にLUKSを配置する必要があります。これにより、複数のLUKSパーティションを持つオーバーヘッドに対処する必要がなくなります(たとえば、パスワードを変更する必要があるときに行う必要があります)。

第2に、ほとんどの場合、RAIDを最低レベルにする必要があるため、1つのディスクが停止した場合でも、簡単かつ透過的に交換できます。LVMの上にRAIDをセットアップする場合、1つのディスクが故障したときにPVを交換する必要があり、それは大きな負担になります。また、LVM上のRAIDは、LVMの柔軟性を完全に無効にします。次に、RAIDの上にLVMの2番目のレイヤーを再度セットアップする必要があります。

したがって、ほとんどの場合、ユーザーは単一のパスワードを使用する必要があるだけなので、これで十分です。

RAID-> LUKS-> LVM-> ext4

場合によっては、LVMを使用して複数のRAIDデバイスを大きなボリュームに結合する必要があるかもしれません。それから、次のことができます。

RAID-> LVM-> LUKS(-> LVM)-> ext4

理論的には、すべてのレイヤーが正しく設定されていれば、順序がパフォーマンスに大きな影響を与えることはありません。実際には、この設定で特にパフォーマンスが低下することはありません。最も重要なことはおそらく調整です:

  1. パーティションが1MBに揃えられていることを確認してください(SSDにとって非常に重要です)。
  2. RAIDレイヤーの場合、チャンクサイズを適切に選択します。
  3. LVMの場合--dataalignment、RAIDチャンクサイズと一致するように設定してください(これは役立つ場合があります)。

SSDの場合にも、必ずLUKS TRIM / DISCARDパススルー追加することで有効にするrd.luks.options=discard/etc/default/grubしてdiscardまで/etc/crypttab(これらは、私は、Red Hat / FedoraのLinux上で何をすべきかですが。Debianの上で少し異なる場合がございます。)LVMとRAIDは自動的に破棄をサポートする必要があります新しい風のカーネルを使用している場合。

もちろん、これらは単なる一般的なガイドラインです。特別なニーズがある場合は、質問やコメントを自由に更新してください。


早速のお返事ありがとうございます。良い点!重要でないパフォーマンスの違いについてコメントできますか?
トーマス

いくつかのパフォーマンスノートを更新しました。
Yan Li

1
また、常にMDADMを使用する必要はないことも指摘しておく必要があります(ただし、これが最も一般的なソリューションになると思います)。
-LVM

@davidgoはい。私もそれについて言及することを考えましたが、それが正しい方法であるかどうかわからないので、それはしませんでした。私は個人的には試していません(主に5や6などのより高いレベルのRAIDを使用しています)。この質問のいくつかの回答で述べられているような、LVMミラーリングに関する混合フィードバックを読みました。
Yan Li

@ヤン、同意する。私も常にmdadm RAid(1)を使用しています
davidgo

4

すべてのRAID、LUKS、LVMが必要な場合は、私がお勧めしRAID -> LUKS -> LVM -> FSます。RAID --> LVM --> LUKS --> LVM --> FS何よりも良好ではないRAID -> LUKS -> LVMだけボリュームを拡張し、より追加する- RAID -> LUKSボリューム・グループにデバイスを。

RAID --> LVM --> LUKS --> FS -特定の論理ボリュームのみを暗号化すると、デフォルトではすべてを暗号化しないという機能がありますが(利点または欠点と見なされる場合があります)、ルートFSの拡張が容易になります。

論理ボリュームの上にLUKSを拡張することは、ユーザーが間違った順序でLUKSを拡張/サイズ変更する場合の問題の一般的な原因です。md RAIDデバイス全体にLUKSがあると、サイズ変更が簡単になります。新しいmdデバイスを追加し、その上にLUKSを作成し、デバイスを/ etc / crypttab(少なくともFedoraおよびRHELクローン上)に追加して、ボリュームグループを拡張します。ルートFSがボリュームグループ上にある場合はrd.luks.uuid、カーネルのコマンドラインに別のエントリを追加する必要があります(/ etc / default / grubを編集してgrub.cfgを再生成します)。

LUKS -> RAID通常は間違っています-データは複数回暗号化され、CPUサイクルを多く消費しますが、利益はありません。また、ディスクに障害が発生したときに、LUKSを設定せずに、障害のあるディスクを誤って新しいディスクと交換する可能性もあります。

拡張と縮小:

伸ばすときは常にスタックの一番下から、一番上から縮小するとき。

例:

拡張 RAID -> LVM -> LUKS -> FS(ボリュームグループに十分な空き容量がある場合、最初の2つのステップはオプションです):

  1. 新しいディスクを追加し、md RAIDを作成します。
  2. mdXデバイスをボリュームグループに追加します。
  3. 論理ボリュームを拡張します。
  4. LUKSデバイスを拡張します。
  5. FSを拡張します。

収縮 RAID -> LVM -> LUKS -> FS

  1. FSを縮小します。
  2. LUKSデバイスを縮小します。
  3. 論理ボリュームを縮小します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.