문제

내가 서버로 쓰는 컴퓨터는 M.2 PCIe 드라이브를 지원하지만 NVMe 부팅은 지원하지 않는다. PCIe AHCI SSD로만 부팅이 가능한데 이젠 구하기도 까다롭고 가격도 상대적으로 훨씬 비싸다. 퍼포먼스도 NVMe 대비 더 안나오고. 부팅이 안되는줄도 모르고 NVMe SSD를 사버려서 하드 드라이브에 Proxmox를 설치, NVMe는 단순히 컨테이너들의 LVM 풀로만 사용하던 상황. 이게 마음에 들지 않았다.

연구

그러던 와중 혹시 efi와 /boot 마운트만 하드에서 하고, 실제 OS가 설치되는 루트 (/) 폴더를 NVMe로 빼면 꼼수처럼 부팅이 가능하지 않을까하는 음흉한 생각이 들었다. 될꺼같긴 한데 이 상황 그대로 테스트해볼 하드웨어가 없었다. 될꺼같다는 감만 믿고 멀쩡히 작동중인 서버를 밀어야 하는데... 그래서 연구를 좀 해야했다.

일단 Proxmox 인스톨러는 이런 세세한 파티셔닝까지 지원하지 않아서, 데비안을 먼저 깔고 Proxmox로 전환시켜야 한다. 데비안을 Proxmox에 맞게 설치해줘야 하는데, Proxmox는 OS 설치를 LVM 풀에 한다. Pve라는 이름의 VG 안에 data, root, swap LV들이 있고 그 중 data는 thin LV로 설정하는걸 권한다. Root은 OS를 설치하는 공간, data는 컨테이너들이 뛰어노는 공간, swap은 말그대로 스왑. Data LV는 Proxmox 4.2부터 따로 디렉토리에 마운트되지 않는다. 일단 가만히 놔두고 깔고 나중에 Web UI에서 이 풀을 사용하겠소 말해주면 된다. 나는 하드에 남는 공간에도 컨테이너를 위한 thin LV를 설정해야 했다.

다시 문제

우선 데비안 인스톨러의 문제가 있다. Thin LV 설정이 안된다. 하아... 우분투 인스톨러로 파티셔닝을 다 끝내놓고 데비안 인스톨러로 마운트 포인트만 정해서 설치하기로 결정.

diagram


이렇게 설정을 해놓고 설치 완료. 과연 이게 부팅이 되려나?? 된다!!! NVMe 부팅을 지원하지 않는 하드웨어도 일단 efi랑 /boot 까지만 읽어들이면 NVMe에서의 OS 작동은 전혀 문제가 없다.

Proxmox까지 데비안 위에 설치완료. 이제 백업해놓은 컨테이너만 가져오면 끝이겠지? 복구하는데 에러를 뿜어낸다. 몰랐던건데 thin LV에 메타데이터를 저장하는 공간이 따로 있나보다. 큰 용량의 컨테이너를 복구하려니 메타데이터 공간이 부족해서 복구가 안됐던 것.

해결!

어떻게든 메타데이터 공간을 늘려보려고 이것저것 시도를 했는데, 이게 상당히 직관적이지 못하다. 분명 여유 공간이 있는데 늘리는 것도 안되고 줄이는건 절대 안된단다. 어쩌겠나, 다시 우분투 인스톨러로 돌아가서 파티션을 새로 짰다. 이번엔 man page를 참고해서 메타데이터 공간도 완전 넉넉하게 할당해줬다. 동일한 방법으로 Proxmox도 올리고 복구, 이제 잘 된다. 당연하지만 부팅속도, 시스템 반응속도가 엄청나게 좋아졌다. LVM에 대해 좀 더 배울 수 있는 경험이었고 여러모로 매우 만족.