web-dev-qa-db-ja.com

デスクトップ/ GUIで使用するために暗号化されたHDDにSSDキャッシュを追加する方法は?

SSHDは4TBおよび8GB SSDキャッシュでスタックしているようです( one モデルは1TB/32GBで利用可能です)一方で、より大きなSSDが広く利用可能であり、LinuxでHDDとSSDをペアリングするソリューションがいくつかあります。デスクトップをセットアップしたら、使いやすいソリューションを探しています。理想的には、1つまたは2つのランチャーアイコンをクリックし、暗号化されたストレージのパスワードを入力し、特定のコマンドを覚える必要なくNautilusにドライブをマウントする必要があります。

  • すべてのストレージおよびキャッシュデータは暗号化して保存する必要があります。
  • 新しいパーティションスキームまたは必要なものへのデータ移行には、別の大きなHDDを使用できます。

これまでに読んだ関連記事:

3
LiveWireBT

lUKS上の非ルートLVM

前書き

情報:

  • この機能のためにLVMを使い始めたばかりで、キャッシュにSSDを備えた暗号化されたデータパーティションを使用するつもりでした。
  • 通常、LinuxではZFSを使用します( ARC も参照)。データのアーカイブと冗長性があり、管理とセットアップが容易になります。複数のHDDを使用する場合はZFSをご覧ください。Linux上のZFSよりもLVMが優れている点は、必要な場合に正しくビルドおよび実行できないDKMSビルドカーネルモジュールに依存しないことです。たとえば、カーネルPPAのメインラインカーネルを使用します。 (私はZFSで何か間違ったことをしているかもしれませんが、Phoronixに関するいくつかの記事はそれがそうであるかのように読みました。)
  • これは、現在のGUIで何が達成できるかを示すために、ワークステーションの使用を目的としており、GUI方式のソリューションが推奨されます。

警告:

  • SSDをキャッシュとしてHDDに追加するだけでなく、大幅なパフォーマンスの向上を期待してください。私が現在使用している480GBのBX200は妥当なように見えますが、ベンチマークと製品レビューでHDDよりも書き込み速度が遅いことが示されました。また、ライトバックキャッシュモードではない場合、両方のデバイスがデフォルトで同時にデータを書き込む必要があることに注意してください。これは、データ破損のリスクが高いため、インジケータなどのツールで合計転送速度が2倍になり、書き込みが遅くなることと混同しないでください-マルチロード。

概要:

さらなる洞察を提供するために、実際のハードウェアで試す前に問題の記事を読んだ後、VMに設定したものを以下に示します。 luks-という名前のデバイスは、GUIを使用して暗号化されたデバイスのロックを解除すると自動的に作成され、LVMはデバイスが利用可能になったことを検出し、通常どおりnautilusでファイルシステムをマウントします。

lwbt@vxenial:~$ lsblk
…    
sdb                                           8:16   0    8G  0 disk
└─luks-6bc875f1-de30-4698-ba74-eea2c5d5bb87 252:0    0    8G  0 crypt 
  └─vg0-datalv_corig                        252:5    0  7,9G  0 lvm
    └─vg0-datalv                            252:1    0  7,9G  0 lvm
sdc                                           8:32   0    8G  0 disk
└─luks-e20dd038-9886-4895-b786-855ba4c31c7e 252:2    0    8G  0 crypt 
  ├─vg0-cache_cdata                         252:3    0    8G  0 lvm 
  │ └─vg0-datalv                            252:1    0  7,9G  0 lvm 
  └─vg0-cache_cmeta                         252:4    0   12M  0 lvm 
    └─vg0-datalv                            252:1    0  7,9G  0 lvm 


lwbt@vxenial:~$ ll /dev/mapper/
total 0
drwxr-xr-x  2 root root     180 Sep  6 02:54 ./
drwxr-xr-x 20 root root    4420 Sep  6 02:54 ../
crw-------  1 root root 10, 236 Sep  6 00:37 control
lrwxrwxrwx  1 root root       7 Sep  6 02:54 luks-6bc875f1-de30-4698-ba74-eea2c5d5bb87 -> ../dm-0
lrwxrwxrwx  1 root root       7 Sep  6 02:54 luks-e20dd038-9886-4895-b786-855ba4c31c7e -> ../dm-2
lrwxrwxrwx  1 root root       7 Sep  6 02:54 vg0-cache_cdata -> ../dm-3
lrwxrwxrwx  1 root root       7 Sep  6 02:54 vg0-cache_cmeta -> ../dm-4
lrwxrwxrwx  1 root root       7 Sep  6 02:54 vg0-datalv -> ../dm-1
lrwxrwxrwx  1 root root       7 Sep  6 02:54 vg0-datalv_corig -> ../dm-5

ブロックデバイス(SSD/HDD)をLUKSで直接暗号化する代わりにパーティション化すると、lsblkの出力に追加のレイヤーが含まれる場合があります。もちろん、LUKS暗号化に興味がない場合は、次の手順でこれらの手順をスキップしても問題ありません。

説明書

必要なパッケージをインストールします。

Sudo apt install lvm2 thin-provisioning-tools cryptsetup

次のセクションのコマンドドライブ上の既存のデータをすべて破棄します

暗号化個々のデバイス

Sudo cryptsetup luksFormat ${device_name}
Sudo cryptsetup luksOpen ${device_name} ${mapper_name_hdd_or_ssd}

注:gnome-disksには、暗号化されたデバイスを暗号化してマウントするオプションがありますが、指示に従って続行するには削除する必要があるEXT4ファイルシステムも作成されます。

次に、デバイスを物理ボリュームとしてLVMに追加し、ボリュームグループ(名前はvg0)と論理ボリューム(名前はdatalv)をHDDに作成しますすべてのデータを保持するために後でフォーマットされます:

pvcreate /dev/mapper/${mapper_name_hdd}
vgcreate vg0 /dev/mapper/${mapper_name_hdd}
lvcreate -l 100%pvs -n datalv vg0 /dev/mapper/${mapper_name_hdd}

注:100%pvsは、選択したデバイス全体(暗号化されたコンテナまたはパーティションなど)にまたがるボリュームを作成します。詳細とオプションは lvmcache およびその他の関連するマンページにあります。

次に、ボリュームグループにSSDを追加して、LVM構成を拡張します。

pvcreate /dev/mapper/${mapper_name_ssd}
vgextend vg0 /dev/mapper/${mapper_name_ssd}

SSDでvg0cacheという名前のキャッシュプールボリュームを作成し、新しいキャッシュプールをキャッシュとしてdatalvに追加します。

lvcreate --type cache-pool -l 100%pvs -n cache vg0 /dev/mapper/${mapper_name_ssd}
lvconvert --type cache --cachepool vg0/cache vg0/datalv

注:lvcreateは、この方法でcache_cdataおよびcache_cmetaの最適なサイズを自動的に選択します。

再起動を避けたい場合は、LVM構成を変更した後、pv、vg、lvを再スキャンしてLVMデバイスをアクティブにする必要がある場合があります。

pvscan
vgscan
lvscan
vgchange -ay

次のコマンドは、名前が指定されていない場合、すべてのLVMボリュームを非アクティブ化します。

vgchange -an 

最後に、論理ボリュームをフォーマットし、データを転送します。

  1. Gparted GUIを使用したフォーマットの例

    pkexec gparted /dev/mapper/vg0-datalv
    
  2. コマンドラインツールを使用したフォーマットの例:

    Sudo mkfs.ext4 /dev/mapper/vg0-datalv
    

これで、新しいファイルシステムがNautilusに表示されます。

使用法

多くのLVMコマンドはセットアップを非常に複雑に見せますが、経験豊富なユーザーにLVMの可能性を最大限に活用することはできませんが、セットアップしてコンピューターを再起動したら、Unityランチャーまたはgnome内から暗号化されたディスクをマウントするだけです。その後、他のファイルシステムまたはディスクと同様に、Nautilusに表示されるボリュームをマウントします。複雑なコマンドを覚える必要はありません。私の知る限り、現在、UbuntuのキャッシュプールのLVMセットアップを処理するためのGUIツールはありません。

ノート:

  • HDDをマウントする前に、より小さな暗号化されたキャッシュSSDデバイスをマウントしたい
  • キャッシュは削除および交換できます。lvmcacheのマンページのCache Removalを参照してください。
  • キャッシュに関するすべてのメトリックを表示するには、次のコマンドを使用できます。

    Sudo lvs -o+cache_total_blocks,cache_used_blocks,cache_dirty_blocks,cache_read_hits,cache_read_misses,cache_write_hits,cache_write_misses,cachemode,cache_policy,cache_settings
    
1
LiveWireBT