저는 Arch Linux 커널 4.18.12-arch1-1-ARCH
(2018년 11월)을 사용합니다.
저는 오래된 노트북의 하드 드라이브를 보관하는 SATA 트레이(Thinkpad T400용)를 사용합니다. 내용을 결합하고 논리 볼륨을 확장 rootvol
하거나 lvhome
현재 설정을 유지하기 로 결정하고 싶습니다 (아래 참조). 저는 ext4
파일 시스템만 사용하고 있으며 두 볼륨 모두 데이터를 포함하고 있습니다. 이 질문은 이미 답이 있는 것 같지만여기, 데이터 손실을 방지하는 방법을 모르겠습니다.
그래서 현재 저는 luks 암호화된 SSD에서 부팅하고 $HOME
스토리지를 확장하기 위해 지연 마운트된 하드 드라이브의 디렉터리를 가리키는 일부 심볼릭 링크를 가지고 있습니다. 이를 통해 $HOME
하드 드라이브의 이전 SSD를 사용할 수 있습니다.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT UUID
sda 8:0 0 223.6G 0 disk
└─sda1 8:1 0 223.6G 0 part 3d17c5b4-a603-4600-9f36-c598a7da783e
└─root 254:0 0 223.6G 0 crypt PRGLfW-Q18M-pPu8-nr6a-tloV-SS4W-kK1ROX
├─matrix-swapvol 254:1 0 2G 0 lvm [SWAP] 38e862ef-e919-4388-810f-63ce187b342c
└─matrix-rootvol 254:2 0 221.6G 0 lvm / c71a8292-c678-4a53-90da-3e4bf78cedbb
sdb 8:16 0 232.9G 0 disk
├─sdb1 8:17 0 512M 0 part 14c635fb-6ee7-45c0-aefd-d3d7440116c0
└─sdb2 8:18 0 232.4G 0 part c36535d9-4098-4939-9ebe-6a2be950f3ea
└─caddy 254:3 0 232.4G 0 crypt kTkSk4-oemR-1fJi-4brz-OXmW-DEZk-rqF2pN
├─vgarch-lvswap 254:4 0 4G 0 lvm a1932471-209e-4d47-85dc-c4ea1ce37de8
├─vgarch-lvroot 254:5 0 15G 0 lvm 67d37f85-c2c0-40e7-88e9-afd4a6c1c561
└─vgarch-lvhome 254:6 0 211.2G 0 lvm dd89d271-776a-426a-826d-9f4d7056fc6a
보시다시피, 어떤 이유로든 저는 luks에서 lvm을 두 번 사용하기로 결정했습니다. SSD에는 /boot
파티션이 없습니다. libreboot ROM 이미지의 도움으로 해독됩니다. 부팅 프로세스 중에 crypttab
for /dev/sdb2
의 UUID 항목이 사용됩니다 /
. 그런 다음 필요할 때 systemd의 자동 마운트 서비스를 사용하여 마운트하거나 마운트 해제합니다.
# /etc/fstab
# /dev/mapper/vgarch-lvhome
UUID=dd89d271-776a-426a-826d-9f4d7056fc6a /mnt/caddy ext4 rw,noatime,data=ordered,noauto,nofail,x-systemd.automount,x-systemd.device-timeout=20,x-systemd.idle-timeout=2min 0 0
재귀적으로 변경했습니다 lvhome
. 필요하지 않으므로 /boot가 포함된 /dev/sdb1과 함께 삭제하겠습니다 lvroot
.lvswap
그러면 이것들을 어떻게 결합합니까? 이것이 바람직합니까? (SSD와 HDD는 용도가 다르기 때문에) 먼저 내용을 다른 파일 시스템에 복사하는 것이 좋지만, 이것이 lvm의 목적에 어긋나는 걸까요? 파일 시스템을 늘리거나 줄이는 것이 쉬울 것이라고 생각했지만 zfs 세계의 기능을 상상하고 있었던 것 같습니다.
답변1
LVM은 논리 블록 장치인 논리 볼륨을 제공하며, 이러한 블록 장치는 쉽게 확장, 축소, 재배치, 스냅샷 생성 등이 가능합니다. 그런 다음 이러한 블록 장치를 원하는 방식으로 사용할 수 있습니다. 파일 시스템일 수도 있고 자체 파티션 테이블과 모든 것을 갖춘 가상 머신용 가상 하드 디스크와 같은 다른 것일 수도 있습니다.
LVM은 파일 시스템 수준에서는 아무 작업도 수행하지 않습니다. 따라서 늘어나거나 줄어드는 블록 장치를 처리하는 것은 파일 시스템에 달려 있고, 파티션 테이블 크기를 조정하는 것은 가상 머신에 달려 있습니다.
대부분의 파일 시스템은 확장을 지원하지만(때때로 온라인이 아니거나 특정 한도까지) 일부 파일 시스템은 축소를 지원하지 않습니다. 따라서 LVM이 블록 장치를 주저 없이 축소하는 동안 파일 시스템을 먼저 축소해야 하며 일부 파일 시스템에서는 이것이 불가능합니다.
두 개의 별도 파일 시스템의 내용을 병합하는 것은 일반적으로 지원되지 않습니다.
그렇습니다. 옛날 방식으로 파일을 복사해야 하는 상황이 있습니다. 그런 다음 해당 파일이 있는 LV를 포기/삭제하고 여유 공간을 사용하여 LV를 확장하고 파일을 복사한 파일 시스템을 확장합니다.
그러면 이것들을 어떻게 결합합니까? 이것이 바람직합니까? (SSD와 HDD는 용도가 다르기 때문에)
절반은 SSD이고 절반은 HDD인 블록 장치를 만들지 않을 것입니다. 나는 그것들을 별도로 보관하는 것을 좋아합니다.
이것이 타당할 수 있는 다른 경우도 있습니다. 예를 들어 HDD가 쓰기 중심으로 설정된 SSD-HDD-RAID1을 수행할 수 있습니다. 즉, SSD가 더 빠르기 때문에 일반적으로 모든 읽기가 SSD에서 처리됩니다. 그러나 SSD 가격이 하락함에 따라 SSD 2개만 사용하여 일반 RAID1을 구현할 수 있으므로 이 설정은 더 이상 일반적이지 않습니다.