한 풀에서 다른 풀로 ZFS 파일 시스템 이동


18

루트 rpool 외에 추가 저장 영역 풀로 Solaris 10 U8 서버를 확장하고 있습니다.

특정 ZFS 파일 시스템을 rpool에서이 새로운 스토리지 풀로 이동하는 가장 효과적이고 간단하며 안정적인 방법은 무엇입니까?

온라인으로 할 수 있습니까? 아니면 먼저이 풀을 사용하여 서비스를 종료해야합니까?

답변:


15

서비스 비활성화에 대한 질문은 본질적으로 서비스 자체에 따라 다릅니다.

  • 이동하려는 파일 시스템에 활발히 쓰고 있습니까?
  • 그들은 당신이 유지하고자하는 영구 데이터를 저장하고 있습니까?

어쨌든 ZFS 파일 시스템을 보내는 데 시간이 오래 걸릴 수 있습니다. 대부분의 시간 동안 온라인 상태로 유지하여 서비스 사용 불가를 최소화 할 수 있습니다.

  • 스냅 샷 생성
  • 모든 서비스를 활성 상태로 유지하면서 이전에 제안 된 방식으로 해당 스냅 샷 전송
  • 다른 풀에서 fs가 수신되면 해당 파일 시스템에 대한 중요 서비스 범위를 비활성화하십시오. 나중에 변경 사항이 삭제되므로 대상 풀의 새 파일 시스템이 수정되지 않아야합니다.
  • 두 번째 스냅 샷 생성 (예 : snapshot2)
  • 두 번째 스냅 샷을 증 분식으로 보내면 이전 전송보다 훨씬 빠릅니다. 예 :

    zfs send -i rpool / filesystem @ snapshot rpool / filesystem @ snapshot2 | zfs 수신 -F 대상 풀 / 파일 시스템

  • 완료되면 파일 시스템 마운트 포인트를 이전 데이터 세트에서 새 데이터 세트로 이동하십시오. 예 :

    zfs set mountpoint=/application/directory.old rpool/filesystem
    

    zfs set mountpoint = / application / directory 대상 / 파일 시스템

/application/filesystem이를 달성하기 위해 프로세스가 바인드되어 있지 않은지 확인해야합니다 (예 : 파일 액세스 또는 현재 디렉토리로 사용).

  • 서비스를 다시 활성화하면 완료됩니다.

10

나는 이것이 온라인으로 수행 될 수 있다고 생각하지 않지만 내 프로세스는 필요한 서비스를 종료하고 스냅 샷을 찍고 zfs 보내기 / 받기를 사용하여 마이그레이션하는 것입니다. 다음과 같은 것 :

zfs send rpool/filesystem@snapshot | zfs receive destinationpool/filesystem

편집하다:

"pipe view"명령 (pv)을 설치하면 다음을 사용하여 전송 상태를 모니터 할 수 있습니다.

zfs send rpool/filesystem@snapshot | pv | zfs receive destinationpool/filesystem

10

나는 jlliagre가 말한 것의 많은 부분을 반복하고 있지만 자손 파일 시스템을 추가했습니다. (대부분 잊었을 때 참조가 있습니다.)

서브 파일 시스템이 -r있는 경우 zfs snapshot 명령에서 플래그를 사용하고 명령 에서 -ror -R플래그 를 사용하려고합니다 zfs send. 대문자 -R는 모든 속성 , 스냅 샷 및 복제본을 이동합니다 .

전체 풀을 이동하려면

zfs snapshot -r sourcepool@moving
zfs send -R sourcepool@moving | zfs receive -F destpool

더 짧은 마이그레이션 기간 동안 변경 사항을 동기화하려면 애플리케이션 종료, samba, nfs 종료

zfs snapshot -r sourcepool@moving2
zfs send -Ri sourcepool@moving sourcepool@moving2 | zfs receive -F destpool

마이그레이션을 위해 여러 개의 중간 스냅 샷을 생성하는 경우 zfs send -I스위치 에 대한 매뉴얼 페이지를 읽으십시오 .


3
내 실험에서 정확한 명령은 다음과 같습니다. zfs send -R Pool0 @ moving | zfs는 -dF Pool1
TinkerTank를

4

파이프 라인에서 "mbuffer"와 같은 도구를 사용하면 이점이 있습니다. ZFS의 송신 / 복원 성능은 양쪽 끝이 대부분 지속적으로 데이터를 스트리밍 할 수 있고 mbuffer (또는 이와 유사한 것)없이 한 쪽이 다른 쪽에서 계속 차단되는 탁구 효과를 얻을 수 있다면 크게 향상됩니다.


이것은 매우 오래된 질문 (5 년 이상)이며 귀하의 답변으로 해당 질문에 어떤 것도 추가 할 수 없습니다.
Catherine MacInnes

1
이것은 훌륭한 조언이며 수영장 이동에도 사용합니다.
Dan Buhler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.