ZFS 저장소에 SSD 드라이브를 캐시로 추가하려고합니다. 누구든지 이것에 대한 경험이 있습니까? 캐시 장치가 죽으면 데이터가 영향을 받습니까?
답변
(Solaris Internals 웹 사이트는 더 이상 가동되지 않지만 WebArchive에는 사본이 있습니다)
답변
기본적으로 데이터와 메타 데이터 모두에 사용되는 세 가지 유형의 ZFS 캐시가 있습니다.
- ARC (Adaptive Replacement Cache)-읽기 및 쓰기를위한 주 메모리 DRAM 캐시.
- L2ARC (Level 2 ARC)-안전한 읽기 캐시 : 장치 오류로 인한 데이터 손실 / 서비스 중단이 없습니다. 일반적으로 SSD 기반입니다.
- ZIL (ZFS 의도 로그)-ARC에서 디스크로 플러시되기를 기다리는 영구 저장소에 대한 쓰기를 안전하게 유지합니다. 데이터는이 캐시에 30 초 이상 존재하지 않으며 커밋되지 않은 풀 쓰기를 재생하기위한 충돌 이후를 제외하고는 데이터를 읽지 않습니다. 최근의 모든 ZFS 버전에서 Zil 장치 오류는 데이터 손실 (아직 모든 데이터가 ARC에 있음)을 유발하지 않지만 장치 오류 + 충돌 또는 정전으로 인해 일부 쓰기가 손실 될 수 있습니다.
먼저 ARC를 업그레이드하고 메인 메모리를 구입하십시오. 참고 L2ARC와 Zil은 모두 ARC에서 오버 헤드가 할당됩니다.
L2Arc는 ARC에서 제거 될 때 읽기 캐시 된 블록으로 채워집니다. ZFS는 기본적으로 임의 IO (작은 읽기) 만 L2ARC로 캐시하며 ( 지시하지 않는 한) 스트리밍 워크로드에는 사용되지 않습니다 . 기본적으로 빠른 15k HD를 포함한 모든 장치를 사용할 수 있지만 많은 임의 읽기 IOPS를 쉽게 처리하는 SSD와 가장 잘 작동합니다.
ZIL은 동기 쓰기가 필요한 워크로드를 가속화합니다 (프로세스는 실행을 계속하기 전에 실제로 쓰기가 디스크에 커밋되었음을 확인하기 위해 대기합니다). Zil은 고급 RAID 컨트롤러에서 배터리 백업 캐시와 유사한 역할을 수행합니다. 쓰기 지연 시간과 스트리밍 쓰기 IOPS가 우수한 Zil SSD를 정의하는 것이지만, Zil은 무엇보다 이벤트 전원 손실시 데이터를 잃어 버리지 않아야합니다. 많은 적합한 장치에는 시스템 전원없이 보류중인 작업을 완료 할 수있는 수퍼 커패시터가 있습니다. 쓰기 내구성이 높은 SLC SSD (Intel X25-E)가 권장되었지만 최신 장치에서는 정전시 배터리 / 슈퍼 캡이있는 RAM을 사용하여 NAND에 다시 씁니다. ZIL은 클 필요는 없지만 큰 장치의 작은 부분 만 사용하여 (예 : 300GB Intel 320 MLC SSD 중 8GB를 사용하면 훨씬 더 효과적인 쓰기 내구성을 얻을 수 있습니다. ‘엔터프라이즈’공급 업체는 항상 미러링 된 ZIL을 권장합니다. 내 워크로드는 그렇게 중요하지 않습니다.
특정 제품의 경우, STEC은 Sun의 Fishworks 프로젝트 (Logzilla 및 Readzilla)를위한 최초의 SSD를 만들었으며 ZIL ( ZeusRAM $ 2500 / 8GB) 및 L2ARC ( Zeus IOPS $ 3k / 400GB) 용 장치를 모두 권장합니다. ZIL 특정 DDRdrive x1 ($ 2k / 4GB) 또는 L2ARC 용 대형 PCIe SSD 와 같은 PCIe 기반 SSD도 고려해야 합니다. 성능이 낮은 다른 (읽기 : 저렴한) 2.5 인치 SSD 장치는 특히 L2ARC에 대해 전체적으로 사용될 때 상당한 성능 향상을 제공 할 수 있습니다.