English中文

ドキュメント · 1.0

構成:デバイスパススルーとハードウェア

この章では 構成 メニューの 3 つのページを説明します。PCI パススルー(デバイス全体を 1 台の仮想マシンに渡す)、SR-IOV(LAN ポートや内蔵 GPU を複数の仮想ポートに分けて複数の仮想マシンに割り当てる)、ハードウェア(このマシンの構成部品と各部品の健康状態)です。ストレージとネットワークのページはストレージとネットワークを参照してください。

注意:パススルーの設定を変更するには、ホストの書き込み権限(管理者トークン)が必要です。読み取り専用アカウントは表示のみです。

1. パススルーとは

  • PCI パススルー:デバイス全体(NVMe、SATA/SAS コントローラー、LAN ポート、グラフィックスカード、USB コントローラーなど)を 1 台の仮想マシンに渡します。仮想マシンの中ではデバイス本来のドライバが使われ、ホストはそれに触れなくなります。NAS(コントローラーをディスクごと渡す)や、ネイティブ性能が必要なグラフィックスカードや NIC に向いています。
  • SR-IOV:対応する LAN ポート(と一部の内蔵 GPU)は、複数の VF(仮想ポート)に分割できます。各 VF を 1 台の仮想マシンに割り当て、物理ポート(PF)はホストのものとして残ります。
  • keelOS はデバイス自体(ベンダー ID、デバイス ID、シリアル番号、ファンクション番号)でデバイスを識別し、スロットでは識別しません。スロットを変えても見つかり、システムディスクを渡してしまうこともありません。ホストが使用中のデバイス(起動ディスクのあるコントローラー、ストレージプールのディスク、管理ポートなど)は確保できません。

1 つのデバイスは、同時に 1 台の実行中の仮想マシンしか使えません。同じデバイスを複数の仮想マシンの設定に書くことはできますが、先に起動した 1 台が使い、ほかの仮想マシンはその間は起動できません。

2. PCI パススルーページ

構成 → PCI パススルー を開きます。

ページ最上部には IOMMU(VT-d) の状態(有効、無効、または「まだパススルーに使われたデバイスがありません」)が表示されます。IOMMU がないとパススルーはできません。BIOS で VT-d(AMD では IOMMU)を有効にしてください。ハードウェア要件を参照してください。続く 2 行は 今回の起動で確保 と 次の起動/reload で確保 です。両者が異なる場合は「keel.json が変更されました:次回の root reload または起動で反映されます」と表示されます。

デバイス表は PCI ファンクションごとに 1 行で、アドレス、デバイス、ドライバ / 状態、ホストの使用、ゲスト(どの仮想マシンが使用中か、設定しているか)、分離 の列があります。既定ではチップセットとシステムデバイス、VF は非表示です。チップセットとシステムデバイスも表示、VF も表示 にチェックを入れると表示されます。

ドライバ / 状態 の意味:

  • ホスト:ドライバ名:ホストのドライバが使用中で、確保できます。ホストが認識しない NIC やストレージコントローラーには 非対応(ホストにドライバなし)、VM にパススルー可 と表示されます。ホストでは使えませんが、デバイス全体を仮想マシンに渡せます。
  • 確保済み(keelppt、起動時から):起動時からパススルー用に確保されており、ホストのドライバは触れません。
  • パススルー(ppt):すでにパススルーに渡されています。
  • 確保:次の起動または reload で反映、ホストに返却:次の起動または reload で反映:設定は保存されましたが、まだ反映されていません。

ホストの使用 の欄には、そのデバイスを確保できない理由が表示されます。たとえば、ホストのアドレス、スイッチのアップリンク、ブリッジのメンバー、ブートパーティション、ストレージプール、VF が有効、ホストの画面などです。

分離 の欄は次の注意を示します。同じカードの複数のポートや、ACS のない同じ PCIe ブリッジの後ろにあるデバイスは、IOMMU 上で互いに分離されていません。Linux VFIO のルールでは同じグループとして扱われます。同じ仮想マシンにまとめて渡すか、すべてホストに残してください。keel は注意するだけで、強制はしません。

2.1 デバイスを確保する

  1. デバイスの行の 確保 をクリックします。
  2. {デバイス} をパススルー用に確保 ダイアログで 名前(仮想マシンの設定でこのデバイスを参照するときに使います。既定ではデバイスから自動で付きます)と メモ を入力します。
  3. すぐに反映 にチェックを入れると、今すぐデバイスをパススルーに渡し、ホストのドライバはすぐに手放します。そのため、その後ろにあるディスクはどれも開かれていない必要があります(keel が確認します)。チェックしない場合は、次回の root reload または起動のときに引き継ぎます。
  4. 保存 をクリックします。

設定は keel.json とブートパーティションに書き込まれます。keelOS の root reload(アップグレードや下位層の再起動)とファームウェア経由の再起動のどちらでも、この設定に従って引き継ぎます。

注意:ホストの画面が接続されているグラフィックス(内蔵 GPU)を仮想マシンに渡すと、ホスト自身のモニターにはホストの画面が表示されなくなります。ホスト全体を再起動するまで戻りません。Web 画面と ssh は通常どおり使えます。内蔵 GPU については§5を参照してください。

2.2 ホストに返す

ホストに返す をクリックすると、{デバイス} をホストに返す ダイアログが開きます。仮想マシンの設定にこのデバイスが書かれている場合は、先にその仮想マシンの編集ページで外してください。すぐに反映 にチェックを入れると、ホストのドライバがすぐに引き継ぎ直します。NVMe、AHCI、USB コントローラーなど keel がドライバを直接指定できる種類が対象で、ほかの種類は次回の起動または reload を待ちます。

2.3 デバイスを仮想マシンに追加する

  1. guest に追加… をクリックし、どの guest に追加しますか? を選びます。
  2. ページがその仮想マシンの編集ページに移動します。デバイスはすでに デバイス の PCI デバイス の欄に追加されています。保存すると、仮想マシンの次回のコールド起動時に有効になります。

仮想マシンの編集ページの デバイス → PCI デバイス で、確保済みのデバイスを選んで 追加 をクリックすることもできます。まだ確保したデバイスがない場合は、そこに「パススルー用に確保したデバイスがありません」と表示され、このページへのリンクが付きます。

2.4 パススルーとホストのアップグレード・再起動

ホストが root reload(アップグレードや keelOS の下位層の再起動)を行うとき、デバイス全体をパススルーしている仮想マシンは一時停止してから再開され、中のプログラムは再起動されません。VF を使う仮想マシンは、既定ではシャットダウンして起動し直されます(仮想マシンごとに カスタム の ホストのリロード時 で変更できます)。仮想マシン管理を参照してください。NAS の仮想マシンは reload 中、外部向けの共有が 20 秒余り止まりますが、クライアントの再送で乗り切れます。

3. SR-IOV ページ

構成 → SR-IOV を開きます。ホストのドライバが物理ポート(PF)を管理し、keel が仮想ポート(VF)を作って仮想マシンにパススルーします。各 VF の MAC アドレスは固定です。SR-IOV に対応したデバイスがない場合、ページには「このホストには SR-IOV に対応したデバイスがありません」と表示されます。

物理ポートごとに 1 行あり、ポート、デバイス、リンク、用途(ホストがそのポートを何に使っているか)、VF:作成済み N 個 / 最大 M 個 が表示されます。VF を設定… をクリックして個数を変更します。展開すると、各 VF の MAC、VLAN、ゲスト、ネットワーク を確認できます。

VF を設定…(ダイアログ {ポート} の VF 数):

  1. 個数を入力します。0 はそのポートのすべての VF を削除する意味です。仮想マシンの設定にこれらの VF が書かれている間は削除できません。
  2. 保存 をクリックします。keel はすぐに iovctl でそのポートの VF を作り直します。そのポートの VF を使っている仮想マシンがない状態にしておく必要があります。
  3. ホスト自身もそのポートを使っている場合(そのアドレスや、スイッチのアップリンク)、作り直しにより、ホストはそのポートで約 30 秒ネットワークが切れます。keel が先に確認します。ポートのリンクが再ネゴシエートされる間、スイッチの STP により約 30 秒通信できなくなることもあります。
  4. 一部のポートで "Failed to add VF" が出たことがある場合、実行中に VF 数を変更するとホストが panic するおそれがあります。その場合、新しい個数は保存されるだけで、ファームウェア経由でホストを再起動して初めて有効になります。keel が今すぐ再起動するかを尋ねます(実行中の仮想マシンは先にシャットダウンされ、再起動後に自動起動のものは再び起動します)。

ix ポート(X5xx/X7xx シリーズ) の VF 数はキューの制限を受けます。再起動なしでは最大 N 個です。設定する(再起動後に有効) をクリックすると、ホストのすべての ix ポートの PF キューが 4 から 2 に減り、再起動後に VF を多く作れるようになります。設定を取り消す で元に戻ります。

I350、82576 のような NIC は、keelOS 同梱のドライバが引き継いで初めて VF を作れます。ページに「ドライバでは VF を作れません」と表示される場合は、そのポートが現在そのドライバの管理下にないことを意味します。

仮想マシンで VF を使う方法:仮想マシンの NIC で接続方法に SR-IOV VF を選ぶか、自動 を選びます(reload 時に仮想マシンが停止していて、ネットワークに空きの VF がある場合に VF を使います)。仮想マシン管理を参照してください。PCI デバイス で特定の VF や "auto" を指定することもできます。LAN ポート全体をパススルーする場合は ポートごとパススルー を選びます。そのポートはホストでは使えなくなります。

4. ハードウェアページ

構成 → ハードウェア を開きます。このページはほとんどが読み取り専用で、このマシンの構成を一覧表示します。データは一度読み取ると 30 秒キャッシュされます。右上の テキストでコピー はページ全体をテキストとしてコピーします。問題を報告するときに便利です。ページ最上部に 要確認 の内容(ディスクの SMART 故障、センサー値の範囲外、CMOS 電池切れ、NVMe の重大警告、メモリエラー)がある場合は、最初にここに表示されます。

上から順に:

  • システム:メーカー、型番、シリアル、マザーボード、BIOS、UUID。
  • プロセッサー:ソケットごとのモデル、コア数とスレッド数、最大周波数。
  • メモリ:使用中のスロット、各メモリモジュールの容量、種類、速度、ECC の有無、およびそのメモリエラー。訂正可能 なエラーは ECC が修復したことを示し、たまに出る程度なら正常です。出続けている場合は、そのモジュールが劣化しています。訂正不能 なエラーが出たらメモリモジュールを交換してください。エラー記録があるときは展開して最新 50 件を確認できます。
  • 仮想化:CPU ベンダー、仮想化拡張、IOMMU、ハイパーバイザー層。ホストで keelOS 独自のハイパーバイザー層が動いていない場合(「ネイティブモード」)、仮想マシンは動きますが、ホストの再起動やアップグレードの際にすべての仮想マシンを先にシャットダウンする必要があり、メモリプールとゼロページ回収も使えません。その理由(たとえばファームウェアで VT-x や AMD-V が無効)はこの欄に表示されます。BIOS で有効にして再起動してください。
  • ディスク:各ディスクのモデル、シリアル、状態(SMART の判定)、通電 時間、寿命消費、代替処理済/保留 セクター、メディアエラー。ディスクをクリックすると、そのディスクが報告するすべての情報を確認できます。NVMe ディスクはコントローラーごとに表示され、その下にインデントされているのが名前空間です。
  • ヘルスチェック:パススルーやシステムのインストール、データの配置の前に、ディスクを検査します。ディスク自身のショートセルフテスト(数分)と読み取り速度テスト(約 1 分、読み取りのみでディスク上のデータは変わりません)を行い、結果は 正常、注意、問題あり に分かれ、履歴も残ります。ディスクが使用中の場合、テスト中は仮想マシンの読み書きが遅くなります。
  • フォーマット…:NVMe ディスクは LBA フォーマット(512 バイトまたは 4Kn セクター)を変更できます。ディスク上のものはすべて消去されます。起動ディスクと使用中のディスクはフォーマットできません。名前空間管理に対応したコントローラーでは、ここで名前空間の作成と削除もできます。
  • ネットワークポート:各ポートの MAC、リンク 状態、速度、チップ。
  • 温度:ホスト自身が読み取るセンサー(CPU、ACPI サーマルゾーン、PCH)。クロックが下がる温度まで 15 °C 未満になると警告が出ます。グラフは概要の モニター サブページにあります。
  • メモリ帯域:各メモリチャネルの現在の読み書き量(メモリコントローラーの性能カウンター。ほかのツールが使っているチャネルには keel は触れません)。
  • Intel AMT(vPro):対応するマシンで、AMT の状態、バージョン、アドレス、リモート機能を表示します。1.0 では keel は AMT の状態を読み取るだけで、ワンクリックで有効にすることはできません。有効にするには、起動時に Ctrl-P を押して MEBx に入り、手動で設定する必要があります。ページの「有効にする方法」の欄に手順があります。AMT はシステムの外からマシン全体を制御できます。パスワードは必ず強力なものにし、AMT のポートを外部ネットワークに公開しないでください。
  • BMC(IPMI):BMC のあるマシンで、その管理アドレス、ファームウェア、消費電力、センサー、BMC イベントログ(最新 20 件)を表示します。ここでは次の操作ができます。
  • 編集:BMC のネットワーク(固定アドレスまたは DHCP、サブネットマスク、ゲートウェイ、VLAN、IPv6)、停電復旧後 の動作(常に電源オン、停電前の状態に戻す、電源オフのまま)、ファンモード(現在は Supermicro のみ対応。一覧に出るのはその BMC 自身が提供するモード)を変更します。アドレスや VLAN を変えると、BMC 自身の Web ページが数秒から数十秒開けなくなることがあります。締め出されることはありません。keel はホスト内から直接 BMC と通信し、そのパスワードを必要としないためです。
  • ユーザー…:BMC のユーザーを管理します。BMC のパスワードを忘れた場合はここで新しく設定します(管理者トークン * のみ変更可能)。
  • ファン下限…:低速で静かなファンに交換した後、下限を下回ると BMC に「故障」と判断されて全速になってしまう下限を引き下げます。
  • 引き継ぎチェック…:前の所有者が残した BMC の設定を確認します。有効なユーザー、ネットワーク、SNMP コミュニティ、アラートの宛先、イベントログです。
  • UID ランプ:筐体の青い識別ランプを点灯/消灯します。ラックの中でこのマシンを探すときに使います。
  • BMC を再起動…:BMC がホスト内から応答しないときに使います。再起動中(1〜2 分)は BMC の Web ページ、リモートコンソール、ファン制御が一時停止しますが、ホストと仮想マシンには影響しません。

BMC も AMT もないマシンでは、該当する部分は表示されません。仮想マシンにパススルーしたディスクや LAN ポートは仮想マシン自身が管理するため、ここには一覧表示されません。

5. 内蔵 GPU

内蔵 GPU 全体を 1 台の仮想マシンにパススルーする:PCI パススルー ページで内蔵 GPU(通常は 00:02.0)を確保し、仮想マシンに追加します。Windows や Linux の仮想マシンは、内蔵 GPU でレンダリングやハードウェアトランスコードができ、仮想マシン内では Intel のネイティブドライバが使われます。内蔵 GPU にモニターがつながっている場合、モニターにはその仮想マシンの画面が表示され、ホスト自身の画面は表示されなくなります(Web 画面と ssh は通常どおり使えます)。

  • 第 12 世代以降の Intel 内蔵 GPU(UHD 770/730、Iris Xe など)では、Linux 仮想マシンのカーネルパラメーターに xe.enable_dsb=0(i915 ドライバの場合は i915.enable_dsb=0)を追加する必要があります。追加しないと、画面が切り替わるたびに 10 秒のタイムアウトを待つことになります。
  • 内蔵 GPU をパススルーした仮想マシンでは、Web のグラフィックコンソールには内蔵 GPU の画面だけが表示され、毎秒約 10 フレームです。滑らかに使いたい場合は RDP を使ってください。コンソールとリモートデスクトップを参照してください。
  • SeaBIOS(古い OS、たとえば Windows 7)の仮想マシンにパススルーデバイスを追加すると、一部のホストでは起動しません。内蔵 GPU のパススルーには UEFI の仮想マシンを使ってください。

内蔵 GPU を VF に分割して複数の仮想マシンに割り当てる(第 12 世代以降の内蔵 GPU、最大 7 つの VF):内蔵 GPU の PF ドライバは keelOS のディスプレイ仮想マシンの中で動きます。まず PCI パススルー ページで内蔵 GPU をパススルー用に確保し、ファームウェア経由でホストを再起動します。その後、SR-IOV ページで内蔵 GPU の VF 数を設定します(ページには「PF ドライバ = ディスプレイ VM(xe):VF 数を変えると再起動し、GPU がリセットされます」と表示されます)。仮想マシンが受け取る VF には画面出力がありません。Windows では「モニターのつながっていない」Intel グラフィックスとして見え、レンダリングやトランスコードに使い、画面は RDP で見ます(ゲスト内で keelagent を実行)。この機能は一部の機種(第 12 世代 UHD 770)でしかテストしていません。使う前に、重要でない仮想マシンで試してください。

6. 1.0 でまだ対応していないこと

  • パススルーしたデバイスはホットプラグできません。デバイスの追加・削除は、仮想マシンの次回のコールド起動で有効になります。
  • SR-IOV は LAN ポートと内蔵 GPU のみです。ほかの種類の VF は扱いません。
  • 古い OS(Windows XP、Windows 7)は SeaBIOS を使い、パススルーデバイスとの併用は一部のホストで起動しません。
  • AMT は読み取り専用で、Web 画面から有効にはできません。BMC のファンモードは Supermicro のみ対応です。
  • ネストされた仮想化の仮想マシンは、同時に PCI デバイスをパススルーできません。ネストされた仮想化を参照してください。