HCI」タグアーカイブ

ProxmoxVEの仮想マシンにGPUパススルー

背景

今回のブログ記事ではProxmoxVEにおけるGPUパススルー設定についてご紹介します。

Proxmox VEは、GPUリソースを仮想マシンに割り当てるパススルー機能をサポートしています。
この機能を活用することでProxmoxVEを用いた仮想環境基盤の活用の幅が広がります。

本記事がHCI環境の構築をご検討の方のお役に立てば幸いです。

検証環境

項目内容
仮想環境ProxmoxVE8.2.4
パススルーのソースデバイス NVIDIA T400
パススルーのターゲット 仮想マシン Ubuntu 24.04 LTS

手順
ステップ1 IOMMUI (Input/Output Memory Management Unit)の有効化

IOMMU(Input-Output Memory Management Unit)は、コンピュータの入出力デバイスが物理メモリに直接アクセスする際にアドレス変換を行い、メモリの保護と効率的な資源管理を実現するハードウェアコンポーネントです。

まずはBIOS設定でIOMMUを有効にします。またProxmoVEのカーネルオプションでもIOMMUを有効に設定します。

具体的な方法ですが、IOMMUの実装名はCPUメーカやマザーボードメーカによって異なっています。そのため実際の作業の際に構成に合わせて設定方法を確認する必要があります。

一例となりますが当社で検証したIntel Xeon Scalable Processor とSupermicro製のマザーボードが搭載されており、その構成ではBIOS項目は以下の通りでした。

BIOS - Advanced Chipset Configuration - North Bridge - IIO Configuration - Intel VT for Directed I/O (VT-d) - Intel VT for Directed I/O (VT-d) [Enable]

IOMMUという項目名のほかにIntel VT-dやAMD-Viという項目名となっている場合がございます。

またProxmoxVEのカーネルオプション設定に関してもIOMMUを有効化する必要がありますが、ハードウェア構成や採用されているブートトローダ(GRUB か systemd-boot)によって設定方法が異なります。

ステップ2 vfio(Virtual Function I/O)モジュールの設定

VFIO モジュールは、ユーザー空間へ直接デバイス アクセスを公開するための IOMMU/デバイス非依存フレームワークです。
https://docs.kernel.org/driver-api/vfio.html

ProxmoxVEでvfioモジュールを有効にするにはWebUI上で操作します。GPUが搭載されているノードのコンソールからシェルを開いて下記のコマンドを実行してください。

# 搭載されているGPUデバイスを確認します。
root@pve00:~# lspci -nn | grep -ie nvidia
c7:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU117GL [T400 4GB] [10de:1ff2] (rev a1)
c7:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:10fa] (rev a1)

コマンド実行結果から、下記のようにデバイスのバスIDとベンダーIDとデバイスIDを確認します。

デバイスバスIDベンダーID:デバイスID
VGA compatible controllerc7:00.010de:1ff2
Audio devicec7:00.110de:10fa

vfio.confというファイルを新規作成します。vfio-pciは、PCIデバイスを仮想マシンにパススルーするために必要なモジュールの設定です。

root@pve00:~# vi /etc/modprobe.d/vfio.conf 
options vfio-pci ids=10de:1ff2,10de:10fa disable_vga=1

#ids=10de:1ff2,10de:10faは、PCIデバイスのベンダーIDとデバイスIDを指定しており、ここではNVIDIAのデバイス(ベンダーIDが10de)で、デバイスIDが1ff2と10faのものを指しています。これにより、これらのデバイスがvfio-pciドライバによって管理されるようになります。#disable_vga=1は、VGA互換のデバイスを無効にするオプションです。これは、通常、GPUのパススルーを行う際に重要で、VGA機能を無効にすることでデバイスの競合を避ける目的があります。

ProxmoxVE起動時に下記のモジュールを自動的に読み込むように設定ファイルを記述します

root@pve0:~# vi /etc/modules
#以下4行を追加記載
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

ステップ3 GPUドライバモジュールをブラックリストに登録

ブラックリストは、特定のカーネルモジュールの自動ロードを防ぐために使用される設定で、これにより不要なドライバや問題を引き起こすモジュールの読み込みを抑制できます。https://wiki.debian.org/KernelModuleBlacklisting

ブラックリストを有効にするにはProxmoxVEのWebUI上で操作します。ホスト(ProxmoxVE)上で指定デバイスのドライバーが読み込まれないようにブラックリストファイルを新規に作成します。
root@pve00:~# vi /etc/modprobe.d/blacklist.conf
blacklist nvidia
blacklist nvidiafb
blacklist nouveau

これらのドライバモジュールをロードさせない事でホスト(ProxmoxVE)がGPUデバイスに干渉せず、PCIeデバイスを仮想マシンにパススルーが可能となります。

ステップ4 再起動

これまで行ったブートローダのオプション変更、vfioモジュールのロード、nvidia関連のモジュールのブラックリスト追加の設定を行ったノードは再起動が必要です。

パススルー設定はクラスタの構築前に設定する事が多いと思いますが、もしクラスタ構築済の設定後のノードに対して再起動を行う場合は適切な手順で慎重に行ってください。(クラスタがデグレードする可能性があります。)

ステップ5 PCIeデバイスのマッピング

権限を持ったユーザでProxmoxの管理WebUIにてデータセンター→リソースマッピング→PCIeデバイス追加と選択します。

マッピングの識別のための名前を入力し、ノード上のマッピングにはデバイスが搭載されているノードを選択します。ステップ2で確認したバスIDを持つデバイスにチェックを入れ作成を押します。

PCIeデバイスが追加されたことを確認します。

ステップ6 仮想マシンにPCIeデバイスの割り当て

PCIeデバイスを割り当てたい仮想マシンを選択してカラムからハードウェア→追加→PCIデバイスと選択します。今回の検証ではVMID131(vmGPU-test)という仮想マシンに割り当てを行います。

Mappedデバイスに先ほどステップ5で追加したT400という項目が表示されます。T400を選択し追加ボタンを押します。

VMID131(vmGPU-test)のハードウェア構成にPCIデバイスが追加されたことを確認します。

注意:仮想マシンのハードウェア構成のマシンはpc-q35と設定します。Q35 チップセットは仮想 PCIe バスも提供するため、PCIe ハードウェアをパススルーする場合に適しています。

ステップ7 仮想マシン上でGPUデバイスの認識確認

VMID131(vmGPU-test)のUbuntu24.04を起動してターミナルにてlspciを実行します。仮想マシンにNVIDIAデバイスが認識されているか確認します。

NVIDIAドライバをインストールしてnvidia-smiも実行してみました。

上記の実行結果の通りNVIDIA T400デバイスが仮想マシンに認識されています。

検証の中では仮想マシン数に対してパススルーGPUデバイスが1基でしたが、技術的には仮想マシン数が1台に対して、複数の物理GPUデバイスの割り当てることが可能です。

まとめ

今回はProxxmoxVEにおけるGPUパススルーの方法をご紹介しました。
GPUパススルーによって仮想基盤上でGPUリソースを効率的に活用する一助となれば幸いです。

当社では仮想化基盤 (HCI) 構築サービスを開始いたしました。
ぜひお気軽にお問い合わせください。

ProxmoxVEのユーザによるパスワード変更方法

Proxmox VEのユーザーによるパスワードを変更する方法をご紹介します。

手順

Proxmox VE Webインターフェースにログイン

Webブラウザを開き、ログインします。

レルムをProxmox VE authentication server に選択してください。

ユーザー設定にアクセス

ログイン後、右上のユーザー名をクリックし、「パスワード」を選択します。

パスワード変更画面を開く

新しいパスワードを設定

現在のパスワード、新しいパスワード、および新しいパスワードの確認を入力します。パスワードは所属する組織のポリシーに則り十分に強力であることを確認してください。

パスワードの変更を保存

「OK」ボタンをクリックして、パスワードの変更を保存します。

まとめ

ユーザーがパスワードを変更できることで管理者が全てのユーザーのパスワード変更を行う必要がなくなり、管理業務の負担が軽減されます。

ユーザーが自分のパスワードを変更できるようにするためには、管理者が適切な権限を設定する必要があります。またセキュリティの観点から組織でパスワードポリシーを策定し、ユーザーに徹底させることが重要です。パスワードの長さや複雑さを定めたパスワードポリシーを導入しましょう。

以上、ProxmoxVEのユーザによるパスワード変更方法をご紹介しました。

当社ではハードウェア販売時にProxmoxVEのインストールサービスを承っております。
またProxmoxVEのHCIの環境構築サービスも始めました。
是非お問い合わせください。

https://www.systemworks.co.jp/hci.php

ProxmoxVEのユーザーによる仮想マシンの起動・シャットダウン

概要

今回はProxmox VEのユーザーによる仮想マシンを起動・シャットダウンする方法について
ご紹介します。

検証環境

検証時のバージョン:Proxmox VE 8.2.4

手順

1.WEBブラウザで管理画面にログインします。

管理画面にアクセスするためのIPアドレス:ポート番号は環境に合わせて変更してください。

ユーザ名、パスワードを入力し、レルムをProxmox VE authentication server
選択してください。

2.左側のペインから管理したい仮想マシンを選択します。

仮想マシン VMID:190(vmTest1)を選択しました。

上部にある「開始」ボタンをクリックすると、仮想マシンが起動します。

しばらく待つと仮想マシンが起動します。仮想マシンのアイコンで起動しているのか、
シャットダウンしているのか確認できます。

仮想マシンのシャットダウン

起動中の仮想マシンを選択し、上部の「シャットダウン」ボタンをクリックします。

シャットダウンが完了するまで待ちます。これにより、仮想マシンが安全に停止します。

まとめ

Proxmox VEではユーザーがWeb操作で簡単に仮想マシンを起動・シャットダウンできます。
管理者は事前に各ユーザーや仮想マシンに対して権限設定することで、
セキュアで効率的な仮想環境を構築可能です。
ユーザーにとっては使いやすく、管理者にとっては安心の環境を実現できます。
以上、ProxmoxVEのユーザーによる仮想マシンの起動とシャットダウン方法のご紹介でした。



当社ではハードウェア販売時にProxmoxVEのインストールサービスを承っております。
またProxmoxVEのHCIの環境構築サービスも始めました。
是非お問い合わせください。

https://www.systemworks.co.jp/hci.php

VMware ESXiからProxmox Virtual Enviromentへの仮想マシン移行方法

背景

VMware ESXi無償版の提供が終了し、有償版も買い切りからサブスクリプションに
変更となりました。
VMwareの継続利用した場合、運用コストの増大が予想されます。
仮想環境の移行先として無償でも利用できるProxmoxをご検討の方も多いかと思います。

Proxmox VEにはLive importという機能があります。
この機能を使いWebUI操作でESXiから仮想マシンの移行が5分程度でできました。

検証環境

検証時のバージョン

Proxmox VE 8.2.2
VMware ESXi 7.0 Update3n

手順

1.Proxmox VEを開き、「ESXi」を選択します。(図1)


2.以下の情報を入力してストレージを作成します。(図2)
   ID:任意の名前
   サーバ:VMwareのIPアドレス
   ユーザ名:VMwareのユーザ名
   パスワード:入力したユーザー名のパスワード
   ノード:そのまま(変更なし)
   有効:そのまま(変更なし)
   Skip Certificate Verification:チェック


3.ProxmoxVEのWebUI上でESXiのストレージの仮想マシンが表示されます。(!!!)
  移行対象の仮想マシンのファイルを選択しインポートします。(図3)


4.デフォルトで情報が入力されているので、
  変更せずそのままインポートで問題ないです。(図4)


5.作成したVM IDを選択して「開始」ボタンを押すとOSが起動します。(図5)

以上で移行完了です。

まとめ

この様にVMware ESXiからProxmox VEに簡単に移行ができるような仕組みになっています。
ProxmoxVEをインストールすれば気軽に試せる点もよいポイントかと思います。
以上、VMware ESXiからProxmox Virtual Enviromentへの仮想マシン移行方法のご紹介でした。



当社ではハードウェア販売時にProxmoxVEのインストールサービスを承っております。
またProxmoxVEのHCIの環境構築サービスも始めました。
是非お問い合わせください。

https://www.systemworks.co.jp/hci.php