1個(gè)月前在把臺(tái)式機(jī)的系統(tǒng)改成了WINDOWS SERVER 2016,還在HYPER-V上裝了黑群暉。試用一個(gè)月之后,感覺(jué)WINDOWS SERVER還是有點(diǎn)占資源,開(kāi)關(guān)機(jī)都挺慢,正常使用的時(shí)候偶爾也會(huì)卡頓(沒(méi)有設(shè)置前臺(tái)程序優(yōu)先),尤其是關(guān)機(jī),每次都要因?yàn)殛P(guān)閉HYPER-V虛擬機(jī),等上好幾分鐘。
正好,一直想把裝在2.5寸硬盤(pán)上的WINDOWS SERVER硬盤(pán)克隆到3.5寸的硬盤(pán)上的事情沒(méi)有成功,于是直接在3.5的硬盤(pán)上直接裝了UBUNTU,直接安上了KVM和VIRT-MANAGER。
格式上,KVM可以直接識(shí)別vhd格式的虛擬硬盤(pán)。所以只要把HYPER-V的虛擬盤(pán)復(fù)制過(guò)來(lái)就行。有一個(gè)要注意的點(diǎn)是如果用了HYPER-V的“檢查點(diǎn)”功能,要把所有的檢查點(diǎn)合并,以合并成一個(gè)vhd文件,方法是刪除所有的檢查點(diǎn)。黑群的引導(dǎo)盤(pán)也一起拿過(guò)來(lái)分配給KVM,引導(dǎo)盤(pán)用IDE,系統(tǒng)盤(pán)用SCSI,啟動(dòng)KVM虛擬機(jī)一次點(diǎn)亮。
然而遷移黑群暉還是遇到了一個(gè)坑。
HYPER-V是把存儲(chǔ)盤(pán)脫機(jī)之后,整盤(pán)分配給黑群的。UBUNTU下看到的已經(jīng)是分了區(qū)的sdb1、sdb2了:
$ sudo fdisk -l
Disk /dev/sdb: 1.8 TiB, 2000398934016 bytes, 3907029168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: 0x00074b48
設(shè)備 啟動(dòng) Start 末尾 扇區(qū) Size Id 類(lèi)型
/dev/sdb1 2048 4982527 4980480 2.4G fd Linux raid 自動(dòng)檢測(cè)
/dev/sdb2 4982528 9176831 4194304 2G fd Linux raid 自動(dòng)檢測(cè)
/dev/sdb3 9437184 3906824351 3897387168 1.8T fd Linux raid 自動(dòng)檢測(cè)
直接把/dev/sdb3分配給黑群,或者用mdadm處理之后嘗試分配/dev/md2磁盤(pán)陣列給黑群,在黑群中打開(kāi),都是完全作為一個(gè)新的磁盤(pán)識(shí)別的,之前的數(shù)據(jù)都不認(rèn)了,趕緊關(guān)掉,避免出現(xiàn)什么意外。

在網(wǎng)上找相關(guān)的KVM硬盤(pán)直通的解決方案,大都是直通顯卡的解決方案。不過(guò)嘗試一下是可以找到SATA硬盤(pán)控制器的:
$ sudo lspci -nn | grep SATA
00:1f.2 SATA controller [0106]: Intel Corporation 7 Series/C210 Series Chipset Family 6-port SATA Controller [AHCI mode] [8086:1e02] (rev 04)
不過(guò)這個(gè)看著好像只能把整個(gè)控制器直通給KVM,沒(méi)辦法只分配一個(gè)硬盤(pán)。最后又發(fā)現(xiàn)一篇文章,印證了剛剛的想法:
一般 SATA 或者 SAS 等類(lèi)型的硬盤(pán)的控制器都是直接接入到 PCI 或者 PCI-E 總線的,所以也可以將硬盤(pán)作為普通的PCI設(shè)備直接分配個(gè)客戶(hù)機(jī)。需要注意的是,當(dāng)分配硬盤(pán)時(shí),實(shí)際上將其控制器作為一個(gè)整體分配到客戶(hù)機(jī)中,因此需要在硬件平臺(tái)上至少有另兩個(gè)或者多個(gè)SATA或者 SAS控制器。
《KVM 介紹(4):I/O 設(shè)備直接分配和 SR-IOV KVM PCI/PCIe Pass-Through SR-IOV》
沒(méi)辦法,KVM暫時(shí)走不通了,只好去試試VMWARE WORKSTATION。配置虛擬機(jī)時(shí)選擇“添加硬盤(pán)”,直接找到了分配物理磁盤(pán)的輸入框,直接選擇,觀察到路徑是/dev/disk/by-id/ata-ST2000DM006-2DM164_Z4Z8RYMJ,感覺(jué)發(fā)現(xiàn)了新世界!


$ ls /dev/disk/by-id
ata-ST2000DM006-2DM164_Z4Z8RYMJ
ata-ST2000DM006-2DM164_Z4Z8RYMJ-part1
ata-ST2000DM006-2DM164_Z4Z8RYMJ-part2
ata-ST2000DM006-2DM164_Z4Z8RYMJ-part3
……
試了一下,KVM分配磁盤(pán)時(shí)直接填上/dev/disk/by-id/ata-ST2000DM006-2DM164_Z4Z8RYMJ,啟動(dòng)黑群,進(jìn)入管理頁(yè)面,成功識(shí)別數(shù)據(jù),并且提示硬盤(pán)有些問(wèn)題需要修復(fù),完美!點(diǎn)修復(fù)之后立即就可以修復(fù)好,數(shù)據(jù)一切正常,nice!


接下來(lái)為了讓KVM中的黑群暉可以被網(wǎng)絡(luò)中的其他設(shè)備訪問(wèn)到,還需要配置橋接網(wǎng)卡。
# 先查看宿主機(jī)的網(wǎng)卡
$ ifconfig
……
enp3s0 Link encap:以太網(wǎng) 硬件地址 10:bf:48:b9:f0:8a
UP BROADCAST RUNNING MULTICAST MTU:1500 躍點(diǎn)數(shù):1
接收數(shù)據(jù)包:2239223 錯(cuò)誤:0 丟棄:0 過(guò)載:0 幀數(shù):0
發(fā)送數(shù)據(jù)包:1281954 錯(cuò)誤:0 丟棄:0 過(guò)載:0 載波:0
碰撞:0 發(fā)送隊(duì)列長(zhǎng)度:1000
接收字節(jié):2866153516 (2.8 GB) 發(fā)送字節(jié):211486261 (211.4 MB)
……
# 找到有線網(wǎng)卡的名字enp3s0,然后設(shè)置橋接虛擬網(wǎng)卡
$ sudo vim /etc/network/interfaces
# 增加以下內(nèi)容
auto br0
iface br0 inet dhcp
bridge_ports enp3s0
bridge_stp off
bridge_fd 0
# 重啟網(wǎng)絡(luò)服務(wù)
$ sudo /etc/init.d/networking restart
然后在KVM中把虛擬網(wǎng)卡br0分配給黑群,如果有必要可以一并修改MAC地址:

最后對(duì)比一下費(fèi)用:
- Windows Server 2016有180天的免費(fèi)試用
- VMWare Workstation 12有30天的免費(fèi)試用
- KVM開(kāi)源免費(fèi)
所以還是選KVM比較劃算。