esxi轉centos 5 到pve失敗,出現 mount could not find system /dev/root

咖啡偶最近進行一系列從esxi轉到pve的工作, 其中出現轉CentOS 5這種老舊vm失敗的狀況, 錯誤如下:

Unable to access resume device (LABEL=SWAP-hda3)

mount: could not find filesystem ‘/dev/root’

測試過很多方式, 例如改ide, sata, scsi 等方式都不行,  最後終於找到重建開機程序 initrd 的方式解決,

解決方式如下:

  1. 下載相對應大版本OS , Centos 5.x 都可以
  2. 掛載 Centos 5開機片開機, 輸入 linux rescue(救援模式)
  3. 輸入 chroot /mnt/sysimage 讓系統暫時恢復成原系統的狀態
  4. 刪除/boot/initrd-xxx.img 開機檔案 xxx代表原系統開機時的版本號碼
  5. 查詢一下 /lib/module 是否有xxx版本號碼
  6. 重建開機檔案  mkinitrd /boot/initrd-xxx.img   xxx
  7. 重開機, 卸載Centos 5開機片, ,改由原系統開機測試是否能成功

Proxmox ve出現 cluster not ready – no quorum?錯誤

咖啡偶使用pve的時候, 突然出現兩台pve無法登入,但vm正常的情狀, 情急之下重開機, 但是重開機之後出現: 

 cluster not ready – no quorum?

上網查了一下,好像只能連到主要pve, 然後手動這樣處理, 接下來就看偶有沒有時間回過頭來仔細想想問題在哪了,以及如何正確處理這問題.

pvecm expected 1
service pve-cluster restart

pve的備份檔案vma

pve 內建的備份檔案是vma格式, 加上lzo壓縮或是gzip壓縮 .
因此要了解裡面有甚麼檔案, 需先解壓縮後, 再使用vma這指令解開裡面的檔案.

解開vma

 vma extract xxx.vma  "目錄名稱"

解開檔案之後,就可以進行編輯,編輯之後, 再做成vma檔案, 其中比較特別的是若檔案名稱是 disk-drive-sata0 , 做成vma的時候要指定檔名為 drive-sata0 , 否則做出來的檔案, 名稱會不一樣, 指令如下:

vma create xxx.vma -c 目錄名稱/qemu-server.conf  drive-sata0=目錄名稱/disk-drive-sata0.raw

若要還原,可以執行qmrestore (107是主機代號,可改):

 qmrestore xxx.vma 107

解開vma檔案覺得太大時,可以縮小:

qemu-img convert -O qcow2 xxx.raw new_xxx.raw
或
qemu-img convert -O qcow2 -c  xxx.raw new_xxx.raw

安裝Proxmox VE 5.3 注意事項

這陣子積極將vmware esx 轉成 pve 5.3 , 以後遇到安裝注意事項就寫在這裡.安裝

額外安裝套件

1. 查看iscsi設備

  apt-get install  lsscsi

可使用 lsscsi 查看目前iscsi 設備

2. 安裝multipath-tools

 apt-get install multipath-tools

這方式原本是想要讓系統使用iscsi MPIO 的功能,能夠自動切換線路,但似乎設定上很麻煩, 不過還是先安裝起來.
因為這作法可以解決pve若有兩個不同網段網卡連接到Nas的兩個網卡, 造成pve出現兩個相同device的錯誤,

WARNING: PV Lk4DU4-4HO7-of10-g9cR-tsK4-f9Ka-s2FqfC on /dev/sdd was already found on /dev/sdc.

安裝 multipath-tools 之前 , 執行 pvscan 會出現

PV /dev/sdd    VG LVM-FreeNasVM   lvm2

但是安裝之後, 會出現

PV /dev/mapper/36589cfc000000e54a909f483d8485fb6   VG LVM-FreeNasVM

掛載NFS可考慮使用soft的方式掛載,以免因斷線或是線路不穩造成災難:

編輯 /etc/pve/storage.cfg , 在NFS區塊找出 options vers=3 最後面加上 soft 參數, 變成 options vers=3,soft
# 2022/07/27 後來升級改用 nfs vers=4.2 似乎就不用加上soft選項了

列出/刪除cluster的node

1. 列出 pvecm nodes 
2. 刪除 pvecm delnode "Node Name" , 最後記得刪除相關檔案(也可以備份) rm /etc/pve/nodes/"Node Name"

proxmox ve如何刪修iscsi target連線(使用指令)

查看目前scsi連線,有兩個方法
1.
  apt install lsscsi
  lsscsi  

2. 查看目前scsi連線 
  iscsiadm -m node

解除iscsi連線
1. 查詢iscsi連線
  iscsiadm -m node
2. 登出
  iscsiadm -m node -T  --logout
3. 刪除連線
  iscsiadm -m node -o delete -T 
  target name = ign....
  

 刪除proxmox 上LVM的group name
 1. 將LVM group name 狀態改成離線
   vgchange -a n <group name>
 2. 移除
  vgremove <group name>

proxmox ve如何擴充 lvm

原本使用 lvm 掛載FreeNas 的 iscsi (1T容量) , 但是不夠用了,因此紀錄一下擴充方式:

1. 到FreeNas擴充該iscsi的容量到3T

2. 此時原本 pve 上面的 lvm 還是 1T, 可輸入pvdisplay確認,並且記下iscsi對應到哪個路徑 ,例如:  /etc/sdb

3. ssh終端機登入 pve 主機, 輸入 pvresize /dev/sdb  , 再輸入 pvdisplay 查看

移轉esxi vm至pve

1.  esxi匯出 ova 檔案或是ovf檔案, 並且注意該vm的硬體配置

2. 將ova檔案移至pve能存取的storage 上

3. ssh 登入pve, 使用tar vfx 方式解開ova檔案

4. ssh 登入pve, 將解開的檔案裡面的vmdk轉成qcow2

qemu-img convert -f vmdk xxx.vmdk -O qcow2 xxx.qcow2
#2023/9/15
#若vmdk有 xxx.vmdk xxx-flat.vmdk 而且xxx-flat.vmdk檔案最大,轉換時只需輸入xxx.vmdk,qemu-img會自動認出xxx-flat然後轉換

5. 到pve新增vm, 並且確認esxi vm的硬碟, 使用sata或是ide(這部份弄錯會導致無驅動程式,而無法開機)

等到vm新增完畢, 再將步驟4的qcow2檔案覆蓋過去pve上新的vm檔案

刪除Proxmox VE cluster

以前尚未接觸到 PVE的時候, 以為這個世界上就只有 esxi 才是王道, 但是esxi 免費版用久了, 總覺得備份,還原, 與移機非常麻煩, 甚至要停機.

現在接觸到PVE之後, 驚為天人, 備份還原非常方便. 外加FreeNas新版出世之後,  立馬捨棄XigmaNAS + esxi 組合, 改用 PVE + FreeNAS 這種新組合.

最後PVE還可以安裝多台, 只要FreeNAS夠強, 我們就可以組成 cluster , 遷移VM就會非常方便(幾分鐘之內就可完成).

另外若pve不當主要cluster, 卻不小心新增了怎辦?

以下是刪除的方式(for PVE 5.3 ):

systemctl stop pve-cluster
systemctl stop corosync
pmxcfs -l
rm /etc/pve/corosync.conf
rm -r -f /etc/corosync/*
killall pmxcfs
systemctl start pve-cluster
1 2 3 4