한 서버에서 다른 서버로 마이그레이션할 예정이며 일부 디스크를 가져가고 싶습니다. 안타깝게도 기존 서버의 모든 데이터를 백업할 만큼 저장 공간이 부족합니다.
이전 서버 4 디스크 RAID5
이전 서버에서 두 개의 디스크를
새 서버 6 디스크 로 이동합니다.RAID-Z2 (4+2)
오래된 서버에서는 디스크 1개는 손실될 수 있지만 2개는 손실되지 않습니다.
RAID-Z2 (4+2)
디스크가 없어도 새 서버를 설정할 수 있나요 ? 모든 데이터를 이동한 다음 마지막 디스크를 추가하시겠습니까?
아니면 이 문제를 해결할 수 있는 다른 방법이 있나요?
답변1
예. 가짜 파일 백업 디스크를 중복 디스크로 사용하면 가능합니다. 물론 지원되지 않으며 백업이 있어야 하므로 먼저 이전 풀의 작은 파일로 시뮬레이션하여 모든 것이 예상대로 작동하는지 확인하세요.
자세한 내용은 다음을 참조하세요.https://www.mail-archive.com/[이메일 보호됨]/msg22993.html그리고https://www.mail-archive.com/[이메일 보호됨]/msg23023.html더 알아보기. 다른 시스템(예: FreeNAS 등)이 있는 경우 온라인에서 "create raidz2 Degraded"를 검색할 수도 있습니다.
중요한 단계(Tomas Ögren 및 Daniel Rock의 메일링 리스트 아카이브 스레드에서 가져옴)는 다음과 같습니다.
실제 디스크 크기(이 예에서는 1000GB라고 가정)로 스파스 파일을 만듭니다.
mkfile -n 1000g /tmp/fakedisk1
실제 디스크와 스파스 파일을 사용하여 zpool을 만듭니다.
zpool create -f newpool raidz2 disk1 disk2 disk3 disk4 disk5 /tmp/fakedisk1
아무도 파일에 쓰려고 하지 않도록 스파스 파일을 즉시 오프라인으로 전환합니다.
zpool offline newpool /tmp/fakedisk1
이제 풀이 다운그레이드되지만 작동됩니다. 파일을 새 풀에 복사합니다(직접 연결된 풀 대신 네트워크를 사용하는 경우 또는 사이 사용
ssh
).netcat
send
recv
zfs snapshot -r oldpool@now zfs send -R oldpool@now | zfs recv -Fdu newpool
이전 파일을 삭제하고 스파스 파일을 현재 사용 가능한 디스크로 교체합니다.
zpool replace newpool /tmp/fakedisk1 disk6
다시 말하지만, 중복성 수준에 따라(Z2에서 더미 디스크 2개를 사용하거나 Z3에서 더미 디스크 3개를 사용하는 경우):
기억하세요: 데이터 마이그레이션 프로세스 중에는 안전벨트 없이 실행됩니다. 마이그레이션 중에 디스크에 오류가 발생하면 데이터가 손실됩니다.
답변2
첫 번째 답변을 확정할 수 없으므로 새 답변을 작성하겠습니다.
Linux를 사용하는 경우 mkfile
가장 좋은 옵션은 truncate
먼저 fdisk를 사용하여 HDD의 (정확한) 크기를 바이트 단위로 가져오는 것입니다.
root@OMV-NAS:~# fdisk -l /dev/sda
Disk /dev/sda: 7,3 TiB, 8001563222016 bytes, 15628053168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
이 경우 8001563222016바이트이므로 8,001...TB입니다. 이제 다음을 사용하여 가짜 파일을 만들 수 있습니다.
truncate -s 8001563222016 /tmp/FD1.img
나머지는 원래 답변과 똑같습니다.