ZFS에는 구성 가능한 다양한 등록 정보가 있습니다.수영장용,vdev를 위한그리고데이터 세트의 경우. 이들 중 다수는 언제든지 변경할 수 있지만 일부는 생성 시에만 설정할 수 있습니다(또는 나중에 작성된 데이터에만 영향을 미침).~해야 한다실제로는 생성 시 설정됩니다).
멍청한 놈으로서 저는 다양한 질문을 검색했고 많이 설정하도록 제안된 여러 속성을 발견했습니다.
분명히 각 사용 사례에는 어떤 속성이 적합한지에 대해 약간의 차이가 있지만 대부분의 zfs 사용자가 사용해야 하는 공통 속성 세트가 있는 것 같습니다. 나는 적극적인 이유가 있어야 하는 속성에 대해 생각하고 있습니다.~ 아니다그들을 사용합니다. 그것들은 무엇이며 그 이유는 무엇입니까?
답변1
(면책조항: ZFS 초보자로서 이것은 지금까지의 나의 이해일 뿐이며 다른 사람들로부터 보다 완전하고 신뢰할 수 있는 정보를 얻을 수 있는 원동력이 됩니다.)
풀 속성
ashift=12
기본적인 수준에서는 이ZFS의 읽기/쓰기 작업이 기본 저장소의 블록 경계와 일치하는지 확인합니다..이론적으로512바이트 블록이면
ashift=9
괜찮겠지만, 요즘에는 그런 드라이브가 드물고ashift
"너무 높게" 설정한 것에 대한 페널티가 다소 낮습니다.autotrim=on
자동으로일부 공간이 더 이상 필요하지 않을 때 기본 블록 스토리지에 알립니다.. 특히 SSD에서 유용하지만 클래식 HDD에서도 손상되지 않는 것 같습니다(그러나 거기에서는 도움이 되지 않을 것 같습니다).
데이터세트 속성
이는 루트 파일 시스템의 스위치를 사용 zfs create -o
하거나 스위치를 통해 지정할 수 있습니다 (기본적으로 다른 파일 시스템에 상속됨).-O
zpool create
xattr=sa
이는 실질적인 단점 없이 xattr의 성능을 크게 향상시킵니다. (Linux에서만 사용 가능지금은).
dnodesize=auto
이 속성은 을 사용할 때 사용해야 합니다
xattr=sa
. 이것을 사용하지 않는 주된 이유는필수 ZFS 기능을 지원하지 않는 시스템과 상호 작용.relatime=on
읽기 전용 상호 작용에서도 파일 액세스 시간을 추적하는 데는 비용이 매우 많이 들 수 있습니다. 속성
relatime
의 덜 정확한 정보를 희생하여 이러한 업데이트의 세분성/빈도를 크게 줄입니다atime
(일부 일반적으로 필요한 불변성을 유지하면서). 이것은 오랫동안 Linux의 거의 모든 파일 시스템에 대한 기본값입니다. 정확한 정보가 필요한 경우에는atime
이 기능을 켜지 마십시오. 그것이atime
결코 필요하지 않다는 것을 안다면atime=off
더 나은 성능을 제공합니다.normalization=formD
이렇게 하면 파일 이름이 항상 동일한 방식으로 정규화됩니다. 주요 부작용으로 이는 파일 시스템이 파일 이름을 UTF-8 인코딩으로 처리하고 다른 파일 시스템이 허용하는 특정 "깨진" 이름을 가진 파일 이름을 더 이상 저장할 수 없음을 의미합니다. 이것이 바람직하지 않다면, 이것을 생략하세요.
compression=lz4
현대 하드웨어에서는 압축 비용이 너무 낮아 사실상 장점만 있다는 것이 합의된 것 같습니다. 이미 과도하게 압축된 데이터를 주로 저장하는 데이터 세트에서는 이 기능을 끄는 것이 좋습니다.
아니요
recordsize
기본 레코드 크기는 많은 사용 사례에서 좋은 중간 지점인 것처럼 보이지만 데이터베이스와 같은 일부 사용 사례에서는 특정 값이 도움이 될 수 있습니다.
출처
- ZFS의 데비안 루트
- 다수의 개별 포럼 게시물