何の記事か
Proxmoxという仮想マシン専用のマシンを立てる方法。そして遊んでみる。
参考文献
[proxmoxのインストール方法] (https://qiita.com/C_Kenta/items/70ecb32495fce9e1de52)
Proxmoxとは何か
ProxmoxはDebianベースの仮想化プラットフォームです。操作はすべてWeb インターフェースで行うことができ、仮想マシンやLinuxコンテナを簡単に作成することができます。バックアップを簡単に作成でき、修復も非常に容易です。ハードウェアパススルーも可能で、USBカメラ、マウス、キーボードなどのデバイスをVMに渡すことができます。
ひところ
えぐい
立てる
手順
公式から
proxmoxのisoを持ってくる。以上。
インストール時の注意点
最新のをインストールしようとしたら、waitinig for /dev fully populated 的なのが出てきたけど、それは一個前のどの手段でインストールするかのところでeを押して、カーネルのブートパラメータにnomodesetをつけると解消された。よろぴく
実はVMてハードウェアの動きをソフトウェアでエミュレートする方法と、 もう一つKVMってのがあってね、KVMの方が圧倒的に速いわけですよ。んでね、 KVM hardware virtualizationってのをOFFにすると、ソフトウェアでエミュレートになる。しかし、これは遅いからKVM hardware virtualizationはONにした方がいい。しかし、ONにするにはBIOSでKVMをonにする設定を施さないといけない。それはリモートからではできないって話だな。乙。
BIOSのKVM VirtualizationをOFFにしたままUbuntuを走らせようとしたらこう怒られました。
KVM virtualisation configured, but not available. Either disable in VM configuration or enable in BIOS.
advanced setting -> CPU Configuration -> SVM Mode -Enable > Save & reset これをやらないと勝ちで遅すぎて話にならなかった。すべてが遅すぎる。 マジで、CPUの動きをエミュレートする仮想化は、KVMと比べて10倍遅かった。えぐい。
GPUのパススルー
これが結構面倒くさい。 VM上でOllama立ててllmを動かそうとしているんだけど、なかなかうまくいかない。 これはchatgptから得た回答だから、確証はないんだけど、参考にしてほしい。 chatgpt曰く、やらないといけないことは二つ
- Enabling IOMMU
- Enabling VFIO
Enabling IOMMU
これは何をやっているかだけど、
IOMMU is a hardware feature that allows the virtualization of system I/O memory addresses. It provides a way for the hypervisor to restrict guest VMs from accessing all physical memory, instead allowing access only to the device memory that has been allocated to them. This is essential for security and stability in a virtualized environment. It also enables devices like GPUs to be directly assigned to a VM, bypassing the host and improving performance.
ここからは別の話ですが、
vm上でgpuを使うdockerコンテナを走らせたいのだが、なんだかうまくいかない問題
VMにGPUがパススルー出来ていないのが問題なのではないか?と思っていたのだが、 どうやら違うみたい
問題の切り分け
VMでGPUが使えるかをまず調べる必要があると思ったんだけど、 どうやら普通に使えているっぽい。 cuda入れてnvccでコンパイルして、長めのプログラム走らせてみたんだけど、 普通に走るしね。つまり、パススルーは成功しているってこと。
では、ollamaを走らせるにはどうすればいいか?
普通にVMにOllamaを直接インストールする。詳しくは、localLLMの記事を見てくれって感じや。
できること
- VMのクローン 気に入ったVMができたらそれを無限にスケールすることができる。これは再設定しなくていいから楽だよね。