2014年4月8日星期二

【VMware虚拟化解决方案】配置和部署VMware ESXi5.5

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
【VMware虚拟化解决方案】配置和部署VMware ESXi5.5  阅读原文»

【VMware虚拟化解决方案】配置和部署VMware ESXi5.5

马博峰

在安装ESXi5.5之前,需要对要对整个环境进行设计和规划,由于虚拟化涉及服务器技术、网络技术和存储技术等多项技术,所以虚拟化的架构设计涵盖了CPU的选型、网络的设计、共享存储的方式、虚拟化资源的需求和安装ESXI的模式等知识。一个好的VMware vSphere安装设计方案决定着最终虚拟化的效果。

无论是采用X86服务器,还是采用机架式、塔式或者刀片式服务器,CPU的选择是至关重要的。现在市场上主流的CPU是Intel公司和AMD公司产品,这两家公司的CPU对虚拟化都有很好的支持,具体选择哪家的产品,我们需要根据实际情况而定。

一般安装ESXi需要一个 64 位的CPU,而具体选择哪一款CPU还需要考虑许多其他的因素,其中最重要的一点就是虚拟化技术选项,具体来说就是是选择Intel 虚拟化技术 (Intel VT) 的CPU还是选择 AMD 虚拟化 (AMD-V) 技术的CPU。这时有的读者可能会奇怪了,为什么只能选择这两种技术的CPU呢?其实原因很简单,因为只有具有这两种技术的CPU才提供虚拟化功能。但是有一点必须要注意,不是所有的Intel公司或AMD公司的CPU都能支持这项技术,一般来说这几年的新CPU都支持这项技术,所以对于想利用旧服务器来搭建虚拟化平台的,就必须仔细查看所选的CPU是否支持虚拟化技术。

另外在选择CPU时还有一点也很重要,就是所选的CPU要支持硬件强制实施的数据执行保护 (DEP)技术,此项技术必须可用并且已启用。具体地说就是,你必须启用 Intel XD 位(执行禁用位)或 AMD NX 位(无执行位)。除此之外,一些新购买的服务器默认是不开启虚拟化Intel VT 或 AMD-V技术的,需要在主板BIOS中开启虚拟化技术,可以利用检测功能来测试服务器的CPU是否支持虚拟化技术。

clip_image002

当满足CPU硬件需求后,接下来要做的就是对虚拟化上的虚拟机CPU资源做出统计,安装在物理计算机中的VMware vSphere拥有最多320个逻辑处理器。这里所说的逻辑处理器可以是一个核心处理器,也可以是一个使用超线程技术的处理器。理论上说,一个虚拟机最多可以配置64个虚拟处理器,但是实际使用时,一个客户操作系统可以支持的虚拟处理器数量并没有这么多,具体情况如下:

一颗单处理器,每个处理器都是四核的,这样就会提供四个逻辑处理器。

一颗双处理器,每个处理器都是四核的,这样就会提供八个逻辑处理器。

一颗四处理器,每个处理器都是双核的,这样就会提供八个逻辑处理器。

一颗四处理器,每个处理器都是双核的、并且采用超线程系统,这样就会提供十六个逻辑处理器。

当然,虚拟机中的一个逻辑处理器在运算能力上不等于物理处理器中的一个核,也不是说使用四颗处理器,每个处理器都是双核的、并且采用超线程系统,这样就会提供十六个逻辑处理器,就只能建立16个虚拟机。VMware vSphere可使用物理计算机上的逻辑处理器来配置多个虚拟机并同时运行它们。创建虚拟机的多少取决于两点:一是运行VMware vSphere服务器的可用物理资源;二是VMware vSphere的最大能力。拥有足够物理资源的ESXi服务器可以支持配置更多个虚拟机。

网络的规划关系到整体虚拟化系统是否能正常的运作。提到网络,首先会涉及的自然就网卡了,由于要实现多个网络虚拟化的功能,所以对服务器的网卡会有一定的要求。运行在Hyper-V主机上的虚拟机要通过主机上的物理网卡进行通信。

在正式开始介绍之前,首先让我们看一个例子。假设我们有一台高性能的物理主机,但却只有1个千兆物理网卡。我们在该物理主机上安装了VMware vSphere,并创建了虚拟网络与物理主机唯一网卡的连接,此时在这台主机上建立的虚拟机都要通过这一个网卡进行通信。我们搭建好的这一虚拟系统在运行的初始阶段,多个外部请求同时访问虚拟机时,其性能并没有受到任何影响。但是随着虚拟机的增加和网络访问的增长,使得只有1个物理网卡的VMware vSphere主机在通信上遇到了堵塞,一些虚拟机甚至出现了网络延迟和丢包的现象。此时这个问题如何解决呢?其实很简单,就是不能将所有虚拟机的网络通信全部放到1个物理网卡上的一个网口,应该放在具有冗余和更好带宽的网络上。通过这个例子说明:若是确定要使用VMware vSphere虚拟化技术,则必须要在采购服务器时,确保服务器的网口数量和网络可扩展性满足虚拟机业务的发展,而这就是网络规划的内容之一。

在实际的网络规划中,可能还要考虑不同种类的网络类型,因为不同的网络类型可能用于不同的网络通信,也可能为了更好的带宽而使用不同类型的网卡。VMware vSphere网络包括虚拟机网络、高可用网络、虚拟机实时迁移网络、管理网络、iSCSI San网络和FC SAN网络等。

除了需要考虑以上因素外,进行网络规划时还要考虑这些网络的冗余和带宽设计。比如说iSCSI SAN,通常至少需要4个千兆网卡,才能有4GB的带宽;如果采用FA SAN,则需要至少2个8GB HBA卡,才能有4GB的带宽。无论是采用什么方式,在设计VMware vSphere虚拟化网络的时候,一定要保证网卡数量和带宽满足业务的需求。但是要注意,VMware vSphere不支持无线网络。

如果是采用单台ESXi主机,且该主机连接了多块硬盘,比如Dell R520,那么我们可以使用本机的存储设备来存放虚拟机文件。VMware vSphere主机连接存储的方式包括:可以通过直接连接的存储,使用串行进阶技术连接(Serial Advanced Technology Attachment��SATA)、外部串行进阶技术连接(external Serial Advanced Technology Attachment��eSATA)、并行高级技术连接(Parallel Advanced Technology Attachment��PATA)、串行连接SCSI(Serial Attached SCSI��SAS)、SCSI、USB及火线连接存储。

如果是单台ESXi主机,每台都使用直连存储设备,那么就可以解决单台主机虚拟机空间不足的问题了;如果将2台单独的主机连接在一起,就可以通过VMware vSphere将虚拟机从一台ESXi主机中迁移到另外一台ESXi主机,而在迁移的过程中无需共享存储,虚拟机也不会出现中断运行,这就是VMware vSphere中的重要功能��可以在非共享存储上迁移虚拟机。但是,如果在直连存储设备中,当一台ESXi主机发生故障时,则在这台ESXI主机中的虚拟机也会停止工作,直到ESXi主机恢复工作,这样就会造成业务的长时间中断。

同样可以使用VMware的新技术,那就是VMware Virtual SAN,VMwareVirtual SAN是VMware首个软件定义存储产品,VMwareVirtualSAN直接置入VMwarevSphere内核,提供新一代聚合式虚拟化管理程序存储功能。该软件集中管理行业标准x86服务器的内部磁盘与闪存设备,实现出色且灵活的虚拟机共享存储。根据内部基准测试,VMwareVirtualSAN在32节点集群上的读取性能高达200万IOPS(输入输出操作/每秒)1,读写性能为640,000 IOPS。

VMware vSphere支持的最大内存为4TB,每个虚拟机最多分配1TB内存。VMware vSphere具有动态内存的技术,通过该技术可以动态负载虚拟机工作时候所占用的内存,这样可以节省一些内存空间。但是在内存的规划中,不能将虚拟机运行内存和物理机的内存等同,毕竟多留些内存空间还是好的,以防不时之需。

对于老服务器增加内存来说,在选购内存的时候尽量要选择与原服务器相同品牌和频率的内存,如果采用不同品牌或者不同频率的内存,则要检测兼容性和稳定性,一般情况下,1333 MHz和1066 MHz两种不同频率的内存插在一起,则会降频到他两者共有的频率上。在一些服务器上,一定要注意插内存的顺序(不同品牌的服务器插内存的顺序也不同),并在主板BIOS中选择内存的模式,如ECC、Mirroring或Optimizer。

clip_image004

接下来接下来就是安装VMware ESXi,安装VMware ESXi有很多种方法和方式,其安装方法包括:

1、交互式 ESXi 安装(小型推荐)

对于不足五台主机的小型部署,建议使用交互式安装。从 CD 或 DVD、可引导的 USB 设备引导安装程序,或从网络中的某个位置通过 PXE 引导安装程序。按照安装向导中的提示将 ESXi 安装到磁盘。

zabbix企业应用之low level discovery监控memcache  阅读原文»

上一篇介绍监控固定11211端口的memcache(http://dl528888.blog.51cto.com/2382721/1384341),现在在介绍使用low level discover来监控memcache。

下面是效果图:

1、Memcached 11211 of port Items Status

wKioL1NDUbGA5Se_AAOddTSYubo391.jpg

2、Memcached 11211 of Port Status

wKioL1NDUfPiSca4AAOAtDOpOvE404.jpg

3、Memcached 11211 of port Threads Status

wKiom1NDUl-hpAsyAAL4dz1oIb4812.jpg

4、Memcached 11211 of port Uptime

wKioL1NDUmqx15FqAAOP8pIhtqY809.jpg

5、Memcached 11211 of port Connections

wKiom1NDUsPRXXeiAAPw6JCqAJw955.jpg

6、Memcached 11211 of port CMD Status(hits/misses)

wKioL1NDUs_xx_OPAAPy4wRm2WE687.jpg

7、Memcached 11211 of port Bytes read/write

wKiom1NDUyyA5dmHAAOl77Z5Gfo104.jpg

8、Memcached 11211 of port Bytes use

wKioL1NDUzPQ_3_FAAOzM8ktoic580.jpg

9、Memcached 11211 of port Cmd flush/get/set

wKioL1NDU13iICBlAANTIVZ6P6c807.jpg

10、Memcached 11211 of port Auth Status

wKiom1NDU7ih82uEAANJVR0DnuM755.jpg

如何实现:

一、客户端

1、监控内容的json化

在客户端里,需要把监控的内容json化展示,然后服务端可以通过正则来过滤出结果

下面在是我的json展示

wKiom1NDWFSyeTmTAAB_QbSYAYQ940.jpg

脚本内容如下:

[root@puppet bin]# cat memcache_low_discovery.sh
#Fucation:zabbix low-level discovery
port=($(sudo netstat -tpln | awk -F "[ :]+" '/[m]emcached/ && /0.0.0.0/ {print $5}'))
printf '\t"data":[\n'
for key in ${!port[@]}
if [[ "${#port[@]}" -gt 1 && "${key}" -ne "$((${#port[@]}-1))" ]];then
printf "\t\t\t\"{#MEMPORT}\":\"${port[${key}]}\"},\n"
else [[ "${key}" -eq "((${#port[@]}-1))" ]]
printf "\t\t\t\"{#MEMPORT}\":\"${port[${key}]}\"}\n"

把此文件存放到/usr/local/zabbix/bin里,然后给与755权限,并修改用户与组为zabbix,同时允许zabbix用户无密码运行netstat

echo "zabbix ALL=(root) NOPASSWD:/bin/netstat">>/etc/sudoers

#Disable requiretty

sed -i 's/^Defaults.*.requiretty/#Defaults requiretty/'/etc/sudoers
2、修改zabbix_agentd.conf文件

在zabbix_agentd.conf最后添加以下内容

UserParameter=memcached_stats[*],(echo stats; sleep 0.1) telnet 127.0.0.1 $1 2>&1 awk '/STAT $2 / {print $NF}'
UserParameter=zabbix_low_discovery[*],/bin/bash /usr/local/zabbix/bin/memcache_low_discovery.sh $1

3、重启zabbix服务

ps -efgrep zabbixgrep -v gre

阅读更多内容

没有评论:

发表评论