Nvme ad alanları nelerdir? Nasıl çalışırlar?


18

Son zamanlarda yerleşik nvme SSD'leri olan cihazlarda yüklü Linux'u desteklemeye başladım. Aygıt dosyalarının sürücü numarasını ve bölüm numarasını tanımlayan bir sayının ötesinde fazladan bir sayı olduğunu fark ettim. IDE / SATA / SCSI sürücüler normalde yalnızca bir sürücü harfine ve bölüm numarasına sahiptir.

Örneğin: / dev / nvme0n1p2

N1 parçasının ne olduğunu merak ettim ve biraz arama yaptıktan sonra, bir nvme 'ad alanını' tanımlayana benziyor. Bunun tanımları biraz belirsizdi: "Bir NVMe ad alanı, mantıksal bloklara biçimlendirilebilen bir miktar kalıcı bellektir (NVM)."

Bu, bir MBR veya GPT bölümleme tablosunda değil, donanım denetleyici düzeyinde tanımlanan bir bölüm gibi mi davranıyor? Bir ad alanı birden fazla fiziksel nvme SSD'sine yayılabilir mi? Örneğin, birden çok SSD'den depolamayı RAID 0'a benzer tek bir mantıksal ad alanına birleştiren bir ad alanı oluşturabilir misiniz?

Bölüm tablolarını veya LVM'yi veya birden çok birimi (ZFS, Btrfs, vb. Gibi) yönetebilen bir dosya sistemini kullanarak elde edemediğiniz bir NVME ad alanı ile ne yapardınız?

Ayrıca, neden ad alanı numaralandırması 0 yerine 1'de başlıyor gibi görünüyor? Bu, NVME'nin ad alanı numaralarını düşük düzeyde nasıl izlediği ile ilgili bir şey mi (örneğin, bölümler de 0'da değil, 1'de başlar), çünkü bölüm numaraları için standart bu şekilde ayarlanmıştır, bu yüzden Linux çekirdeği sadece bölüm numarası ne olursa olsun kullanır diskte saklanan - sanırım nvme aynı şekilde çalışır?)

Yanıtlar:


17

NVM Express ve ilgili standartlarda denetleyiciler, bir veya daha fazla ad alanına bölünmüş depolama alanına erişim sağlar. Ad alanları, bunlar için yer olduğu sürece (veya temel alınan depolama ince provizyonu destekler) ve birden çok denetleyici, paylaşılan bir ad alanına erişim sağlayabilirse, denetleyici aracılığıyla oluşturulabilir ve silinebilir . Temel depolama biriminin nasıl düzenlendiği, anlayabildiğim kadarıyla standart tarafından belirtilmez.

Bununla birlikte, tipik NVMe SSD her kendi depolama ve PCI Express bağlantı noktasına bağlı kontrol sağlar çünkü bir araya getirilmiş, ve erişim noktası ad alanları üzerinde kontrol cihazıdır edilemez - böylece isim olamaz grubu birden fazla kontrol (birden fazla kontrol can paylaşılan bir ad alanına erişim sağlar). Ad alanlarını, kurumsal depolamada (SAN'lar vb.) Kullanılan SCSI LUN'lara benzer bir şey olarak düşünmek daha iyidir.

Ad alanı numaralandırma 1'den başlar, çünkü denetleyici başına ad alanı tanımlayıcıları bu şekilde çalışır. Ad alanları ayrıca daha uzun, global olarak benzersiz tanımlayıcılara sahiptir.

Ad alanları, aşağıdakiler de nvmedahil olmak üzere düşük düzeyli NVMe özellikleri için destek sağlayan komut kullanılarak değiştirilebilir :

  • düşük düzeyli bir biçim gerçekleştiren ve çeşitli özelliklerin kullanılmasına izin veren biçimlendirme (güvenli silme, LBA biçim seçimi ...);
  • denetleyicilerin bir ad alanına eklenmesine veya bu alandan ayrılmasına izin veren (destekliyorsa ve ad alanı izin veriyorsa) ekleme ve çıkarma.

Takmak ve sökmek dizüstü veya masaüstü NVMe sürücülerinde karşılaşacağınız bir şey değildir. Bunu, geçmişte iSCSI SAN'ların yerini alan Dell EMC tarafından satılanlar gibi NVMe depolama bölmeleriyle kullanırsınız.

Ayrıntılar için NVM Express standartlarına (okunması nispeten kolaydır) ve iyi bir giriş için bu NVM Express eğitim sunumuna bakın.


Linux 'nvme' komutunu fark ettim, ad alanlarının silinmesi / oluşturulması için destek ek olarak, ek / ayırma ve bir ad alanını biçimlendirme kavramları da sağlar (bu, bir dosya sisteminin yazma alanına ad işlemine format işleminden ayrı görünüyor). Bu operasyonların ne olduğu hakkında bilgi verebilir misiniz?
JeffFromOhio

3
Güncellenmiş cevabımı görün.
Stephen Kitt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.