nvme 네임 스페이스 란 무엇입니까? 그들은 어떻게 작동합니까?


18

최근에 nvme ssds가 내장 된 장치에 설치된 Linux를 지원하기 시작했습니다. 장치 파일에 드라이브 번호와 파티션 번호를 식별하는 숫자 외에 추가 번호가 있음을 알았습니다. IDE / SATA / SCSI 드라이브에는 일반적으로 드라이브 문자와 파티션 번호 만 있습니다.

예를 들면 다음과 같습니다. / dev / nvme0n1p2

n1 부분이 무엇인지 궁금해하고 약간의 검색 후에 nvme 'namespace'를 식별하는 것처럼 보입니다. "NVMe 네임 스페이스는 논리 블록으로 포맷 될 수있는 비 휘발성 메모리 (NVM)의 양입니다."

따라서 이것은 MBR 또는 GPT 파티션 테이블이 아닌 하드웨어 컨트롤러 수준에서 정의 된 파티션처럼 작동합니까? 네임 스페이스가 여러 물리적 NVMe SSD에 걸쳐있을 수 있습니까? 예를 들어 RAID 0과 유사하게 여러 ssd의 스토리지를 단일 논리적 네임 스페이스로 풀링하는 네임 스페이스를 만들 수 있습니까?

파티션 테이블이나 LVM 또는 여러 볼륨 (ZFS, Btrfs 등)을 관리 할 수있는 파일 시스템을 사용하여 아직 달성 할 수없는 NVME 네임 스페이스로 무엇을 하시겠습니까?

또한 네임 스페이스 번호 매기기가 0 대신 1에서 시작하는 것처럼 보이는 이유는 무엇입니까? NVME가 네임 스페이스 번호를 낮은 수준으로 추적하는 방법과 관련이 있습니까 (예 : 파티션 번호 표준이 설정 되었기 때문에 파티션도 0이 아닌 1부터 시작합니다. 따라서 Linux 커널은 파티션 번호 만 사용합니다) 디스크에 저장되어 있습니다-nvme가 같은 방식으로 작동한다고 생각합니다.)

답변:


17

NVM Express 및 관련 표준에서 컨트롤러는 하나 이상의 네임 스페이스로 분할 된 스토리지에 액세스 할 수 있습니다. 네임 스페이스 는 공간이 있거나 (기본 스토리지가 씬 프로비저닝을 지원하는 경우) 컨트롤러 를 통해 생성 및 삭제 될 수 있으며 여러 컨트롤러가 공유 네임 스페이스에 대한 액세스를 제공 할 수 있습니다. 내가 말할 수있는 한 기본 스토리지가 구성되는 방식은 표준에 의해 지정되지 않았습니다.

그러나 일반적인 NVMe SSD는 각각 PCI Express 포트에 연결된 자체 스토리지 및 컨트롤러를 제공하므로 액세스 포인트가 네임 스페이스 위의 컨트롤러이므로 네임 스페이스가 여러 컨트롤러를 그룹화 할 수 없습니다 (여러 컨트롤러 공유 네임 스페이스에 대한 액세스를 제공합니다). 네임 스페이스는 엔터프라이즈 스토리지 (SAN 등)에서 사용되는 SCSI LUN과 유사한 것으로 생각하는 것이 좋습니다.

네임 스페이스 번호 매기기는 1부터 시작합니다. 이것이 컨트롤러 별 네임 스페이스 식별자의 작동 방식이기 때문입니다. 네임 스페이스에는 더 긴 전역 고유 식별자가 있습니다.

nvme명령을 사용하여 네임 스페이스를 조작 할 수 있습니다.이 명령은 다음을 포함한 저수준 NVMe 기능을 지원합니다.

  • 낮은 수준의 형식을 수행하고 다양한 기능을 사용할 수있는 서식 (보안 지우기, LBA 형식 선택 ...);
  • 연결 및 분리-컨트롤러를 네임 스페이스에 연결하거나 분리 할 수 ​​있습니다 (컨트롤러가 지원하고 네임 스페이스에서 허용하는 경우).

연결 및 분리는 랩탑 또는 데스크탑 NVMe 드라이브에서 볼 수있는 것이 아닙니다. Dell EMC에서 판매 한 것과 같은 NVMe 스토리지 베이와 함께 사용하면 과거의 iSCSI SAN을 대체 할 수 있습니다.

자세한 내용 은 NVM Express 표준 (상대적으로 읽기 쉬운) 과이 NVM Express 자습서 프레젠테이션 을 참조하십시오.


필자는 네임 스페이스 삭제 / 생성에 대한 지원 외에도 Linux 'nvme'명령을 사용하여 네임 스페이스에 대한 첨부 / 분리 및 네임 스페이스 서식 지정 개념을 제공합니다 (네임 스페이스에 쓰는 파일 시스템의 형식 작업과는 별도의 것으로 보입니다). 해당 작업에 대한 정보를 제공 할 수 있습니까?
JeffFromOhio 21:01에

3
업데이트 된 답변을 참조하십시오.
Stephen Kitt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.