논리 볼륨의 크기를 조정하는 올바른 방법이 무엇인지 이해하려고 노력하고 있습니다(추가 pv를 추가하지 않고 하나의 논리 볼륨을 축소하고 다른 논리 볼륨을 확장하고 싶습니다).
내가 이해하는 한, 이 링크에 따르면: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(PV는 VG로 매핑되고 VG는 LV로 매핑)의 아키텍처도 이해합니다.
내 격차는 다음과 같습니다
- 계획에 추가 PV를 추가하지 않으면 LUKS에 관심을 가져야 합니까? 아니면 PV가 변하지 않는 한 이 프로세스가 LUKS에 영향을 미치지 않는다고 해야 할까요?
- 파티션과 PV는 하나의 단위로 암호화됩니까, 아니면 각 레벨이 개별적으로 암호화됩니까?
- 내 경우에는 크기를 조정하고 싶고
/tmp
내/var
아키텍처에 따라 키의 디스크에서 부팅하고 livecd에서 부팅해야 합니까, 아니면 호스트 자체에서 부팅할 수 있습니까?
광전지 스캐닝
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 ]
스캐너
Found volume group "fedora_localhost-live" using metadata type lvm2
왼쪽으로 스캔
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개의" 경로(하나는 논리 볼륨용, 하나는 논리 볼륨용)가 있는 이유를 이해한다고 생각합니다. 논리 볼륨 두 번째는 해독된 볼륨입니다.
ls -l /dev/매퍼/
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가 하나의 단위로 암호화된 것 같습니다. 아니면 제 생각이 틀렸나요?
LUKS 없이 LVM이 어떻게 작동하는지 이해하고, LVM 없이 LUKS가 어떻게 작동하는지 이해한다고 생각합니다. 그러나 나는 그들이 어떻게 함께 작동하는지, 그들 사이의 관계가 무엇인지, 그리고 나와 같은 상황에서 luk가 존재할 때 논리 볼륨의 크기를 실제로 조정하는 방법을 이해하지 못합니다.
감사해요.
답변1
LVM에는 LUKS가 있으므로 LUKS에 신경써야 합니다. lvresize --resizefs
여기서는 작동하지 않으므로 수동으로 수행해야 합니다.
LUKS가 없으면 LV의 크기와 파일 시스템의 크기는 동일합니다. LUKS의 경우 LUKS 헤더도 고려해야 합니다. 헤더가 몇 MiB 더 크므로 파일 시스템이 몇 MiB 더 작아야 하거나 논리 볼륨이 몇 MiB 더 커야 합니다. 따라서 LUKS 헤더와 파일 시스템 모두에 충분한 공간이 있습니다.
(비교 , 페이로드 또는 데이터 오프셋) 의 LUKS 헤더 크기 /home
로 축소한다고 가정합니다 .100G
16M
cryptsetup luksDump
파일 시스템을 생성하는 경우 /home
LV의 크기를 100G
결정해야 합니다.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 공간을 갖게 됩니다.
답변2
시간이 오래 걸렸지만 가상 머신에서 시행착오를 겪은 후(작동하기 전에 몇 대의 머신을 파괴할 수 있었으므로 실제 시스템에서 이 작업을 수행하기 전에 연습하십시오) 여기에서 큰 도움을 얻었고, 가까스로 성공했습니다. 다음과 같이 lvm에 대한 LV 구성 luks를 줄입니다.
- 라이브 CD를 부팅하고 복구 모드로 들어갑니다.
파티션 암호 해독
cryptsetup open /dev/mapper/fedora_localhost--live-tmp tmpCrypt
파일 시스템 축소
resize2fs /dev/mapper/tmpcrypt 6G
LUKS 파티션 닫기
cryptsetup close /dev/mapper/tmpCrypt
LUKS 헤더 축소
cryptsetup resize /dev/mapper/fedora_localhost--live-tmp
LV 크기 감소(암호화 크기 16M + LUKS 헤더 크기 = 6144+16)
sudo lvreduce -L 6160M /dev/mapper/fedora_localhost--live-tmp
LUKS 크기를 다시 조정하세요
cryptsetup resize /dev/mapper/fedora_localhost--live-tmp
파티션 암호 해독
cryptsetup open /dev/mapper/fedora_localhost--live-tmp tmpCrypt
파일 시스템 크기를 다시 조정
sudo resize2fs /dev/mapper/tmpCrypt
*참고: 제가 아는 한 8단계와 9단계는 필수는 아니지만 시스템을 재부팅하기 전에 파일 시스템을 확인하기 위해 수행했습니다.