「allow-discards」および「root_trim」Linuxパラメーターは正確に何をするのですか?


10

オンラインのSSD関連の多くの説明では、現在、GRUB_CMDLINE_LINUXにallow- discardsroot_trim = yesを追加する必要があると 述べています。なぜそれを行う必要があるのか​​、つまりこれらのパラメータが正確に(もしあれば)何を行うのを示すものはまだ見つけていません。これに関するドキュメンテーションはどこにあり、これらの2つのパラメーターの目的について何を言っていますか?

Cryptsetup 1.4.0リリースノートによると、

カーネル3.1以降、dm-cryptデバイスはオプションで(デフォルトではない)ブロック破棄(TRIM)コマンドをサポートします。この操作を有効にする場合は、--allow-discardsを使用してアクティブ化するたびに手動で有効にする必要があります

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

(GRUB_CMDLINE_LINUXを介して)カーネルに渡された場合も同じですか?

編集: Kernel.orgのカーネルパラメーターのリストには、(現在、少なくとも2013年1月)これらのオプションのいずれもありません。


多分webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.htmlを見てください。説明はありませんが、簡単な手順...
alci

1
言ったように、ネットには説明のない指示がいっぱいです。説明ではなく手順です。
Jani Uusitalo 2013年

回答:


6

私の理解から、ブートパラメータroot_trim=yesはGentoo固有のものです。内でgenkernelあり、パラメータを検索し、オプションを設定するスクリプトである--allow-discardsのcryptsetupでは(自分の見gitリポジトリを)。さらに、UbuntuまたはDebianユーザーの多くのレポートを見つけましたが、それはroot_trimパラメーターなしで機能すると述べました。Ubuntus update-initramfsスクリプトにも行が見つかりませんでした。

つまり、全体としてはブートパラメータではなく、に対するパラメータcryptsetupです。のドキュメントは--allow-discardscryptsetup(8)のマンページにあります

--allow-discards
デバイスの破棄(TRIM)要求の使用許可します。このオプションは、createluksOpenまたはloopaesOpenにのみ関連しています

警告:このオプションを有効にする前に、特定のセキュリティリスクを慎重に評価してください。たとえば、暗号化されたデバイスで破棄を許可すると、破棄されたブロックが後でデバイス上に簡単に配置できる場合、暗号文デバイスに関する情報(ファイルシステムタイプ、使用済みスペースなど)が漏洩する可能性があります。

カーネルバージョン3.1以降が必要です。古いバージョンの場合、このオプションは無視されます。

TRIMとdm-cryptに関するこのブログに基づいて、TRIMは、上位層(ファイルシステムなど)がデバイスに、使用されなくなったセクター(有効なデータが含まれなくなった)を通知し、デバイスがそのデータコンテンツを保持する必要がないことを通知する操作です。

Linuxの用語では、この操作は破棄と呼ばれます。SCSIの世界では、これはUNMAPコマンドと呼ばれています。

破棄操作は、シンプロビジョニング(データ領域を割り当てプールに戻すことができることを通知)とSSD操作の最適化の2つの目的で使用できます。

内部アーキテクチャはセクターよりも大きなブロックを使用し、書き込み操作を実行する前にブロックを消去する必要があるため、破棄はSSD最適化に最も役立ちます。データの断片化が最小限に抑えられ、ディスクの寿命が延びるようにファイルシステムがブロックをより効果的に編成できるため、データを保持する必要のないセクターに関する情報は非常に役立ちます。


それで、ファイルシステムが暗号化されていない場合、どちらのオプションも必要ありませんか?1つのコマンドが機能するようにするだけの場合、なぜ2つのオプションがあるのでしょうか。
Jani Uusitalo 2013年

更新された回答でカーネルパラメータとmount / devicemapperオプションの関係を指摘していただきありがとうございます。今回は+1。:)
gertvdijk 2013年

この答えはよく見え始めています。また、dm-cryptの現在のドキュメントで allow_discardsを見つけました。すべてがカーネルパラメータではなく、dm-crypt device-mapperターゲットのオプションであることを示しているようです。私はまだそれらがlinuxコマンドラインで渡されるかどうかを調べようとしています。それはオウムがいたるところにある命令を説明するでしょう、さもなければそれはおそらく単なる誤った情報です。
Jani Uusitalo 2013年

1
@JaniUusitaloこれを(グローバル)カーネルパラメータにすることは、私には実際には意味がありません。1)システム全体ではなく、このファイルシステム/デバイス固有を本当に指定したい、2)mount / fstabオプションですでに指定できる、3)ブート時(initramfsが/読み取り/書き込みとしてマウントする前に)この機能が必要になることはほとんどありません。
gertvdijk 2013年

4
allow- discards のカーネルパラメータ化は Archism である可能性があります。Arch では明らかに、暗号化されたルートを(たとえば) "cryptdevice = / dev / mapper / root:root:allow-discards"でGRUBに通知します。Ubuntuユーザーがこれを取り上げたのは、Ubuntu WikiのEncryptedFilesystemsによってArchのWikiが「ベストリファレンス」と呼ばれているためと考えられます
Jani Uusitalo 2013年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.