smartd에 데이터베이스가 필요한 이유는 무엇입니까?

smartd에 데이터베이스가 필요한 이유는 무엇입니까?

smartd에 데이터베이스가 필요합니까?

또는

smartctl에 데이터베이스가 필요합니까?

스마트 도구 github이 데이터베이스를 지속적으로 업데이트하는 것을 봅니다.

https://github.com/smartmontools/smartmontools/labels/drivedb

제가 이해한 바에 따르면 smartd는 모든 디스크를 검사하는데 데이터베이스가 왜 필요한가요? smartd/smartctl에서 데이터베이스를 사용하는 기능/목적은 무엇입니까?

답변1

smartmontools운전자에게 보여 주네요여기. 그 목적은 기본 설정(데이터베이스에 정의되어 있음)이 불충분한 드라이브에 대한 추가 명령줄 플래그를 제공하거나 드라이브에 대한 경고를 제공하는 것입니다 smartctl.smartd

많은 드라이브에는 특정 카운터 또는 특정 방식으로 해석되어야 하는 카운터가 있습니다.기본값이 아닌 첫 번째 항목데이터베이스에서.

일부 드라이브에는 사용자에게 알려야 하는 중요한 기능 결함이 있습니다.m4 SSD 및 카운터 오류.

USB 드라이브에는 지정된 액세스 방법이 필요합니다.여기서부터 시작하는 항목.

데이터베이스는 그렇지 않습니다.필요, 정의된 모든 설정은 명령줄 매개변수를 사용하여 지정할 수 있으므로 각 사용자는 이러한 명령줄 매개변수를 직접 결정할 필요가 없습니다.

답변2

lspci 및 lsusb와 마찬가지로 이러한 도구는 짧은 숫자(일반적으로 16진수)를 허용하고 이를 문자열에 매핑합니다. 모니터 EDID는 또한 이러한 짧은 숫자가 많이 포함된 매우 짧은 이진 블록을 보낸 다음 일종의 일치 테이블을 사용하여 문자열로 변환됩니다.

https://pci-ids.ucw.cz/v2.2/pci.ids- 이것은 lspci 및 기타 도구에서 공급업체 4 16진수 ID와 제품 4 16진수 ID를 문자열 값으로 변환하는 데 사용되는 물리적 일치 목록입니다. 해당 일치표에 항목이 없으면 제품과 공급업체 ID만 표시됩니다.

Smartctl은 훨씬 더 복잡하지만 많은 수의 필드에는 문자열 값을 생성하기 위해 이러한 일치 테이블이 필요하며 도구에서 읽은 임의의 문자 및 숫자일 뿐인 다른 유형의 값 및 범위도 필요합니다.

드라이브가 smartctl에 보낼 수 있는 블록의 크기가 얼마나 큰지는 모르지만 다른 nix 디스크 유틸리티가 일반적으로 액세스하는 것보다 더 많은 블록이 매핑되어 있다는 것을 알고 있습니다. 이는 적어도 부분적으로 일치하는 테이블, 일부 바이너리로 인해 발생하는 것이 거의 확실합니다. 특정 문자열 값에 매핑된 값입니다.

하드웨어가 실제로 시스템에 알려주는 내용은 이러한 도구가 사람이 읽을 수 있는 문자열 형식으로 최종 사용자에게 보고하는 내용과 매우 다릅니다. 나는 이러한 도구 중 하나 이상을 만들었고 이러한 고유 식별자와 때로는 문자열 값을 고도로 압축하기 위해 매우 영리한 방법으로 얼마나 많은 이진 비트가 사용되었는지 기억이 나지 않습니다. 그러나 이것이 바로 전송된 원시 데이터가 포함된 일치 테이블이 필요한 이유입니다. 장치별 2진수 또는 16진수 데이터.

어쨌든 대략적으로 말하면. 나는 smartctl이 이 작업을 정확히 어떻게 수행하는지 모르지만 일치 테이블(일명 데이터베이스)을 사용하는 이러한 도구 중 하나를 볼 때마다 이것이 이유입니다.

예를 들어, 드라이브는 Samsung Electronics Corporation이라는 문자열을 보낼 가능성이 낮지만 CE00h를 16진수 4자 ID로 보낸 다음 Samsung의 문자열 ID에 매핑할 가능성이 높습니다. 물론 smartctl은 그 이상을 수행할 수 있지만 이는 대략적인 아이디어일 뿐입니다. 드라이브가 인텔리전스를 통해 전송하는 다른 값은 그 자체로는 아무 의미도 없으며 해당 값이 무엇을 참조하는지 알기 전에 특정 공급업체, 때로는 특정 제품에 매핑되어야 합니다. 단위는 일정하지 않으며 공급업체와 운전자에 따라 달라집니다.

또한 CPU는 단일 16진수 확장 제품군, 확장 모델, 제품군, 모델 및 단계 ID가 포함된 작은 청크를 내보냅니다. 그런 다음 이것이 무엇인지 확인하기 위해 CPU 공급업체 및 기타 알려진 정보에 다시 매핑되어야 합니다.

일치 테이블이 잘못되었거나 불완전한 경우 smartctl이 특정 필드에 대해 잘못된 값을 표시할 수 있다는 점은 주목할 가치가 있습니다. 예를 들어, 나는 이것을 여러 번 보았고 때로는 이러한 것들은 NDA 하에서만 공개됩니다. 또는 전혀 그렇지 않으므로 smartctl은 올바른 일치 값을 찾으려고 노력해야 하지만 항상 성공하는 것은 아닙니다. 즉, 이 도구는 순수한 원시 데이터를 표시하는 것이 아니라 해석되고 처리된 데이터를 표시합니다.

관련 정보