

高岡智則
年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)
iommuとは?初心者でも分かる基礎ガイド
iommu とは Input-Output Memory Management Unit の略で、パソコンの中で周辺機器がメモリを安全に使えるように管理する仕組みです。普段は見えませんが、デバイスが直接メモリへアクセスする場面、つまり DMA アクセスの安全性と隔離を実現します。
DMA とは、デバイスが CPU を介さず直接メモリにデータを書き込んだり、読み取ったりする仕組みのことです。グラフィックカードやネットワークカード、ストレージなどは高速化のため DMA を使います。ところが DMA は正しく管理されないと、別のデータに触れてしまったり、OS の安全を崩す危険がありました。
ここが IOMMU の役割です。IOMMU はデバイスごとの DMA アクセスを仮想的に分離し、メモリのどの部分へアクセスできるかを制御します。これにより、他のプロセスのデータや OS のカーネル領域へ侵入することを防ぎます。
仮想化の世界では特に IOMMU の意味が大きくなります。仮想マシン(VM)を作るとき、外部デバイスを VM に直接割り当てたい場合があります。これを PCI パススルーと呼びますが、このとき IOMMU がデバイスの DMA を仮想マシンごとに切り替え・隔離してくれるのが重要です。
実装例としては VT-d(Intel の IOMMU 機能)や AMD-Vi(AMD の実装名)があります。Linux では VFIO というドライバ群を使って「ホスト側のデバイスを仮想マシンに安全に渡す」ことができます。VFIO は IOMMU の機能を前提として動くため、BIOS/UEFI の設定で IOMMU を有効にすることが必要になることが多いです。
BIOS や UEFI の設定を変えるときは、セキュリティとパフォーマンスのバランスを意識してください。IOMMU を有効にするとデバイスの安全性が上がりますが、設定やドライバの組み合わせ次第で一部のハードが正しく動作しなくなることがあります。設定を変える前には、使っているマザーボードのマニュアルや OS のドキュメントを参照すると安全です。
以下は IOMMU の要点をまとめた小さな表です。
| 説明 | |
|---|---|
| IOMMU | DMA アクセスの安全な変換とメモリ保護を行う機構 |
| VT-d / AMD-Vi | IOMMU の実装名。Intel/AMD の機能 |
| VFIO | 仮想マシンへデバイスを割り当てる Linux のドライバ群 |
| PCI パススルー | 仮想マシンに直接デバイスを割り当てる技術 |
最後に覚えておくべきことは IOMMU は万能薬ではなく、適切な設定と組み合わせが大事 という点です。使い方次第でセキュリティが高まりますが、動作問題の原因にもなり得ます。初心者の方は、まずは IOMMU を有効化して基本的な仮想化の仕組みを学び、徐々に PCI パススルーの設定を試してみると良いでしょう。
iommuの同意語
- IOMMU
- I/O Memory Management Unitの略。CPUと周辺機器が共用するメモリ空間のアドレス変換と保護を担当するハードウェア機能です。DMAによる直接的なメモリアクセスを安全に制御し、デバイスごとのアクセス権を設定します。
- I/O Memory Management Unit
- IOMMUの正式名称。IOデバイスのアドレス変換と保護を行う専用のハードウェアユニットです。
- Input-Output Memory Management Unit
- IOMMUの英語表現の別表記。意味は同じです。
- IO-MMU
- I/O Memory Management Unitの略称の一つ。IO-MMUと表記されることが多いです。
- I/O MMU
- I/O Memory Management Unitの別表記。表記揺れの一つで、同じ機能を指します。
- 入出力メモリ管理ユニット
- IOMMUの日本語表記の直訳。入出力デバイスのメモリアクセスを管理・保護する装置です。
iommuの対義語・反対語
- IOMMUなし
- IOMMU機能が搭載されていない状態。デバイスのI/Oはメモリ保護やアドレス変換を受けず、直接的なアクセスになる可能性が高い。
- IOMMU無効
- システムにはIOMMU機能があるが設定で無効化されており、通常のメモリ保護・アドレス変換が適用されない状態。
- DMAの直接アクセス
- デバイスがIOMMUを介さずに直接メモリへアクセスすること。保護や変換が適用されず、リスクが高まる可能性がある。
- アドレス変換なし
- IOMMUによる仮想アドレスから物理アドレスへの変換が行われない状態。結果としてアドレスの正当性検証が行われにくい。
- メモリ保護なし
- デバイスのメモリアクセスを護る保護機構が機能していない状態。セキュリティリスクが高まる可能性がある。
- ハードウェア保護なし
- IOMMUのようなハードウェアによる保護機構が機能していない状態。
- ソフトウェア保護のみ
- 保護をソフトウェア/OSレベルに依存し、ハードウェアのIOMMUによる保護が存在しない状態。
- 直接メモリアクセス
- IOデバイスがCPU介在なしで直接メモリへアクセスする設計。境界が明確でない場合がある。
- 物理アドレスの直接使用
- デバイスが仮想メモリ管理を介さず、物理アドレスを直接使用する状態。柔軟性と安全性が低下することがある。
iommuの共起語
- DMAR
- DMAリマッピング機能の略称。IOMMUの核となる機能で、デバイスがアクセスできるメモリ範囲を安全に変換・保護します。
- VT-d
- IntelのIOMMU技術。仮想マシンへデバイスを安全に割り当てるための仕組みです。
- AMD-Vi
- AMDのIOMMU機能。仮想化環境でのデバイス分離を実現します。
- PCIパススルー
- PCIeデバイスを仮想マシンに直接割り当てる方法。高速なI/Oが可能です。
- VFIO
- Linuxの仮想化デバイス割り当てフレームワーク。IOMMUを使いVMへデバイスを渡します。
- IOVA
- I/O仮想アドレス。IOMMUがデバイスとメモリ間で使う仮想的なアドレス空間です。
- IOMMUグルーピング
- デバイスをグループ分けして、他のデバイスと干渉を避ける設計思想。
- 割り込みリマッピング
- 割り込み通知を正しいVMへ渡すための変換・再割り当て機構。
- 割り込み MSI/MSI-X
- デバイスが使う割り込み方式。IOMMUと組み合わせて安全に処理します。
- DMAリマッピング
- DMAのアドレス変換・保護を実現する機能。DMARの要素です。
- IOメモリ管理ユニット
- IOMMUの正式名称。I/Oデバイスのメモリ管理を担当します。
- I/O仮想化
- I/Oデバイスを仮想マシンごとに分離して扱う考え方です。
- PCIeデバイス
- PCI Express規格のデバイス。IOMMUはこのデバイスの保護と割り当てを管理します。
- 仮想マシン
- VM。IOMMUはVM間のデバイス分離と保護を助けます。
- KVM
- Linux上の仮想化ソリューション。VFIOやIOMMUと組み合わせてデバイスパススルーを実現します。
- QEMU
- オープンソースの仮想化ソフト。IOMMUを使ったデバイスパススルーをサポートします。
- SR-IOV
- 1つの物理デバイスを複数の仮想デバイスとして分割する技術。IOMMUと組み合わせてセキュリティを保ちます。
- BIOS設定
- IOMMUを有効にするにはBIOS/UEFIでVT-d/AMD-Viを有効化します。
- intel_iommu
- IntelのIOMMUを有効化するためのカーネルパラメータ(例:intel_iommu=on)。
- amd_iommu
- AMDのIOMMUを有効化するためのカーネルパラメータ(例:amd_iommu=on)。
- iommu=on
- Linux起動時にIOMMUを有効化する基本パラメータ。
- iommu=pt
- IOMMUを通さず直接割り当てる設定の一つ。デバイスのパススルー時に使われます。
- GPUパススルー
- GPUを仮想マシンに直接割り当てること。高性能なグラフィックスI/Oを実現します。
- VGAパススルー
- 仮想マシンへGPUを割り当てるケースの一つ。画面出力をVMに直接渡します。
- PCIデバイスのバインド/アンバインド
- ホスト側でデバイスをVMに渡す前に、バインドやアンバインドを行います。
iommuの関連用語
- IOMMU
- 入出力メモリ管理ユニット。デバイスが使うメモリのアドレスを安全に変換・管理し、DMAの隔離と仮想化を実現するハードウェア機構です。
- DMAR
- IntelのDMAリマッピング機能の正式名称。IOMMUを実装するテクノロジーで、デバイスのDMAアクセスを保護・変換します。
- VT-d
- IntelのIOMMU機能の呼称。Directed I/O Virtualization の略で、PCIeデバイスのI/Oを仮想マシンへ安全に割り当てる技術です。
- AMD-Vi
- AMDのIOMMU機能の名称。I/O仮想化を実現し、デバイスの DMA を安全に制御します。
- IOVA(IO仮想アドレス)
- デバイスが参照する IO 仮想アドレス空間。IOMMU がこのアドレスを実際の物理アドレス(PA)へ翻訳します。
- PCIパススルー
- 仮想マシンへ物理 PCIe デバイスを直接割り当てること。IOMMUが安全な分離と動作を確保します。
- VFIO
- Linux の仮想 I/O フレームワーク。IOMMU を使ってデバイスを VM に安全に割り当てるためのドライバ群です。
- DMA
- Direct Memory Access。デバイスが CPU を介さず直接主記憶へ読み書きできる仕組みで、高速化と帯域の有効活用を実現します。
- DMAリマッピング
- IOMMU を用いてデバイスの DMA アドレスを別の物理メモリへ安全に再マッピングします。
- IOMMUグループ
- 同じ IOMMU グループに属する複数のデバイスは、同時に分離して使うことが難しくなる等の制約。VM への割り当て判断材料になります。
- BIOS/UEFIでIOMMUを有効化
- IOMMU を使うには BIOS/UEFI 設定で有効化する必要があります。起動時に対応デバイスを IOMMU で管理可能にします。
- IOMMUページテーブル
- IOVA と実物理アドレスの対応表を管理するテーブル。IO アドレスの翻訳に使われます。
- IOMMU障害
- デバイスが許可されていないアドレスへ DMA しようとした場合等に IOMMU がエラーを返す現象。ログに IOMMU fault と出ることがあります。
- SR-IOV
- PCIe デバイスを複数の仮想関数に分割して、複数の VM へ同時割り当てを可能にする技術。IOMMU と組み合わせて使用します。
- SMMU
- ARM 系の IOMMU。System MMU の略で、ARM デバイスの I/O 仮想化を実現します。
- VFIO-PCI
- VFIO の PCI デバイスサポート。PCI デバイスを仮想マシンへ安全に割り当てるためのモジュールです。
- PCIeデバイスの隔離
- IOMMU によりデバイスが他のメモリへ不正アクセスできないようにデバイスを分離します。
- 直接割り当て
- Direct Assignment の日本語表現。VM へデバイスを“直接”割り当てることを指します。



















