pve 無法移除自身zfs的vm檔案

查看zfs的狀態

root@pve:/dev/zvol/zdata# zpool status
   pool: zdata
  state: ONLINE
   scan: scrub repaired 0B in 2h35m with 0 errors on Sun Mar  8 02:59:48 2020
 config:
 NAME                                           STATE     READ WRITE CKSUM zdata                                          ONLINE       0     0     0   mirror-0                                     ONLINE       0     0     0     wwn-0xDC_WD10EZEX-08WN4A0_WD-WCC6Y3LRYL6X  ONLINE       0     0     0     wwn-0xDC_WD10EZEX-08WN4A0_WD-WCC6Y2SYFNY2  ONLINE       0     0     0
 errors: No known data errors

查看zfs的檔案

root@pve:/dev/zvol/zdata# zfs list -t volume
 NAME                  USED  AVAIL  REFER  MOUNTPOINT
 zdata/vm-100-disk-0  33.0G   175G    56K  -
 zdata/vm-100-disk-1   683G   142G   683G  -
 zdata/vm-101-disk-0  27.0G   142G  27.0G  -
 zdata/vm-102-disk-0  10.3G   142G  10.3G  -
 zdata/vm-103-disk-0  4.12G   142G  4.12G  -

刪除某個vm, 但是失敗

root@pve:/dev/zvol/zdata# zfs destroy zdata/vm-103-disk-0
 cannot destroy 'zdata/vm-103-disk-0': dataset is busy

停用 multipathd 服務, 然後再刪除看看, 結果成功

root@pve:/dev/zvol/zdata# systemctl stop multipathd.service
 Warning: Stopping multipathd.service, but it can still be activated by:
   multipathd.socket
root@pve:/dev/zvol/zdata# zfs destroy zdata/vm-103-disk-0
root@pve:/dev/zvol/zdata# zfs list -t volume
 NAME                  USED  AVAIL  REFER  MOUNTPOINT
 zdata/vm-100-disk-0  33.0G   179G    56K  -
 zdata/vm-100-disk-1   683G   146G   683G  -
 zdata/vm-101-disk-0  27.0G   146G  27.0G  -
 zdata/vm-102-disk-0  10.3G   146G  10.3G  -
 root@pve:/dev/zvol/zdata# 

刪除Proxmox VE中的lvm-thin,重新掛載成ext4

pve預設使用LV(Logical Volume), 所以可以使用指令的方式查詢目前磁碟劃分的狀態

 

root@pve:~# lvs
  LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data pve twi-aotz-- 339.33g 0.00 0.04
root pve -wi-ao---- 96.00g
swap pve -wi-ao---- 7.00g

pve預設使用 /dev/pve/data 掛載 lvm-thin , 因此移除掉(請先確認無任何資料)

 
root@pve:~# lvremove /dev/pve/data

查看還有多少可用空間

root@pve:~# vgdisplay pve 
--- Volume group ---
   VG Name               pve
   System ID             
   Format                lvm2
   Metadata Areas        1
   Metadata Sequence No  32
   VG Access             read/write
   VG Status             resizable
   MAX LV                0
   Cur LV                2
   Open LV               2
   Max PV                0
   Cur PV                1
   Act PV                1
   VG Size               465.26 GiB
   PE Size               4.00 MiB
   Total PE              119106
   Alloc PE / Size       26368 / 103.00 GiB
   Free  PE / Size       92738 / 362.26 GiB
   VG UUID               PGiSeZ-0yrO-lWUb-GWae-k307-5GPS-UTWXfN

將多出來的空間建立新的lv , 建立之後就可以針對 /dev/pve/data 格式化成ext4

root@pve:~# lvcreate -l 92738 -n data pve 
WARNING: dos signature detected on /dev/pve/data at offset 510. Wipe it? [y/n]: y
   Wiping dos signature on /dev/pve/data.
   Logical volume "data" created.
root@pve:~# mkfs.ext4 /dev/pve/data 

最後再mapping到系統的/data目錄 , 並且寫在/etc/fstab 以後開機自動掛載

root@pve:~# mkdir /data
root@pve:~# mount /dev/pve/data /data
root@pve:~# blkid|grep pve-data
/dev/mapper/pve-data: UUID="1560ee98-1a51-4673-b117-807c8b353fc2" TYPE="ext4"
root@pve:~# more /etc/fstab
 UUID="1560ee98-1a51-4673-b117-807c8b353fc2" /data ext4 defaults 0 1

v2ray初體驗-使用v2-ui初階安裝

安裝v2ray之前,你必須符合以下基本技術基礎

  1. 會安裝CEntOS 7
  2. 懂apache httpd 2.4基本設定
  3. 懂dns, 懂申請let’s Encrypt

你也必須準備以下軟硬體

  1. 安裝好CEntOS7
  2. 有Internet IP
  3. 有網域,並可賦予該系統一個網路名稱

開始安裝

1. 安裝v2ray
到這個神人網站 https://github.com/sprov065/v2-ui/
一鍵安裝
bash <(curl -Ls https://blog.sprov.xyz/v2-ui.sh)

2. 安裝完畢網站預設是 http://ip:65432 預設帳號密碼都是admin , 記得登入修改密碼


3. 以下示範兩種連線, 一種http/2(h2), 另一種透過apache httpd(port 443)代理連到後端websocket
3.1 設定 h2 連線
Server:


client:
v2ray初體驗-使用v2-ui初階安裝



3.2
Server 設定:


Clinet 設定:
websocket , port 用443, 要輸入tls

apache httpd 設定:

ServerName xxx
ErrorLog /var/log/httpd/ssl_error_log1
TransferLog /var/log/httpd/ssl_access_log1

SSLEngine On
SSLProxyEngine On
SSLCertificateFile /etc/letsencrypt/live/xxx/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xxx/privkey.pem
SSLCACertificateFile /etc/letsencrypt/live/xxx/fullchain.pem
## v2-ui management
RewriteEngine On
ProxyPass / http://localhost:65432/
ProxyPassReverse / http://localhost:65432/
## server
RewriteRule /ray/(.*) ws://localhost:1234/$1 [P,L]
RewriteCond %{HTTP:Upgrade} =websocket [NC]
ProxyPass /ray/ http://localhost:1234/
ProxyPassReverse /ray/ http://localhost:1234/


4. 心得
若是使用3.1 , 使用httpd/2的方式
若是使用3.2可以看起來像是https的存取

5. 額外指令

 v2-ui              - 显示管理菜单 (功能更多)
 v2-ui start        - 启动 v2-ui 面板
 v2-ui stop         - 停止 v2-ui 面板
 v2-ui restart      - 重启 v2-ui 面板
 v2-ui status       - 查看 v2-ui 状态
 v2-ui enable       - 设置 v2-ui 开机自启
 v2-ui disable      - 取消 v2-ui 开机自启
 v2-ui log          - 查看 v2-ui 日志
 v2-ui update       - 更新 v2-ui 面板
 v2-ui install      - 安装 v2-ui 面板
 v2-ui uninstall    - 卸载 v2-ui 面板

httpd reverse proxy 需要注意的設定

一般來說有些需要保護的web service,可以躲到httpd proxy背後, 好處如下:

  1. 比較安全, 尤其是老舊的web service,
  2. 統一由httpd proxy 保管SSL證書很方便

這些在背後的service 通常只要讓httpd proxy 知道該service本地端的ip&port 就能存取, 並且晉升https的行列,非常方便.
基本上調整如下:

 <VirtualHost *:443>
 ServerName  xxx.yyy.com
 ErrorLog /var/log/httpd/ssl_error_log1
 TransferLog /var/log/httpd/ssl_access_log1
 
 SSLEngine On
 SSLProxyEngine On
 SSLCertificateFile /etc/letsencrypt/live/xxx.yyy.com/cert.pem
 SSLCertificateKeyFile /etc/letsencrypt/live/xxx.yyy.com/privkey.pem
 SSLCACertificateFile /etc/letsencrypt/live/xxx.yyy.com/fullchain.pem
 

 ProxyPass / http://zzz.yyy.com.tw:80/
 ProxyPassReverse / http://zzz.yyy.com:80/
 </VirtualHost> 

以上設定若是遇到網址是%2F, 通常都會出問題,
這是slash html encode的問題, apache預設不支援該編碼, 因此可以加上 AllowEncodeSlashesnocanon

<VirtualHost *:443>
AllowEncodedSlashes on
ProxyPass / http://zzz.yyy.com.tw:80/ nocanon
ProxyPassReverse / http://zzz.yyy.com:80/ nocanon
</VirtualHost>

遊走於MacOS與ubuntu的檔案系統

我已經很久沒有把windows當作主機的開機作業系統,並不是windows不好用,反而是windows很常用,常用到若要重新安裝,會非常頭痛.

因此主機開機作業系統就改成ubuntu 18.04, 然後使用virtualbox掛載windows 10 虛擬主機, 這種方式最方便.

後來因為需要開發iOS app, 決定將原本的pc重灌成黑蘋果Mojave(10.14.x) , 期間遇到的問題就是檔案格式要如何滿足MacOS與ubuntu.

網路上大家都建議使用extFAT的方式, 這樣windows與mac 都可以相容, 但是效能不彰, 也嘗試過讓黑蘋果下載外掛讓ntfs變成可以寫入的狀態, 但是不穩定.

最後突然發現HFS+(Mac Extended,no journaled)的格式可以相容MacOS與ubuntu, 雖說windows不相容, 不過沒關係, 我的目標是資料硬碟相容於MacOS以及Linux就好了, 只要讓這兩個作業系統透過分享目錄的方式,windows就可以存取資料了.

格式化HFS+的方式有兩種, 一種是ubuntu開機直接硬碟格式化成HFS+, 另一種是MacOS開機, 格式化成HFS+.

ubuntu格式化直接就是no journaled, 但是MacOS居然只能選with journaled的格式, 後來發現MacOS可以下指令改成no journaled.

sudo diskutil disableJournal /dev/diskXXX 

ps. diskXXX是磁碟分割代號,可由Disk Utitity取得

1 ... 10 11 12 13 14 ... 17