本帖背景和目的:学习一门技术,不可或缺的就是搭环境做测试,关键问题在于怎么搭?怎么测?用哪些工具?软硬件各有什么要求?搭建过程中都有哪些问题,如何解决?带着这些问题,我特地开了本帖,希望为大家建立一个分享、交流搭建测试环境的平台,让我们的学习之路更为平坦。你可以说说自己的工具、经验、推荐、最佳实践等等。没有唯一的做法,只有最适合、最合理的做法。也可以提出自己的疑问,集大众之力去解决。
废话少说,先干为敬,我在这里简单谈谈自己搭建测试环境的做法:
硬件环境:
Intel i5 CPU (关键是支持Intel-VT-x、Intel-VT-d[可选]、硬件DEP[可选])
主板支持最大32GB内存(大容量内存是运行10+ VM的必须)
OS硬盘SSD,数据硬盘为TB级(存放VM)
网络:一般家里带有Internet的LAN网络就足以了
软件环境:
1. 主机虚拟化软件VMWare Workstation:
https://my.vmware.com/web/vmware/evalcenter?p=vmware-workstation9 (注册帐号可以下载30天试用版)同类型产品很多,比如VirtuaBox、VPC、Virtual Server、QEMU等等,大家可以自由选择。
2. 共享存储
EMC VNX-File simulator
https://community.emc.com/thread/162719?start=0&tstart=0 OpenFiler
https://openfiler.com/ 3. Server Hypervisor
VMWare ESXi
https://www.vmware.com/go/get-free-esxi/ (注册帐号可以获得120天试用)
Microsoft Hyper-V(其实就是下个Win2008 or later的server OS)
http://www.microsoft.com/click/s ... shx?CR_CC=200127475 KVM
http://www.linux-kvm.org/page/Main_Page 4. OpenFlow网络:Mininet -
http://yuba.stanford.edu/foswiki/bin/view/OpenFlow/Mininet5. 云平台:
Openstack -
http://docs.openstack.org/trunk/ ... nstall/apt/content/ CloudStack -
http://incubator.apache.org/cloudstack/ 6. 虚拟网络:这个比较复杂,个人还没实战过。先可以推荐几个网站,这些更多的是SDN实现,而非专门的网络虚拟化。有兴趣的朋友可以研究+交流:
Openstack Quantum:
http://wiki.openstack.org/Quantum FlowVisor:
https://openflow.stanford.edu/display/DOCS/Flowvisor OpenvSwitch:
http://openvswitch.org/ Floodlight
http://floodlight.openflowhub.org/ NVP -
http://nicira.com/ (没得下载…只能看看概念)
Cisco Nexus 1000v (去VMWARE或Cisco注册个Guest帐号就可以下载)
其实还漏了很多,比如应用程序虚拟化、桌面虚拟化、存储虚拟化,这也是开这个帖子的原因之一,在下个人能力有限,不可能面面俱到,希望集众人之力,让我们的测试环境变得更为完整。
常见问题:(这里是我目前遇到的一些疑问和解决方案,供参考)
A1: ESXi此类软件通常是直接安装在硬件之上的,必须有专门的服务器才能测试吗?
Q1: 你可以先在自己的工作机(比如WINDOWS 7)上安装VMWARE Workstation,随后创建ESXi虚拟机,再用ESXi虚拟机创建虚拟机,即nested VM。不要太担心性能,因为你只是测试,而且我试过,nested VM的性能还是不错的。个人还尝试过用KVM做nested VM,但性能就很差,安装一个nested VM都要好久(我尝试的是WINXP,几乎跑不动,CPU基本都在90%以上)。所以,推荐Workstation。
A2:为什么需要Shared Storage,直接用VM自带的虚拟硬盘不就可以了?
Q2:因为集群环境通常都需要shared storage,比如VMWare vMotion这种功能也都是要在群集环境下才能工作的。
Tip1:我选择workstation还有一个重要原因,就是它可以虚拟化Intel-VT-x or AMD-V,其它产品是否有这个功能我没具体查过,知道的朋友可以分享一下经验。为什么需要这个功能,首先,有些软件必须在硬件支持Intel-VT-x or AMD-v的情况下才能安装,比如Microsoft Hyper-V,我试过在workstation上安装Windows Server 2012,随后安装Hyper-V role,但提示CPU不支持硬件虚拟化。随后,为vCPU打开硬件虚拟化功能后,就能安装了,KVM也一样,不过KVM似乎并不强行要求硬件虚拟化,只不过没有硬件虚拟化性能会很差。
注意:以上仅是我个人搭建测试环境的做法,并非必须如此,其中也可能存在不合理和错误,总之方法和工具的选择在于个人。