差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

兩邊的前次修訂版 前次修改
下次修改
前次修改
tech:pvetips [2021/01/17 13:45] – [一個新安裝 node 加入 cluster] jonathantech:pvetips [2024/03/09 22:10] (目前版本) – [Guest VM 安裝 Agent] jonathan
行 4: 行 4:
   * 參考網址 - https://nevertired.nctu.me/2019/11/09/proxmox-ve-%E6%9B%B4%E6%96%B0/   * 參考網址 - https://nevertired.nctu.me/2019/11/09/proxmox-ve-%E6%9B%B4%E6%96%B0/
  
-==== PVE 5 ===== +{{tabinclude>tech/pvetips/pve8, tech/pvetips/pve7, tech/pvetips/pve6, tech/pvetips/pve5}}
-    - <code h /etc/apt/sources.list> +
-deb http://ftp.debian.org/debian stretch main contrib+
  
-# PVE pve-no-subscription repository provided by proxmox.com, +==== 執行命令列更新 ==== 
-# NOT recommended for production use +  * <cli> 
-deb http://download.proxmox.com/debian/pve stretch pve-no-subscription+apt update 
 +apt upgrade 
 +</cli>
  
-# security updates +===== PVE 主機安裝 snmpd ===== 
-deb http://security.debian.org stretch/updates main contrib +  * 安裝與設定程序<cli
-</code+apt install snmpd -
-    <code h /etc/apt/sources.list.d/pve-enterprise.list+cd /etc/snmp/ 
-#deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise +mv snmpd.conf snmpd.conf.org 
-</code>+vi snmpd.conf 
 +
 +依照實際需要編輯 
 +
 +service snmpd restart 
 +systemctl enable snmpd 
 +</cli
 +  * 參考網址 : https://www.svennd.be/how-to-install-snmp-service-on-proxmox/
  
-==== PVE 6 ==== +===== 如有使用 ZFS 可限制使用記憶體大小 ===== 
-    <code h /etc/apt/sources.list> +  * 參考 https://www.ichiayi.com/tech/zfs#%E9%99%90%E5%88%B6_zfs_%E4%BD%BF%E7%94%A8%E5%A4%9A%E5%B0%91_ram_%E7%95%B6_cache_%E6%96%B9%E5%BC%8F
-deb http://ftp.tw.debian.org/debian buster main contrib+
  
-deb http://ftp.tw.debian.org/debian buster-updates main contrib+===== PVE 主機設定 Postfix 由 GMail 寄發信件方式 ===== 
 +  * 假設預計 Relay 的 SMTP Server - smtp.gmail.com:587 (STARTTLS) 認證帳號:username 密碼:password 
 +  - 安裝相關套件 <cli> 
 +apt install libsasl2-modules -y 
 +</cli> 
 +  - 編輯 /etc/postfix/main.cf <file> 
 +
 +# GMail Setting 
 +relayhost = [smtp.gmail.com]:587 
 +#  use tls 
 +smtp_use_tls=yes 
 +# use sasl when authenticating to foreign SMTP servers 
 +smtp_sasl_auth_enable = yes 
 +# path to password map file 
 +smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd 
 +# list of CAs to trust when verifying server certificate 
 +smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt 
 +# eliminates default security options which are imcompatible with gmail 
 +smtp_sasl_security_options = noanonymous 
 +smtp_always_send_ehlo = yes 
 +</file> 
 +  - 編輯 /etc/postfix/sasl_passwd <file> 
 +[smtp.gmail.com]:587  username:password 
 +</file> 
 +  - 更改檔案權限 <cli> 
 +newaliases 
 +postmap /etc/postfix/sasl_passwd 
 +cd /etc/postfix 
 +chown postfix /etc/postfix/sasl_passwd* 
 +</cli> 
 +  - 讓 postfix 新設定生效 <cli> 
 +/etc/init.d/postfix reload 
 +</cli>
  
-deb http://download.proxmox.com/debian/pve buster pve-no-subscription+  * 參考網址 : http://mhawthorne.net/posts/postfix-configuring-gmail-as-relay.html
  
-# security updates +<note
-deb http://security.debian.org buster/updates main contrib +  * 如果 Google 的帳號有設定二階段認證, 密碼的部份就必須到 Google 帳號產生應用程式密碼  
-</code+  * 參考 - https://support.google.com/mail/?p=InvalidSecondFactor 
-    <code h /etc/apt/sources.list.d/pve-enterprise.list> +  * ++看建立應用程密碼畫面|{{:tech:2019110801.png}} \\ {{:tech:2019110802.png}}++ 
-#deb https://enterprise.proxmox.com/debian/pve stretch pve-enterprise +</note>
-</code> +
- +
-==== 執行命令列更新 ===+
-  * <code sh> +
-apt-get update +
-apt upgrade +
-</code> +
-===== 移除 Cluster 的方式 ===== +
-  * [[https://pve.proxmox.com/wiki/Cluster_Manager]] <code sh> +
-pvecm nodes +
-systemctl stop pve-cluster +
-systemctl stop corosync +
-pmxcfs -l +
-rm /etc/pve/corosync.conf +
-rm -rf /etc/corosync/+
-killall pmxcfs +
-systemctl start pve-cluster +
-</code>+
  
 ===== 移除 cluster 內的一個 node ===== ===== 移除 cluster 內的一個 node =====
-  * [[http://www.gienginali.idv.tw/modules/tad_book3/html.php?tbdsn=500| Exp. pve01 方式]] <code sh>+  * 參考網址 - https://pve.proxmox.com/pve-docs/pve-admin-guide.html#_remove_a_cluster_node 
 +  * [[http://www.gienginali.idv.tw/modules/tad_book3/html.php?tbdsn=500| Exp. pve01 移除方式]]  
 +    * 先進入 cluster 內其中一台 (不能是 pve01) 
 +    * 執行以下的語法將 pve01 刪除<cli>
 pvecm nodes pvecm nodes
 pvecm delnode pve01 pvecm delnode pve01
 pvecm status pvecm status
 rm -rf /etc/pve/nodes/pve01 rm -rf /etc/pve/nodes/pve01
-</code>+</cli> 
 +    * 進入每個 node 將 pve cluster 服務重新啟動<cli> 
 +systemctl restart corosync 
 +systemctl restart pve-cluster 
 +</cli>
  
-<note important> +  * <WRAP important> 
-  * 為了避免之後設定相同 IP 或 hostname 無法順利加入 Cluster 需要行以下程序: +  * 設定相同 IP 或 hostname 加入 Cluster 後, 因為之前的 ssh fingerprint / authorized_keys 在各節點都還有殘存, 所以需要在新增的節點上執行以下命令<cli>pvecm updatecerts</cli
-    * 每個 Node 都要清除已經移除 node 的 ssh fingerprint / authorized_keys Exp. hostname : pve01<code sh+  可以直接編輯 /etc/pve/priv 內的 known_hosts 與 authorized_keys 將已經不在 cluster 內的 node ip 紀錄移除 
-cd .ssh +  再至所有 cluster 內 node 的 /root/.ssh/ 內 known_hosts 將已經不在 cluster 內的 node ip 紀錄移除 
-grep pve01 * +</WRAP>
-cd /etc/pve/priv +
-grep pve01 * +
-ssh-keygen -f "/etc/ssh/ssh_known_hosts" -R "pve01" +
-ssh-keygen -f "/root/.ssh/known_hosts" -R "pve01" +
-</code> 如果有出現哪個檔案還殘存這資訊, 透過 vi 編輯刪該行即可 +
-</note>+
  
 ===== 一個新安裝 node 加入 cluster ===== ===== 一個新安裝 node 加入 cluster =====
行 76: 行 97:
 </WRAP> </WRAP>
   * Exp. pve02 加入 cluster, 這 cluster 其中一個 node 是 192.168.11.250   * Exp. pve02 加入 cluster, 這 cluster 其中一個 node 是 192.168.11.250
-  * 進入 pve02 主機內, 執行以下指令 <code sh>+  * 進入 pve02 主機內, 執行以下指令 <cli>
 pvecm add 192.168.11.250 pvecm add 192.168.11.250
-</code>+</cli>
   * 會出現需要輸入 192.168.11.250 內的 root 密碼   * 會出現需要輸入 192.168.11.250 內的 root 密碼
   * 如果沒有異常訊息就完成加入 cluster   * 如果沒有異常訊息就完成加入 cluster
-<note+  * <WRAP info
-  無法加入通常會顯示出原因, Exp. +無法加入通常會顯示出原因, Exp. 
-    * corosync 服務是啟動狀態 +  * corosync 服務是啟動狀態 
-    * 認證 key 已經存在... 等等 +  * 認證 key 已經存在... 等等 
-</note>+</WRAP>
  
  
 ===== 有主機故障, 出現 no quorum 問題的處理方式 ===== ===== 有主機故障, 出現 no quorum 問題的處理方式 =====
-  * 因為預設 cluster 的 quorum 要兩個才能運作, 所以如果兩台的 cluster 壞了一台, 一段時間後就會出現這樣的問題, 如果想讓還正常的主機啟動 vm / ct , 可以將 quorum 的限制改成 1 , 然後重起 clusrter 服務即可, 手動解決方式如下: <code sh>+  * 因為預設 cluster 的 quorum 要兩個才能運作, 所以如果兩台的 cluster 壞了一台, 一段時間後就會出現這樣的問題, 如果想讓還正常的主機啟動 vm / ct , 可以將 quorum 的限制改成 1 , 然後重起 clusrter 服務即可, 手動解決方式如下: <cli>
 pvecm expected 1 pvecm expected 1
 service pve-cluster restart service pve-cluster restart
-</code>+</cli>
   * 參考網址 - http://blog.pulipuli.info/2014/08/proxmox-ve-fix-proxmox-ve-cluster-not.html   * 參考網址 - http://blog.pulipuli.info/2014/08/proxmox-ve-fix-proxmox-ve-cluster-not.html
 +
 +
 +===== 移除 Cluster 的方式 =====
 +  * [[https://pve.proxmox.com/wiki/Cluster_Manager]] <cli>
 +pvecm nodes
 +systemctl stop pve-cluster
 +systemctl stop corosync
 +pmxcfs -l
 +rm /etc/pve/corosync.conf
 +rm -rf /etc/corosync/*
 +killall pmxcfs
 +systemctl start pve-cluster
 +</cli>
 +
  
 ===== 更改 hostname 方式 ===== ===== 更改 hostname 方式 =====
   * 參考 - https://pvecli.xuan2host.com/proxmox-host-name-change/   * 參考 - https://pvecli.xuan2host.com/proxmox-host-name-change/
- 
  
 ===== 更改主機 IP 方式 ===== ===== 更改主機 IP 方式 =====
行 103: 行 137:
   - Web UI 更改 IP : System->Network-> 選定介面卡 -> Edit    - Web UI 更改 IP : System->Network-> 選定介面卡 -> Edit 
   - 更改 /etc/hosts 內的 IP   - 更改 /etc/hosts 內的 IP
-  - 關閉 cluster 服務<code sh>service pve-cluster stop</code>+  - 關閉 cluster 服務<cli>service pve-cluster stop</cli>
   - 修改 /etc/pve/corosync.conf 內 node ip 與 totem 內的 ip   - 修改 /etc/pve/corosync.conf 內 node ip 與 totem 內的 ip
   - 重新開機   - 重新開機
 ===== 設定 SSD 硬碟當 Swap Memory 方式 ===== ===== 設定 SSD 硬碟當 Swap Memory 方式 =====
   * 當 PVE 系統安裝在 USB or HD 上時, 預設會將 Swap Memory 指定在其中的一個 Partition 上, 導致使用到 Swap Memory 效能會變很差   * 當 PVE 系統安裝在 USB or HD 上時, 預設會將 Swap Memory 指定在其中的一個 Partition 上, 導致使用到 Swap Memory 效能會變很差
-  * 先查看目前系統記憶體使用狀況 <code sh>+  * 先查看目前系統記憶體使用狀況 <cli>
 free -m free -m
 swapon -s swapon -s
-</code>+</cli>
  
 ==== 建立 Linux Swap 方式 ====   ==== 建立 Linux Swap 方式 ====  
-  * 假設 SSD 所在 /dev/sdc , 透過 fdisk 建立 16GB 的 Swap Memory Partition <code sh>+  * 假設 SSD 所在 /dev/sdc , 透過 fdisk 建立 16GB 的 Swap Memory Partition <cli>
 fdisk /dev/sdc fdisk /dev/sdc
-</code>+</cli>
     - 建立 16GB Partition<cli>     - 建立 16GB Partition<cli>
 Command (m for help): n Command (m for help): n
行 138: 行 172:
 Syncing disks. Syncing disks.
 </cli> </cli>
-    - 使用 mkswap 讓系統知道 /dev/sdc1 是 Swap Memory Partition <code sh>+    - 使用 mkswap 讓系統知道 /dev/sdc1 是 Swap Memory Partition <cli>
 mkswap /dev/sdc1 mkswap /dev/sdc1
-</code+</cli
-    - 讓 /dev/sdc1 的 Swap Memory 立即生效<code sh>+    - 讓 /dev/sdc1 的 Swap Memory 立即生效<cli>
 swapon /dev/sdc1 swapon /dev/sdc1
-</code>+</cli>
     - 使用 swapon -s 列出目前的 Swap Memory <cli>     - 使用 swapon -s 列出目前的 Swap Memory <cli>
 : :
行 149: 行 183:
 /dev/sdc1                               partition       16777212        0       -3 /dev/sdc1                               partition       16777212        0       -3
 </cli> </cli>
-    - 確認 /dev/sdc1 的 id <code sh>blkid | grep swap</code><cli>+    - 確認 /dev/sdc1 的 id <cli> 
 +blkid | grep swap
 /dev/sdc1: UUID="068ba285-5bb9-4b2f-b2e1-4dc599bd22e1" TYPE="swap" PARTUUID="1d334105-c76e-4ab2-baec-2b35fde71a02" /dev/sdc1: UUID="068ba285-5bb9-4b2f-b2e1-4dc599bd22e1" TYPE="swap" PARTUUID="1d334105-c76e-4ab2-baec-2b35fde71a02"
 /dev/zd0: UUID="a06df01d-bf15-4816-bc3e-f1d3c623ff20" TYPE="swap" /dev/zd0: UUID="a06df01d-bf15-4816-bc3e-f1d3c623ff20" TYPE="swap"
行 159: 行 194:
 : :
 </code> </code>
-    - 重新啟動 pve node <code sh>+    - 重新啟動 pve node <cli>
 sync;sync;sync;reboot sync;sync;sync;reboot
-</code>+</cli>
   * 參考 - https://www.linux.com/news/all-about-linux-swap-space   * 參考 - https://www.linux.com/news/all-about-linux-swap-space
  
 ==== 建立 ZFS Swap 方式 ====   ==== 建立 ZFS Swap 方式 ====  
   * 假設 SSD 所在的 zfs pool 為 rpool   * 假設 SSD 所在的 zfs pool 為 rpool
-  - 關閉所有swap:<code sh>swapoff -a</code+  - 關閉所有swap:<cli>swapoff -a</cli
-  - 建立 16GB ZFS swap: <code sh>+  - 建立 16GB ZFS swap: <cli>
 zfs create -V 16G -b $(getconf PAGESIZE) -o compression=zle \ zfs create -V 16G -b $(getconf PAGESIZE) -o compression=zle \
       -o logbias=throughput -o sync=always \       -o logbias=throughput -o sync=always \
       -o primarycache=metadata -o secondarycache=none \       -o primarycache=metadata -o secondarycache=none \
       -o com.sun:auto-snapshot=false rpool/swap       -o com.sun:auto-snapshot=false rpool/swap
-</code+</cli
-  - 格式化swap分區:<code sh>mkswap -f /dev/zvol/rpool/swap</code+  - 格式化swap分區:<cli>mkswap -f /dev/zvol/rpool/swap</cli
-  - 增加新的swap到 /etc/fstab :<code sh>echo /dev/zvol/rpool/swap none swap defaults 0 0 >> /etc/fstab</code+  - 增加新的swap到 /etc/fstab :<cli>echo /dev/zvol/rpool/swap none swap defaults 0 0 >> /etc/fstab</cli
-  - 啟用所有swap:<code sh>swapon -av</code+  - 啟用所有swap:<cli>swapon -av</cli
-  - 調整Swap優先權:<code sh>+  - 調整Swap優先權:<cli>
 echo "vm.swappiness = 10" >> /etc/sysctl.conf echo "vm.swappiness = 10" >> /etc/sysctl.conf
 sysctl -p sysctl -p
-</code>+</cli>
  
   * 參考 - https://pvecli.xuan2host.com/swap/   * 參考 - https://pvecli.xuan2host.com/swap/
行 186: 行 221:
   * [[https://pve.proxmox.com/wiki/Storage:_LVM_Thin]]   * [[https://pve.proxmox.com/wiki/Storage:_LVM_Thin]]
     - [[https://www.ichiayi.com/wiki/tech/lvm|手動將實體硬碟透過 fdisk 建立 partition 設定 type = 31 (Linux LVM) Exp. /dev/sdb1]]     - [[https://www.ichiayi.com/wiki/tech/lvm|手動將實體硬碟透過 fdisk 建立 partition 設定 type = 31 (Linux LVM) Exp. /dev/sdb1]]
-    - [[https://www.ichiayi.com/wiki/tech/lvm|透過 pvcreate/vgcreate 建立 VG Exp. vg-ssd]]<code sh>+    - [[https://www.ichiayi.com/wiki/tech/lvm|透過 pvcreate/vgcreate 建立 VG Exp. vg-ssd]]<cli>
 pvcreate /dev/sdb1 pvcreate /dev/sdb1
 vgcreate vg-ssd /dev/sdb1 vgcreate vg-ssd /dev/sdb1
 vgdisplay vg-ssd vgdisplay vg-ssd
-</code+</cli
-    - 因為 LVM thin 需要一些 VG 空間(至少 30 PE), 所以建立 lv 時必須保留 VG 一些空間給 LVM thin pool 使用 Exp. VG Free  PE / Size       76310 / 298.09 GB, 保留 100 PE : 76310-100=76210<code sh>+    - 因為 LVM thin 需要一些 VG 空間(至少 30 PE), 所以建立 lv 時必須保留 VG 一些空間給 LVM thin pool 使用 Exp. VG Free  PE / Size       76310 / 298.09 GB, 保留 100 PE : 76310-100=76210<cli>
 lvcreate -l 76210 -n ssd vg-ssd lvcreate -l 76210 -n ssd vg-ssd
-</code+</cli
-    - 將 LVM 轉換成 LVM thin <code sh>+    - 將 LVM 轉換成 LVM thin <cli>
 lvconvert --type thin-pool vg-ssd/ssd lvconvert --type thin-pool vg-ssd/ssd
-</code>+</cli>
     - 再透過 PVE web 介面 Datacenter -> Storage -> Add -> LVM-Thin     - 再透過 PVE web 介面 Datacenter -> Storage -> Add -> LVM-Thin
       - 輸入 ID Exp. ssd       - 輸入 ID Exp. ssd
行 206: 行 241:
     * pvcreate /dev/sdb1     * pvcreate /dev/sdb1
     * vgcreate vg-ssd /dev/sdb1     * vgcreate vg-ssd /dev/sdb1
-    * vgdisplay vg-ssd +    * vgdisplay vg-ssd <cli>
-<code sh>+
 vgremove vg-ssd vgremove vg-ssd
 pvremote /dev/sdb1 pvremote /dev/sdb1
-</code>+</cli>
 </note> </note>
  
行 217: 行 251:
 ===== 將一顆實體 硬碟 加入 VM 使用 ===== ===== 將一顆實體 硬碟 加入 VM 使用 =====
   * [[https://pve.proxmox.com/wiki/Physical_disk_to_kvm]]   * [[https://pve.proxmox.com/wiki/Physical_disk_to_kvm]]
-    - 先確認實體硬碟的廠牌、型號與序號 <code sh>+    - 先確認實體硬碟的廠牌、型號與序號 <cli>
 ls -l /dev/disk/by-id/ | grep ata-* ls -l /dev/disk/by-id/ | grep ata-*
-</code+</cli
     - 確認要加入的實體硬碟連結 Exp. ata-TOSHIBA_DT01ACA300_Z3MH9S1GS     - 確認要加入的實體硬碟連結 Exp. ata-TOSHIBA_DT01ACA300_Z3MH9S1GS
-    - 加入 VM Exp. VM 編號 106 <code sh>+    - 加入 VM Exp. VM 編號 106 <cli>
 qm set 106 -virtio2 /dev/disk/by-id/ata-TOSHIBA_DT01ACA300_Z3MH9S1GS qm set 106 -virtio2 /dev/disk/by-id/ata-TOSHIBA_DT01ACA300_Z3MH9S1GS
-</code+</cli
-    - 檢查是否 VM 106 的設定檔有出現實體硬碟設定<code sh>+    - 檢查是否 VM 106 的設定檔有出現實體硬碟設定<cli>
 cat /etc/pve/qemu-server/106.conf cat /etc/pve/qemu-server/106.conf
-</code><cli> 
 : :
 virtio2: /dev/disk/by-id/ata-TOSHIBA_DT01ACA300_Z3MH9S1GS,size=2930266584K virtio2: /dev/disk/by-id/ata-TOSHIBA_DT01ACA300_Z3MH9S1GS,size=2930266584K
行 240: 行 273:
   * 主要問題是 vm 目前的主機端認為遷移目標主機有問題, 所以出現這樣的訊息..    * 主要問題是 vm 目前的主機端認為遷移目標主機有問題, 所以出現這樣的訊息.. 
   * 參考網址 - https://forum.proxmox.com/threads/no-such-cluster-node.35190/   * 參考網址 - https://forum.proxmox.com/threads/no-such-cluster-node.35190/
-  * 解決方式 - 連入遷移主機可以看到目標主機是離線狀態(實際上並沒有離線), 所以要重新啟動 pve-cluster corosync 服務<code sh>+  * 解決方式 - 連入遷移主機可以看到目標主機是離線狀態(實際上並沒有離線), 所以要重新啟動 pve-cluster corosync 服務<cli>
 systemctl restart pve-cluster corosync systemctl restart pve-cluster corosync
-</code>+</cli> 
 + 
 +===== migration 出現 volume 'xxx' already exists 問題 ===== 
 +  * 主要問題是 vm/ct 的硬碟檔名已出現在遷移目標的主機內, 所以出現這樣的訊息.. 可能之前遷移過程失敗沒有正確移除, 或是之前所建立的 vm/ct 移除時的硬碟沒有移除所造成硬碟檔名重複 
 +  * 解決方式 - 連入遷移主機將檔案移除即可, 如果是 zfs 可以使用 zfs destroy 方式移除, Exp. local-zfs/subvol-109-disk-1 是出現重複的硬碟<cli> 
 +root@aac:~# zfs list 
 +NAME                          USED  AVAIL     REFER  MOUNTPOINT 
 +local-zfs                    9.60G   889G      128K  /local-zfs 
 +local-zfs/subvol-103-disk-0   522M  7.49G      522M  /local-zfs/subvol-103-disk-0 
 +
 +local-zfs/subvol-109-disk-1  2.99G  5.01G     2.99G  /local-zfs/subvol-109-disk-1 
 +
 +local-zfs/subvol-131-disk-0  2.31G  13.7G     2.31G  /local-zfs/subvol-131-disk-0 
 +rpool                        1.32G   227G      104K  /rpool 
 +rpool/ROOT                   1.32G   227G       96K  /rpool/ROOT 
 +rpool/ROOT/pve-1             1.32G   227G     1.32G 
 +rpool/data                     96K   227G       96K  /rpool/data 
 +root@aac:~# zfs destroy -r local-zfs/subvol-109-disk-1 
 +</cli>
  
 ===== migration 出現 Host key verification failed 問題 ===== ===== migration 出現 Host key verification failed 問題 =====
行 259: 行 310:
 Warning: Permanently added 'pve-45' (ECDSA) to the list of known hosts. Warning: Permanently added 'pve-45' (ECDSA) to the list of known hosts.
 </cli> </cli>
 +<WRAP center round tip 60%>
 +  * 如果是因為之前有移除與新增設定相同 IP 或 hostname 的節點, 因為之前的 ssh fingerprint / authorized_keys 在各節點都還有殘存, 所以需要在新增的節點上執行以下命令<cli>pvecm updatecerts</cli>
 +</WRAP>
 +
  
 ===== online migration 使用本機硬碟的 VM ===== ===== online migration 使用本機硬碟的 VM =====
行 264: 行 319:
   * PVE Cluster 內的 node 有相同名稱的 Local Storage Exp. ssd-zfs   * PVE Cluster 內的 node 有相同名稱的 Local Storage Exp. ssd-zfs
   * VM 不能設定 Replication 設定   * VM 不能設定 Replication 設定
-  * 在 VM 所在的節點 shell 下以下的命令<file>qm migration <vmid> <目標節點名稱> --with-local-disks --online</file>Exp. VM 原本在節點 TP-PVE-250 , vmid: 104 , 目標節點名稱: TP-PVE-249 , 在 TP-PVE-250 節點 shell 下以下命令<code sh>+  * 在 VM 所在的節點 shell 下以下的命令<file>qm migration <vmid> <目標節點名稱> --with-local-disks --online</file>Exp. VM 原本在節點 TP-PVE-250 , vmid: 104 , 目標節點名稱: TP-PVE-249 , 在 TP-PVE-250 節點 shell 下以下命令<cli>
 root@TP-PVE-250:~# qm migrate 104 TP-PVE-249 --with-local-disks --online root@TP-PVE-250:~# qm migrate 104 TP-PVE-249 --with-local-disks --online
-</code>+</cli>
   * 會出現先將 VM Disk 複製過去目標節點, 之後會將記憶體資料同步過去目標節點, 才完成切換, 所以 VM Disk 如果愈大, 遷移時間就會愈久   * 會出現先將 VM Disk 複製過去目標節點, 之後會將記憶體資料同步過去目標節點, 才完成切換, 所以 VM Disk 如果愈大, 遷移時間就會愈久
   * 參考網址 : https://blog.jason.tools/2018/12/pve-local-disk-migration.html   * 參考網址 : https://blog.jason.tools/2018/12/pve-local-disk-migration.html
 +
 +===== migration 使用第二張網卡的設定方式 =====
 +  * 因為 migration 過程可能會需要使用大量頻寬, 所以指定走另外一個網卡介面應該會比較合適
 +  * 參考 - http://blog.jason.tools/2019/01/pve-migrate-network.html
 +  * Exp. 第二張網卡網路的 Subnet 是 192.168.100.0/24 , 所以直接修改<cli>vi /etc/pve/datacenter.cfg</cli><file>
 +:
 +migration: secure,network=192.168.100.0/24
 +</file>
  
 ===== 設定使用 iSCSI 的 LVM Storage 方式 ===== ===== 設定使用 iSCSI 的 LVM Storage 方式 =====
   * 先確認已經有 iSCSI 的分享來源 Exp. [[tech/freenas_iscsi|FreeNAS]] IP: 192.168.11.246   * 先確認已經有 iSCSI 的分享來源 Exp. [[tech/freenas_iscsi|FreeNAS]] IP: 192.168.11.246
   * 登入 PVE Node 掛載 iSCSI Volume    * 登入 PVE Node 掛載 iSCSI Volume 
-    - 先確認 iSCSI 分享的 target <code sh>+    - 先確認 iSCSI 分享的 target <cli>
 iscsiadm -m discovery -t sendtargets -p 192.168.11.246 iscsiadm -m discovery -t sendtargets -p 192.168.11.246
-</code><cli>+
 192.168.11.246:3260,-1 iqn.2005-10.org.freenas.ctl:freenas 192.168.11.246:3260,-1 iqn.2005-10.org.freenas.ctl:freenas
 </cli> </cli>
-    - 登錄 iSCSI target <code sh>+    - 登錄 iSCSI target <cli>
 iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:freenas -p 192.168.11.246 -l iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:freenas -p 192.168.11.246 -l
-</code><cli>+
 Logging in to [iface: default, target: iqn.2005-10.org.freenas.ctl:freenas, portal: 192.168.11.246,3260] (multiple) Logging in to [iface: default, target: iqn.2005-10.org.freenas.ctl:freenas, portal: 192.168.11.246,3260] (multiple)
 Login to [iface: default, target: iqn.2005-10.org.freenas.ctl:freenas, portal: 192.168.11.246,3260] successful. Login to [iface: default, target: iqn.2005-10.org.freenas.ctl:freenas, portal: 192.168.11.246,3260] successful.
 </cli> </cli>
-    - 設定開機可以自動登錄 iSCSI <code sh>+    - 設定開機可以自動登錄 iSCSI <cli>
 iscsiadm -m node -p 192.168.11.246 -o update -n node.startup -v automatic iscsiadm -m node -p 192.168.11.246 -o update -n node.startup -v automatic
-</code>+</cli>
     - 如果有其他 PVE Node 每一台都執行以上兩個步驟     - 如果有其他 PVE Node 每一台都執行以上兩個步驟
 +<note>
 +如果 iscsi 的連線要移除, 語法如下<cli>
 +iscsiadm -m node -T iqn.2005-10.org.freenas.ctl:freenas -p 192.168.11.246 -o delete
 +</cli>
 +</note>
   * 將 iSCSI 的 Volume 建立成為 LVM partition   * 將 iSCSI 的 Volume 建立成為 LVM partition
     - 執行後可以使用 fdisk -l 看到 PVE Node 多出來一個 Disk Exp. /dev/sdg <code>     - 執行後可以使用 fdisk -l 看到 PVE Node 多出來一個 Disk Exp. /dev/sdg <code>
行 297: 行 365:
 I/O size (minimum/optimal): 131072 bytes / 1048576 bytes I/O size (minimum/optimal): 131072 bytes / 1048576 bytes
 </cli> </cli>
-    - 使用 fdisk /dev/sdg 建立 LVM partition <code sh>+    - 使用 fdisk /dev/sdg 建立 LVM partition <cli>
 fdisk /dev/sdg fdisk /dev/sdg
-</code>+</cli>
       - Command (m for help): g      (建立GPT Partition Table)       - Command (m for help): g      (建立GPT Partition Table)
       - Command (m for help): n      (建立新的 Partition )       - Command (m for help): n      (建立新的 Partition )
行 305: 行 373:
       - Command (m for help): p      (列出新建立的 Partition 是否正確)       - Command (m for help): p      (列出新建立的 Partition 是否正確)
       - Command (m for help): w      (沒問題就 w 寫入)       - Command (m for help): w      (沒問題就 w 寫入)
-    - 使用 pvcreate 建立 LVM 的 Physical Volume(PV) <code sh>+    - 使用 pvcreate 建立 LVM 的 Physical Volume(PV) <cli>
 pvcreate /dev/sdg1 pvcreate /dev/sdg1
-</code+</cli
-    - 使用 vgcreate 建立 LVM 的 Volume Group (VG) <code sh>+    - 使用 vgcreate 建立 LVM 的 Volume Group (VG) <cli>
 vgcreate vg-pve /dev/sdg1 vgcreate vg-pve /dev/sdg1
-</code>+</cli>
     - 在 PVE Web UI -> Datacenter -> Storage -> Add -> LVM {{:tech:2018081001.png?400|}}     - 在 PVE Web UI -> Datacenter -> Storage -> Add -> LVM {{:tech:2018081001.png?400|}}
     - 在彈出的 Add:LVM 視窗內 {{ :tech:2018081002.png?400|}}     - 在彈出的 Add:LVM 視窗內 {{ :tech:2018081002.png?400|}}
行 331: 行 399:
     * https://pve.proxmox.com/wiki/Storage     * https://pve.proxmox.com/wiki/Storage
  
 +===== CT(lxc) 設定掛載 CIFS 網路磁碟方式 =====
 +  - 這問題主要是預設建立 CT 會是 UnPrivilegied 模式, 所以建立時必須要將 UnPrivilegied 打勾拿掉  {{:tech:2021052401.png?600|}}
 +  - 建立之後還要將 Features 的 CIFS 打勾 {{:tech:2021052402.png?600|}} 
 +  - 這樣就可以將 cifs 掛載上去 Exp. <cli>cat /etc/fstab
 +# UNCONFIGURED FSTAB FOR BASE SYSTEM
 +//10.20.0.131/data/template/iso/ /omv-iso cifs username=isouser,password=xxxx,rw,users,dir_mode=0777,file_mode=0777 0 0
 +</cli>
 +  * 參考網址 :
 +    * https://forum.proxmox.com/threads/vm-and-lxc-mount-cifs-problem-solved.64157
 ===== 中斷 Backup 的處理方式 =====  ===== 中斷 Backup 的處理方式 ===== 
   * 正常只要透過 UI 的 Tasks->點開正在 Backup 的項目->Stop 即可中斷   * 正常只要透過 UI 的 Tasks->點開正在 Backup 的項目->Stop 即可中斷
   * 但有時無法順利中斷, 或是中斷後對 VM 進行操作時出現 **TASK ERROR: VM is locked (backup)** 的錯訊息   * 但有時無法順利中斷, 或是中斷後對 VM 進行操作時出現 **TASK ERROR: VM is locked (backup)** 的錯訊息
-  * 可以在PVE主機端透過以下語法進行: Exp. VM id = 111<code sh>+  * 可以在PVE主機端透過以下語法進行: Exp. VM id = 111<cli>
 vzdump -stop vzdump -stop
 ps -ef | grep vzdump ps -ef | grep vzdump
 qm unlock 111 qm unlock 111
-</code>+</cli>
   * 參考網址 :    * 參考網址 : 
     * https://forum.proxmox.com/threads/proxmox-backup-wont-stop.23219/      * https://forum.proxmox.com/threads/proxmox-backup-wont-stop.23219/ 
 +<note tip> 
 +**對備份到共用目錄 exp. NFS 無法中斷的處理方式** 
 +  * 參考 - https://forum.proxmox.com/threads/cannot-kill-vzdump-process.55038/ 
 +  * 先確認 vzdump 程式是否 stat 出現 'D'(已經是 uninterruptible sleep 狀態) Exp. <cli> 
 +root@PVE-13:~# ps ax | grep vzdump 
 +2991321 ?        Ds     0:01 task UPID:PVE-13:002DA4D9:064C84B2:6598045A:vzdump::root@pam: 
 +3158042 pts/0    S+     0:00 grep vzdump 
 +</cli>如果 stat 有出現 D 的狀態, 原則上需要重開機才能砍掉 
 +  * 如果不想重開機, 可以試看看強制卸載該 node 的共用目錄後, 再中斷 vzdump 的 Workaround 方式, Exp. <cli> 
 +root@PVE-13:/# cd /mnt/pve 
 +root@PVE-13:/mnt/pve# ls 
 +omv-nfs  NFS-13 
 +root@PVE-13:/mnt/pve# umount -f /mnt/pve/NFS-13 
 +umount.nfs4: /mnt/pve/NFS-13: device is busy 
 +root@PVE-13:/mnt/pve# umount -f -l /mnt/pve/NFS-13 && vzdump --stop 
 +root@PVE-13:/mnt/pve# ps -ef | grep vzdump 
 +root     3158849 3019745  0 06:26 pts/0    00:00:00 grep vzdump 
 +</cli> 
 +</note>
 ===== 設定自動 Snapshot 的方式 ===== ===== 設定自動 Snapshot 的方式 =====
 <note warning> <note warning>
行 350: 行 445:
 </note> </note>
   * 使用套件 [[https://github.com/EnterpriseVE/eve4pve-autosnap/releases|eve4pve-autosnap]]   * 使用套件 [[https://github.com/EnterpriseVE/eve4pve-autosnap/releases|eve4pve-autosnap]]
-  * 安裝語法 <code sh>+  * 安裝語法 <cli>
 wget https://github.com/EnterpriseVE/eve4pve-autosnap/releases/download/0.1.8/eve4pve-autosnap_0.1.8_all.deb wget https://github.com/EnterpriseVE/eve4pve-autosnap/releases/download/0.1.8/eve4pve-autosnap_0.1.8_all.deb
 dpkg -i eve4pve-autosnap_0.1.8_all.deb dpkg -i eve4pve-autosnap_0.1.8_all.deb
-</code+</cli
-  * 建立 vm ID: 115 每小時自動快照一次, 保留 24 份 <code sh>+  * 建立 vm ID: 115 每小時自動快照一次, 保留 24 份 <cli>
 eve4pve-autosnap create --vmid=115 --label='hourly' --keep=24 eve4pve-autosnap create --vmid=115 --label='hourly' --keep=24
-</code>+</cli>
   * 這樣每小時 VM 115 就會自動產生一份快照 ++參考 PVE 管理畫面|{{:tech:2019042201.png}}++   * 這樣每小時 VM 115 就會自動產生一份快照 ++參考 PVE 管理畫面|{{:tech:2019042201.png}}++
   * 參考網址 :   * 參考網址 :
行 369: 行 464:
 </code> </code>
   * 查看原因是前一天自動備份時出現異常, 導致目前這個 CT 155 是在 lock 狀態, 查看 Snapshots 也有一個 backup 的 snapshot, 無法手動刪除, 原因也是 snapshot-delete   * 查看原因是前一天自動備份時出現異常, 導致目前這個 CT 155 是在 lock 狀態, 查看 Snapshots 也有一個 backup 的 snapshot, 無法手動刪除, 原因也是 snapshot-delete
-  * 可以在 PVE 主機端透過以下語法解開 lock 狀態: Exp. CT id=115<code sh>+  * 可以在 PVE 主機端透過以下語法解開 lock 狀態: Exp. CT id=115<cli>
 pct unlock 115 pct unlock 115
-</code>+</cli>
   * 完成後就可以刪除 CT 115 的 snapshot 以及進行 backup   * 完成後就可以刪除 CT 115 的 snapshot 以及進行 backup
  
行 382: 行 477:
   * 參考網址 :   * 參考網址 :
     * https://forum.proxmox.com/threads/task-error-vm-is-locked-snapshot.24012/     * https://forum.proxmox.com/threads/task-error-vm-is-locked-snapshot.24012/
 +
 +===== CT 啟動失敗出現 run_buffer: 321 Script exited with status 2 的解決方式 ===== 
 +  * 更新 PVE 系統重開後, 發現部分 CT 無法正常啟動, 出現<cli>
 +run_buffer: 321 Script exited with status 2
 +lxc_init: 847 Failed to run lxc.hook.pre-start for container "1xx"
 +__lxc_start: 2008 Failed to initialize container "1xx"
 +TASK ERROR: startup for container '1xx' failed
 +</cli>
 +  * 只要在 PVE 主機內安裝 binutils 即可解決這問題<cli>
 +apt install binutils 
 +</cli>
 +
 +  * 參考網址 :
 +    * https://forum.proxmox.com/threads/proxmox-lxc-start-issue-after-apt-upgrade.118117/
  
 ===== Replication 異常解決方式 ===== ===== Replication 異常解決方式 =====
行 393: 行 502:
   * 解決方式   * 解決方式
     - 將備份時間錯開, Exp 原本設定 1:30 備份要改成 1:25 ++參考PVE畫面|{{:tech:2019112402.png}}++     - 將備份時間錯開, Exp 原本設定 1:30 備份要改成 1:25 ++參考PVE畫面|{{:tech:2019112402.png}}++
-    - 中斷正在 freeze 的程序<code sh>+    - 中斷正在 freeze 的程序<cli>
 ps -ef | grep free ps -ef | grep free
 kill <程序ID> kill <程序ID>
-</code><cli>+
 root@nuc:~# ps -ef | grep free root@nuc:~# ps -ef | grep free
 root     13352 11857  0 20:06 pts/8    00:00:00 grep free root     13352 11857  0 20:06 pts/8    00:00:00 grep free
行 415: 行 524:
         * zpool list : 查看有哪些 ZFS pool         * zpool list : 查看有哪些 ZFS pool
         * zfs list : 查看有哪些 ZFS dataset         * zfs list : 查看有哪些 ZFS dataset
-        * zfs destroy : 將不要的 ZFS dataset 刪除掉 Exp. <code sh>zfs destroy -r rpool/data/subvol-105-disk-1</code+        * zfs destroy : 將不要的 ZFS dataset 刪除掉 Exp. <cli>zfs destroy -r rpool/data/subvol-105-disk-1</cli
-        * zfs create  : 建立一個新的 ZFS dataset Exp. 建立 400G 命名 v400 的 dataset 執行語法:<code sh>zfs create -V 400g rpool/v400</code+        * zfs create  : 建立一個新的 ZFS dataset Exp. 建立 400G 命名 v400 的 dataset 執行語法:<cli>zfs create -V 400g rpool/v400</cli
-    * 安裝 iSCSI Target 服務<code sh>+    * 安裝 iSCSI Target 服務<cli>
 apt-get install tgt apt-get install tgt
-</code>+</cli>
     * 設定 iSCSI Target Exp.      * 設定 iSCSI Target Exp. 
       * 儲存路徑 : 上面 zfs create 建立的 rpool/v400 對應路徑 - /dev/zvol/rpool/v400       * 儲存路徑 : 上面 zfs create 建立的 rpool/v400 對應路徑 - /dev/zvol/rpool/v400
行 434: 行 543:
 </target> </target>
 </code> </code>
-    * 啟動與設定 iSCSI Target 服務開機自動啟動<code sh>+    * 啟動與設定 iSCSI Target 服務開機自動啟動<cli>
 service tgt start service tgt start
 systemctl enable tgt systemctl enable tgt
-</code>+</cli>
   * 參考網址 :   * 參考網址 :
     * https://www.tecmint.com/setup-iscsi-target-and-initiator-on-debian-9/     * https://www.tecmint.com/setup-iscsi-target-and-initiator-on-debian-9/
行 536: 行 645:
 ===== Guest VM 安裝 Agent ===== ===== Guest VM 安裝 Agent =====
   * 安裝程序 :    * 安裝程序 : 
-    * CentOS VM <code sh>+    * CentOS VM <cli>
 yum install qemu-guest-agent yum install qemu-guest-agent
-</code+systemctl start qemu-guest-agent 
-    * Debian VM <code sh>+</cli
 +    * Debian / Ubuntu VM <cli>
 apt install qemu-guest-agent apt install qemu-guest-agent
-</code>+systemctl start qemu-guest-agent 
 +</cli> 
 +    * Alpine VM <cli> 
 +apk add qemu-guest-agent 
 +</cli> 修改 /etc/conf.d/qemu-guest-agent 設定 GA_PATH="/dev/vport2p1"<file> 
 +
 +# Specifies the device path for the communications back to QEMU on the host 
 +# Default: /dev/virtio-ports/org.qemu.guest_agent.0 
 +GA_PATH="/dev/vport2p1" 
 +</file><cli> 
 +rc-update add qemu-guest-agent 
 +rc-service qemu-guest-agent restart 
 +</cli> 
 +    * Freebsd <cli> 
 +pkg install qemu-guest-agent 
 +sysrc qemu_guest_agent_enable="YES" 
 +service qemu-guest-agent start 
 +</cli> 
 +    * Windows VM  
 +      - 先下載 [[https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/stable-virtio/virtio-win.iso |virtio-win.iso]] 掛上 Windows 的 VM CD-ROM 
 +      - 進入光碟路徑內找到 **virtio-win-gt-x64** 與 **guest-agent/qemu-ga-x86_64** 進行安裝  
 +      - 重新啟動 Windows VM
   * PVE 端設定 VM -> Option -> Qemu Agent -> [v]Enabled   * PVE 端設定 VM -> Option -> Qemu Agent -> [v]Enabled
   * {{:tech:2019031101.png}}   * {{:tech:2019031101.png}}
行 550: 行 681:
   * 參考網址 - https://pve.proxmox.com/wiki/Qemu-guest-agent   * 參考網址 - https://pve.proxmox.com/wiki/Qemu-guest-agent
  
-===== CT(Centos7) 忘記 root 密碼重設方式 =====+===== CT 忘記 root 密碼重設方式 ===== 
 +  * 參考網址 - https://pve.proxmox.com/wiki/Root_Password_Reset 
 +  * 執行方式 <cli> 
 +pct enter <VEID> 
 +passwd  
 +<new password> 
 +exit 
 +</cli> 
 +++++之前 (Centos7) 處理方式| 
   * 參考網址 - https://www.thegeekdiary.com/how-to-change-password-of-an-lxc-container-user-account/   * 參考網址 - https://www.thegeekdiary.com/how-to-change-password-of-an-lxc-container-user-account/
   * 執行方式 :   * 執行方式 :
行 557: 行 696:
     - 輸入 password root 重設 root 密碼     - 輸入 password root 重設 root 密碼
     * 參考以下實際操作畫面 {{:tech:2019121301.png}}     * 參考以下實際操作畫面 {{:tech:2019121301.png}}
-===== PVE 主機安裝 snmpd ===== +++++
-  * 安裝與設定程序<code sh> +
-apt-get install snmpd +
-cd /etc/snmp/ +
-mv snmpd.conf snmpd.conf.org +
-vi snmpd.conf +
-+
-依照實際需要編輯 +
-+
-service snmpd restart +
-systemctl enable snmpd +
-</code> +
-  * 參考網址 : https://www.svennd.be/how-to-install-snmp-service-on-proxmox/ +
- +
-===== PVE 主機設定 Postfix 由 GMail 寄發信件方式 ===== +
-  * 假設預計 Relay 的 SMTP Server - smtp.gmail.com:587 (STARTTLS) 認證帳號:username 密碼:password +
-  - 安裝相關套件 <code sh> +
-apt-get install libsasl2-modules +
-</code> +
-  - 編輯 /etc/postfix/main.cf <file> +
-+
-# GMail Setting +
-relayhost = [smtp.gmail.com]:587 +
-#  use tls +
-smtp_use_tls=yes +
-# use sasl when authenticating to foreign SMTP servers +
-smtp_sasl_auth_enable = yes +
-# path to password map file +
-smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd +
-# list of CAs to trust when verifying server certificate +
-smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt +
-# eliminates default security options which are imcompatible with gmail +
-smtp_sasl_security_options = noanonymous +
-smtp_always_send_ehlo = yes +
-</file> +
-  - 編輯 /etc/postfix/sasl_passwd <file> +
-[smtp.gmail.com]:587  username:password +
-</file> +
-  - 更改檔案權限 <code sh> +
-postmap /etc/postfix/sasl_passwd +
-cd /etc/postfix +
-chown postfix /etc/postfix/sasl_passwd* +
-</code> +
-  - 讓 postfix 新設定生效 <code sh> +
-/etc/init.d/postfix reload +
-</code> +
- +
-  * 參考網址 : http://mhawthorne.net/posts/postfix-configuring-gmail-as-relay.html +
- +
-<note> +
-  * 如果 Google 的帳號有設定二階段認證, 密碼的部份就必須到 Google 帳號產生應用程式密碼  +
-  * 參考 - https://support.google.com/mail/?p=InvalidSecondFactor +
-  * ++看建立應用程式密碼畫面|{{:tech:2019110801.png}} \\ {{:tech:2019110802.png}}++ +
-</note>+
 ===== 設定 VM 的開機與關機順序 ===== ===== 設定 VM 的開機與關機順序 =====
   * PVE Web UI -> 選定 VM -> Options -> Start/Shutdown order -> Edit    * PVE Web UI -> 選定 VM -> Options -> Start/Shutdown order -> Edit 
行 625: 行 711:
     * 新增完成後就點下 Order Certificate Now 就會自動進行申請 SSL 憑證與佈署到 PVE 的自動程序, 如果都沒問題就可完成 \\ {{:tech:nuc_-_proxmox_virtual_environment_-_google_chrome_2020_7_11_下午_10_18_52.png}}     * 新增完成後就點下 Order Certificate Now 就會自動進行申請 SSL 憑證與佈署到 PVE 的自動程序, 如果都沒問題就可完成 \\ {{:tech:nuc_-_proxmox_virtual_environment_-_google_chrome_2020_7_11_下午_10_18_52.png}}
     * 接著在瀏覽器網只用 domain name 就不會出現憑證警告訊息 \\ {{:tech:2020071101.png?500}}      * 接著在瀏覽器網只用 domain name 就不會出現憑證警告訊息 \\ {{:tech:2020071101.png?500}} 
 +
 +===== VM 寫入效能調整議題 =====
 +  * 參考 - https://pve.proxmox.com/wiki/Performance_Tweaks
 +  * 原則上 Disk Cache 使用預設 none 模式即可(Host Page Cache:disabled, Disk Write Cache:enabled)  \\ {{:tech:20231018-0557.png|}}
 +  * 也可調整為 writeback 模式後(Host Page Cache:enabled, Disk Write Cache:enabled), 進入 VM 內使用 wget -qO- bench.sh | bash 進行效能測試來比對調整後的結果 \\ {{:tech:20231018-0605.png|}}
 +
 +
 +==== 讓 PVE 6 安裝 CentOS7 的 CT 移轉至 PVE 7 的妥協做法 ====
 +  * [[https://www.ichiayi.com/tech/pve6_and_pve7#%E8%AE%93_pve_6_%E5%85%A7%E7%9A%84_centos7_%E7%9A%84_ct_%E7%A7%BB%E8%BD%89%E8%87%B3_pve_7_%E7%9A%84%E5%A6%A5%E5%8D%94%E5%81%9A%E6%B3%95| 在 PVE 7 的主機 kernel option 加上 systemd.unified_cgroup_hierarchy=0 來改變使用之前 CGroup 版本]]
 +
 +==== PVE ISO 安裝無法啟動 XWindow 的解決方式 ====
 +  * 參考 - https://forum.proxmox.com/threads/generic-solution-when-install-gets-framebuffer-mode-fails.111577/
 +  * 對於比較新的硬體可能 ISO 內還未支援 X driver, 所以會出現中斷在以下的訊息, 無法進入 GUI 安裝畫面<cli>
 +Starting the installer GUI - see tty2 (CTRL-ALT-F2) for any errors...
 +</cli>按下 (CRTL-ALT-F2) 出現以下類似的錯誤訊息<cli>
 +:
 +(EE)
 +Fatal server error:
 +(EE) Cannot run in framebuffer mode. Please spacify busIDs 
 +(EE)
 +:
 +</cli>
 +  * 切回 Console 畫面編輯 X Driver config file
 +    * 先以 lspci | grep -i vga 來確認 vga pci 編號<cli>
 +root@TN1-PVE-103:~# lspci | grep -i vga
 +00:02.0 VGA compatible controller: Intel Corporation Device a780 (rev 04)
 +</cli>
 +    * 編輯 config 檔案 Exp. /usr/share/X11/xorg.conf.d/my-vga.conf <file>
 +Section "Device"
 +    Identifier "Card0"
 +    Driver "fbdev"
 +    BusID "pci0:00:02:0:"
 +EndSection
 +</file>
 +  * 重啟 XWindows <cli>
 +xinit -- -dpi 96 >/dev/tty2 2>&1
 +</cli>
 +
 ===== 相關頁面 ===== ===== 相關頁面 =====
 {{topic>pve}} {{topic>pve}}
  
-{{tag>pve cloudos 虛擬化 opensource}} +{{tag>pve tips cloudos 虛擬化 opensource}}
  • tech/pvetips.1610862326.txt.gz
  • 上一次變更: 2021/01/17 13:45
  • jonathan