Skip to main content

PVE學習筆記

虛擬機關閉或解鎖
qm unlock <VM ID>
qm stop <VM ID>
backup(備份)
vzdump 101 102 107 108 115 114 112 104 110 --compress lzo --mailnotification always --mode snapshot --quiet 1 --storage Backup --mailto mail@domain.com
安裝agent
apt install qemu-guest-agent
node損壞重新上線
service rrdcached stop
rm -rf /var/lib/rrdcached/*
service rrdcached start

確認結果

service rrdcached status
TASK ERROR: cluster not ready – no quorum?法定人數不夠時

備註說明:觀念加強,不要忘記pve是採用多數決的去中心化模式,因此當cluster中的端點數量不足時會鎖住pve的設定檔,故如果只有2台nodes時可能會遇到這個問題。
作法

pvecm status ---會看到Quorum: 2 Activity blocked
pvecm expected 1 ---叢集數更動為1,可先備份/etc/pve
service pve-cluster restart  ---重新啟動叢集

可以做修改或新增(重加)node
EX:如需要刪除不要的node

pvecm delnode (node name)
2FA取消

/etc/pve/user.cfg 中的使用者的訊息取消

開機諜有做raid1 or 5可容錯而其中一台損壞時
sgdisk -R newdisk olddisk (直接複製分割方案)
sgdisk -G newdisk         (確保唯一)
dd if=/dev/olddisk1 of=/dev/newdisk1
zpool replace rpool olddisk2 newdisk2 (可能需要使用-f強制)
如果pve出現CVE-2018-3646的漏洞提示時該如何處理
echo off > /sys/devices/system/cpu/smt/control 關閉CPU超線程
pve虛擬機直接掛載實體硬碟
ls -l /dev/disk/by-id/
vi /etc/pve/qemu-server/xxx(VMID).conf
virtio0: /dev/disk/by-id/ata-ST2000DL003-9VT166_5YD1ZYK5,size=2000G

#可以不用標註容量

Pve virtio 下載iso檔
https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/
識別網卡

安装ethtool

apt install ethtool -y

使用網卡燈號檢查對應網卡

ethtool --identify (網路端口名稱)

1742269300058.jpg

備註:有些網卡不支援這種方式

如果沒有只能直接用switch接線測試。

打開端口自動啟動 & 重啟系统
確認所有網卡設備位置

lspci | grep -i 'eth'

通過ethtool識別端口對應設備位置以及系统設備名

ethtool -i [設備名稱]  #查看設備對應設備位置
ethtool [設備名稱]  #通過查看是否連接確認設備名對應實際端口,如果硬體支持可以使用ethtool --identify [設備名] 命令確認)

端口自動啟動 & 重啟系统

开启硬件直通

BIOS中打开硬件直通相关选项(VT-d & VMX)
编辑Grub

nano /etc/default/grub

注释原条目,并增加开启参数

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

如果你的pcie设备分组有问题也可以换成这一行对分组拆分(直通遇到问题都可以尝试这个)

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on pcie_acs_override=downstream"

更新grub

update-grub

上传启动镜像
将镜像img扩展名修改为iso,直接通过PVE后台上传
创建虚拟机并设置直通

修改配置文件命令
nano /etc/pve/qemu-server/[虚拟机编号].conf
pve虛擬機遷移指定使用網路

qm migrate <虛擬機ID> <目標節點> --online --migration_network x.x.x.0/xx
虛擬機直通PCI界面設定方式

依照amd或intel的cpu不同而編輯grub,

Intel:

新增下方指令到GRUB_CMDLINE_LINUX_DEFAULT=""裡面

intel_iommu=on

image.png

AMD:

新增下方指令到GRUB_CMDLINE_LINUX_DEFAULT=""裡面

amd_iommu=on

使用update-grub 更新啟動設定。

新增下方資料到/etc/modules

#vfio
#vfio_iommu_type1
#vfio_pci
#vfio_virgfd

重新開機

將虛擬機從VMWare轉向PVE

方法1:

如果有訂閱VMWare8.0以上跟使用PVE8.2以上版本可以直接使用GUI介面進行轉移。

圖片.png

轉移的時候VM需要關機,看起來是最簡單的方式但我沒有試過,所以做之前記得做完整的資料備份。

方法2:

使用GUI介面上傳OVA到PVE在進行佈建,上船方式如下圖所示。

圖片.png

上傳完成後再點擊旁邊的Import進行佈建,調整成PVE可以搭配的硬體規格。

因為VMWare本身無法直接匯出OVA檔,需要使用官方工具,但如果沒有要那麼麻煩可以直接匯出OVF在用下方指令合成OVA檔

tar -cvf VM.ova VM.ovf VM.vmdk VM.mf

備註:要匯出的VM需要關機或複製一台新的做匯出,匯出的名稱最好是全英文的。

如果不想那麼麻煩其實也可以將OVF資料(含vmdk mf 等)上傳到使用PVE主機後進行布建,但這些過程就都是使用指令。

  1. 使用scp將資料上傳到PVE主機。
    scp <來源路徑> root@<IP>:目標路徑

  2. 然後再使用qm importovf進行ovf的匯入。
    qm importovf {vmid} {VM name}.ovf {target storage}

    備註:可以加--format然後將格式轉成rawvmdkqcow2或--cpu x86-64-v2-AES --scsihw virtio-scsi-single等等,也可
        以之後再用GUI修改比較簡易。

  3. 最後最重要如果是Windows系統,要將硬碟控制器從原本的iscsi更改成SATA或ide,先使用Detche刪除該硬碟,然後硬碟會變成Unset,點擊硬碟重新設定控制器SATA或ide就可以。

方法3:

系統轉移通常最重要的是資料,可以使用clonezilla或指令qm disk import進行匯入,

qm disk import {target VMID} {vmdk file} {target storage}

備註:跟qm importovf一樣後面可以加cpu format等等參數進行設定。

匯入後硬碟的設定會是unset,如果是Windows系統就改成sata或ide。

使用qemu-img將vhdx轉成qcow2

qemu-img convert -O qcow2 {原始檔案} {目標檔案}

另一種方式

qemu-img convert -f {來源格式} -O {目的格式} 來源檔案 目標檔案
將Local-Lvm合併到local

1.如果local-lvm已經有虛擬機或檔案都要移走,不然都會不見。

2.在cmd模式使用以下指

lvremove pve/data

lvextend -l +100%FREE -f pve/root

resize2fs /dev/mapper/pve-root

 3.完成後local會增加。

4.local-lvm已經沒用需要刪除。