iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 17
1

前言

歷經多日,我們終於大致概覽了 PVE 常見的技術與名詞,接著,我們要實際來安裝一台 Ubuntu 機器,用於機器學習。

使用 PVE GUI 前

依照之前提到的,如果想要在 Ubuntu 內做機器學習,我們需要使用到顯卡,而在 VM 內使用顯卡,最好的方式當然是使用接近無損的 VFIO 技術,而這項技術運用到 IOMMU 一系列硬體功能,所以重下(硬體)到上(軟體),我們可以逐步思考。

硬體層級——IOMMU

  1. 首先,在各階主板內開啟 BIOS 虛擬化功能,可能的名稱包含 Intel Vt-d,AMD SVM,或是 IOMMU。
    以技嘉主板為例:

  2. 在硬體開啟虛擬化相關技術後,我們也必須讓系統啟動載入程式知道我們會用到 IOMMU,所以需要進行如下操作:
    vi /etc/default/grub

# RUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on video=efifb:off"
  1. 接著,我們可以重開機後檢查 IOMMU 是否正確開啟:
    $ update-grub
    $ dmesg | grep -e DMAR -e IOMMU

有輸出為正常
無輸出代表硬體不支持或為開啟

核心層級——VFIO

  1. 我們需要在 Kernel module 內新增 VFIO 的設定,讓 Kernel 允許我們使用之。
    $ vi /etc/modules
    接著將以下內容加入
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

系統層級——迴避驅動

  1. 我們並不希望顯卡在開機時便被 PVE 驅動識別,從而搶走 VFIO 通透顯卡的能力。所以我們可以透過以下步驟,將你的顯卡驅動加入阻擋名單。
echo "blacklist radeon" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
echo "blacklist nvidia" >> /etc/modprobe.d/blacklist.conf 
echo "blacklist nvidiafb" >> /etc/modprobe.d/blacklist.conf
echo "blacklist i2c_nvidia_gpu" >> /etc/modprobe.d/blacklist.conf
echo "blacklist snd_hda_intel" >> /etc/modprobe.d/blacklist.conf  
echo "blacklist snd_hda_codec_hdmi" >> /etc/modprobe.d/blacklist.conf
echo "blacklist i915" >> /etc/modprobe.d/blacklist.conf
update-initramfs -u 

結論

在設定完以上指令以後,我們就完成了一台擁有通透能力的 PVE 了。
接下來的內容,將是一步一步的帶各位透過 PVE GUI,設定與新增數台虛擬機,並且介紹相關功能並連結以往知識!


上一篇
Day 16:VFIO 之什麼是 VT-d?
下一篇
Day18:PVE 建立虛擬機 - 1
系列文
在家機器學習?用虛擬化技術實現個人 AI 環境配置30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言