2016年2月20日 星期六

Esxi移機到Proxmox-檔案格式轉檔、iscsi、nfs串連教學、虛擬機新增及相關備忘事項

現在用的伺服器跑的是ESXI
但是因為管理介面常當掉
而且還需要安裝特定管理軟體
因此決定改投Proxmox懷抱

目前先測試Win7的轉移
首先要先到VMware vSphere Client中將VM停機
進行輸出映象檔工作

輸出完會看到以下檔案
需要的是VMDK這個檔案


接下來就是要想辦法將VMDK檔放入Proxmox伺服器中
如果你是用Proxmox內的上傳是沒有用的
因為他上傳有綁定類型的副檔名
傳完後他會馬上檢驗
ISO最後就一定要ISO副檔名
VZDump最後要tar副檔名
template是虛擬機的範本副檔名

所以只能想辦法把檔案丟到虛擬機上

我是使用NFS串連
本機Local端只是負責放系統檔
虛擬機都放在NAS的NFS中
這樣出意外可以快速安全轉移
NAS用的是群暉
開啟NFS相當方便

先去檔案服務啟動NFS


再到共用資料夾開一個新的共用夾
我是用Proxmox命名
進到資料夾編輯 -NFS權限

新增Proxmox的主機IP
這樣就完成了


前往Proxmox進行NFS掛載



掛載完長這樣

為什麼沒有使用iscsi
因為我掛載完發現容量都是0
雖然還是可以創建主機
但是看不到硬碟內的內容
在群暉本機端也看不到-之前ESXI可以
SSH登入也找不到串連的iscsi
所以也沒辦法傳VMDK檔上去轉檔
最後只好放棄

但NFS掛載完
用SSH就看得到
df指令瀏覽所有資料夾
就會看到

接下來就是切換到該資料夾準備進行轉檔工作
檔案是放在該資料夾的images中
以我的伺服器為例 
下圖可以看到我vmdk已經上傳
網路上大家都說上傳然後轉檔
見鬼
我就是不行直接傳

但用NFS一下子就好
直接傳上去
很直觀

接下來是重頭戲-格式轉檔
先用ssh切換到放vmdk的資料
qemu-img是專門虛擬磁盤映像文件的qemu命令行工具。具體命令如下:

VMDK轉qcow2
qemu-img convert -f vmdk -O 原始映象檔名稱.vmdk 新虛擬機名稱.qcow2 
轉檔要一點時間
轉完指令列才會恢復

參數說明:convert 將磁盤文件轉換為指定格式的文件
-f 指定需要轉換文件的文件格式
-O 指定要轉換的目標格式
轉換完成後,將新生產一個目標映像文件,原文件仍保存。

raw轉qcow2
qemu-img convert -f raw centos.img -O qcow2 centos.qcow2

-----------------------------------------------------------------------------------------------------------------------
取得新的檔案格式後就是創建虛擬機
VM ID是自動取號
名稱自己打


我是轉檔移機的
所以不用重安裝系統
就不使用光碟了

我是選用SATA介面
格式是用qcow2專用格式
有眼尖的人發現
為什麼不用vmdk
不用轉檔多好
可是我用了之後會發生錯誤
代碼如下
Running as unit 102.scope.
kvm: -drive file=/mnt/pve/test-160/images/102/vm-102-disk-1.vmdk,if=none,id=drive-ide0,format=vmdk,cache=none,aio=native,detect-zeroes=on: VMDK version 3 must be read only
TASK ERROR: start failed: command '/usr/bin/systemd-run --scope --slice qemu --unit 102 -p '......



在此我是使用動態記憶體

這裡預設值使用的是實體網路


完成後的介面
多了一台名稱100的虛擬機

此時你會發現NFS的資料夾多了一個100的資料夾
就是剛剛新增虛擬機的VID
裡面只有一個檔案
qcow2格式的
用剛剛轉檔完的檔案把它取代掉
記得檔名要一樣


恭喜你已經可以啟動新的虛擬機

---------------------------------------------------------------------------------------------------------------
備忘一
我用win7轉檔完啟動時
會一直出現win7系統修復
然後一直重開
此時將硬碟介面改成IDE即可正常使用


備忘二
如果出現以下錯誤表示CPU的虛擬選項沒開
Could not access KVM kernel module: No such file or directory
failed to initialize KVM: No such file or directory
TASK ERROR: start failed: command '/usr/bin/systemd-run --scope --slice qemu --unit 100 -p '......

備忘三
網路到處轉貼-不知道原作者

目前比較主流的虛擬化鏡像格式 qcow2,raw,vmdk

1.raw格式
虛擬化默認的格式,也可以叫做裸格式,性能沒得說,可以直接掛載,支持轉換成其它格式的虛擬機鏡像(如果其它格式需要轉換,有時候還是需要它做為中間格式),空間使用
來看,這個很像磁盤,使用多少就是多少(du -h看到的大小就是使用大小),但如果你要把整塊磁盤都拿走的話得全盤拿了(copy鏡像的時候),會比較消耗網絡帶寬和I/O。接
下來還有個有趣的問題,如果那天你的硬盤用著用著不夠用了,在買一塊盤。但raw格式的就比較犀利了,可以在原來的盤上追加空間:dd if=/dev/zero of=zeros.raw
bs=1024k count=4096(先創建4G的空間)cat foresight.img zeros.raw > new-foresight.img(追加到原有的鏡像之後)。raw 不支持snapshot(快照);

2.qcow2格式

qcow2經過一代的優化,目前qcow2的性能上接近raw裸格式的性能
對於qcow2的格式,幾點還是比較突出的,qcow2的snapshot,可以在鏡像上做N多個快照:更小的存儲空間,即使是不支持holes的文件系統也可以(這下du -h和ls -lh看到的就一樣了)Copy-on-write support, where the image only represents changes made to an underlying diskimage(這個特性SUN ZFS表現的淋漓盡致)支持多個snapshot,對歷史snapshot進行管理支持zlib的磁盤壓縮支持AES的加密

3.vmdk 格式

VMware 3 & 4, or 6 image format, for exchanging images with that product VMware的格式,原本VMware就是做虛擬化起家,自己做了一個集群的VMDK的pool,做了自己的虛擬機鏡像格式。又拉著一些公司搞了一個OVF的統一封包,從性能和功能上來說,vmdk應該算最出色的,由於vmdk結合了VMware的很多能力,目前來看,KVM和XEN使用這種格式的情況不是太多。但就VMware的Esxi來看,它的穩定性和各方面的能力還是可圈可點的。