파일 시스템에서 블록 장치가 물리적으로 주소 지정되는 방법

파일 시스템에서 블록 장치가 물리적으로 주소 지정되는 방법

이것에, 다음은 파일 시스템 주소 지정에 관한 것입니다.

파일 시스템은 물리적 미디어에서 블록이 어디에 배치되어야 하는지에 대해 신경 쓸 필요가 없습니다. 이는 장치 드라이버의 작업입니다.

이와 관련된 몇 가지 질문이 있습니다.

  1. inode의 일부인 포인터에 논리 블록 인덱스가 포함되어 있습니까, 아니면 실제 물리적 주소가 포함되어 있습니까?
  2. 전자인 경우 블록 인덱스와 실제 물리적 위치의 매핑은 어디에 저장됩니까?
  3. 물리적 주소 지정(예: SSD 장치)의 예가 있습니까?

답변1

inode의 일부인 포인터에 논리 블록 인덱스가 포함되어 있습니까, 아니면 실제 물리적 주소가 포함되어 있습니까?

파일 시스템을 포함하는 블록 장치의 시작 부분을 기준으로 하는 논리적입니다.

그렇다면 블록 인덱스와 실제 물리적 위치의 매핑은 어디에 저장되어 있습니까?

이 매핑은 여러 레이어에서 발생할 수 있습니다.

  • LVM을 사용하는 경우 논리 볼륨 장치의 블록 범위를 특정 물리 볼륨 블록 장치 + 오프셋에 매핑하는 매핑 테이블을 제공합니다.

  • 소프트웨어 RAID는 또한 일부(간단하고 체계적인) 방식으로 RAID 장치의 블록을 기본 블록 장치(사용된 경우)의 블록에 매핑합니다.

  • 파티셔닝 장치는 파티션 시작부터 디스크 시작까지의 거리와 동일한 논리 블록 번호에 단순 오프셋을 적용합니다.

  • 최신 SATA, SAS 및 NVMe는 모두 장치 시작 부분부터 번호가 매겨진 논리 블록을 기반으로 한 주소 지정을 사용하므로 디스크 자체만 실제 물리적 위치를 알 수 있습니다. HDD의 경우 기존의 실린더/헤드/섹터 물리적 주소 지정은 오래전에 사라졌습니다. 최신 HDD는 내부 실린더보다 외부 실린더에 더 많은 물리적 섹터가 있을 수 있으며 다른 문제가 발생할 수 있습니다. SSD의 경우 웨어 레벨링 테이블을 통해 논리적 블록 번호를 매핑하여 실제 물리적 블록 번호를 찾습니다.

각 레이어를 개별적으로 보면 상위 블록 번호를 '논리적', 하위 블록 번호를 '물리적'이라고 부르는 것이 일반적이지만, 여러 레이어가 겹겹이 쌓이면 실제로는 실제 저장 장치 자체에 도달할 때까지는 일종의 "논리"가 필요합니다.

물리적 주소 지정(예: SSD 장치)의 예가 있습니까?

실제 SSD의 펌웨어를 개발/디버깅/해킹하거나 SSD에서 납땜이 제거된 느슨한 플래시 칩에 대한 포렌식 조사를 수행하지 않는 한 실제 물리적 주소 지정에 액세스할 가능성은 거의 없습니다. 독점적인 공급업체별 솔루션이 포함될 수 있습니다(번역: 각 제조업체는 자신이 가장 좋다고 생각하는 것을 수행할 수 있으며 정확한 구현은 영업 비밀로 간주될 수 있습니다). 상황은 최신 하드 드라이브와 유사합니다.

커널의 관점에서 볼 때 모든 최신 저장 장치는 고정된 크기의 긴 논리 블록 행일 뿐이며 장치 시작 부분의 블록 #0부터 시작하여 간단한 증분 블록 번호를 사용하여 번호가 지정됩니다. 실제 저장 장치 외에는 실제 물리적 주소 지정이 실용적이지 않습니다.

관련 정보