'allow-discards'및 'root_trim'Linux 매개 변수는 정확히 무엇을 수행합니까?


10

온라인으로 많은 SSD 관련 지침에 따르면 GRUB_CMDLINE_LINUX에 allow- discardsroot_trim = yes 를 추가해야합니다 . 나는 당신이 그렇게 해야하는지, 즉 그 매개 변수가 정확히 무엇을 해야하는지 를 말하는 것을 찾지 못했습니다 . 이것에 대한 문서는 어디에 있으며 그 두 매개 변수의 목적에 대해 무엇을 말합니까?

에 따르면 으로 cryptsetup 1.4.0 릴리스 노트 ,

커널 3.1부터 dm-crypt 장치는 선택적으로 (기본적으로는 아님) TRIM (블록 삭제) 명령을 지원합니다. 이 작업을 활성화하려면 --allow-discards를 사용하여 활성화 할 때마다 수동으로 활성화해야합니다.

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

그러나 GRUB_CMDLINE_LINUX를 통해 커널로 전달 될 때 동일합니까?

편집 : Kernel.org의 커널 매개 변수 목록 에는 (현재는 2013 년 1 월) 이러한 옵션 중 하나가 없습니다.


아마 webupd8.org/2013/01/enable-trim-on-ssd-solid-state-drives.html을 살펴보십시오. 설명하지는 않지만 빠른 절차를 ...
alci

1
내가 말했듯이, net은 설명없이 지침으로 가득합니다. 절차가 아니라 설명을 따릅니다.
Jani Uusitalo

답변:


6

내 이해에서 부팅 매개 변수 root_trim=yes는 젠투마다 다릅니다. 그 안에 genkernel매개 변수를 찾고 --allow-discardscryptsetup으로 옵션 을 설정하는 스크립트가 있습니다 ( git repository 참조 ). 또한 우분투 또는 데비안 사용자에 대한 많은 보고서를 발견했는데 root_trim매개 변수 없이 작동한다고 말했습니다 . 또한 Ubuntus update-initramfs스크립트 에서 줄을 찾지 못했습니다 .

전부 그래서이 없습니다 에는 부트 매개 변수,하지만 더 많은 매개 변수 cryptsetup. 설명서는 cryptsetup (8)--allow-discards 맨 페이지에서 찾을 수 있습니다 .

--allow-discards
장치에 대한 삭제 (TRIM) 요청 사용을 허용합니다. 이 옵션은에만 관련이 생성 , luksOpen 명령 또는 loopaesOpen .

경고 :이 옵션을 활성화하기 전에 특정 보안 위험을 신중하게 평가하십시오. 예를 들어, 폐기 된 블록을 나중에 장치에서 쉽게 찾을 수있는 경우 암호화 된 장치에서 삭제를 허용하면 암호문 장치 (파일 시스템 유형, 사용 된 공간 등)에 대한 정보가 유출 될 수 있습니다.

커널 버전 3.1 이상이 필요합니다. 이전 버전의 경우 옵션이 무시됩니다.

TRIM & dm-crypt 의이 블로그를 기반으로하는 TRIM은 상위 계층 (예 : 파일 시스템)이 더 이상 사용되지 않는 섹터 (더 이상 유효한 데이터를 포함하지 않음)를 장치에 알리고 장치가 해당 데이터 내용을 유지할 필요가없는 작업입니다. .

Linux 용어에서는이 작업을 폐기라고합니다. SCSI 세계에서는이를 UNMAP 명령이라고합니다.

삭제 작업은 두 가지 용도로 사용할 수 있습니다. 씬 프로비저닝 (데이터 영역을 할당 풀로 반환 할 수 있음을 알려줍니다) 및 SSD 작업 최적화.

내부 아키텍처는 섹터보다 큰 블록을 사용하고 쓰기 작업을 수행하기 전에 블록을 지워야하므로 폐기는 SSD 최적화에 가장 유용합니다. 파일 시스템이 데이터 조각화를 최소화하고 디스크 수명이 증가하는 방식으로 블록을보다 효과적으로 구성 할 수 있기 때문에 데이터를 유지할 필요가없는 섹터에 대한 정보는 매우 유용합니다.


따라서 파일 시스템이 중단되지 않으면 어떤 옵션도 필요하지 않습니까? 두 가지 옵션을 모두 사용하면 하나의 명령이 작동하는 이유는 무엇입니까?
Jani Uusitalo

업데이트 된 답변에서 커널 매개 변수와 mount / devicemapper 옵션의 관계를 지적 해 주셔서 감사합니다. 이번에는 +1 :)
gertvdijk

이 답변은보기 시작했습니다. 또한 dm-crypt의 현재 문서 에서 allow_discards를 발견했습니다 . 모든 것은 커널 매개 변수가 아니라 dm-crypt device-mapper 대상에 대한 옵션을 의미합니다. 나는 아직도 리눅스 명령 줄에 전달할 수 있는지 알아 내려고 노력 중이다. 그것은 모든 명령이 설명되어 있습니다. 그렇지 않으면 아마도 잘못된 정보 일 것입니다.
Jani Uusitalo

1
@JaniUusitalo (글로벌) 커널 매개 변수로 만드는 것은 실제로 의미가 없습니다. 1) 실제로 시스템 전체가 아닌이 파일 시스템 / 장치 별을 지정하고 싶습니다 .2) mount / fstab 옵션을 사용하면 이미 부팅 할 때 3) initramfs가 /읽기 / 쓰기로 마운트하기 전에 이 기능이 필요하지 않습니다.
gertvdijk

4
allow-discards의 커널 매개 변수는 Archism 일 수 있습니다. 분명히 Arch에서는 GRUB에 "cryptdevice = / dev / mapper / root : root : allow-discards" 를 사용하여 암호화 된 루트를 알립니다 . 이것은 Ubuntu 사용자가 선택하는 것으로 아치의 Wiki가 Ubuntu Wiki의 EncryptedFilesystems에서 "최고의 참조"로 언급 되기 때문일 수 있습니다 .
Jani Uusitalo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.