vim 的virsual mode , 如何滑鼠按右鍵就複製

其實我也很不懂vim的v-mode , virsual mode , 反正屎用docker時候, 好多container 需要另外安裝vim ,
安裝結束後, 我就卡關了 XD ,
因為我習慣按滑鼠右鍵, 就把複製的文字貼上去 , 但是常常出現(insert) virsual 錯誤無法貼上
網上找了好久, 找到一種方式, 輸入 set mouse-=a , 就可以解決了

https://gist.github.com/u0d7i/01f78999feff1e2a8361

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 , port不是443,但是卻是使用httpd/2的方式
若是使用3.2可以看起來像是https的存取

httpd reverse proxy 需要注意的設定

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

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

這些在背後的service 通常只要讓httpd proxy 知道ip&port 就能存取, 我也沒遇到什麼問題, 直到遇見需要hostname的server , 例如 http://xxx.yyy.com 背後是http://zzz.yyy.com 才能正確取的service的內容, 因此調整如下:

 <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> 

1 2 3 ... 7