web-dev-qa-db-ja.com

LUKSで暗号化された論理ボリュームのサイズを変更する方法

論理ボリュームのサイズを変更する適切な方法を理解しようとしています(pvを追加せずに、1つを縮小し、もう1つを拡張したい)。

私が理解している限り、このリンクによると: Chrisによるlvmガイド 、およびVLMについて読んだ追加のソース、適切な方法は次のとおりです。

1. Shrink the file system of lv #1
2. Shrink the lv #1 size
3. extend the lv #2 size
4. fix/extend the file system of lv #2

さらに、LVM(LVにマップされたVGにマップされたPV)のアーキテクチャーを理解しています。

私のギャップは:

  1. スキームにPVを追加しない場合、LUKSを気にする必要がありますか?それとも、PVが変更されない限り、このプロセスはLUKSに影響を与えませんか?
  2. パーティションであるPVは、ユニットとして暗号化されていますか、それとも各lvは独自に暗号化されていますか?
  3. 私の場合、サイズを変更したい/tmpおよび/var私のアーキテクチャに基づいて、キーのディスクから起動してlivecdから起動する必要がありますか、それともホスト自体から起動できますか?

pvscan

PV /dev/nvme0n1p3   VG Fedora_localhost-live   lvm2 [475.35 GiB / 4.00 MiB free]
  Total: 1 [475.35 GiB] / in use: 1 [475.35 GiB] / in no VG: 0 [0   ]

vgscan

Found volume group "Fedora_localhost-live" using metadata type lvm2

lvscan

  ACTIVE            '/dev/Fedora_localhost-live/root' [70.00 GiB] inherit
  ACTIVE            '/dev/Fedora_localhost-live/home' [<348.35 GiB] inherit
  ACTIVE            '/dev/Fedora_localhost-live/swap' [38.00 GiB] inherit
  ACTIVE            '/dev/Fedora_localhost-live/var' [4.00 GiB] inherit
  ACTIVE            '/dev/Fedora_localhost-live/tmp' [15.00 GiB] inherit

df -h

Filesystem      Size  Used Avail Use% Mounted on
devtmpfs         16G     0   16G   0% /dev
tmpfs            16G  124M   16G   1% /dev/shm
tmpfs            16G  2.4M   16G   1% /run
/dev/dm-2        69G  9.9G   56G  16% /
/dev/nvme0n1p2  976M  232M  678M  26% /boot
/dev/nvme0n1p1  599M   30M  570M   5% /boot/efi
/dev/sda1       826G  783G   44G  95% /mnt/workspace_HDD
/dev/dm-7       3.9G  3.0G  720M  81% /var
/dev/loop0      182M  182M     0 100% /var/lib/snapd/snap/spotify/36
/dev/loop1       90M   90M     0 100% /var/lib/snapd/snap/core/8268
/dev/dm-8       342G  3.8G  321G   2% /home
/dev/dm-9        15G   41M   14G   1% /tmp
tmpfs           3.2G  112K  3.2G   1% /run/user/1000

さらに、Fedoraが行ったマッピングと、コマンドに使用するパスを理解できれば幸いです。lvreduce/ lvexdend/resize2fs:各lvに「2つの」パスがある理由を理解できたと思います。1つは論理ボリューム用で、 2番目は復号化されたボリュームです。

ls -l/dev/mapper /

total 0
crw-------. 1 root root 10, 236 Jan 18 18:10 control
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 Fedora_localhost--live-home -> ../dm-4
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 Fedora_localhost--live-root -> ../dm-0
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 Fedora_localhost--live-swap -> ../dm-1
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 Fedora_localhost--live-tmp -> ../dm-6
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 Fedora_localhost--live-var -> ../dm-5
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 luks-3b985124-40c1-450b-8740-da85a6083aa5 -> ../dm-8
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 luks-7791d468-c71b-4603-942e-5a30efc8d3fd -> ../dm-9
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 luks-d695f07d-2017-4e36-a792-851cb23d26d1 -> ../dm-2
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 luks-e0d65c04-dfdb-4f61-8b2f-0b76127eaf8e -> ../dm-3
lrwxrwxrwx. 1 root root       7 Jan 18 18:10 luks-f5400a56-7498-4a73-ab1b-40c331e74d6f -> ../dm-7

最後のコマンド:lsblk

NAME                                            MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
loop0                                             7:0    0 181.1M  1 loop  /var/lib/snapd/snap/spotify/36
loop1                                             7:1    0  89.1M  1 loop  /var/lib/snapd/snap/core/8268
sda                                               8:0    0 953.9G  0 disk  
├─sda1                                            8:1    0 825.9G  0 part  /mnt/workspace_HHD
└─sda2                                            8:2    0   128G  0 part  
sr0                                              11:0    1  1024M  0 rom   
nvme0n1                                         259:0    0   477G  0 disk  
├─nvme0n1p1                                     259:1    0   600M  0 part  /boot/efi
├─nvme0n1p2                                     259:2    0     1G  0 part  /boot
└─nvme0n1p3                                     259:3    0 475.4G  0 part  
  ├─Fedora_localhost--live-root                 253:0    0    70G  0 lvm   
  │ └─luks-d695f07d-2017-4e36-a792-851cb23d26d1 253:2    0    70G  0 crypt /
  ├─Fedora_localhost--live-swap                 253:1    0    38G  0 lvm   
  │ └─luks-e0d65c04-dfdb-4f61-8b2f-0b76127eaf8e 253:3    0    38G  0 crypt [SWAP]
  ├─Fedora_localhost--live-home                 253:4    0 348.4G  0 lvm   
  │ └─luks-3b985124-40c1-450b-8740-da85a6083aa5 253:8    0 348.3G  0 crypt /home
  ├─Fedora_localhost--live-var                  253:5    0     4G  0 lvm   
  │ └─luks-f5400a56-7498-4a73-ab1b-40c331e74d6f 253:7    0     4G  0 crypt /var
  └─Fedora_localhost--live-tmp                  253:6    0    15G  0 lvm   
    └─luks-7791d468-c71b-4603-942e-5a30efc8d3fd 253:9    0    15G  0 crypt /tmp

lsblkの出力によると、各lvは1つの単位として暗号化されているように見えますか?違う?

LUKSなしでLVMがどのように機能するかを理解しています。LVMなしでLUKSがどのように機能するかを理解していると思います。しかし、それらがどのように連携するのか、それらの関係は何か、そして私の状況のようにラックが存在するときに論理ボリュームのサイズを実際に変更する方法はわかりません。

ありがとう。

1
Hunry3rd

LVM内にLUKSがあるので、はい、LUKSを気にする必要があります。 lvresize --resizefsはここでは機能しないため、手動で行う必要があります。

LUKSがないと、LVのサイズとファイルシステムのサイズは同じになります。 LUKSでは、LUKSヘッダーも考慮する必要があります。このヘッダーは数MiB大きいため、ファイルシステムは数MiB小さいか、論理ボリュームはそれぞれ数MiB大きい必要があります。したがって、LUKSヘッダーとファイルシステムの両方に十分なスペースがあります。

/home100Gに縮小し、LUKSヘッダーサイズが16Mcryptsetup luksDump、ペイロード、またはデータオフセットと比較)であるとします。

/homeファイルシステムを100Gにすると、LVのサイズは100G+16Mである必要があります。

または、ファイルシステムのサイズを100G-16Mにして、LVを100Gシャープにすることもできます。

したがって、たとえば:

# shrink the filesystem first
resize2fs /dev/mapper/luks-home 100G

# shrink the LUKS
cryptsetup resize --device-size 100G luks-home

# shrink the LV
lvresize -L102416M lvm/home # 100G = 102400M + 16M

計算に自信がない場合は、ファイルシステムをさらに縮小して(たとえば、100Gではなく99G)安全マージンを追加し、後で「実際の」デバイスサイズに戻すことも一般的です。

# after resizing the LV, grow LUKS and filesystem to device size
cryptsetup resize luks-home
resize2fs /dev/mapper/luks-home

従来のパーティショニングとは異なり、LVMでは利用可能なすべてのスペースをすぐに使用する理由はありません。 LVのサイズがより適切であれば、面倒な縮小プロセスを最初に実行することなく、必要に応じてファイルシステムを拡張するための十分な空きLVMスペースがあります。

1
frostschutz

かなり時間がかかりましたが、VM(動作する前にいくつかのマシンを破壊したので、実際のシステムで実行する前に練習してください)と大きな助けでいくつかの証跡とエラーが発生しました私はここに着きました、私は次のようにlvm上のスキームluksでLVを減らすことができます:

  1. ライブCDを起動し、レスキューモードに入ります
  2. パーティションを復号化

    cryptsetup open /dev/mapper/Fedora_localhost--live-tmp tmpCrypt

  3. ファイルシステムを縮小する

    resize2fs /dev/mapper/tmpcrypt 6G
    
  4. LUKSパーティションを閉じる

    cryptsetup close /dev/mapper/tmpCrypt
    
  5. LUKSヘッダーを縮小する

    cryptsetup resize /dev/mapper/Fedora_localhost--live-tmp
    
  6. LVサイズを縮小します(暗号サイズ+ LUKSヘッダーサイズの16M = 6144 + 16)

    Sudo lvreduce -L 6160M /dev/mapper/Fedora_localhost--live-tmp
    
  7. LUKSのサイズを再度変更します

    cryptsetup resize /dev/mapper/Fedora_localhost--live-tmp
    
  8. パーティションを復号化

    cryptsetup open /dev/mapper/Fedora_localhost--live-tmp tmpCrypt
    
  9. ファイルシステムのサイズを再度変更します

    Sudo resize2fs /dev/mapper/tmpCrypt
    

*注:私が気付いた限り、手順8と9は必須ではありませんが、システムを再起動する前にファイルシステムを検証するためだけに行います。

0
Hunry3rd