성능에 심각한 영향을 주지 않고 예측할 수 없는 향후 워크로드를 관리하기 위해 zfs 파일 시스템을 계층화하는 좋은 방법은 무엇입니까?

성능에 심각한 영향을 주지 않고 예측할 수 없는 향후 워크로드를 관리하기 위해 zfs 파일 시스템을 계층화하는 좋은 방법은 무엇입니까?

저는 zfs 도구 사용 방법을 배우기 위해 ZFS를 실험하고 희소 파일을 가상 장치로 사용했습니다.

다른 장치의 JBOD 파일 시스템 위에 스파스 파일을 사용하여 RAID 풀을 생성하는 것은 성능에 큰 영향을 미치지 않는 것 같습니다.

따라서 zfs 파일 시스템을 축소하는 것은 불가능하기 때문에 이것이 유연한 시스템을 앞으로 나아가게 만드는 좋은 방법인지 궁금합니다.

예를 들어 디스크가 4개 있습니다. 모든 장치에는 장치 파일 시스템이 있습니다. 각 파일 시스템에 하나씩, 즉 디스크에 하나씩 4개의 스파스 파일을 만들었습니다. 부하는 장치 전체에 분산되며 중복성도 제공됩니다.

RAID 어레이가 가득 차기 전에는 임시 대용량 파일과 같이 RAID가 필요하지 않은 항목을 위한 디스크 공간이 남아 있습니다.

두 가지 유형의 파일 시스템이 동시에 사용 중이면 성능이 크게 저하될 것으로 예상됩니다.

이 접근 방식에 다른 장점과 단점이 있습니까?

답변1

한 가지 문제는 중복 캐시가 포함된 두 개의 중첩된 파일 시스템 레이어가 있다는 것입니다.

또는 작성한 데이터가 업데이트되거나 삭제되지 않는 한 ZFS의 쓰기 시 복사 특성은 예상보다 빠르게 모든 파일 백엔드 영역을 점진적으로 사용합니다. 이렇게 하면 희박성이 줄어들어 씬 프로비저닝 목표가 무산됩니다.

답변2

처음부터 성능 문제를 예상했습니다. 주로 다른 파일 시스템 위에 있는 ZFS 파일 시스템에 파일을 쓰기 때문입니다.

각 쓰기마다 필요한 I/O의 두 배 이상을 수행하게 됩니다. 임시 대용량 파일은 제외됩니다.

그럼에도 불구하고 데이터를 분할하면 블록 크기가 다른 다양한 ZFS 데이터 세트를 가질 수 있습니다. 압축 및 중복 제거 외에도 약간 더 많은 CPU를 소비합니다. 그러나 다른 FS 위에 하나의 FS를 두는 것보다 낫습니다.

관련 정보