差異處
這裏顯示兩個版本的差異處。
兩邊的前次修訂版 前次修改 下次修改 | 前次修改 | ||
tech:pvetips [2019/04/22 17:29] – jonathan_tsai | tech:pvetips [2024/04/13 23:46] (目前版本) – [Move Disk 出現 timeout 議題] jonathan | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== Proxmox VE(PVE) 安裝相關紀錄 ====== | ||
+ | ===== 更改 Package Repositories ===== | ||
+ | * [[https:// | ||
+ | * 參考網址 - https:// | ||
+ | {{tabinclude> | ||
+ | |||
+ | ==== 執行命令列更新 ==== | ||
+ | * <cli> | ||
+ | apt update | ||
+ | apt upgrade | ||
+ | </ | ||
+ | |||
+ | ===== PVE 主機安裝 snmpd ===== | ||
+ | * 安裝與設定程序< | ||
+ | apt install snmpd -y | ||
+ | cd /etc/snmp/ | ||
+ | mv snmpd.conf snmpd.conf.org | ||
+ | vi snmpd.conf | ||
+ | : | ||
+ | 依照實際需要編輯 | ||
+ | : | ||
+ | service snmpd restart | ||
+ | systemctl enable snmpd | ||
+ | </ | ||
+ | * 參考網址 : https:// | ||
+ | |||
+ | ===== 如有使用 ZFS 可限制使用記憶體大小 ===== | ||
+ | * 參考 - https:// | ||
+ | |||
+ | ===== PVE 主機設定 Postfix 由 GMail 寄發信件方式 ===== | ||
+ | * 假設預計 Relay 的 SMTP Server - smtp.gmail.com: | ||
+ | - 安裝相關套件 <cli> | ||
+ | apt install libsasl2-modules -y | ||
+ | </ | ||
+ | - 編輯 / | ||
+ | : | ||
+ | # GMail Setting | ||
+ | relayhost = [smtp.gmail.com]: | ||
+ | # 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:/ | ||
+ | # 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.gmail.com]: | ||
+ | </ | ||
+ | - 更改檔案權限 <cli> | ||
+ | newaliases | ||
+ | postmap / | ||
+ | cd / | ||
+ | chown postfix / | ||
+ | </ | ||
+ | - 讓 postfix 新設定生效 <cli> | ||
+ | / | ||
+ | </ | ||
+ | |||
+ | * 參考網址 : http:// | ||
+ | |||
+ | < | ||
+ | * 如果 Google 的帳號有設定二階段認證, | ||
+ | * 參考 - https:// | ||
+ | * ++看建立應用程式密碼畫面|{{: | ||
+ | </ | ||
+ | |||
+ | ===== 移除 cluster 內的一個 node ===== | ||
+ | * 參考網址 - https:// | ||
+ | * [[http:// | ||
+ | * 先進入 cluster 內其中一台 (不能是 pve01) | ||
+ | * 執行以下的語法將 pve01 刪除< | ||
+ | pvecm nodes | ||
+ | pvecm delnode pve01 | ||
+ | pvecm status | ||
+ | rm -rf / | ||
+ | </ | ||
+ | * 進入每個 node 將 pve cluster 服務重新啟動< | ||
+ | systemctl restart corosync | ||
+ | systemctl restart pve-cluster | ||
+ | </ | ||
+ | |||
+ | * <WRAP important> | ||
+ | * 設定相同 IP 或 hostname 加入 Cluster 後, 因為之前的 ssh fingerprint / authorized_keys 在各節點都還有殘存, | ||
+ | * 可以直接編輯 / | ||
+ | * 再至所有 cluster 內 node 的 /root/.ssh/ 內 known_hosts 將已經不在 cluster 內的 node ip 紀錄移除 | ||
+ | </ | ||
+ | |||
+ | ===== 一個新安裝 node 加入 cluster ===== | ||
+ | <WRAP tip> | ||
+ | 透過 Web 介面直接加入會比較簡單, | ||
+ | </ | ||
+ | * Exp. pve02 加入 cluster, 這 cluster 其中一個 node 是 192.168.11.250 | ||
+ | * 進入 pve02 主機內, 執行以下指令 <cli> | ||
+ | pvecm add 192.168.11.250 | ||
+ | </ | ||
+ | * 會出現需要輸入 192.168.11.250 內的 root 密碼 | ||
+ | * 如果沒有異常訊息就完成加入 cluster | ||
+ | * <WRAP info> | ||
+ | 無法加入通常會顯示出原因, | ||
+ | * corosync 服務是啟動狀態 | ||
+ | * 認證 key 已經存在... 等等 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== 有主機故障, | ||
+ | * 因為預設 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 方式 ===== | ||
+ | * 參考 - [[https:// | ||
+ | - Web UI 更改 IP : System-> | ||
+ | - 更改 /etc/hosts 內的 IP | ||
+ | - 關閉 cluster 服務< | ||
+ | - 修改 / | ||
+ | - 重新開機 | ||
+ | ===== 設定 SSD 硬碟當 Swap Memory 方式 ===== | ||
+ | * 當 PVE 系統安裝在 USB or HD 上時, 預設會將 Swap Memory 指定在其中的一個 Partition 上, 導致使用到 Swap Memory 效能會變很差 | ||
+ | * 先查看目前系統記憶體使用狀況 <cli> | ||
+ | free -m | ||
+ | swapon -s | ||
+ | </ | ||
+ | |||
+ | ==== 建立 Linux Swap 方式 ==== | ||
+ | * 假設 SSD 所在 /dev/sdc , 透過 fdisk 建立 16GB 的 Swap Memory Partition <cli> | ||
+ | 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'. | ||
+ | </ | ||
+ | - 檢視與寫入 <cli> | ||
+ | Command (m for help): p | ||
+ | : | ||
+ | / | ||
+ | : | ||
+ | Command (m for help): w | ||
+ | : | ||
+ | Syncing disks. | ||
+ | </ | ||
+ | - 使用 mkswap 讓系統知道 /dev/sdc1 是 Swap Memory Partition <cli> | ||
+ | mkswap /dev/sdc1 | ||
+ | </ | ||
+ | - 讓 /dev/sdc1 的 Swap Memory 立即生效< | ||
+ | swapon /dev/sdc1 | ||
+ | </ | ||
+ | - 使用 swapon -s 列出目前的 Swap Memory <cli> | ||
+ | : | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | - 確認 /dev/sdc1 的 id <cli> | ||
+ | blkid | grep swap | ||
+ | /dev/sdc1: UUID=" | ||
+ | /dev/zd0: UUID=" | ||
+ | </ | ||
+ | - 關閉原本 /dev/zd0 的 swap memory 設定, 修改 <code h / | ||
+ | : | ||
+ | #/ | ||
+ | UUID=068ba285-5bb9-4b2f-b2e1-4dc599bd22e1 | ||
+ | : | ||
+ | </ | ||
+ | - 重新啟動 pve node <cli> | ||
+ | sync; | ||
+ | </ | ||
+ | * 參考 - https:// | ||
+ | |||
+ | ==== 建立 ZFS Swap 方式 ==== | ||
+ | * 假設 SSD 所在的 zfs pool 為 rpool | ||
+ | - 關閉所有swap:< | ||
+ | - 建立 16GB ZFS swap: <cli> | ||
+ | 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:// | ||
+ | |||
+ | ===== 加入一顆 LVM thin 的硬碟方式 ===== | ||
+ | * [[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 <cli> | ||
+ | lvconvert --type thin-pool vg-ssd/ssd | ||
+ | </ | ||
+ | - 再透過 PVE web 介面 Datacenter -> Storage -> Add -> LVM-Thin | ||
+ | - 輸入 ID Exp. ssd | ||
+ | - 選擇 Volume group : vg-ssd | ||
+ | - Thin Pool : ssd | ||
+ | - 這樣就可以加入 LVM-Thin 的磁碟 | ||
+ | < | ||
+ | * 移除 lvm 的方式 Exp. 以下所建立的 vg-ssd | ||
+ | * pvcreate /dev/sdb1 | ||
+ | * vgcreate vg-ssd /dev/sdb1 | ||
+ | * vgdisplay vg-ssd <cli> | ||
+ | vgremove vg-ssd | ||
+ | pvremote /dev/sdb1 | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ===== 加入一顆 ZFS 的硬碟方式 ===== | ||
+ | * 參考 [[https:// | ||
+ | ===== 將一顆實體 硬碟 加入 VM 使用 ===== | ||
+ | * [[https:// | ||
+ | - 先確認實體硬碟的廠牌、型號與序號 <cli> | ||
+ | ls -l / | ||
+ | </ | ||
+ | - 確認要加入的實體硬碟連結 Exp. ata-TOSHIBA_DT01ACA300_Z3MH9S1GS | ||
+ | - 加入 VM Exp. VM 編號 106 <cli> | ||
+ | qm set 106 -virtio2 / | ||
+ | </ | ||
+ | - 檢查是否 VM 106 的設定檔有出現實體硬碟設定< | ||
+ | cat / | ||
+ | : | ||
+ | virtio2: / | ||
+ | </ | ||
+ | - 關閉 VM , 再透過 PVE Web 介面重新啟動 | ||
+ | |||
+ | ===== 直接使用 virt-install 建立的 CentOS6 VM Image 開機程序過久問題 ===== | ||
+ | * 主要問題是在 pve 建立一個新的 VM 時, 預設並不會加入 serial 虛擬裝置, | ||
+ | * 參考網址 - https:// | ||
+ | * 解決方式 - {{: | ||
+ | |||
+ | ===== migration 出現 No such cluster node 問題 ===== | ||
+ | * 主要問題是 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/ | ||
+ | </ | ||
+ | |||
+ | ===== migration 出現 Host key verification failed 問題 ===== | ||
+ | * 主要是 ssh 遠端免密碼登入認證檔出現異常問題. | ||
+ | * 參考網址 - https:// | ||
+ | * 解決方式 - 依據錯誤訊息提示的命令語法重新執行一次 Exp. migration 出現的錯誤訊息 < | ||
+ | 2018-08-30 12:34:47 # / | ||
+ | 2018-08-30 12:34:47 Host key verification failed. | ||
+ | 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 ' | ||
+ | ECDSA key fingerprint is SHA256: | ||
+ | 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 ===== | ||
+ | <note warning> | ||
+ | * 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 <cli> | ||
+ | iscsiadm -m discovery -t sendtargets -p 192.168.11.246 | ||
+ | |||
+ | 192.168.11.246: | ||
+ | </ | ||
+ | - 登錄 iSCSI target <cli> | ||
+ | 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 <cli> | ||
+ | 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 | ||
+ | Units: sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/ | ||
+ | I/O size (minimum/ | ||
+ | </ | ||
+ | - 使用 fdisk /dev/sdg 建立 LVM partition <cli> | ||
+ | fdisk /dev/sdg | ||
+ | </ | ||
+ | - Command (m for help): g (建立GPT Partition Table) | ||
+ | - Command (m for help): n (建立新的 Partition ) | ||
+ | - Command (m for help): t (更改 Type 為 31 Linux LVM) | ||
+ | - Command (m for help): p (列出新建立的 Partition 是否正確) | ||
+ | - Command (m for help): w (沒問題就 w 寫入) | ||
+ | - 使用 pvcreate 建立 LVM 的 Physical Volume(PV) <cli> | ||
+ | pvcreate /dev/sdg1 | ||
+ | </ | ||
+ | - 使用 vgcreate 建立 LVM 的 Volume Group (VG) <cli> | ||
+ | vgcreate vg-pve /dev/sdg1 | ||
+ | </ | ||
+ | - 在 PVE Web UI -> Datacenter -> Storage -> Add -> LVM {{: | ||
+ | - 在彈出的 Add:LVM 視窗內 {{ : | ||
+ | - 填入 ID Exp. freenas-lvm | ||
+ | - 選擇剛剛建立的 vg-pve | ||
+ | - 將 Shared 打勾 | ||
+ | - 點下 Add | ||
+ | - Datacenter -> Storage 內就可以看到增加 freenas-lvm 的項目 | ||
+ | |||
+ | <note information> | ||
+ | * iSCSI + LVM 會出現無法對 VM 進行 snapshot 問題, 主要是 LVM 不支援 live-snapshot | ||
+ | * 參考 PVE 官網整理 Storage 特性 - https:// | ||
+ | </ | ||
+ | |||
+ | * 參考網址 : | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * http:// | ||
+ | * 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> | ||
+ | * ZFS 雖然可以自動建立很多份 Snapshot, 但是只能還原最近的一次 Snapshot | ||
+ | * [[https:// | ||
+ | |||
+ | To roll back to an earlier snapshot, you must destroy all intermediate snapshots by specifying the –r option.]] | ||
+ | </ | ||
+ | * 使用套件 [[https:// | ||
+ | * 安裝語法 <cli> | ||
+ | wget https:// | ||
+ | dpkg -i eve4pve-autosnap_0.1.8_all.deb | ||
+ | </ | ||
+ | * 建立 vm ID: 115 每小時自動快照一次, | ||
+ | eve4pve-autosnap create --vmid=115 --label=' | ||
+ | </ | ||
+ | * 這樣每小時 VM 115 就會自動產生一份快照 ++參考 PVE 管理畫面|{{: | ||
+ | * 參考網址 : | ||
+ | * http:// | ||
+ | |||
+ | |||
+ | ===== CT Backup 出現 CT is locked (snapshot-delete) 的解決方式 ===== | ||
+ | * 設定每天自動備份, | ||
+ | : | ||
+ | ERROR: Backup of VM 115 failed - CT is locked (snapshot-delete) | ||
+ | : | ||
+ | </ | ||
+ | * 查看原因是前一天自動備份時出現異常, | ||
+ | * 可以在 PVE 主機端透過以下語法解開 lock 狀態: Exp. CT id=115< | ||
+ | pct unlock 115 | ||
+ | </ | ||
+ | * 完成後就可以刪除 CT 115 的 snapshot 以及進行 backup | ||
+ | |||
+ | < | ||
+ | * 如果 unlock 之後, 還是因為 snapshot 持續造成異常 lock 且 snapshot-delete 也無法刪除 | ||
+ | * 可以手動修改 / | ||
+ | * 然後需要關閉 vm , 在透過 pve 啟動 vm 就可解決這問題 | ||
+ | </ | ||
+ | |||
+ | * 參考網址 : | ||
+ | * 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 異常解決方式 ===== | ||
+ | * 設定 PVE Cluster 內使用 zfs 的 VM or CT 進行檔案定期(預設每 15 分鐘)複製至另外一台主機 | ||
+ | * 當出現其中一個 replication 程序無法完成, | ||
+ | 2019-11-24 01:30:00 100-0: start replication job | ||
+ | 2019-11-24 01:30:00 100-0: guest => CT 100, running => 1 | ||
+ | 2019-11-24 01:30:00 100-0: volumes => local-zfs: | ||
+ | 2019-11-24 01:30:01 100-0: freeze guest filesystem | ||
+ | </ | ||
+ | * 解決方式 | ||
+ | - 將備份時間錯開, | ||
+ | - 中斷正在 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 | ||
+ | root 18221 18180 0 01:30 ? 00:00:07 / | ||
+ | root | ||
+ | root@nuc:~# kill 18180 18221 | ||
+ | root@nuc:~# ps -ef | grep free | ||
+ | root 15153 11857 0 20:07 pts/8 00:00:00 grep free | ||
+ | root | ||
+ | </ | ||
+ | - 可以看到下一個 Replication 程序就開始進行, | ||
+ | * 參考 - https:// | ||
+ | ===== PVE 主機啟用 iSCSI target(server) + ZFS ===== | ||
+ | * 安裝與設定程序 | ||
+ | * 建立 ZFS 預計提供給 iSCSI target 的儲存空間 | ||
+ | * 透透過 PVE ((PVE 5.2-8 開始可以透過 UI 建立))建立 ZFS pool 或使用安裝時建立的 ZFS rpool | ||
+ | * ZFS 參考語法: | ||
+ | * 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 對應路徑 - / | ||
+ | * 命名 iqn.2018-09.everplast.net: | ||
+ | * 允許 iSCSI initiator(Client) 的 IP 範圍 : 10.168.0.0/ | ||
+ | * 不特別設定密碼與加密 | ||
+ | * 編輯設定檔語法< | ||
+ | <target iqn.2018-09.everplast.net: | ||
+ | # Provided device as an iSCSI target | ||
+ | backing-store / | ||
+ | initiator-address 10.168.0.0/ | ||
+ | # | ||
+ | # | ||
+ | </ | ||
+ | </ | ||
+ | * 啟動與設定 iSCSI Target 服務開機自動啟動< | ||
+ | service tgt start | ||
+ | systemctl enable tgt | ||
+ | </ | ||
+ | * 參考網址 : | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | ===== PVE 主機建立 ZFS Storage ===== | ||
+ | * pve 5.2-8 之後開始可以由 WebUI 建立 ZFS | ||
+ | * 測試透過外接 USB 兩顆 1TB 硬碟建立 Mirror ZFS 的 Storage | ||
+ | - 需要將兩棵 USB 現有的 Partation 刪除才會出現在 Create ZFS 的未使用清單內 | ||
+ | - RAID Level 選 Mirror {{: | ||
+ | - 完成建立後透過選這新增 usb-zfs 的 detail 可以看到狀態 {{: | ||
+ | - 之後就可以在 Datacenter 建立 usb-zfs 的 Storage 提供放置 VM Image {{: | ||
+ | * 測試將一顆 USB 硬碟拔掉, | ||
+ | * 將 USB 硬碟接回, | ||
+ | * ++透過 zpool status -x 了解目前的狀況|< | ||
+ | root@xpc:~# zpool status -x | ||
+ | pool: usb-zfs | ||
+ | | ||
+ | status: One or more devices could not be used because the label is missing or | ||
+ | invalid. | ||
+ | functioning in a degraded state. | ||
+ | action: Replace the device using 'zpool replace' | ||
+ | see: http:// | ||
+ | scan: scrub repaired 0B in 8h32m with 0 errors on Sun Oct 14 08:56:54 2018 | ||
+ | config: | ||
+ | |||
+ | NAME STATE READ WRITE CKSUM | ||
+ | usb-zfs | ||
+ | mirror-0 | ||
+ | wwn-0x5000c500ab076db6 | ||
+ | 1991173423066485644 | ||
+ | </ | ||
+ | * ++透過 zpool replace 無法將接回的硬碟加回|< | ||
+ | root@xpc:~# zpool replace usb-zfs 1991173423066485644 | ||
+ | cannot open ' | ||
+ | must be a full path or shorthand device name | ||
+ | |||
+ | root@xpc:~# zpool replace usb-zfs / | ||
+ | invalid vdev specification | ||
+ | use ' | ||
+ | / | ||
+ | |||
+ | root@xpc:~# zpool replace -f usb-zfs / | ||
+ | invalid vdev specification | ||
+ | the following errors must be manually repaired: | ||
+ | / | ||
+ | |||
+ | </ | ||
+ | * ++透過 zpool detach 將硬碟移出|< | ||
+ | root@xpc:~# zpool detach usb-zfs / | ||
+ | root@xpc:~# zpool status -x | ||
+ | all pools are healthy | ||
+ | root@xpc:~# zpool list | ||
+ | NAME SIZE ALLOC | ||
+ | usb-zfs | ||
+ | root@xpc:~# zpool status usb-zfs | ||
+ | pool: usb-zfs | ||
+ | | ||
+ | scan: scrub repaired 0B in 8h32m with 0 errors on Sun Oct 14 08:56:54 2018 | ||
+ | config: | ||
+ | |||
+ | NAME STATE READ WRITE CKSUM | ||
+ | usb-zfs | ||
+ | wwn-0x5000c500ab076db6 | ||
+ | |||
+ | errors: No known data errors | ||
+ | |||
+ | </ | ||
+ | * ++透過 zpool attach 將硬碟加回|< | ||
+ | root@xpc:~# zpool attach usb-zfs wwn-0x5000c500ab076db6 / | ||
+ | root@xpc:~# zpool status usb-zfs | ||
+ | pool: usb-zfs | ||
+ | | ||
+ | status: One or more devices is currently being resilvered. | ||
+ | continue to function, possibly in a degraded state. | ||
+ | action: Wait for the resilver to complete. | ||
+ | scan: resilver in progress since Sat Nov 17 22:48:13 2018 | ||
+ | 67.9M scanned out of 265G at 579K/s, 133h19m to go | ||
+ | 67.6M resilvered, 0.02% done | ||
+ | config: | ||
+ | |||
+ | NAME STATE READ WRITE CKSUM | ||
+ | usb-zfs | ||
+ | mirror-0 | ||
+ | wwn-0x5000c500ab076db6 | ||
+ | wwn-0x50014ee658a36c74 | ||
+ | |||
+ | errors: No known data errors | ||
+ | </ | ||
+ | * 透過 WebUI 也可以了解目前的狀況 {{: | ||
+ | |||
+ | * 參考網址 : | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | * https:// | ||
+ | |||
+ | ===== Guest VM 安裝 Agent ===== | ||
+ | * 安裝程序 : | ||
+ | * CentOS VM <cli> | ||
+ | yum install qemu-guest-agent | ||
+ | systemctl start qemu-guest-agent | ||
+ | </ | ||
+ | * Debian / Ubuntu VM <cli> | ||
+ | apt install qemu-guest-agent | ||
+ | systemctl start qemu-guest-agent | ||
+ | </ | ||
+ | * Alpine VM <cli> | ||
+ | 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 <cli> | ||
+ | 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 | ||
+ | * {{: | ||
+ | * **要透過 PVE 重起 VM 才會生效** | ||
+ | * VM -> Summary -> IPs 可以看到 VM 內分配的 IP | ||
+ | * {{: | ||
+ | | ||
+ | * 參考網址 - https:// | ||
+ | |||
+ | ===== CT 忘記 root 密碼重設方式 ===== | ||
+ | * 參考網址 - https:// | ||
+ | * 執行方式 <cli> | ||
+ | pct enter < | ||
+ | passwd | ||
+ | <new password> | ||
+ | exit | ||
+ | </ | ||
+ | ++++之前 (Centos7) 處理方式| | ||
+ | * 參考網址 - https:// | ||
+ | * 執行方式 : | ||
+ | - 先登入 CT 所再的主機端 Shell | ||
+ | - 輸入 lxc-attach -n < | ||
+ | - 輸入 password root 重設 root 密碼 | ||
+ | * 參考以下實際操作畫面 {{: | ||
+ | ++++ | ||
+ | ===== 設定 VM 的開機與關機順序 ===== | ||
+ | * PVE Web UI -> 選定 VM -> Options -> Start/ | ||
+ | * {{: | ||
+ | * 參考網址 - https:// | ||
+ | |||
+ | ===== 設定管理介面使用 Let's Encrypt 合法 SSL 憑證 ===== | ||
+ | * Datacenter -> ACME 內 | ||
+ | * 建立 Account : default 內容類似如下: | ||
+ | * 建立 Challenge Plugins : Exp. ichiayi_com 這 Domain 因為是在 Cloudflare 代管, 所以可以透過 DNS 方式進行驗證 , 內容類似如下: | ||
+ | * 至 DNS 內建立每個 Node 的 domain name Exp. aac.ichiayi.com -> 192.168.11.249 | ||
+ | * 每個 Node 的 System -> Certificates 內 | ||
+ | * ACME 新增該 node 的 domain name 內容類似如下: | ||
+ | * 新增完成後就點下 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> |