암호화된 SSD에서 TRIM

암호화된 SSD에서 TRIM

wiki.ubuntuusers.de암호화된 SSD에서 TRIM을 사용하려면 최소한 cryptsetup 1.4 및 커널 3.1이 필요하다고 말합니다. 파티션을 생성하고 암호화를 설정할 때 이것이 필요합니까, 아니면 나중에 충분히 업그레이드할 때 필요합니까?

답변1

Ubuntu 11.10 Oneiric은 cryptsetup 1.4와 함께 제공되지 않지만 Precise는 포함되어 있습니다. Oneiric에서 cryptsetup을 업그레이드할 수 있는지 여부는 알 수 없습니다. Precise는 한 달 후에 출시될 예정이므로 암호화된 파티션이 있는 TRIM을 고려하기 전에 해당 출시를 기다릴 수도 있습니다. 커널은 나중에 언제든지 업그레이드할 수 있습니다.

에서http://code.google.com/p/cryptsetup/wiki/Cryptsetup140:

폐기/TRIM 요청을 허용하는 --allow-discards 옵션을 지원합니다.

커널 3.1부터 dm-crypt 장치는 선택적으로(기본값은 아님) 블록 삭제(TRIM) 명령을 지원합니다.

이 작업을 활성화하려면 --allow-discards를 사용하여 활성화할 때마다 수동으로 활성화해야 합니다.

cryptsetup luksOpen --allow-discards /dev/sdb test_disk

경고: 여러 가지 보안 결과가 있으므로 최소한 읽어 보십시오. http://asalor.blogspot.com/2011/08/trim-dm-crypt-problems.html 활성화하기 전에.

보시다시피, 링크된 블로그에서 언급한 것처럼 보안이 저하되어 이 기능은 기본적으로 활성화되어 있지 않습니다. 따라서 커널 3.0(Precise와 함께 제공되는 것)에서 cryptsetup을 사용하는 경우 암호화된 파티션에 TRIM 지원이 제공되지 않습니다. 3.1 이상으로 업그레이드한 후에도 활성화하지 않으면 여전히 사용할 수 없습니다.

그렇게 하려면 /etc/crypttab설치 후에 편집하고(설치 중에 가능한지 확실하지 않음) discard옵션을 추가해야 합니다. 또한보십시오크립트탭(5).

답변2

Ubuntu 12.04 또는 cryptsetup 1.4+ 및 Kernel 3.1+가 있는 Debian에서 LUKS 암호화 파티션으로 TRIM을 활성화하는 방법에 대한 단계별 가이드를 게시했습니다. (askubuntu 지침에 따라 필요하다고 판단되는 경우 여기에 자유롭게 복사하세요.)

예제 설정

원천

단일 드라이브로 SSD가 있는 노트북, LVM 스왑 파티션이 있는 단일 ext4 LVM 루트 파티션에 Linux가 설치되어 있으며 둘 다 LUKS 암호화 논리 파티션을 통해.

SSD:/dev/sda

$ sudo fdisk -l /dev/sda
/dev/sda1               # boot partition (83) (unencrypted, ext4)
/dev/sda2               # extended partition
/dev/sda5               # logical partition (83) with LUKS encryption

$ ls /dev/mapper
/dev/mapper/sda5_crypt         # encrypted LUKS device in physical /dev/sda5 partition
/dev/mapper/volumegroup-root   # root partition sda5_crypt
/dev/mapper/volumegroup-swap   # swap partition sda5_crypt

어떻게

  1. 모든 데이터를 백업하십시오. 파일 시스템을 엉망으로 만들고 있으므로 백업을 하는 것이 좋습니다.

  2. 필요한 커널 및 cryptsetup 버전(예: Ubuntu 12.04의 경우 3.1 및 1.4, 하지만 이 글을 쓰는 시점에서는 12.04가 아직 베타 버전이므로 주의하세요)이 있는지 확인하세요.

  3. /etc/fstab 파일에 있는 암호화된 LVM 볼륨의 파일 시스템 옵션에 폐기 매개변수를 추가합니다. 이렇게 하면 LVM 파티션의 파일 시스템이 TRIM 사용을 인식하게 됩니다.

    /dev/mapper/volumegroup-root    /    ext4    discard,noatime,nodiratime,errors=remount-ro    0    1
    
  4. 하지만 마지막 단계로는 충분하지 않습니다. LUKS가 TRIM 사용을 인식하지 못하는 한 보안상의 이유로 LVM 파티션의 파일 시스템에서 들어오는 모든 TRIM 작업을 효과적으로 차단합니다. LUKS가 LVM 파티션의 폐기 동작을 허용하도록 하려면 /etc/crypttab의 cryptdevice 옵션에 폐기 매개변수를 추가합니다.

    sda5_crypt UUID=e364d03f-[...]6cd7e none luks,discard
    
  5. initramfs를 다시 빌드하세요. crypttab 옵션은 여기에 저장되어 부팅 시 사용됩니다.

    sudo update-initramfs -c -k all
    
  6. 재부팅합니다.

  7. 이제 TRIM이 활성화되어 있는지 확인하세요.

    sudo dmsetup table /dev/mapper/sda5_crypt --showkeys
    
  8. 마지막 명령이 다음과 같은 결과( 1 allow_discards at끝)를 표시하면 모든 준비가 완료된 것입니다.

    0  77656056  crypt  aes-cbc-essiv:sha256  abc[...]c7a0c  0  8:5  2056  1  allow_discards
    

관련 정보