1个月前在把台式机的系统改成了WINDOWS SERVER 2016,还在HYPER-V上装了黑群晖。试用一个月之后,感觉WINDOWS SERVER还是有点占资源,开关机都挺慢,正常使用的时候偶尔也会卡顿(没有设置前台程序优先),尤其是关机,每次都要因为关闭HYPER-V虚拟机,等上好几分钟。
正好,一直想把装在2.5寸硬盘上的WINDOWS SERVER硬盘克隆到3.5寸的硬盘上的事情没有成功,于是直接在3.5的硬盘上直接装了UBUNTU,直接安上了KVM和VIRT-MANAGER。
格式上,KVM可以直接识别vhd格式的虚拟硬盘。所以只要把HYPER-V的虚拟盘复制过来就行。有一个要注意的点是如果用了HYPER-V的“检查点”功能,要把所有的检查点合并,以合并成一个vhd文件,方法是删除所有的检查点。黑群的引导盘也一起拿过来分配给KVM,引导盘用IDE,系统盘用SCSI,启动KVM虚拟机一次点亮。
然而迁移黑群晖还是遇到了一个坑。
HYPER-V是把存储盘脱机之后,整盘分配给黑群的。UBUNTU下看到的已经是分了区的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
设备 启动 Start 末尾 扇区 Size Id 类型
/dev/sdb1 2048 4982527 4980480 2.4G fd Linux raid 自动检测
/dev/sdb2 4982528 9176831 4194304 2G fd Linux raid 自动检测
/dev/sdb3 9437184 3906824351 3897387168 1.8T fd Linux raid 自动检测
直接把/dev/sdb3
分配给黑群,或者用mdadm处理之后尝试分配/dev/md2
磁盘阵列给黑群,在黑群中打开,都是完全作为一个新的磁盘识别的,之前的数据都不认了,赶紧关掉,避免出现什么意外。
在网上找相关的KVM硬盘直通的解决方案,大都是直通显卡的解决方案。不过尝试一下是可以找到SATA硬盘控制器的:
$ 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)
不过这个看着好像只能把整个控制器直通给KVM,没办法只分配一个硬盘。最后又发现一篇文章,印证了刚刚的想法:
一般 SATA 或者 SAS 等类型的硬盘的控制器都是直接接入到 PCI 或者 PCI-E 总线的,所以也可以将硬盘作为普通的PCI设备直接分配个客户机。需要注意的是,当分配硬盘时,实际上将其控制器作为一个整体分配到客户机中,因此需要在硬件平台上至少有另两个或者多个SATA或者 SAS控制器。
《KVM 介绍(4):I/O 设备直接分配和 SR-IOV KVM PCI/PCIe Pass-Through SR-IOV》
没办法,KVM暂时走不通了,只好去试试VMWARE WORKSTATION。配置虚拟机时选择“添加硬盘”,直接找到了分配物理磁盘的输入框,直接选择,观察到路径是/dev/disk/by-id/ata-ST2000DM006-2DM164_Z4Z8RYMJ
,感觉发现了新世界!
$ 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分配磁盘时直接填上/dev/disk/by-id/ata-ST2000DM006-2DM164_Z4Z8RYMJ
,启动黑群,进入管理页面,成功识别数据,并且提示硬盘有些问题需要修复,完美!点修复之后立即就可以修复好,数据一切正常,nice!
接下来为了让KVM中的黑群晖可以被网络中的其他设备访问到,还需要配置桥接网卡。
# 先查看宿主机的网卡
$ ifconfig
……
enp3s0 Link encap:以太网 硬件地址 10:bf:48:b9:f0:8a
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:2239223 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:1281954 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:2866153516 (2.8 GB) 发送字节:211486261 (211.4 MB)
……
# 找到有线网卡的名字enp3s0,然后设置桥接虚拟网卡
$ sudo vim /etc/network/interfaces
# 增加以下内容
auto br0
iface br0 inet dhcp
bridge_ports enp3s0
bridge_stp off
bridge_fd 0
# 重启网络服务
$ sudo /etc/init.d/networking restart
然后在KVM中把虚拟网卡br0分配给黑群,如果有必要可以一并修改MAC地址:
最后对比一下费用:
- Windows Server 2016有180天的免费试用
- VMWare Workstation 12有30天的免费试用
- KVM开源免费
所以还是选KVM比较划算。