差異處
這裏顯示兩個版本的差異處。
- | 兩邊的前次修訂版 前次修改 下次修改 |
- | tech:pvetips [2020/09/02 17:43] – 還原成舊版 (2020/09/01 09:08) jonathan_tsai |
---|---|
+ | 前次修改 |
+ | tech:pvetips [2025/04/11 15:28] (目前版本) – [Proxmox VE(PVE) 安裝相關紀錄] jonathan |
@@ 行 -1,99 +1,143 @@ | |
====== Proxmox VE(PVE) 安裝相關紀錄 ====== | |
* 版本資訊(Roadmap) - https:// | |
===== 更改 Package Repositories ===== | |
* [[https:// | |
* 參考網址 - https:// | |
| |
apt upgrade | |
</ | |
* 安裝與設定程序< | |
cd /etc/ | |
mv snmpd. | |
vi snmpd.conf | |
: | |
依照實際需要編輯 | |
: | |
service snmpd restart | |
systemctl enable snmpd | |
</cli> | |
| |
==== | |
| |
* 假設預計 Relay 的 SMTP Server - smtp.gmail.com:587 (STARTTLS) 認證帳號: | |
- 安裝相關套件 < | |
apt install libsasl2-modules -y | |
</cli> | |
- 編輯 | |
: | |
# GMail Setting | |
relayhost = [smtp. | |
# use tls | |
smtp_use_tls=yes | |
#relayhost = [mail. | |
# | |
# | |
# | |
# path to password map file | |
smtp_sasl_password_maps = hash:/etc/ | |
# list of CAs to trust when verifying server certificate | |
smtp_tls_CAfile = / | |
# eliminates default security options which are imcompatible with gmail | |
smtp_sasl_security_options = noanonymous | |
smtp_always_send_ehlo = yes | |
</ | |
| |
[smtp. | |
# | |
</ | |
| |
postmap | |
cd / | |
chown postfix / | |
</ | |
| |
/ | |
</ | |
< | |
| |
* | |
| |
</ | |
===== 移除 cluster 內的一個 node ===== | |
| |
| |
* 先進入 cluster 內其中一台 (不能是 pve01) | |
* 執行以下的語法將 pve01 刪除< | |
pvecm nodes | |
pvecm delnode pve01 | |
pvecm status | |
rm -rf / | |
</ | |
* 進入每個 node 將 pve cluster 服務重新啟動< | |
systemctl restart corosync | |
systemctl restart pve-cluster | |
</cli> | |
* < | |
* | |
| |
| |
</ | |
===== 一個新安裝 node 加入 cluster ===== | |
<WRAP tip> | |
透過 Web 介面直接加入會比較簡單, | |
</ | |
* Exp. pve02 加入 cluster, 這 cluster 其中一個 node 是 192.168.11.250 | |
* 進入 pve02 主機內, 執行以下指令 < | |
pvecm add 192.168.11.250 | |
</ | |
* 會出現需要輸入 192.168.11.250 內的 root 密碼 | |
* 如果沒有異常訊息就完成加入 cluster | |
* < | |
| |
| |
</ | |
===== 有主機故障, | |
* 因為預設 cluster 的 quorum 要兩個才能運作, | |
pvecm expected 1 | |
service pve-cluster restart | |
</ | |
* 參考網址 - http:// | |
===== 移除 Cluster 的方式 ===== | |
* [[https:// | |
pvecm nodes | |
systemctl stop pve-cluster | |
systemctl stop corosync | |
pmxcfs -l | |
rm / | |
rm -rf / | |
killall pmxcfs | |
systemctl start pve-cluster | |
</ | |
===== 更改 hostname 方式 ===== | |
* 參考 - https:// | |
===== 更改主機 IP 方式 ===== | |
@@ 行 -101,31 +145,31 @@ | |
- Web UI 更改 IP : System-> | |
- 更改 /etc/hosts 內的 IP | |
- 關閉 cluster 服務< | |
- 修改 / | |
- 重新開機 | |
===== 設定 SSD 硬碟當 Swap Memory 方式 ===== | |
* 當 PVE 系統安裝在 USB or HD 上時, 預設會將 Swap Memory 指定在其中的一個 Partition 上, 導致使用到 Swap Memory 效能會變很差 | |
* 先查看目前系統記憶體使用狀況 < | |
free -m | |
swapon -s | |
</ | |
==== 建立 Linux Swap 方式 ==== | |
* 假設 SSD 所在 /dev/sdc , 透過 fdisk 建立 16GB 的 Swap Memory Partition < | |
fdisk /dev/sdc | |
</ | |
- 建立 16GB Partition< | |
Command (m for help): n | |
Partition number (1-128, default 1): 1 | |
First sector (34-937703054, | |
Last sector, +sectors or +size{K, | |
</ | |
- 更改 type 為 Linux Swap< | |
Command (m for help): t | |
Selected partition 1 | |
Hex code (type L to list all codes): 19 | |
Changed type of partition 'Linux swap' to 'Linux swap'. | |
</ | |
- 檢視與寫入 < | |
Command (m for help): p | |
: | |
@@ 行 -135,20 +179,21 @@ | |
: | |
Syncing disks. | |
</ | |
- 使用 mkswap 讓系統知道 /dev/sdc1 是 Swap Memory Partition < | |
mkswap /dev/sdc1 | |
</ | |
- 讓 /dev/sdc1 的 Swap Memory 立即生效< | |
swapon /dev/sdc1 | |
</ | |
- 使用 swapon -s 列出目前的 Swap Memory < | |
: | |
/ | |
/ | |
</ | |
- 確認 /dev/sdc1 的 id < | |
blkid | grep swap | |
/dev/sdc1: UUID=" | |
/dev/zd0: UUID=" | |
</ | |
- 關閉原本 /dev/zd0 的 swap memory 設定, 修改 <code h / | |
: | |
@@ 行 -157,25 +202,25 @@ | |
: | |
</ | |
- 重新啟動 pve node < | |
sync; | |
</ | |
* 參考 - https:// | |
==== 建立 ZFS Swap 方式 ==== | |
* 假設 SSD 所在的 zfs pool 為 rpool | |
- 關閉所有swap:< | |
- 建立 16GB ZFS swap: < | |
zfs create -V 16G -b $(getconf PAGESIZE) -o compression=zle \ | |
-o logbias=throughput -o sync=always \ | |
-o primarycache=metadata -o secondarycache=none \ | |
-o com.sun: | |
</ | |
- 格式化swap分區:< | |
- 增加新的swap到 /etc/fstab :< | |
- 啟用所有swap:< | |
- 調整Swap優先權:< | |
echo " | |
sysctl -p | |
</ | |
* 參考 - https:// | |
@@ 行 -184,15 +229,15 @@ | |
* [[https:// | |
- [[https:// | |
- [[https:// | |
pvcreate /dev/sdb1 | |
vgcreate vg-ssd /dev/sdb1 | |
vgdisplay vg-ssd | |
</ | |
- 因為 LVM thin 需要一些 VG 空間(至少 30 PE), 所以建立 lv 時必須保留 VG 一些空間給 LVM thin pool 使用 Exp. VG Free PE / Size 76310 / 298.09 GB, 保留 100 PE : 76310-100=76210< | |
lvcreate -l 76210 -n ssd vg-ssd | |
</ | |
- 將 LVM 轉換成 LVM thin < | |
lvconvert --type thin-pool vg-ssd/ssd | |
</ | |
- 再透過 PVE web 介面 Datacenter -> Storage -> Add -> LVM-Thin | |
- 輸入 ID Exp. ssd | |
@@ 行 -204,9 +249,8 @@ | |
* pvcreate /dev/sdb1 | |
* vgcreate vg-ssd /dev/sdb1 | |
* vgdisplay vg-ssd | |
< | |
vgremove vg-ssd | |
pvremote /dev/sdb1 | |
</ | |
</ | |
@@ 行 -215,17 +259,16 @@ | |
===== 將一顆實體 硬碟 加入 VM 使用 ===== | |
* [[https:// | |
- 先確認實體硬碟的廠牌、型號與序號 < | |
ls -l / | |
</ | |
- 確認要加入的實體硬碟連結 Exp. ata-TOSHIBA_DT01ACA300_Z3MH9S1GS | |
- 加入 VM Exp. VM 編號 106 < | |
qm set 106 -virtio2 / | |
</ | |
- 檢查是否 VM 106 的設定檔有出現實體硬碟設定< | |
cat / | |
: | |
virtio2: / | |
</ | |
- 關閉 VM , 再透過 PVE Web 介面重新啟動 | |
@@ 行 -238,7 +281,25 @@ | |
* 主要問題是 vm 目前的主機端認為遷移目標主機有問題, | |
* 參考網址 - https:// | |
* 解決方式 - 連入遷移主機可以看到目標主機是離線狀態(實際上並沒有離線), | |
systemctl restart pve-cluster corosync | |
</ | |
===== migration 出現 volume ' | |
* 主要問題是 vm/ct 的硬碟檔名已出現在遷移目標的主機內, | |
* 解決方式 - 連入遷移主機將檔案移除即可, | |
root@aac:~# zfs list | |
NAME USED AVAIL | |
local-zfs | |
local-zfs/ | |
: | |
local-zfs/ | |
: | |
local-zfs/ | |
rpool 1.32G | |
rpool/ | |
rpool/ | |
rpool/ | |
root@aac:~# zfs destroy -r local-zfs/ | |
</cli> | |
===== migration 出現 Host key verification failed 問題 ===== | |
@@ 行 -250,5 +311,5 @@ | |
2018-08-30 12:34:47 ERROR: migration aborted (duration 00:00:00): Can't connect to destination address using public key | |
TASK ERROR: migration aborted | |
</ | |
root@pve-55:/ | |
The authenticity of host ' | |
@@ 行 -256,5 +317,9 @@ | |
Are you sure you want to continue connecting (yes/no)? yes | |
Warning: Permanently added ' | |
</ | |
<WRAP center round tip 60%> | |
* 如果是因為之前有移除與新增設定相同 IP 或 hostname 的節點, 因為之前的 ssh fingerprint / authorized_keys 在各節點都還有殘存, | |
</ | |
===== online migration 使用本機硬碟的 VM ===== | |
@@ 行 -262,31 +327,44 @@ | |
* PVE Cluster 內的 node 有相同名稱的 Local Storage Exp. ssd-zfs | |
* VM 不能設定 Replication 設定 | |
* 在 VM 所在的節點 shell 下以下的命令< | |
root@TP-PVE-250: | |
</ | |
* 會出現先將 VM Disk 複製過去目標節點, | |
* 參考網址 : https:// | |
===== migration 使用第二張網卡的設定方式 ===== | |
* 因為 migration 過程可能會需要使用大量頻寬, | |
* 參考 - http:// | |
* Exp. 第二張網卡網路的 Subnet 是 192.168.100.0/ | |
: | |
migration: secure, | |
</ | |
===== 設定使用 iSCSI 的 LVM Storage 方式 ===== | |
* 先確認已經有 iSCSI 的分享來源 Exp. [[tech/ | |
* 登入 PVE Node 掛載 iSCSI Volume | |
- 先確認 iSCSI 分享的 target < | |
iscsiadm -m discovery -t sendtargets -p 192.168.11.246 | |
192.168.11.246: | |
</ | |
- 登錄 iSCSI target < | |
iscsiadm -m node -T iqn.2005-10.org.freenas.ctl: | |
Logging in to [iface: default, target: iqn.2005-10.org.freenas.ctl: | |
Login to [iface: default, target: iqn.2005-10.org.freenas.ctl: | |
</ | |
- 設定開機可以自動登錄 iSCSI < | |
iscsiadm -m node -p 192.168.11.246 -o update -n node.startup -v automatic | |
</ | |
- 如果有其他 PVE Node 每一台都執行以上兩個步驟 | |
< | |
如果 iscsi 的連線要移除, | |
iscsiadm -m node -T iqn.2005-10.org.freenas.ctl: | |
</ | |
</ | |
* 將 iSCSI 的 Volume 建立成為 LVM partition | |
- 執行後可以使用 fdisk -l 看到 PVE Node 多出來一個 Disk Exp. /dev/sdg < | |
fdisk -l</ | |
: | |
Disk /dev/sdg: 500 GiB, 536870912000 bytes, 1048576000 sectors | |
@@ 行 -294,8 +372,8 @@ | |
Sector size (logical/ | |
I/O size (minimum/ | |
</ | |
- 使用 fdisk /dev/sdg 建立 LVM partition < | |
fdisk /dev/sdg | |
</ | |
- Command (m for help): g (建立GPT Partition Table) | |
- Command (m for help): n (建立新的 Partition ) | |
@@ 行 -303,10 +381,10 @@ | |
- Command (m for help): p (列出新建立的 Partition 是否正確) | |
- Command (m for help): w (沒問題就 w 寫入) | |
- 使用 pvcreate 建立 LVM 的 Physical Volume(PV) < | |
pvcreate /dev/sdg1 | |
</ | |
- 使用 vgcreate 建立 LVM 的 Volume Group (VG) < | |
vgcreate vg-pve /dev/sdg1 | |
</ | |
- 在 PVE Web UI -> Datacenter -> Storage -> Add -> LVM {{: | |
- 在彈出的 Add:LVM 視窗內 {{ : | |
@@ 行 -329,15 +407,42 @@ | |
* https:// | |
===== CT(lxc) 設定掛載 CIFS 網路磁碟方式 ===== | |
- 這問題主要是預設建立 CT 會是 UnPrivilegied 模式, 所以建立時必須要將 UnPrivilegied 打勾拿掉 | |
- 建立之後還要將 Features 的 CIFS 打勾 {{: | |
- 這樣就可以將 cifs 掛載上去 Exp. < | |
# UNCONFIGURED FSTAB FOR BASE SYSTEM | |
// | |
</ | |
* 參考網址 : | |
* https:// | |
===== 中斷 Backup 的處理方式 ===== | |
* 正常只要透過 UI 的 Tasks-> | |
* 但有時無法順利中斷, | |
* 可以在PVE主機端透過以下語法進行: | |
vzdump -stop | |
ps -ef | grep vzdump | |
qm unlock 111 | |
</ | |
* 參考網址 : | |
* https:// | |
<note tip> | |
**對備份到共用目錄 exp. NFS 無法中斷的處理方式** | |
* 參考 - https:// | |
* 先確認 vzdump 程式是否 stat 出現 ' | |
root@PVE-13: | |
2991321 ? Ds 0:01 task UPID: | |
3158042 pts/0 S+ 0:00 grep vzdump | |
</ | |
* 如果不想重開機, | |
root@PVE-13:/# | |
root@PVE-13:/ | |
omv-nfs | |
root@PVE-13:/ | |
umount.nfs4: | |
root@PVE-13:/ | |
root@PVE-13:/ | |
root | |
</ | |
</ | |
===== 設定自動 Snapshot 的方式 ===== | |
<note warning> | |
@@ 行 -348,11 +453,11 @@ | |
</ | |
* 使用套件 [[https:// | |
* 安裝語法 < | |
wget https:// | |
dpkg -i eve4pve-autosnap_0.1.8_all.deb | |
</ | |
* 建立 vm ID: 115 每小時自動快照一次, | |
eve4pve-autosnap create --vmid=115 --label=' | |
</ | |
* 這樣每小時 VM 115 就會自動產生一份快照 ++參考 PVE 管理畫面|{{: | |
* 參考網址 : | |
@@ 行 -367,7 +472,7 @@ | |
</ | |
* 查看原因是前一天自動備份時出現異常, | |
* 可以在 PVE 主機端透過以下語法解開 lock 狀態: Exp. CT id=115< | |
pct unlock 115 | |
</ | |
* 完成後就可以刪除 CT 115 的 snapshot 以及進行 backup | |
@@ 行 -380,4 +485,18 @@ | |
* 參考網址 : | |
* https:// | |
===== CT 啟動失敗出現 run_buffer: 321 Script exited with status 2 的解決方式 ===== | |
* 更新 PVE 系統重開後, | |
run_buffer: 321 Script exited with status 2 | |
lxc_init: 847 Failed to run lxc.hook.pre-start for container " | |
__lxc_start: | |
TASK ERROR: startup for container ' | |
</ | |
* 只要在 PVE 主機內安裝 binutils 即可解決這問題< | |
apt install binutils | |
</ | |
* 參考網址 : | |
* https:// | |
===== Replication 異常解決方式 ===== | |
@@ 行 -391,8 +510,8 @@ | |
* 解決方式 | |
- 將備份時間錯開, | |
- 中斷正在 freeze 的程序< | |
ps -ef | grep free | |
kill < | |
root@nuc:~# ps -ef | grep free | |
root 13352 11857 0 20:06 pts/8 00:00:00 grep free | |
@@ 行 -403,5 +522,5 @@ | |
root 15153 11857 0 20:07 pts/8 00:00:00 grep free | |
root | |
</ | |
- 可以看到下一個 Replication 程序就開始進行, | |
* 參考 - https:// | |
@@ 行 -413,9 +532,9 @@ | |
* zpool list : 查看有哪些 ZFS pool | |
* zfs list : 查看有哪些 ZFS dataset | |
* zfs destroy : 將不要的 ZFS dataset 刪除掉 Exp. < | |
* zfs create | |
* 安裝 iSCSI Target 服務< | |
apt-get install tgt | |
</ | |
* 設定 iSCSI Target Exp. | |
* 儲存路徑 : 上面 zfs create 建立的 rpool/v400 對應路徑 - / | |
@@ 行 -432,8 +551,8 @@ | |
</ | |
</ | |
* 啟動與設定 iSCSI Target 服務開機自動啟動< | |
service tgt start | |
systemctl enable tgt | |
</ | |
* 參考網址 : | |
* https:// | |
@@ 行 -534,10 +653,32 @@ | |
===== Guest VM 安裝 Agent ===== | |
* 安裝程序 : | |
* CentOS VM < | |
yum install qemu-guest-agent | |
systemctl start qemu-guest-agent | |
</ | |
* Debian | |
apt install qemu-guest-agent | |
systemctl start qemu-guest-agent | |
</ | |
* Alpine VM < | |
apk add qemu-guest-agent | |
</ | |
: | |
# Specifies the device path for the communications back to QEMU on the host | |
# Default: / | |
GA_PATH="/ | |
</ | |
rc-update add qemu-guest-agent | |
rc-service qemu-guest-agent restart | |
</ | |
* Freebsd < | |
pkg install qemu-guest-agent | |
sysrc qemu_guest_agent_enable=" | |
service qemu-guest-agent start | |
</ | |
* Windows VM | |
- 先下載 [[https:// | |
- 進入光碟路徑內找到 **virtio-win-gt-x64** 與 **guest-agent/ | |
- 重新啟動 Windows VM | |
* PVE 端設定 VM -> Option -> Qemu Agent -> [v]Enabled | |
* {{: | |
@@ 行 -548,5 +689,37 @@ | |
* 參考網址 - https:// | |
===== 解決 VM 時間無法和 Host 同步問題 ===== | |
* 主要發生在 Alpine VM 內的系統時間無法和 PVE 主機時間相同的議題 | |
* 解決方案 : 在 vmid.conf 內加入 args: -rtc clock=vm, | |
agent: 1 | |
args: -rtc clock=vm, | |
boot: order=scsi0; | |
cores: 2 | |
cpu: x86-64-v2-AES | |
ide2: none, | |
memory: 2048 | |
meta: creation-qemu=8.1.2, | |
name: pve-rproxy-internet | |
net0: virtio=BC: | |
numa: 0 | |
onboot: 1 | |
ostype: l26 | |
scsi0: ssd-zfs: | |
scsihw: virtio-scsi-single | |
smbios1: uuid=595b1cc9-fbf0-4c16-a580-401bee86ac25 | |
sockets: 1 | |
tags: service | |
vmgenid: 58a2ec03-e357-4aa9-8567-9e58ec447890 | |
</ | |
===== CT | |
* 參考網址 - https:// | |
* 執行方式 < | |
pct enter < | |
passwd | |
<new password> | |
exit | |
</ | |
++++之前 (Centos7) 處理方式| | |
* 參考網址 - https:// | |
* 執行方式 : | |
@@ 行 -555,58 +728,5 @@ | |
- 輸入 password root 重設 root 密碼 | |
* 參考以下實際操作畫面 {{: | |
===== 設定 VM 的開機與關機順序 ===== | |
* PVE Web UI -> 選定 VM -> Options -> Start/ | |
@@ 行 -623,7 +743,61 @@ | |
* 新增完成後就點下 Order Certificate Now 就會自動進行申請 SSL 憑證與佈署到 PVE 的自動程序, | |
* 接著在瀏覽器網只用 domain name 就不會出現憑證警告訊息 \\ {{: | |
===== VM 寫入效能調整議題 ===== | |
* 參考 - https:// | |
* 原則上 Disk Cache 使用預設 none 模式即可(Host Page Cache: | |
* 也可調整為 writeback 模式後(Host Page Cache: | |
===== Move Disk 出現 timeout 議題 ===== | |
* 參考 - https:// | |
* 當 VM Hard Disk 透過 Disk Action -> Move Storage 到 NFS 的 Storage Exp. pvs-253-nfs 結果等 60 秒出現 timed out 類似以下的訊息< | |
create full clone of drive scsi0 (zfs-raid: | |
Formatting '/ | |
TASK ERROR: storage migration failed: unable to create image: ' | |
</ | |
* 主要的原因就是 pve-253-nfs 這 Storage 速度太慢, | |
pvesm set pbs-253-nfs --preallocation off | |
</ | |
===== 讓 PVE 6 安裝 CentOS7 的 CT 移轉至 PVE 7 的妥協做法 ===== | |
* [[https:// | |
===== 清除舊版 kernel 的做法 ====== | |
* 參考 - https:// | |
* 雖然每次升級後透過 apt autoremove 會自動移除掉不需要的舊版 kernel 但仍然會殘留一些不需要的 kernel 版本在系統內.. Exp. pve-kernel-5.4: | |
* 所以可透過 [[https:// | |
bash -c " | |
</ | |
==== PVE ISO 安裝無法啟動 XWindow 的解決方式 ==== | |
* 參考 - https:// | |
* 對於比較新的硬體可能 ISO 內還未支援 X driver, 所以會出現中斷在以下的訊息, | |
Starting the installer GUI - see tty2 (CTRL-ALT-F2) for any errors... | |
</ | |
: | |
(EE) | |
Fatal server error: | |
(EE) Cannot run in framebuffer mode. Please spacify busIDs | |
(EE) | |
: | |
</ | |
* 切回 Console 畫面編輯 X Driver config file | |
* 先以 lspci | grep -i vga 來確認 vga pci 編號< | |
root@TN1-PVE-103: | |
00:02.0 VGA compatible controller: Intel Corporation Device a780 (rev 04) | |
</ | |
* 編輯 config 檔案 Exp. / | |
Section " | |
Identifier " | |
Driver " | |
BusID " | |
EndSection | |
</ | |
* 重啟 XWindows <cli> | |
xinit -- -dpi 96 >/ | |
</ | |
===== 相關頁面 ===== | |
{{topic> | |
{{tag> |