Linux의 ZFS 읽기 전용 마운트 + Solaris의 동시 읽기-쓰기 마운트

Linux의 ZFS 읽기 전용 마운트 + Solaris의 동시 읽기-쓰기 마운트

우리는 네트워크를 사용하여 Solaris에서 Linux로 꽤 큰 파일을 정기적으로 복사해야 합니다. 현재 파일 하나에 거의 반나절이 걸립니다. Solaris의 파일은 ZFS 파일 시스템에 있습니다.

그래서 저는 도대체 ZFS를 Linux에 마운트할 수 있을 것이라고 생각했습니다.

그러나 ZFS는 클러스터된(또는 클러스터 가능한) 파일 시스템이 아닙니다.

가설: 그래서 우리는 단지 Solaris에서 복사하고 있기 때문에 가능하다고 생각했습니다. 동일한 ZFS 파일 시스템을 읽기 전용으로 마운트할 수 있으므로 이 경우 클러스터링할 필요가 없습니까? 쓰기는 Solaris 측에서만 이루어지므로(여기서는 마운트 해제할 수 없습니다).

해당 Solaris 상자는 매우 바쁘고 네트워크 NIC도 거의 항상 매우 바쁩니다. 따라서 파일 복사를 FC로 이동하면 속도가 훨씬 빨라집니다.

해당 Linux 상자는 VMWare 호스트의 가상 게스트입니다. 그렇습니다. 해당 Linux 게스트에 동일한 FC 패브릭을 제공하는 것이 가능합니다.

생각? 저는 그 가설 부분이 제가 피드백을 가장 많이 찾는 부분이라고 생각합니다. Linux에서 ZFS 읽기 전용 마운트를 수행하고 Solaris에서 동시 읽기-쓰기 마운트를 수행할 수 있는지 확실하지 않습니다.

답변1

그것은 전혀 불가능합니다. ZFS는 읽기/권한 권한에 관계없이 동시에 두 호스트에 마운트되는 것을 허용하지 않습니다. Solaris에 마운트된 상태에서 Linux에 마운트하려고 하면 강제로 실행해야 합니다. 그렇게 하면 Solaris가 커널 패닉으로 인해 충돌하게 됩니다. 첫 번째 상자에 마운트된 동안 두 번째 Solaris 상자를 강제로 가져올 때 두 개의 Solaris에서 이런 일이 발생했습니다. 또한 Linux에서 zpool을 가져올 수 있는지 여부에 따라 ZFS 버전도 중요한 역할을 합니다. 시도하고 싶다면 다음을 제안합니다.

  1. 스토리지에서 LUN을 복제합니다.
  2. 복제된 LUN을 Linux 상자에 매핑
  3. Linux에 zpool을 마운트해 보십시오.

답변2

이를 방지하는 것은 ZFS가 디스크 상태를 변경하는 유일한 장치라고 가정하기 때문에 메모리에 메타데이터를 캐시한다는 사실입니다. 마운트된 호스트가 무엇이든 읽기/쓰기는 괜찮습니다. 읽기 전용으로 마운트된 다른 호스트에서는 메타데이터가 그 아래에서 변경되고 어느 시점에서(상당히 빠르게) 유효한 메타데이터가 있다고 생각했지만 다른 호스트가 덮어쓴 디스크 위치의 블록을 읽습니다. 다른 시스템.

BitsOfNix에서 설명하는 lun-cloning 방법을 시도하거나 정기적인 스냅샷/전송/수신 스크립트를 설정하여 최신 상태를 유지할 수 있습니다. 또는 Solaris 호스트에서 데이터 세트를 공유하고 Linux 호스트에서 NFS를 통해 마운트할 수 있습니다.

관련 정보