差分
このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
pc:test_multiple_nvme_namespaces [2023-05-05 23:06] Decomo 作成 |
pc:test_multiple_nvme_namespaces [2023-06-08 23:28] (現在) Decomo |
||
---|---|---|---|
行 1: | 行 1: | ||
====== 複数のNVMe namespaceを試す ====== | ====== 複数のNVMe namespaceを試す ====== | ||
- | NVMeにはNamespace(名前空間)という機能がある。1つのNVMeデバイスを論理的に分割し、それぞれを独立したNVMeストレージのように扱う機能である。 | + | NVMeにはNamespace(名前空間)という機能がある。NVMeデバイスの記憶領域を論理的に分割し、それぞれを独立したNVMeストレージのように扱う機能である。 |
- | オプション機能なので、大半の、特にコンシューマ向けNVMe SSDでは非対応なのだが、 | + | 馴染みあるところだとパーティションのようなものだが、ファームウェアレイヤーでの分割となり、名前空間同士には明確な前後関係はなく、OSからは別のデバイスとして見えるのが大きな違い。ハードウェアRAIDの仮想ドライブ、ZFSのデータセットに近い。 |
+ | |||
+ | 名前空間を使うと以下の効能が見込めるとされる。 | ||
+ | |||
+ | * 名前空間ごとに異なる暗号鍵によるセキュリティの向上 | ||
+ | * オーバープロビジョニングによる書き込み性能、耐久性の向上 | ||
+ | * リカバリ領域などの書込み保護 | ||
+ | |||
+ | 名前空間はオプション機能なので、大半のNVMe SSD製品、特にコンシューマ向けは最大1つの名前空間しかサポートしてなかったりして残念ではあるが、使えれば色々遊べそうな機能だ。個人的には仮想と物理を行き来するような構成でディスク管理の簡単化への期待が高まる(弊宅ではPromoxVEと一部VMのRDM用パーティションが同じSSD上にあり、だいぶ面倒な運用となっている。名前空間でデバイスを割ることができれば、非常にシンプルになるハズ。) | ||
===== 試した環境 ===== | ===== 試した環境 ===== | ||
* ハードウェア | * ハードウェア | ||
- | * Lenovo | + | * Lenovo |
- | * SAMSUNG PM9A3 (M.2) | + | * Supermicro X10SRL-F |
+ | * SAMSUNG PM9A3 (M.2/U.2) | ||
+ | * 最大32の名前空間に対応 | ||
* ソフトウェア | * ソフトウェア | ||
* Ubuntu Server 22.04.2 LTS | * Ubuntu Server 22.04.2 LTS | ||
+ | |||
+ | FreeBSDerのわたくしといたしましては、FreeBSDの'' | ||
===== 現状の確認 ===== | ===== 現状の確認 ===== | ||
行 34: | 行 46: | ||
既存の名前空間から使用可能なLBA形式を取得しておく。 | 既存の名前空間から使用可能なLBA形式を取得しておく。 | ||
- | というのも、後ほど名前空間作成時に使うのだけれども、このリストを名前空間がない状態で取得する術が無さそうなのだ。いざとなれば、てきとーなLBA形式で名前空間作成後、希望の形式で再フォーマットしてやれば済む話だが、二度手間は避けたいので。 | + | というのも、後ほど名前空間作成時に使うのだけれども、名前空間がない状態でこのリストを取得する術が無さそうなのだ。いざとなれば、てきとーなLBA形式で名前空間作成後、希望の形式で再フォーマットしてやれば済む話だが、二度手間は避けたいので。 |
NVMeコントローラの一覧: | NVMeコントローラの一覧: | ||
行 43: | 行 55: | ||
</ | </ | ||
- | NVMeストレージでは複数のコントローラを持つことができ、名前空間はコントローラに割り当てる形となっている。この値も後ほど使うのでメモっておく。 | + | NVMeデバイスでは複数のコントローラを持つことができ、名前空間はコントローラに割り当てる形となっている。この値も後ほど使うのでメモっておく。 |
NVMeコントローラの詳細: | NVMeコントローラの詳細: | ||
行 92: | 行 104: | ||
| '' | | '' | ||
| '' | | '' | ||
- | | '' | + | | '' |
作成した名前空間はコントローラにアタッチして初めて使えるようになる。 | 作成した名前空間はコントローラにアタッチして初めて使えるようになる。 | ||
行 124: | 行 136: | ||
</ | </ | ||
- | それぞれのS.M.A.R.T.はこんな感じ。 | + | それぞれのS.M.A.R.T.はこんな感じ。デバイスが対応していれば、名前空間ごとに固有のS.M.A.R.T.を持つこともできるようだ。 |
^ nvme0n1 | ^ nvme0n1 | ||
|< | |< | ||
行 282: | 行 294: | ||
==== Windows ==== | ==== Windows ==== | ||
- | WindowsではLUN違いのデバイスとして見えるようだ。インストールは未確認だが、認識のされ方的に任意の名前空間にインストール可能であろうと思われる。 | + | WindowsではLUN違いのデバイスとして見えるようだ。 |
{{ : | {{ : | ||
+ | インストーラーでも別ドライブとして認識されており、インストールできると思われる。 | ||
- | UEFIのブートエントリは下記のようになっていた。 | + | {{ : |
+ | |||
+ | ==== Windows + USB ==== | ||
+ | |||
+ | WindowsとNVMe→USB変換器経由で複数名前空間を持つSSDをつないだ時の認識のされ方。 | ||
+ | |||
+ | ^ 変換チップ | ||
+ | | ASM2362 | 最初の名前空間のみドライブとして認識される | | ||
+ | | JMS583 | 全く認識されない。名前空間が1つのみのSSDなら問題なく認識されるので、複数名前空間があるとダメっぽい。 | ||
==== UEFI (BIOS) ==== | ==== UEFI (BIOS) ==== | ||
UEFIからの見え方は、恐らくマザボごとにまちまちである可能性が高い。NVMe対応UEFIは必須として、そのUEFIが持つNVMeドライバの対応状況次第だと思う。 | UEFIからの見え方は、恐らくマザボごとにまちまちである可能性が高い。NVMe対応UEFIは必須として、そのUEFIが持つNVMeドライバの対応状況次第だと思う。 | ||
+ | |||
+ | === ThinkServer TS150 === | ||
比較的初期のNVMe対応品であると思われるTS150では、名前空間IDが1にあるESPを優先的にブートデバイスとして扱うようだ(あるいは、UEFIの最初のブートエントリが優先されてるのかも)。なお、NSID 1にはUbuntu Server、NSID 2にはFreeBSDをインストールした状態である。 | 比較的初期のNVMe対応品であると思われるTS150では、名前空間IDが1にあるESPを優先的にブートデバイスとして扱うようだ(あるいは、UEFIの最初のブートエントリが優先されてるのかも)。なお、NSID 1にはUbuntu Server、NSID 2にはFreeBSDをインストールした状態である。 | ||
行 297: | 行 320: | ||
{{ : | {{ : | ||
- | UEFIのブートエントリはこんな感じ。 | + | UEFIのブートエントリは以下のような感じで、名前空間2にインストールしたFreeBSDも、正しく登録されているようだ。 |
< | < | ||
行 313: | 行 336: | ||
</ | </ | ||
- | 名前空間2のFreeBSDのブートローダーも正しく登録はされている。 | + | ここで'' |
+ | |||
+ | 一方で、'' | ||
+ | |||
+ | いまいち釈然としない挙動だが、とりあえず名前空間が分かれていてもブート自体は可能なことは分った。恒常的に起動OSを切り替えたいなら、[[http:// | ||
+ | |||
+ | === Supermicro X10SRL-F === | ||
+ | |||
+ | SupermicroのマザボX10SRL-Fでは、正しいESPさえあれば名前空間問わずブートデバイスとして検出してくれる模様。 | ||
+ | |||
+ | {{ : | ||
- | ここで'' | + | どちらも「UEFI OS」となっていて分かりづらいが、上が名前空間1のESPにあるFreeBSDのブートローダ、下が名前空間2のESPにあるProxmox VEのブートローダである。ブートオーダーはPVEが優先となっており、問題なくPVEが起動する。さすがSupermicro。 |
- | また、'' | + | ===== 参考サイト ===== |
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * 複数Namespaceに対応したSSDリスト | ||
+ | * [[https:// | ||
+ | * [[https:// |