설치 프로그램을 배포하면 SSD가 손상되나요?

설치 프로그램을 배포하면 SSD가 손상되나요?

인텔에 따르면, 솔리드 스테이트 드라이브에 Linux 파일 시스템을 생성할 때 블록을 버리지 않는 것이 중요합니다. 문서에는 기본 동작이 mke2fs블록을 폐기하지 않는 것이라고 명시되어 있습니다(2015년 3월). 그러나 현재 mke2fs매뉴얼 페이지에는 다음과 같이 명시되어 있습니다.

버리다:mkfs 시 블록 삭제를 시도해 보세요(초기 블록 삭제는 솔리드 스테이트 장치 및 희소/씬 프로비저닝된 스토리지에 유용합니다). 장치가 데이터를 0으로 만드는 폐기를 알리는 경우(폐기 후와 쓰기 전의 모든 후속 읽기는 0을 반환함) 아직 0이 되지 않은 모든 inode 테이블은 0으로 표시됩니다. 이렇게 하면 파일 시스템 초기화 속도가 크게 향상됩니다.이것이 기본 설정입니다.

SSD를 수동으로 포맷할 때 명령줄 -E nodiscard에 추가하면 포맷 중 블록 폐기를 방지할 수 있지만 mke2fs배포판 설치 프로그램이 자동이므로 그렇게 할 수 없습니다. 이것이 걱정할만한 가치가 있습니까?

답변1

링크된 문서는 특정 목적(Linux 커널 NVME 드라이버 개발 및 벤치마킹)을 갖고 있는 것으로 보이며 최종 사용자를 위한 일반적인 권장 사항을 나타내지 않습니다.

mkfs가 실행될 때 ext4가 삭제되지 않는다고 주장합니다.

핵심 파일 시스템:

  • ext4 - 기본 확장 옵션은 파일 시스템 생성 시 블록을 삭제하지 않고 유지하며 일부 정보에서 알 수 있듯이 "삭제" 확장 옵션을 추가하지 않는 것입니다.
  • xfs – mkfs.xfs의 경우 블록이 삭제되지 않도록 –K 옵션을 추가합니다.

...하지만 그렇습니다. 이것이 가장 먼저 하는 일입니다.

# mkfs.ext4 /dev/loop0
mke2fs 1.46.4 (18-Aug-2021)
Discarding device blocks: done
Creating filesystem [...]

따라서 모든 데이터를 버리고 싶지 않다면 적극적으로 차단해야 합니다. xfs 사용을 mkfs.xfs -K권장하고 ext4 사용을 권장합니다 mkfs.ext4 -E nodiscard.

# mkfs.ext4 -E nodiscard /dev/loop0
mke2fs 1.46.4 (18-Aug-2021)
Creating filesystem [...]

기본 동작이 변경되었는지 모르겠습니다. 내가 아는 한, 그것은 항상 기본값이었습니다. -E 폐기 이전에는 nodiscard 옵션이 등장했고, 데이터를 보존하기 위한 -K가 있었고(기본적으로 비활성화됨) 폐기를 활성화하는 해당 옵션이 없었습니다(기본적으로 비활성화됨).

매뉴얼 페이지에서는 nodiscard가 기본값이라고 주장한 적이 있지만 커밋 기록 어디에서도 해당 내용이 코드에 반영되지 않았으므로 문서 오류로 추적되었을 수도 있습니다.

mke2fs: -K 옵션을 더 이상 사용하지 않고 폐기/nodiscard를 도입합니다.

(실제로 이번 커밋에서는 폐기와 nodiscard를 모두 기본값으로 선언합니다.)

nodiscard가 기본값이고 일주일 후까지 fstrim이 가능하지 않다면 좋을 것입니다. Linux는 데이터를 약간 빠르게 삭제합니다. 잘못된 장치를 포맷하고 즉시 오류를 발견하더라도 어떤 종류의 데이터 복구도 수행하기에는 너무 늦습니다.

답변2

초기 단계: 별로 구매하지 않습니다.

이 문서는 오래되었기 때문에 더 이상 정확하지 않을 수 있습니다.

게다가 이것도 틀릴 수도 있다. 역사적으로 이에 대해 많은 오해가 있었고, 가이드를 작성한 사람들이 반드시 Linux 커널에 기여한 같은 회사의 사람들은 아니었습니다. 상황은 참으로 복잡합니다. 하나의 SSD를 최적화하는 것이 다른 SSD에는 최악일 수 있으며 칩셋 제조업체는 컨트롤러에 선호도를 전달할 방법을 찾지 못했습니다.
그러나 NVMe 드롭 기능은 오랫동안 표준화되어 왔으며(인텔이 참여했으며 실제로 지배적임) 그것이 의도된 용도이므로 "좋지" 않다면 조금 놀랄 것입니다.

대체로 폐기를 사용하면 SSD에 더 많은 정보를 제공할 수 있습니다. 이 정보를 처리하는 방법은 SSD에 따라 다릅니다. 따라서 간과했을 수 있는 사항을 더 많이 알고 있다면 상황은 더욱 악화됩니다. 이는 실제로 드라이버 문제가 아니라 SSD 컨트롤러 펌웨어 문제입니다. Intel은 우수한 Linux 데이터 센터 지원에 큰 관심을 갖고 있으며 오래 전에 이 문제를 해결해 왔을 것입니다.

관련 정보