NAS를 옮길 때 두 VM만 붙는 격리 브릿지 쓰기
Xpenology에 있던 데이터를 TrueNAS로 옮겨야 했다. 문제는 두 NAS가 같은 Proxmox host 위에 있고, 옮길 데이터가 수 TB라는 것이다.
집 랜을 거치면 기가비트에 묶이고 그동안 다른 트래픽도 같이 죽는다. host 안에서만 도는 브릿지를 따로 만들어 두 VM만 물렸다.
옮기는 순서가 두 단계다
한 번에 못 옮긴다. 3.5인치 HDD 3개로 RAID를 만들어야 하는데 그 디스크에 지금 원본 데이터가 들어 있다.
- Xpenology → TrueNAS의 백업 스토리지로 옮긴다
- 비워진 HDD 3개를 TrueNAS에 붙여 pool을 만든다
- 백업 스토리지 → 새 pool로 다시 옮긴다
같은 데이터를 두 번 복사하는 셈이라 시간이 두 배로 든다. 그래서 전송 경로가 더 중요해졌다.
원본을 먼저 읽기 전용으로
옮기기 전에 Xpenology 쪽 폴더를 전부 read-only로 바꿨다. 전송이 며칠 걸리는데 그동안 원본이 바뀌면 무엇을 옮겼고 무엇을 안 옮겼는지 알 수 없게 된다.
브릿지 만들기
Datacenter → 노드 → System → Network → Create → Linux Bridge다. 기본값 그대로 두고 만든다. Bridge ports를 비워두면 물리 포트에 나가지 않는다.
각 VM의 Hardware → Add → Network Device에서 이 브릿지를 고른다. Firewall은 끈다. 내부 전용 구간이라 걸어봐야 포트를 열어주는 일만 늘어난다.
주소 수동 배정
이 구간에는 DHCP 서버가 없으므로 양쪽에 직접 준다.
- Xpenology: Control Panel → Network → 새로 생긴 LAN → IPv4 → Use manual configuration
- TrueNAS: Network → Interfaces → Edit. DHCP와 Autoconfigure IPv6를 끄고 Aliases에 추가
$ ping 10.10.10.2 # TrueNAS에서
$ ping 10.10.10.3 # Xpenology에서
양쪽 다 되면 이 경로로 붙을 수 있다.
SSH key
rsync가 며칠 돌 텐데 매번 비밀번호를 물으면 안 된다.
$ ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
$ XPE_USER=<계정>
$ XPE_HOST=10.10.10.3
$ ssh-copy-id -i ~/.ssh/id_ed25519.pub ${XPE_USER}@${XPE_HOST}
$ ssh -i ~/.ssh/id_ed25519 ${XPE_USER}@${XPE_HOST} "echo 연결성공"
-N "" 로 passphrase 없이 만든다. 자동으로 돌아야 하니 어쩔 수 없다. 옮기고 나면 이 키는 지운다.
계정과 주소를 변수로 빼두면 뒤에 나올 rsync 명령을 폴더만 바꿔가며 그대로 쓸 수 있다.