Linux의 ZFS RAID 및 LUKS 암호화


24

3x 2TB 7200rpm 드라이브 세트를 Linux에서 LUKS 암호화 Z-RAID 풀 (NAS 솔루션 용)로 설정할 계획입니다.

당면한 문제에 대한 나의 이해는 이것을 달성하는 유일한 방법은 luksFormat모든 물리적 장치에 대한 것이며 잠금 해제 된 LUKS 컨테이너에서 zpool을 조립한다는 것입니다.

나는 이것에 대해 다음과 같은 우려를 가지고 있습니다.

  • 쓰기 성능을 크게 저해하지 않습니까? 이 설정에서 LUKS는 Z-RAID를 "인식"하지 않기 때문에 중복 데이터가 여러 번 암호화됩니다. LUKS-on-mdadm 솔루션에서 데이터는 한 번 암호화되며 디스크에 여러 번 기록됩니다. 내 CPU는 Intel AES-NI를 지원합니다.

  • 물리적 장치가 아닌 장치 매퍼 LUKS 컨테이너에서 작동 할 때 ZFS가 디스크 오류를 인식합니까? 중복 제거 및 기타 ZFS 기능은 어떻습니까?


4
나는 그것을하지 않을 것입니다. 실패하기 쉬운 소리.
ewwhite

3
ZFS이므로 @MadHatter입니다. 당신은 그렇게 할 수 없습니다.
Michael Hampton

1
좋아 (당신의 말을 받아 들일 것입니다). 하나의 큰 파일이 들어있는 하나의 큰 ZFS를 확인, 루프백 마운트 및 암호화 .
MadHatter는 Monica April

1
@eewhite ZFS 커널 모듈이 암호화 자체를 구현할 때까지 Linux에서 ZFS로 암호화를 사용하는 옵션을 알아내는 것입니다. 그러나 나는 동의해야한다 – LUKS와 ZFS는 잘 어울리지 않는 것처럼 보인다.
MasterM

4
절대 큰 파일을 만들어 ZFS로 루프백하지 마십시오. CoW에 작업 공간이 부족한 경우 풀을 사용할 수없는 속도로 조이십시오.
Vinícius Ferrão

답변:


27

내가 관리하는 서버 중 하나가 설명하는 구성 유형을 실행합니다. LUKS 암호화 RAIDZ 풀이있는 6 개의 1TB 하드 드라이브가 있습니다. 또한 LUKS 암호화 ZFS 미러에는 2 개의 3TB 하드 드라이브가 있으며 매주 교체되어 오프 사이트로 가져갑니다. 서버는 약 3 년 동안이 구성을 사용해 왔으며 문제가 없었습니다.

Linux에서 암호화 된 ZFS가 필요한 경우이 설정을 권장합니다. Linux에서 ZFS가 아닌 ZFS-Fuse를 사용하고 있습니다. 그러나 Linux의 ZFS 이외의 결과와 관련이 없다면 아마도 사용중인 설정보다 성능이 더 좋을 것입니다.

이 설정에서 LUKS는 Z-RAID를 "인식"하지 않기 때문에 중복 데이터가 여러 번 암호화됩니다. LUKS-on-mdadm 솔루션에서 데이터는 한 번 암호화되며 디스크에 여러 번 기록됩니다.

LUKS는 RAID를 인식하지 못합니다. 블록 장치 위에 앉아 있다는 것만 알고 있습니다. mdadm을 사용하여 RAID 장치를 작성한 다음 luksformat암호화 된 데이터를 LUKS가 아닌 기본 저장 장치에 복제하는 것은 mdadm입니다.

LUKS FAQ의 질문 2.8은 암호화가 RAID의 맨 위에 있어야 하는지 아니면 다른 방법으로해야하는지에 대해 설명합니다 . 다음 다이어그램을 제공합니다.

Filesystem     <- top
|
Encryption
|
RAID
|
Raw partitions
|
Raw disks      <- bottom

ZFS는 RAID 및 파일 시스템 기능을 결합하므로 솔루션은 다음과 같아야합니다.

RAID-Z and ZFS Filesystem  <-top
|
Encryption
|
Raw partitions (optional)
|
Raw disks                  <- bottom

ZFS는 파티션이 아닌 원시 블록 스토리지를 사용할 것으로 예상하므로 원시 파티션을 옵션으로 나열했습니다. 파티션을 사용하여 zpool을 만들 수는 있지만 쓸모없는 수준의 관리가 추가되므로 권장하지 않으며 파티션 블록 정렬에 대한 오프셋을 계산할 때 고려해야합니다.

쓰기 성능을 크게 저해하지 않습니까? [...] 내 CPU는 Intel AES-NI를 지원합니다.

AES-NI 드라이버가 지원하는 암호화 방법을 선택하는 한 성능 문제는 없습니다. cryptsetup 1.6.0 이상이 있으면 cryptsetup benchmark어떤 알고리즘을 실행 하여 최상의 성능을 제공하는지 확인할 수 있습니다 .

LUKS의 권장 옵션에 대한이 질문 도 유용 할 수 있습니다.

하드웨어 암호화가 지원되면 파티션 오정렬로 인해 성능 문제가 발생할 가능성이 높습니다.

Linux의 ZFS 명령속성을 추가ashiftzfs 하여 하드 드라이브의 섹터 크기를 지정할 수 있습니다. 링크 된 FAQ에 따르면 ashift=124K 블록 크기의 드라이브를 사용하고 있다고 알려줍니다.

LUKS FAQ는 LUKS 파티션의 정렬이 1MB임을 나타냅니다. 질문 6.12 및 6.13은 이에 대해 자세히 설명하고 LUKS 파티션 헤더를 더 크게 만드는 방법에 대한 조언을 제공합니다. 그러나 ZFS 파일 시스템이 4K 경계에 만들어 질만큼 충분히 크게 만들 수 있는지는 확실하지 않습니다. 이것이 당신이 해결해야 할 문제라면 이것이 어떻게 당신에게 잘 맞는지 듣고 싶습니다. 2TB 드라이브를 사용하고 있으므로이 문제가 발생하지 않을 수 있습니다.

물리적 장치가 아닌 장치 매퍼 LUKS 컨테이너에서 작동 할 때 ZFS가 디스크 오류를 인식합니까?

ZFS는 문제없이 디스크를 읽고 쓸 수있는 한 디스크 오류를 인식합니다. ZFS는 블록 스토리지가 필요하며 해당 스토리지의 특성과 출처를 신경 쓰지 않거나 알지 못합니다. 발생하는 모든 읽기, 쓰기 또는 체크섬 오류 만 추적합니다. 기본 저장 장치의 상태를 모니터링하는 것은 사용자의 책임입니다.

ZFS 설명서에는 문제 해결에 관한 섹션 이 있습니다. 손상된 장치 교체 또는 수리 섹션 에는 장애 시나리오 중에 발생할 수있는 사항과 해결 방법이 설명되어 있습니다. 여기서 ZFS가없는 장치와 동일한 작업을 수행합니다. syslog에서 SCSI 드라이버, HBA 또는 HD 컨트롤러 및 / 또는 SMART 모니터링 소프트웨어의 메시지를 확인한 다음 적절하게 조치하십시오.

중복 제거 및 기타 ZFS 기능은 어떻습니까?

기본 ZFS 저장 장치의 암호화 여부에 관계없이 모든 ZFS 기능이 동일하게 작동합니다.

개요

  1. LUKS 암호화 장치의 ZFS가 제대로 작동합니다.
  2. 하드웨어 암호화가있는 경우 하드웨어에서 지원하는 암호화 방법을 사용하는 한 성능이 저하되지 않습니다. cryptsetup benchmark하드웨어에서 가장 잘 작동하는 것을 보는 데 사용 하십시오.
  3. ZFS는 단일 엔티티로 결합 된 RAID 및 파일 시스템으로 생각하십시오. 스토리지 스택에 맞는 위치는 위의 ASCII 다이어그램을 참조하십시오.
  4. ZFS 파일 시스템이 사용하는 각 LUKS 암호화 블록 장치의 잠금을 해제해야합니다.
  5. 지금과 같은 방식으로 스토리지 하드웨어의 상태를 모니터링하십시오.
  6. 4K 블록이있는 드라이브를 사용하는 경우 파일 시스템의 블록 정렬에 유의하십시오. 허용 가능한 속도에 필요한 정렬을 얻기 위해 luksformat 옵션 또는 기타 설정을 실험해야 할 수도 있습니다.

3
+1 예제 를 사용하여이 작업 수행하는 방법을 찾으십시오 .
ewwhite

1
1 MiB는 이미 4KiB로 균등하게 나눌 수 있으므로 원시 디스크를 사용한 경우 ashift = 20 (제 경력에 필요하지 않을 것)까지 정확하게 정렬해야합니다.
Michael Hampton

1
한 가지 더 : OP가 기대하는 바에 따라 귀하의 답변을 표명하고 있습니다. 잘 작성되어 있으므로 제 답변보다 확실합니다.
Vinícius Ferrão

3
@ ViníciusFerrão : FreeBSD와 FreeNAS는 ZFS 암호화에 동일한 접근 방식을 사용하고 있습니다. geli는 암호화 된 장치를 만드는 데 사용되며 일반 텍스트 데이터는 ZFS가 사용하는 두 번째 장치를 통해 제공됩니다. doc.freenas.org/index.php/Volumes#Encryption 의 두 번째 글 머리 기호를 참조하십시오 .
불가사리

2
@CMCDragonkai L2ARC 및 SLOG 장치에는 풀의 비트 및 데이터 조각이 포함되므로 기밀성을 제공하기 위해 저장소를 암호화하는 경우 (암호화 저장소를 처음 사용하는 경우가 많음) 거의 확실하게 원합니다. 유사하게 암호화 된 L2ARC 및 SLOG 장치를 실행하십시오.
CVn

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.