zfs에서 디렉토리 트리를 새로운 파일 시스템으로 효율적으로 변환

zfs에서 디렉토리 트리를 새로운 파일 시스템으로 효율적으로 변환

나는 루트 파일 시스템에 "/opt"(및 기타 대규모 디렉토리 트리)가 저장된 시스템의 관리를 "상속"했습니다.

현재 나의 목표는 rpool에서 /opt에 대한 새 파일 시스템을 생성하는 것입니다(충분히 간단함). 그러나 /-filesystem의 /opt 디렉토리 트리를 새 파일 시스템으로 효과적으로 이동할 수 있는 zfs 마법을 원합니다. 즉, 복사할 필요가 없습니다. 그리고 원본을 삭제하세요.

zfs에 대한 나의 순진한 이해는 그것이 훌륭하고 이미 스냅샷 간에 저장된 정보를 공유할 수 있다는 것입니다. 또한 대량 데이터를 이동하지 않고도 다른 파일 시스템에 표시되도록 디렉토리를 재정렬할 수 있기를 바랍니다.

직접적인 방법이 있나요? 그래도 작동하지 않으면 "cp & rm"을 수행할 수 있습니다.

추신: "이유"를 알고 싶은 사람이 있다면? Solaris의 부트 환경에서 제거하십시오.

답변1

그동안 나는 내 질문에 답할 수 있습니다.

/opt("매우 큰")를 루트 파일 시스템 밖으로 이동해야 한다고 가정합니다.

중요한! ! ! 폐쇄모든 서비스/opt에서 파일을 여는 것이 가능합니다.오라클 데이터베이스 서버- /opt 아래에 설치되는 경우)

기본적으로 내가 하는 일은 다음과 같습니다.

  • zfs snapshot -r rpool@opt-out (스냅샷이 생성됩니다. 현재 부팅 환경에 대한 스냅샷이면 충분하지만 어쨌든 스냅샷은 문제가 되지 않을 것입니다.)
  • zfs clone rpool/ROOT/11.4.23.69.3@opt-out rpool/opt(원래 /rpool/opt에 마운트된 현재 부팅 환경의 스냅샷에서 새 파일 시스템을 복제합니다. 11.4.23.69.3은 현재 부팅 환경이며 후속 독자에게는 다를 수 있습니다.)
  • mv /opt /OPT; mkdir /opt(루트 파일 시스템에서 /opt 마운트 지점을 제거하고 다시 생성합니다. /OPT는 나중에 삭제할 수 있습니다.)
  • cd /rpool/opt; mkdir rest; mv * rest; mv rest/opt/* . ("rest"는 나중에 제거됩니다. ".dot-entries"도 확인하고 각 단계에서 수동으로 이동하십시오)
  • zfs set mountpoint=/opt rpool/opt (/opt에 새 파일 시스템 다시 설치)

완벽한.

마지막으로 이전에 종료된 서비스를 다시 시작합니다.

관련 정보