Không gian tên nvme là gì? Họ làm việc như thế nào?


17

Gần đây tôi đã bắt đầu hỗ trợ Linux được cài đặt trên các thiết bị có ssds nvme tích hợp. Tôi nhận thấy các tập tin thiết bị có một số phụ, ngoài một số xác định số ổ đĩa và số phân vùng. Các ổ đĩa IDE / SATA / SCSI thường chỉ có ký tự ổ đĩa và số phân vùng.

Ví dụ: / dev / nvme0n1p2

Tôi đã tự hỏi phần n1 là gì và sau một chút tìm kiếm, có vẻ như nó xác định một 'không gian tên' nvme. Các định nghĩa cho nó khá mơ hồ: "Không gian tên NVMe là một lượng bộ nhớ không bay hơi (NVM) có thể được định dạng thành các khối logic."

Vì vậy, điều này có hoạt động giống như một phân vùng được xác định ở cấp bộ điều khiển phần cứng chứ không phải trong bảng phân vùng MBR hoặc GPT không? Một không gian tên có thể trải rộng trên nhiều nvme ssd vật lý không? Ví dụ: bạn có thể tạo một không gian tên gộp chung lưu trữ từ nhiều ssd thành một không gian tên logic duy nhất, tương tự như RAID 0 không?

Bạn sẽ làm gì với một không gian tên NVME mà bạn chưa thể đạt được bằng cách sử dụng các bảng phân vùng hoặc LVM hoặc một hệ thống tệp có thể quản lý nhiều khối lượng (như ZFS, Btrfs, v.v.)?

Ngoài ra, tại sao có vẻ như việc đánh số không gian tên bắt đầu từ 1 thay vì 0? Có phải đó chỉ là cách để NVME theo dõi các số không gian tên ở mức thấp (ví dụ: các phân vùng cũng bắt đầu từ 1, không phải 0, vì đó là cách tiêu chuẩn cho các số phân vùng được đặt, vì vậy nhân Linux chỉ sử dụng bất kỳ số phân vùng nào được lưu trữ trên đĩa là - tôi đoán nvme hoạt động theo cùng một cách?)

Câu trả lời:


17

Trong NVM Express và các tiêu chuẩn liên quan, bộ điều khiển cung cấp quyền truy cập vào bộ lưu trữ được chia thành một hoặc nhiều không gian tên. Không gian tên có thể được tạo và xóa thông qua bộ điều khiển, miễn là có chỗ cho chúng (hoặc bộ lưu trữ bên dưới hỗ trợ cung cấp mỏng) và nhiều bộ điều khiển có thể cung cấp quyền truy cập vào một không gian tên dùng chung. Làm thế nào để lưu trữ cơ bản được tổ chức không được chỉ định bởi tiêu chuẩn, theo như tôi có thể nói.

Tuy nhiên, SSD NVMe điển hình không thể được kết hợp, vì chúng đều cung cấp bộ lưu trữ và bộ điều khiển riêng gắn với cổng PCI Express và điểm truy cập là bộ điều khiển, phía trên không gian tên - do đó, một không gian tên không thể nhóm nhiều bộ điều khiển (nhiều bộ điều khiển có thể cung cấp quyền truy cập vào một không gian tên được chia sẻ). Tốt hơn nên nghĩ về không gian tên như một cái gì đó giống với SCUN LUN như được sử dụng trong lưu trữ doanh nghiệp (SAN, v.v.).

Đánh số không gian tên bắt đầu từ 1 vì đó là cách định danh không gian tên của mỗi bộ điều khiển hoạt động. Không gian tên cũng có số nhận dạng dài hơn, duy nhất trên toàn cầu.

Không gian tên có thể được thao tác bằng nvmelệnh, cung cấp hỗ trợ cho các tính năng NVMe cấp thấp bao gồm:

  • định dạng, thực hiện định dạng cấp thấp và cho phép các tính năng khác nhau được sử dụng (xóa an toàn, chọn định dạng LBA ...);
  • gắn và tách, cho phép các bộ điều khiển được gắn vào hoặc tách ra khỏi một không gian tên (nếu chúng hỗ trợ nó và không gian tên cho phép nó).

Đính kèm và tách ra không phải là thứ bạn sẽ bắt gặp trong các ổ NVMe trên máy tính xách tay hoặc máy tính để bàn. Bạn sẽ sử dụng nó với các khay lưu trữ NVMe, chẳng hạn như các sản phẩm được bán bởi Dell EMC, thay thế cho iSCSI SAN trước đây.

Xem các tiêu chuẩn NVM Express để biết chi tiết (chúng tương đối dễ đọc) và phần trình bày hướng dẫn NVM Express này để có phần giới thiệu tốt.


Tôi nhận thấy lệnh 'nvme' của Linux, ngoài việc hỗ trợ xóa / tạo không gian tên, còn cung cấp các khái niệm về đính kèm / tách và định dạng một không gian tên (dường như tách biệt với hoạt động định dạng của hệ thống tệp ghi vào không gian tên). Bạn có thể cung cấp bất kỳ thông tin về những hoạt động đó là gì?
JeffFromOhio

3
Xem câu trả lời cập nhật của tôi.
Stephen Kitt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.