Ubuntu 전체 디스크 암호화 읽기/쓰기 작업 대기열 비활성화

Ubuntu 전체 디스크 암호화 읽기/쓰기 작업 대기열 비활성화

현재 Ubuntu(20.04.5 LTS)를 사용하여 여러 장치를 설정하려고 하는데 드라이브를 암호화해야 하므로 설치 중에 LUKS를 사용하고 있습니다. (이 과정에서 "새 Ubuntu 설치 시 LVM 사용" + "보안을 위해 새 Ubuntu 설치 암호화"를 선택했습니다.)

그러나 드라이브 암호화는 (예상대로) 훨씬 느리지만,이 기사no_read_workqueueno_write_workqueuedm-crypt I/O 작업 속도를 높이기 위해 두 개의 플래그 및 (마지막 단락)을 사용할 가능성에 대해 설명합니다 . 참고: 저는 NVMe SSD를 사용하고 있습니다. 패치는 Linux 커널 5.9 이상에 병합되었으며 5.14가 있으므로 사용할 수 있습니다. 이 기능을 기본적으로 활성화하려면 어떻게 해야 합니까?

/etc/crypttab플래그를 추가하여 파일을 변경했습니다 .

nvme0123abcdef-etc UUID=123abcdef-etc none luks,discard,no-write-workqueue,no-read-workqueue

이것은 속도를 전혀 바꾸지 않습니다.

기본 플래그 설정을 시도했습니다.

cryptsetup --perf-no_read_workqueue --perf-no_write_workqueue --persistent refresh root

그러면 오류가 발생합니다.--perf-no_read_workqueue: unknown option

cryptsetup luksDump /dev/sdaX | grep Flagsdmsetup table또한 ->("없음"이 표시됨) 또는 ->(이 표시됨 ) 을 사용하면 allow_discards플래그가 표시되지 않습니다.

참고: 정보를 얻기 위해 이 위키 페이지를 사용했습니다.https://wiki.archlinux.org/title/Dm-crypt/Specialties

답변1

나는 데비안 11에 대해서도 같은 생각을 가지고 있었습니다.

/etc/crypttab 수정 후 실행 필요

sudo update-initramfs -k all -u

시작 구성을 업데이트합니다. 이 명령이 경고를 표시하면 시스템이 이러한 옵션을 지원하지 않는 것입니다. 이는 Debian 11의 경우입니다(그러나 런타임 변경은 지원됩니다).

다음을 사용하여 현재 플래그를 확인할 수 있습니다.

sudo dmsetup table nvme0n1p3_crypt --showkeys
0 3515592704 crypt aes-xts-plain64 :64:logon:cryptsetup:asdf-asdf-asdf-asdf 0 259:3 32768 1 allow_discards

다음 명령을 사용하여 런타임에 옵션을 변경할 수 있습니다.

sudo cryptsetup refresh  nvme0n1p3_crypt --perf-no_read_workqueue  --perf-no_write_workqueue --allow-discards

안타깝게도 디스크 암호화 키를 다시 입력해야 하므로 자동화가 어려워집니다.

그러나 이러한 옵션에는 단점이 없는 것 같지 않습니다. 내 시스템(Ryzen 2700 + WD SN570 2TB)에서 순차 쓰기 성능은 25% 감소한 반면 임의 I/O 성능은 30% 증가했습니다.

답변2

문제는 cryptsetup가방이 너무 낡았기 때문일 가능성이 높습니다. 이러한 성능 플래그에 대한 지원은 버전 2.3.4에 추가되었습니다(참조:릴리즈 노트), Ubuntu 20.04에서는 버전 2.2.2만 사용할 수 있습니다(참조:우분투 패키지).

따라서 최선의 선택은 최신 배포판으로 업그레이드하는 것입니다.

관련 정보