暗号化された SSD の TRIM

暗号化された SSD の TRIM

ウィキ暗号化された SSD で TRIM を使用する場合は、少なくとも cryptsetup 1.4 とカーネル 3.1 が必要です。パーティションを作成して暗号化を設定するときにこれが必要ですか、それとも後でアップグレードするだけで十分ですか?

答え1

Ubuntu 11.10 Oneiric には cryptsetup 1.4 が同梱されていませんが、Precise には同梱されています。Oneiric で cryptsetup をアップグレードできるかどうかはわかりません。Precise は 1 か月以内にリリースされる予定なので、暗号化されたパーティションで TRIM を検討する前に、そのリリースを待つこともできます。カーネルは後でいつでもアップグレードできます。

からhttp://code.google.com/p/cryptsetup/wiki/Cryptsetup140:

破棄/TRIM 要求を許可するための --allow-discards オプションをサポートします。

カーネル 3.1 以降、dm-crypt デバイスはオプションで (デフォルトではありません) ブロック破棄 (TRIM) コマンドをサポートします。

この操作を有効にするには、--allow-discardsを使用してアクティベーションごとに手動で有効にする必要があります。

cryptsetup luksOpen --allow-discards /dev/sdb test_disk

警告: セキュリティ上の問題がいくつかあるため、少なくとも以下をお読みください。 http://asalor.blogspot.com/2011/08/trim-dm-crypt-problems.html 有効にする前に。

ご覧のとおり、この機能は、リンク先のブログで述べられているようにセキュリティが低下しているため、デフォルトでは有効になっていません。そのため、カーネル 3.0 (Precise に同梱されているもの) で cryptsetup を使用する場合、暗号化されたパーティションで TRIM サポートは利用できません。3.1 以降にアップグレードした後も、有効にしない限り TRIM は利用できません。

そのためには、/etc/crypttabインストール後に編集し(インストール中に可能かどうかは不明)、discardオプションを追加する必要があります。クリプトタブ(5)

答え2

Ubuntu 12.04 または cryptsetup 1.4+ およびカーネル 3.1+ を搭載した Debian で、LUKS 暗号化パーティションを使用して TRIM を有効にするためのステップ バイ ステップ ガイドを投稿しました。(askubuntu ガイドラインで必要だと判断された場合は、自由にここにコピーしてください。)

設定例

ソース

単一ドライブとして SSD を搭載したノートブック。Linux は単一の ext4 LVM ルート パーティションと LVM スワップ パーティションにインストールされており、両方とも LUKS で暗号化された論理パーティション上にあります。

SSD:/dev/sda

$ sudo fdisk -l /dev/sda
/dev/sda1               # boot partition (83) (unencrypted, ext4)
/dev/sda2               # extended partition
/dev/sda5               # logical partition (83) with LUKS encryption

$ ls /dev/mapper
/dev/mapper/sda5_crypt         # encrypted LUKS device in physical /dev/sda5 partition
/dev/mapper/volumegroup-root   # root partition sda5_crypt
/dev/mapper/volumegroup-swap   # swap partition sda5_crypt

方法

  1. すべてのデータのバックアップを作成してください。ファイル システムをいじっているので、バックアップを作成しておくことは良い考えです。

  2. 必要なカーネルと cryptsetup のバージョンがあることを確認してください (Ubuntu 12.04 の場合は 3.1 と 1.4。ただし、この記事の執筆時点では 12.04 はまだベータ版なので注意してください)。

  3. /etc/fstab ファイル内の暗号化された LVM ボリュームのファイル システム オプションに、discard パラメータを追加します。これにより、LVM パーティションのファイル システムが TRIM を使用することを認識します。

    /dev/mapper/volumegroup-root    /    ext4    discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. ただし、最後の手順だけでは十分ではありません。LUKS が TRIM の使用を認識しない限り、セキュリティ上の理由から、LVM パーティションのファイル システムからのすべての TRIM 操作がブロックされます。/etc/crypttab の cryptdevice オプションに、discard パラメータを追加して、LUKS が LVM パーティションの破棄動作を受け入れるようにします。

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. initramfs を再構築します。crypttab オプションはそこに保存され、起動時に使用されます。

    sudo update-initramfs -c -k all
    
  6. リブート。

  7. TRIM がアクティブになっているかどうかを確認します。

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. 最後のコマンドでこのような結果が表示されたら (1 allow_discards at終了)、設定は完了です。

    0  77656056  crypt  aes-cbc-essiv:sha256  abc[...]c7a0c  0  8:5  2056  1  allow_discards
    

関連情報