오늘,이상한 문제를 발견했습니다zvol이 있음에도 불구하고 ZFS에서 공간이 부족하다고 주장하기 때문에 zvol을 생성할 수 없습니다.예전에는충분한 공간.
블록 크기에 따라 zvol은 예상 공간의 150% 이상을 차지하는 것으로 나타났습니다. 예를 들어, 위에 링크된 질문에서 설명한 상황에서 512바이트의 블록 크기를 사용하면 여유 공간이 842GB임에도 불구하고 560GB 이하의 zvol을 생성할 수 있습니다. 하지만 기본 블록 크기(8kB)를 사용하면 문제 없이 810GB의 zvol을 생성할 수 있습니다.
또 다른 질문에 답해 준 유용한 사람은 자신의 측정으로 내 결과를 검증했으며 512바이트 블록 크기를 사용하면 크기가 50% 증가한다는 사실도 발견했습니다.
이것이 왜 발생하는지, 어떻게든 고칠 수 있는지 알고 싶습니다.
배경:
일반적으로 저는 블록 크기에 크게 신경 쓰지 않습니다. 그러나 저자는 특히 zvol이 VM 스토리지로 사용되는 경우 zvol에 기본 디스크와 동일한 블록 크기를 제공하도록 권장하는 기사를 두 개 이상 읽었습니다. 불행히도 나는 출처 중 하나만 기억하지만 적어도 저자가 벤치마크를 통해 자신의 주장을 (어쨌든) 증명한 출처입니다. 이는 다음과 같습니다("데이터세트" 섹션 참조).
https://martin.heiland.io/2018/02/23/zfs-tuning/
zvol의 블록 크기를 물리적 디스크의 섹터 크기와 동일하게 만드는 것이 의미가 없다면 이것이 답변에 명시적으로 언급되어 있어도 괜찮습니다. :-)
개인적으로, 나는 그것이 타당한지 결정하기 위해 소스 코드를 읽어야 하거나 우리 자신의 벤치마크를 수행해야 한다고 생각합니다(해당 시스템에 충분한 공간이 없기 때문에 현재로서는 불가능합니다...). zvol 블록 크기가 다음과 같다고 상상할 수도 있습니다.VM 게스트 파일 시스템의 클러스터 크기(이것은 문제의 VM과 VM이 NTFS를 사용하는 경우 내가 사용한 다른 일부 VM의 경우입니다.)