虚拟化云平台环境搭建指导建议虚拟化平台硬件部署
解释说明:
使用中高端的磁盘阵列,做为虚拟平台的存储,通过光纤交换机与多台宿主机进行连接。
多台宿主机的以太网口连接到以太网交换机上,个人电脑也连接到以太网交换机上,从而使用宿主机上的虚拟操作系统。
硬件配置参数建议
1. 存储
1 磁阵的必要性
没有使用共享存储的虚拟云平台,只使用本地宿主机的硬盘,不是一个真正的虚拟化环境。
如果只是使用宿主机本地的硬盘,容量方面不是主要问题,但是,宿
主机的硬盘IO 效率肯定比磁盘阵列差,而且,虚拟主机的在线迁移,HA 等功能,都是必须在有共享存储的条件下才可以配置。
在虚拟云平台环境下,应该使用磁盘阵列做为虚拟云平台的共享存储,而且需要的是至少中端配置的磁盘阵列,最好是一个高端配置的磁盘阵列,不要因为磁盘IO 的问题,成为虚拟环境的瓶颈。
在虚拟化环境下,运行有很多的虚拟机,如果某个虚拟机占用IO 较多的话,会把其他的虚拟机的运行速度拉低,拖累整个虚拟云平台的使用。
如果有好的IO ,可以很大增加工作效率。
2 磁阵的容量
在配置存储的硬盘大小时,应该尽量的要有前瞻性考虑硬盘容量的大小,基本上要按照业务所需硬盘空间大小*2,做为磁阵的最小空间。
这是因为,首先,硬盘的大小算法有7%左右的误差(例如,标价900G 的硬盘,实际可用空间只有
838G )。
其次,磁阵要做RAID ,按照最小损耗的RAID5计算,有20%左右的空间消费掉了。
再次,磁阵设备本身还要做冗余坏盘算法,不同的算法消费的硬盘空间也不一样,可以允许同时坏2块或4块硬盘。
最后,在划分共享空间时,还会有小许的浪费。
总的算下来,大约只有66%的空间才是真正可用的空间。
如果从长远考虑的话,磁阵上最好规划4倍的硬盘空间。
2. 宿主机
先解释一下资源独享的内容:
内存共享,在虚拟环境中,缺省是多个虚拟机可以共享宿主机的内存。
例如:一台宿主机有10G 内存,安装了 3个虚拟机,每个虚拟机都是4G 内存,这三个虚拟机都可以运行起来。
实际上就是这3个虚拟机的内存是共享的,才可以运行起来。
可以在虚拟化软件中,手工配置一下,对虚拟机的内存进行锁定配置。
一旦锁定了内存,那么运行了两个虚拟机之后,想再运行第三个虚拟机时,就会报“宿主机内存不足而无法启动”的信息。
CPU 共享,在虚拟环境中,CPU 是可以给多个虚拟机共享使用的。
例如:一台宿主机的CPU 总共有8core ,安装了 3个虚拟机,每个虚拟机都是4core ,这三个虚拟机都可以运行起来,而且,在每个虚拟机里看到的都是4core 的CPU 。
宿主机是运行多个虚拟机的载体,不同的虚拟机消耗的CPU 比例是不同的,因此,可以在多个虚拟机之间实现总负荷的负载均衡,也就是说,多个虚拟机要求的CPU 数,可以远远大于宿主机的实体CPU 数量。
CPU 可以按照宿主机:虚拟机=1:4或1:8的比例来配置。
虚拟机的CPU 可以共享使用,虚拟机的内存也可以共享使用,但是,在配置业务时,强烈不推荐内存共享机制,而使用内存锁定机制。
另外,由于虚拟机的内存锁定了,而CPU 一般都比较空闲,安装较多的虚拟机后,宿主机的内存常常感觉不够用。
因此,建议宿主机
的实体CPU 核数(不含超线程算法):实体内存数=1core:8G ,如果条件允许,可以做到1core :16G 。
3. 网络
在虚拟化环境中,宿主机与磁盘阵列,使用光纤交换机进行数据读取。
宿主机之间,使用千兆以太网交换数据。
而且,由于一个宿主机上安装有多个虚拟机,要求宿主机上至少连接两根网线。
如果需要考虑网线松动出错的话,也就是需要考虑网口备份功能的话,最好连接4根网线。
另外,由于实体是只有2或4根网线连接到交换机上,因此,如果在交换机上划分了VLAN 网段的话,要求宿主机上的所有虚拟机的IP 都满足VLAN 网段要求,否则,虚拟机无法工作。
个人工作电脑,可以使用百兆以太口连接到虚拟平台即可。
由于虚拟化平台对多个系统进行集中运行,因此,容易出现异地办公的情况。
此时,对VPN 网络的带宽要求较高。
VPN 网络最低带宽要求建议按照1M+100K*(n-10)人员的一个算法(n 大于10人时的算法)进行建设。
虚拟机参数建议
1. 磁盘阵列共享空间
在磁阵上划分的共享空间给宿主机使用,宿主机占用的总空间不会超出此范围,因此,一旦划定好共享空间后,不必担心磁阵上到时候没有剩余空间的问题。
在宿主机上分配的虚拟机空间也是预先定义好的,虚拟机内部的空间不会超出此范围。
因此,也不必担心某个虚拟机没有剩余空间而影响其他虚拟机的运行。
但是,在对虚拟机进行快照操作时,会占用宿主机上的原来分配好的共享空间。
因此,
因此,在宿主机上安装虚拟机时,不能把宿主机上能用到的共享空间全部用掉,建议最多使用到共享空间的80%。
2. 虚拟机磁盘配置
虚拟机中的硬盘,实际上就是从宿主机上划分空间。
对于虚拟机中的硬盘的调整,只能扩大新增硬盘分区大小,而无法减少硬盘分区大小。
当然了,可以删除一个完整的硬盘,但将引发系统的完整性问题。
因此,比较可靠的做法是,先不要给虚拟机划分太多的空间,而是通过以后逐渐增加硬盘的方式来进行。
特别是那种对业务数据量估计不准的虚拟机,更不要一下子就规划很大的硬盘空间。
在给虚拟机增加虚拟硬盘时,建议每块虚拟硬盘容量不要超过500G 。
在虚拟机的虚拟硬盘参数中,有如下三种:
后置备延迟置零、后置备置零、精简置备
(1)厚置备延迟置零:
以默认的厚格式创建虚拟磁盘。
创建过程中为虚拟磁盘分配所需空间。
创建时不会擦除物理设备上保留的任何数据,但是以后从虚拟机首次执行写操作时会按需要将其置零。
(2)厚置备置零:
创建支持群集功能(如 Fault Tolerance)的厚磁盘。
在创建时为虚拟磁盘分配所需的空间。
与平面格式相反,在创建过程中会将物理设备上保留的数据置零。
创建这种格式的磁盘所需的时间可能会比创建其他类型的磁盘长。
(3)精简置备:
使用精简置备格式。
最初,精简置备的磁盘只使用该磁盘最初所需要的数据存储空间。
如果以后精简磁盘需要更多空间,则它可以增长到为其分配的最大容量
在虚拟机中,如果不是临时研究时使用的系统,是要正常、长期使用的系统,要求使用“后置备延迟置零”或者“后置备置零”,推荐使用“后置备置零”。
3. 虚拟机操作系统安装
虚拟机只能安装X86系列的操作系统,包括Windows ,Linux ,Solaris UNIX,FreeBSD UNIX等系列的32位和64位OS 。
对于LINUX 和UNIX ,如果没有系统限制要求,推荐安装64位的OS ,因为32位OS 的内存只能最高4G ,而虚拟机的内存可以方便的在虚拟管理平台上动态调整。
如果是32位系统的话,就算调高,也无法利用上。
另外,对于LINUX 的话,建议安装RHEL5(小红帽系列)。
RHEL6,版本高,安全性方面进行了加强,付出的代价就是系统的很多功能都进行了限制,开发环境下,就需要进行较多的参数配置调整后才能方便使用。
4. 虚拟机CPU 、内存配置
在每个虚拟机中,我们可以很方便的根据业务发展的需要,对CPU 、内存进行重新分配。
对CPU 、内存的调整,直接在虚拟机停止后,进到虚拟机的属性设置页面下,进行修改,并重新启动虚拟机即可生效。
当然了,对于内存,我们要求进行“内存锁定”,CPU 不需要绑定。
缺省情况下,我们推荐虚拟机中CPU 核数:内存=1core:2G 或1core :3G 。
虚拟化平台缺陷
1. 在使用虚拟化平台后,有些现场对每个虚拟机的CPU 、内存进行了最高数量上的限制,无法满足我们现有系统的正常运行,特别是最高内存的限制,例如:现场限制一个虚拟机的内存最高是8G ,虚拟机的数量可以多个。
而我们的系统,一个进程的内存就要求10G 。
因此,我们需要对这种大内存要求的服务进行拆分,拆分成多个小内存的服务,可以运行多个实例。
2. 在使用虚拟化平台后,一台宿主机上同时运行多个虚拟机,而公布可使用的最高权限是单个虚拟机,也就是说,只能在虚拟机内部进行操作查看。
因此,当虚拟机上的某个服务出现性能问题时,有可能是这个服务引发的性能问题,也有可能是宿主机上的其他虚拟机占用大量资源导致本虚拟机性能下降造成的问题。
但是,我们只能登录到这个虚拟机上进行查找定位问题,无法跨越虚拟机进一步查看是不
是其他虚拟机造成的问题。
在这种情况下,我们需要开发一些小工具来进行性能压力测试的数据收集,包括对CPU 、内存、磁盘IO 的性能压力测试。
但是,这种小工具也只能在系统出现性能问题后,保留现场环境下进行初步定位,而无法做到预警功能。
3. 对于数据库,现场是统一搭建数据库平台,需要使用的数据库由用户统一创建好,再提供连接信息给我们的应用系统,换句话说,只提供JDBC 连接的访问权限给我们,连虚拟操作系统都不开放。
当系统出现问题时,只能靠DBA 通过数据库的系统日志信息来查找问题。