스토리지 기술 장비란 무엇입니까?

스토리지 기술 장비란 무엇입니까?

문서와 웹페이지에는 이에 대해 명확하지 않습니다. 리눅스 기술인가요? 저장장치인가요?

기타 질문:

  • Linux 기술이라면 어떤 유형의 스토리지에 적합합니까?
  • "마모 특성"이란 무엇입니까?
  • MTD 파티션 정의에 부팅 매개변수가 있는 이유는 무엇입니까?

답변1

대부분의 일반 Linux(및 더 일반적으로는 Unix) 시스템은 블록 장치라는 스토리지 추상화를 사용합니다. 블록 장치는 일련의 블록(섹터)입니다. 개별 블록을 읽거나 쓸 수 있습니다. 연속된 블록을 읽거나 쓰는 것이 무작위로 읽고 쓰는 것보다 빠르다고 가정하고, 동일한 위치에 반복적으로 쓸 수 있다고 가정하며, 개별 섹터는 인근의 다른 섹터를 방해하지 않고 안전하게 쓸 수 있다고 가정합니다.

이것은 디스크 드라이브에 매우 적합한 모델입니다. 이것은 플래시 메모리에 적합한 모델이 아닙니다.

다시 쓰기 전에 플래시를 지워야 합니다. 삭제 회로는 상대적으로 복잡하므로 삭제 블록(특히 NAND 플래시)은 일반적으로 쓰기 블록보다 훨씬 큽니다. 각 지우기 블록은 실패하기 전까지 제한된 횟수만큼만 지울 수 있습니다. 따라서 서비스 수명을 극대화하려면 장비의 마모와 파손의 균형을 맞추는 메커니즘이 필요합니다.

두 가지 방법이 있습니다. 한 가지 접근 방식은 표준 블록 장치 인터페이스를 제공하고 논리 블록을 다른 물리적 블록에 다시 매핑하여 마모 평준화를 처리하는 컨트롤러를 만드는 것입니다. 어떤 경우에는 "콜드"(거의 수정되지 않음)가 됩니다. 데이터는 마모가 적은 블록에서 마모가 심한 블록으로 이동합니다. 블록. 즉, 일반 파일 시스템은 모두 사용할 수 있지만 리매핑 시스템은 올바르게 구현하기가 어렵습니다. 특히, 정전을 올바르게 처리하는 것은 매우 어려울 수 있습니다. SSD, USB 스틱, SD 카드 등은 모두 이 방법을 사용합니다.

플래시가 디스크 드라이브인 것처럼 가장하는 대신 플래시 칩을 직접적으로 나타내는 새로운 장치 유형을 만드는 것이 또 다른 접근 방식입니다. 그런 다음 파일 시스템(또는 ubifs의 경우 ubi 레이어)이 웨어 레벨링을 담당합니다. Linux는 이러한 장치를 mtd 장치라고 부릅니다. 하드 드라이브와 마찬가지로 각 장치는 여러 파티션으로 나눌 수 있습니다(IIRC 파티션은 일반적으로 관련 플래시 장치의 파티션 테이블이 아닌 시스템 펌웨어에 의해 정의됨). 이러한 접근 방식은 임베디드 장치, 스마트폰 및 스마트폰과 유사한 태블릿에서 흔히 볼 수 있습니다.

답변2

언제나 그렇듯이 가장 좋은 설명은 다음과 같습니다.위키피디아에서.

기본적으로 이는 임베디드 시스템의 온보드 플래시 장치와 운영 체제에서 볼 수 있는 블록 장치 사이의 추상화 계층(Linux 장치 드라이버)입니다.

관련 정보