ecryptfs의 쓰기 성능 저하


15

나는 ecryptfs와 dm-crypt로 약간의 벤치마킹을했고 흥미로운 결과를 얻었습니다. 다음은 Btrfs 파일 시스템으로 수행되었으며 데이터 동기화를 강제 dd로 수행하는 conv=fdatasync옵션으로 ~ 700MB 파일을 램 디스크로 복사하거나 램 디스크에서 복사하는 데 사용 되었습니다 . 각 테스트 전에 디스크 캐시가 지워졌습니다.

No encryption:
 read - 165MB/s
 write - 120MB/s
ecryptfs:
 read - 125MB/s
 write - 15MB/s
dm-crypt:
 read - 150MB/s
 write - 115MB/s
dm-crypt + ecryptfs:
 read - 120MB/s
 write - 15MB/s

이제 암호화가 원시 파일 시스템보다 느리다는 것을 알고 있지만 ecryptfs의 쓰기 성능이 크게 떨어질 것으로 예상하지 못했습니다. 데이터 동기화를 강제한다는 사실이이 테스트를 비현실적으로 만들어 줍니까? 또는 쓰기가 더 빨리 작동하도록 ecryptfs에 전달할 수있는 옵션이 있습니까?

ecryptfs에서 파일 이름 암호화를 사용하고 있었지만 그 외에는 모든 것이 기본값으로 설정되었습니다.


벤치마킹이 어려울 수 있으며 때로는 동기 쓰기를 강제 할 때 테스트에서 예기치 않은 한계에 도달하는 경우가 있습니다. 나는 ecryptfs의 내부 작업에 익숙하지 않지만 쓰기 증폭 문제를 배제해야합니다. ecryptfs는 어떤 블록 크기를 사용하며 dd에 무엇을 지정 했습니까? ecryptfs가 한 번에 16kb를 암호화하고 더 작은 블록을 작성하는 경우 각 동기화는 읽기로 인해 블록을 페치 한 다음 데이터를 변경 한 다음 암호화하고 마지막으로 기록합니다. 그것은 이와 같은 성능 수치를 설명 할 수 있습니다.
ketil

답변:


2

reads : 에 dd대한 맨 페이지 는 데이터를 물리적으로 "한 번만"쓴다 ( "X 블록 또는 바이트마다 플러시를 강제하지 않고 마지막에 단일 플러시"라고 읽음). 테스트에 사용 하는 경우 가장 정확한 결과를 얻는 것이 가장 좋습니다. 반대로, 특정 플래그를 사용하지 않으면 결과가 현실적이지 않게 됩니다. 데이터를 복사하는 것이므로 암호화 자체의 시간을 놓치게 될 것입니다 .fdatasyncphysically write output file data before finishingdddd

그럼에도 불구하고, 나는 또한 당신의 결과와 관련하여 어떤 일이 일어나고 있다고 생각했지만, 거의 동일한 것을 보여주는 이 기사 를 발견 했습니다 : ecryptfs는 고통 스럽습니다. 그리고 테스트 ( 단일 파일 복사)는 ecryptfs의 가장 좋은 시나리오입니다!

ecryptfs는 모든 일반 텍스트 버전에 대해 암호화 된 파일 (메타 데이터가 포함 된 사용자 지정 헤더 포함)을 작성하므로 파일이 많지 않으면 성능이 크게 저하됩니다.

그러나 ecryptfs에는 장점이 있습니다. 암호화를 잃지 않고 바로 암호화 된 파일을 보낼 수 있습니다. 데이터만큼 큰 파일 만 복사하기 때문에 ( 암호화 된 데이터를 백업한다고 가정 할 때) 백업 속도가 빨라집니다 (수정 된 파일 만 복사하는 것처럼 증분 파일이면 더 빠릅니다).

반면에 dm-crypt는 더 빠를 수 있지만 암호화를 그대로 유지하려면 전체 컨테이너 (전체 파일 시스템)를 보내야합니다. 또한 백업은 전체 컨테이너로 구성되며 대부분의 경우 증분 백업을 수행 할 수 없습니다.

암호화 된 데이터를 보관하기 위해 두 가지 방법 (동일한 도구는 아님)을 사용했지만 여전히 사용하고 있습니다. 파일 기반 (ecryptfs)은 PC 간의 보관함과 같은 온라인 호스팅 서비스를 통해 동기화하기가 더 쉽지만 시간이 꽤 느립니다. 변경을 수행하고 기초 파일 시스템에 문제가 발생했습니다 (파일 시스템에 대한 제한과 관련된 파일 및 파일을 작성할 수 있다고 가정합니다). 블록 장치 암호화를 선호합니다. 간단한 파티션으로 취급하므로 한계와 문제가 그렇게 나쁘지 않습니다. 유일한 단점은 컨테이너를 복사하는 것인데 시간이 오래 걸릴 수 있습니다.

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