외장 하드 드라이브를 활용하여 상자 간 데이터 이동

외장 하드 드라이브를 활용하여 상자 간 데이터 이동

내 오래된 컴퓨터를 교체해야 해요. 몇 달 후에 교체될 예정이지만 그 동안 성능 및 데이터 복원력 향상과 관련된 기술을 배우고 싶습니다.

또한 현재 노트북 하드 드라이브 크기의 약 3~4배인 빈 2TB USB 외장 하드 드라이브도 있습니다. 그래서...저는 두 가지 일을 하고 싶습니다:

  • 외장 하드 드라이브 사용거울현재 노트북의 데이터( /home실험하고 싶은 별도의 파티션에 있다고 가정하고... 실험을 시작하기 전에 복사본을 저장하기 위해 외장 하드 드라이브에 파티션을 설정할 수 있음)를 노트북과 비교할 수 있습니다. HDD 2개를 연결하면 성능이 향상됩니다. 외장 하드 드라이브 연결 해제 시 복구할 수 있어야 하며 외장 하드 드라이브가 다시 연결될 때 동기화할 수 있어야 합니다.

  • 새 컴퓨터를 구입했을 때 외장하드를 연결해 데이터를 새 컴퓨터에 미러링할 수 있었고, 외장하드를 연결한 상태에서 성능 향상에 활용할 수 있었고, 다시 동기화하면 외장 하드 드라이브의 연결이 끊어집니다.

새 컴퓨터를 사용하기 시작하면 상황을 더 쉽게 처리할 수 있다면 외장 하드 드라이브가 기존 컴퓨터에 연결되지 않을 것이라고 가정할 수 있습니다.

그것을 달성할 수 있는 가능한 방법은 무엇입니까? 파티션 /home이나 관련된 드라이브의 현재 설정에 대한 세부 정보가 필요하면 알려주시기 바랍니다. 목록에 나와 있을 수도 있습니다.공중에 올라.

참고로 제 노트북 HDD의 파티션은 LVM을 사용하여 설정되었습니다(제가 알고 있는 내용이지만 이 실험을 통해 자세히 알아보고 싶었습니다).

답변1

불행하게도 이 문제는 문자 그대로 수백만 가지 방법으로 해결될 수 있습니다.

KISS 방법은 다음과 같습니다.

  • 새 드라이브를 새 장치로 포맷합니다(lvm에 대해서는 걱정할 필요가 없습니다).
  • 또는 같은 일부 "수동" 동기화 메커니즘을 사용 cp -a하거나 기존 드라이브를 새 드라이브에 수동으로 동기화하거나 외부 드라이브가 연결될 때 거의 실시간 동기화를 수행합니다.tar|tarrsync/homelsyncd
  • 새 컴퓨터가 도착하면 사용자의 uid:gid가 이전 컴퓨터와 동일한지 확인하고 cp -a/rsync/tar|tar외부 드라이브에서 집으로 가져옵니다.

모든 사용자 수준 애플리케이션 데이터는 이 방식으로 전송되지만 원래 애플리케이션 "로드"를 다시 생성할 수 있도록 애플리케이션 패키지 목록도 백업해야 한다는 점을 잊지 말아야 합니다.

더 복잡한 솔루션은 블록 수준에서 수행하는 것입니다.

  • dmraid/mdraid (누구에게 물어보느냐에 따라 다름 - 사용자 레이어 제어 프로그램이 무엇입니까 mdadm?)
  • 좌심실 두께

이미 LVM 설정이 있으므로 mdadm RAID가 귀하의 경우에는 작동하지 않을 것이라고 생각합니다. 그러나 dmraid는 단순한 "말도 안되는" 설정이 될 것입니다.

가장 복잡한 설정은 LVM을 망쳐놓는 것입니다. 이는 미러링과 스냅샷이라는 두 가지 방법으로 수행할 수 있습니다(내 생각에는 LVM 스냅샷을 계산한다면). 내 경험상 LVM 접근 방식은 모두 적합하지 않습니다. 아마도 더 건강한 사람들은 LVM 미러링을 사용할 것입니다. 불행하게도 나는 LVM을 좋아하지 않기 때문에 이 문제에 대해 어떤 조언도 제공하지 않을 것입니다.

나열된 KISS 옵션에는 전송 중에 파일 조각 모음을 수행한다는 추가 이점이 있습니다(SSD에는 그다지 문제가 되지 않지만 여전히 효과적입니다). 파일은 선형 방식으로 대상 볼륨에 다시 생성되고 프로세스에서 조각 모음이 수행됩니다.

반면에 희소 파일의 "구멍"과 같은 일부 공간이 손실될 수 있습니다(그러나 내 기억이 정확하다면 현대에는 rsync그러한 옵션이 있어야 합니다). 많은 수의 스파스 파일을 사용하고 있다는 것을 알고 있는 경우 이를 사용하여 du --apparent-size문제의 볼륨에 대한 최악의 최대 크기를 계산할 수 있습니다.

불행하게도 이 시점에서는 "가상 메모리"와 마찬가지로 새 볼륨 미디어의 파일이 실제로 얼마나 많은 공간을 소비할지 말하기 어렵습니다(사용되는 실제 크기는 너무 많은 요인에 따라 달라집니다).

안타깝게도 LVM 미러링과 같은 블록 수준 전송은 "새" 볼륨이 미러 볼륨에서 "잘못된 상태"(있는 경우)를 상속하므로 차선책이므로 이 경우에는 사용하지 않는 것이 좋습니다.

파일 시스템을 끌어다 두는 것보다 파일 시스템을 다시 만드는 것이 항상 더 안전하고 스마트합니다.

편집증적인 느낌이 든다면 /home전송 중에 액세스하지 않도록 해야 하며(단일 사용자 모드로 들어갈 수도 있음), 정말로 화가 나면 sha256sum모든 파일의 해시를 계산할 수 있습니다(참고 며칠이 걸릴 수 있으며 파일을 쓸 수 없습니다!) 전송과 비교하십시오.

언제나 그렇듯이, Archlinux 위키에는 꽤 좋은 소개 글이 있습니다:

중요한 데이터에 대해 중복된 실험을 실행하지 않는 것이 좋지만 이러한 실험에 가상 머신을 사용하면 훨씬 간단하고 더 많은 것을 배울 수 있습니다.

관련 정보