dm-crypt는 다중 코어를 사용합니까? (멀티 코어 Pi 클론에 관심이 있음)

dm-crypt는 다중 코어를 사용합니까? (멀티 코어 Pi 클론에 관심이 있음)

단일 코어 Raspberry Pi를 멀티 코어 Banana Pi M3의 암호화된 디스크로 교체하는 것을 고려하고 있습니다. 현재 암호화 및 복호화 성능이 병목현상인데 dm-crypt 암호화 및 복호화가 멀티 코어를 활용할 수 있는지 알고 싶습니다.

답변1

예, 최근 커널에서는 dmcrypt 요청을 병렬화할 수 있습니다. 이것병렬화 패치에 통합되었습니다.4.0, 한 눈에 볼 수 있습니다( 4.0에는 dm-crypt.c포함되어 kthread.h있으며 이전 버전에는 포함되어 있지 않음). 이전 버전에는 dmcrypt 요청을 위한 작업 대기열이 있었기 때문에 여러 블록을 병렬로 암호화하거나 해독할 수 없었습니다(내가 아는 한 다른 장치에서도 가능).

그러나 병렬화가 항상 승리하는 것은 아닙니다. 요청을 다른 CPU로 전달하고 결과를 수집하는 데 시간이 좀 걸리므로 병렬 요청이 충분하고 한 번에 단일 청크를 기다리지 않는 경우에만 승리합니다. 일반적으로 서로 다른 파일에 액세스하는 여러 응용 프로그램이 있으면 승리하지만 하나의 대용량 파일을 처리할 때는 그다지 큰 승리를 거두지 못할 것입니다(조금 잃을 수도 있습니다).

더 나은 암호화 성능을 원한다면 사실상 64비트 CPU인 AES 가속 기능을 갖춘 ARMv8 프로세서 기반 제품을 선택하세요. 하드웨어 암호화 가속은 최상의 시나리오에서 병렬화의 영향을 훨씬 뛰어넘는 실질적인 차이를 가져오며 CPU 시간이 병목 현상을 일으키는 한 모든 작업 부하에 도움이 됩니다. 모든 ARMv8 기반 CPU에 하드웨어 암호화 가속 기능이 있는 것은 아닙니다(암호 내보내기/가져오기 규정을 피하기 위해 생략되는 경우도 있음). 그러나 하드웨어 암호화 없이도 64비트 모드에서 실행하면 상당한 속도 향상을 얻을 수 있습니다.

Pi 3에는 암호화 확장 기능이 없는 것으로 나타났습니다. Banana Pi M64가 귀하에게 적합할 수 있는 이유는 다음과 같습니다.암호화 확장 기능이 있습니다(매우 유사한 SoC 이름으로 인해 혼란스럽지 않은 경우). Pi M64의 SATA 하위 시스템은 USB 2(예: M3) 위에 있지만 기본 SATA 컨트롤러가 있는 버전만큼 빠르지 않으므로 I/O가 성공하면 Raspberry Pi 3도 마찬가지로 좋을 수 있습니다. 어쨌든 병목 현상이 발생합니다. 암호화는 CPU를 포화시키지 않습니다.

관련 정보