Win7 怎么取消禁(被)ping
当我在虚拟机的linux系统中ping本机的ip发现ping不通,而本机可以ping通虚拟机中的ip。应该是出于安全考虑吧,Win7默认在防火墙里禁止了。
工具/原料
在虚拟机中安装了ubuntu系统。
方法/步骤
查看主机ip
打开“开始”程序中的“附件”,找到“命令提示符”打开。
输入命令:ipconfig
可以看到本机的ip是192.168.0.111,网关是192.168.0.1
查看虚拟机中系统的ip
在ubuntu系统中打开终端,输入命令:ifconfig
注意:和windows系统下的ipconfig命令就差了一个字母。
可以看到ip地址是:192.168.0.101
在本机中ping虚拟机系统中的ip
在命令提示符中输入命令:ping 192.168.0.101
看到已经ping通,正常接收到数据包。
在虚拟机系统中ping本机的ip
在终端中输入命令:ping 192.168.0.111
等了很久也没ping通。
在虚拟机系统中ping网关
因为ping不通,看看网关是否可以ping通。如果网关可以ping通,说明问题在于本机上的设置,可能阻止的别人来ping它。
在终端输入命令:ping 192.168.0.1
看到可以正常ping通网关。
修改本机(win7)中的防火墙设置
1).打开控制面板,点击“系统和安全”选项。然后打开“Windows防火墙”。
2).点击进入“高级设置”,选择“入站规则”。
3).在入门规则中找到“文件和打印机共享(回显请求-ICMPv4-In)”选项
看是有两项,都是未启用。
分别在两项上右键,选择“启用规则”。
在虚拟机系统中ping本机的ip
修改完成后,再回到虚拟机系统中,在终端中输入命令:ping 192.168.0.111
可以看到已经可以正常ping通了。
END
注意事项
linux系统中查看ip的命令是ifconfig,而windows系统中查看ip的命令是ipconfig。
VMware试验问题总结
用VMware做实验网上都有教程,可是实验环境的搭建往往是让初学者做头疼的事,如虚拟机联网,参加网卡做ISA试验,有时候我们搭建实验环境的时间比做试验的时间还要多,这里我为大家介绍几种实验环境的搭建,
虚拟机联网:VMware提供三种方式分别是use bridged networking,use network address translation(NAT),use host-only networking。下面我对着三种方式做下介绍
use bridged networking:这种方式使得虚拟机系统拥有1个和真机系统(是指与虚拟机系统同在一台计算机上的真实环境中的系统)不一样的IP地址,从而与网络上的任何计算机互相通信,默认使用虚拟网卡VMnet0
use network address translation(NAT):这种方式使得虚拟机系统拥有1个和真机系统一样的IP地址,实现虚拟机系统和真机系统互相通信.虚拟机系统可以访问网络上的其他计算机,而网络上的其他计算机不能访问虚拟机系统,默认使用虚拟网卡VMnet8
use host-only networking:这种方式只实现虚拟机系统和真机系统互相通信,不能与网络上的其他计算机通信,默认使用虚拟网卡VMnet1
一般我们常用nat方式,我们设定网卡方式为net,点击虚拟机edit-virtual network edit,我们会看到0-9中连接方式,默认是vmnet1和vmnet8,其中vmnet1是hostonly,vmnet8是net,我们点击vmnet8,复选connect a host virtual adapter to this network 和 to use local dhcp,还可以点击dhcp setting 进行dhcp lease 设置,然后在系统网卡属性,自动获取ip 和dns 就行了。另外通过host only 也可以联网,我们需在主机上网卡属性分享网络连接就好了。
另一个问题就是ping不同,解决办法如下:
Ping命令的工作过程及单向Ping通的原因
当网络出现问题时,我们最常用的测试工具就是“Ping”命令了。但有时候我们会碰到单方向Ping通的现象,例如通过HUB或一根交叉线连接的在同一个局域网内的电脑A、 B,在检查它们之间的网络连通性时,发现从主机A Ping 主机B正常而从主机B Ping 主机A时,出现“超时无应答”错误。为什么呢?
要知道这其中的奥秘,我们有必要来看看Ping命令的工作过程到底是怎么样的。
假定主机A的IP地址是192.168.1.1,主机B的IP地址是192.168.1.2,都在同一子网内,则当你在主机A上运行“Ping 192.168.1.2”后,都发生了些什么呢?
首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“192.168.1.2”一起交给IP层协议(和ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址“192.168.1.2”作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并在一个映射表中查找出IP地址192.168.1.2所对应的物理地址(也叫MAC地址,熟悉网卡配置的朋友不会陌生,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。
主机B收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有用的信息提取后交给ICMP协议,后者处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。
从Ping的工作过程,我们可以知道,主机A收到了主机B的一个应答包,说明两台主机之间的去、回通路均正常。也就是说,无论从主机A到主机B,还是从主机B到主机A,都是正常的。那么,是什么原因引起只能单方向Ping通的呢?
一、安装了个人防火墙
在共享上网的机器中,出于安全考虑,大部分作为服务器的主机都安装了个人防火墙软件,而其他作为客户机的机器则一般不安装。几乎所有的个人防火墙软件,默认情况下是不允许其他机器Ping本机的。一般的做法是将来自外部的ICMP请求报文滤掉,但它却对本机出去的ICMP请求报文,以及来自外部的ICMP应答报文不加任何限制。这样,从本机Ping其他机器时,如果网络正常,就没有问题。但如果从其他机器Ping这台机器,即使网络一切正常,也会出现“超时无应答”的错误。
大部分的单方向Ping通现象源于此。解决的办法也很简单,根据你自己所用的不同类型的防火墙,调整相应的设置即可。
二、错误设置IP地址
正常情况下,一台主机应该有一个网卡,一个IP地址,或多个网卡,多个IP地址(这些地址一定要处于不同的IP子网)。但对于在公共场所使用的电脑,特别是网吧,人多手杂,其中不泛有“探索者”。曾有一次两台电脑也出现了这种单方向Ping通的情况,经过仔细检查,发现其中一台电脑的“拨号网络适配器”(相当于一块软网卡)的TCP/IP设置中,设置了一个与网卡IP地址处于同一子网的IP地址,这样,在IP层协议看来,这台主机就有两个不同的接口处于同一网段内。当从这台主机Ping其他的机器时,会存在这样的问题:
(1)主机不知道将数据包发到哪个网络接口,因为有两个网络接口都连接在同一网段;
(2)主机不知道用哪个地址作为数据包的源地址。因此,从这台主机去Ping其他机器,IP层协议会无法处理,超时后,Ping 就会给出一个“超时无应答”的错误信息提示。但从其他主机Ping这台主机时,请求包从特定的网卡来,ICMP只须简单地将目的、源地址互换,并更改一些标志即可,ICMP应答包能顺利发出,其他主机也就能成功Ping通这台机器了。
添加网卡:
我们在虚拟机右键setting -add-添加network adapter 在进行设置就好了
还有就是team的应用,Team,就是把一组虚拟机组织到一起、可以在一个窗口中、根据需要随时切换,并且添加了 LAN segments(相当于VMnet1~VMnet9)。
实际上,Team很容易理解,以前用VMware做网络实验时,需要多台虚拟机,就时候就可以使用VMnet0~VMnet9虚拟网卡,但这时的虚拟机是和主机总在同一个网络上。
而Team中的LAN Segments,与主机上的VMnet0~VMnet9一样,都是虚拟网卡,也可以称虚拟交换机,但Team中的 虚拟网卡,是与主机隔离的。
当然,如果Team中的虚拟机,选择使用 Lan segment,则是与主机隔离的;如果Team中的虚拟机,选择使用VMnet0~VMnet9,还是与主机网络相连的。
Team,简单说,就是把一组虚拟机、根据需要组织起来,而这些虚拟机,可以使用Team提供的“虚拟交换机(lan segment)”,也可以使用主机的虚拟交换机“VMnet0~VMnet9”。
提醒下要是自己主机性能低,不要在team下加载太多系统,这样易造成内存占满的情况。
好了这次就说这么多,还有谁不明白可以给我留言
本文转自q狼的诱惑 51CTO博客,原文链接:http://blog.51cto.com/liangrui/363986,如需转载请自行联系原作者
vmware如何管理虚拟机
博主QQ:819594300
博客地址:http://zpf666.blog.51cto.com/
有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持!
一、实验拓扑如下
二、实验环境:
BENET公司随着规模不断地扩大,需要搭建更多的服务器,实现私有云,所以需要招聘多位虚拟化工程师,而且每位虚拟化工程师管理不同类型的服务器,假设:公司有三台服务器,分别是web服务器,邮件服务器,数据库服务器。虚拟化工程师分别是:张三、李四、王五。现在要求张三只能管理web服务器,李四只能管理邮件服务器,王五只能管理数据库服务器。此外,公司的主管cluo可以管理所有的服务器,副主管meixi也可以管理所有的服务器,但是只能查看服务器,可以制作快照,可以修改硬件配置,但不能关机,不能克隆,不能制作模板。
三、实验步骤:
1、首先安装一台linux虚拟机
2、使用克隆技术,克隆一台linux虚拟机
3、把原来的linux虚拟机转换成模板
4、使用模板建立新的linux虚拟机
5、打开新的linux虚拟机电源,然后配置ip地址,能够ping通iscsi即可
6、在新的linux虚拟机上安装vmtools
并为新的linux虚拟机制作快照(选择内存快照和静默快照)
7、按照实验环境的要求,分别建立5个用户,设置权限
8、使用5个用户分别测试权限
9、使用ha做高可用群集
注意:有时间可以研究如何把一台真实的服务器转换成虚拟机存储到esxi中.
vmtools
1、鼠标不用ctrl+alt切换了
2、鼠标移动速度快了
3、直接拖拽数据
4、点击红色方块关机了
5、可以创建静默快照
6、分享虚拟机资源(吐出多余的cpu和内存资源)
......
实验过程:
1、 安装一台虚拟机,全新的一台虚拟机,(注意:在创建虚拟机的时候在“独立”的时候不点独立(原因是一会做快照的时候,点了独立就做不了快照了,因为通过独立创建的虚拟机不受快照的影响),另外安装的虚拟机一定要在开发的几个选项全打√)。
本实验的准备工作:
1)Openfiler要添加4块50G磁盘,要做两块RAID0卷,为了后面的HA高可用要用,高可用要用到两块存储器(必须至少两块存储器,系统默认就是要做备份)
2)两台ESXi每一台都要至少5块网络适配器(也就是网卡),这也是因为高可用会用得到,默认的标准网卡Switc0和iscsi网卡都需要有备份,要不然做高可用的时候会有如下错误提醒:
3)SQL/vServer的防火墙要关闭(如果你知道端口号也可以做例外),这是因为做高可用的时候,不关闭防火墙会报如下错误:
2、使用克隆技术,克隆一台linux虚拟机
要克隆的虚拟机右键点击
3、把原来的linux虚拟机转换成模板
5、打开新的linux虚拟机电源,然后配置ip地址,能够ping通iscsi即可。
4、使用模板建立新的linux虚拟机
5、打开新的linux虚拟机电源,然后配置ip地址,能够ping通iscsi即可。
6、、在新的linux虚拟机上安装vmtools;
并为新的linux虚拟机制作快照(选择内存快照和静默快照)
首先安装vmtools前先查看虚拟机是否还连着光盘(本地、ESXi主机还是数据存储ISO,有的话直接图形化断开)
然后接着完成下面的操作
按照实验环境的要求,分别建立5个用户,设置权限(为了演示一下,我在这里只做一个用户即可)
(另外拓展一些知识:怎么自己添加权限)
给张三应用张三的权限即可:
9、使用ha做高可用群集首先做高可用群集,首先要保证实验用的虚拟机的数据一定要在存储器上面,一定不要再ESXi上面,要不然做不了高可用,还有别忘了给默认标准交换机vSwitch0和iscsi交换机各添加一块网卡做备份,(在创建iscsi网卡的时候只能用一块,要不然在存储适配器里面添加iscsi的时候看不见iscsi这块网卡,等iscsi在存储适配器里面添加完毕后,再填一块网卡做备份。还有vSenter的防火墙要关闭)
接着完成下面的步骤:
这里就出现一个群集的名称:
用鼠标拖拽两台ESXi主机到群集即可:
当ESXi主机那有黄色小感叹号的时候,说明没按我前面说的网卡备份了,存储器备份了,vcenter的防火墙没关啊没做好,如果准备工作全部做完了,黄色小感叹号依然存在,则按以下办法可以使黄色感叹号消失:
此时可以看见100.1是群集的主机:
此时可以看见100.2是群集的从属,从属与:
可以看见linux for muban这台虚拟机的主机ESXi是192.168.100.1 :
可以看见linux-clone这台虚拟机的主机ESXi是192.168.100.2 :
打开linux for muban这台虚拟机给配一个永久ip地址为192.168.100.201
是为了打开客户机的cmd端,“ping192.168.100.201 -t”
一直ping着这台虚拟机,一会好看效果:
断掉192.168.100.1这台ESXi主机的所有网卡(等效于这台ESXi主机宕机了)
会看见由于192.168.100.1宕机,所以会出现请求超时的现象:
等一会儿可以看见由于192.168.100.1宕机,192.168.100.2成为了HA群集的主机。
可以看见高可用群集其效果,Linux for muban这台虚拟机的主机归属变成了192.168.100.2:
再去看客户端的ping的效果,看见红框内是由于192.168.100.1宕机然后群集起了效果发生的暂短的中断,最后虚拟机恢复了正常:
本文转自Mr大表哥 博客,原文链接:http://blog.51cto.com/zpf666/1928925 如需转载请自行联系原作者
VMware vSphere 5.1 群集深入解析(四)
第四章 重新启动虚拟机
在前面的章节中,我们描述了大多是比较基本的HA的概念。我们已经向您展示了vSphere5.0引入的多种机制以及增加了vSphereHA的弹性和可靠性,HA的可靠性在这节中主要谈到虚拟机的重新启动,这仍然是HA的首要任务。
当主机的状态改变,HA将会响应,或者更好的说,当一个或者多个虚拟机状态已经改变,大多数情况下,HA会回应故障,最常见的如下:
主机出现故障
主机隔离
虚拟机操作故障
根据故障的不同类型,以及对主机的依赖于作用,过程会略有不同,过程不同就会有不同的恢复时间。因为有许多不同的情况,也不能全部都介绍到,所以我们将尝试描述最常见的场景和常可能出现的时间点。
在我们深入到不同的故障场景时,我们会拿vSphere 5.0之前的版本和vSphere 5.0的重启优先级和重试来进行对比,这将适合我们描述的每一种情况。
重新启动优先级和顺序
在vSphere 5.0之前,当多个虚拟机需要重新启动时,HA的虚拟机启动优先级才激活,这里来说,本身没有改变,HA同样会配置虚拟机的优先级,但是在vSphere 5.0中,引入了一种新的类型的虚拟机:代理虚拟机,这些虚拟机为其它虚拟机提供服务,因此,在重新启动虚拟机时可以优先考虑它们,一个很好的例子是代理虚拟机可以为vShield Endpoint虚拟机提供服务,这些代理虚拟机被认为是最高优先级的虚拟机。
优先级是以主机为单位的,而非全局,每个主机接收到重新启动的需求时,首先启动最高优先级的虚拟机,如果最高优先级的主机出现故障,它会延迟重试,然而,在此期间,HA会继续开启剩余的虚拟机,请记住,某些虚拟机可能依赖于代理虚拟机,你应该记录哪些虚拟机依赖于代理虚拟机,并记录下当自动重启代理服务器失败,开启代理服务的正确的顺序。
基本设计原则
虚拟机可以依赖代理虚拟机或者其它虚拟机的可用性,尽管HA将尽最大的努力使得所有的虚拟机按照正确的顺序启动,但不能绝对保证。
除了代理虚拟机,HA还优先启动辅助FT的虚拟机,我们列出完整的虚拟机重新启动的顺序如下:
代理虚拟机
辅助FT的虚拟机
优先级最高的虚拟机
优先级居中的虚拟机
优先级最低的虚拟机
应该指出,如果需要相当数量的代理虚拟机,HA不会在一台主机上放置所有的虚拟机。
现在,我们已经简要的介绍了它,我们还要解决“重启重试”和“并行重启”,这些或多或少的决定了虚拟机出现故障或者主机隔离情况下重启的时间。
重启尝试
在vCenter 2.5 U4版本时候,虚拟机重启重试的次数在”das.maxvmrestartcount”选项下可以修改,默认是5次,在vCenter 2.5 U4之前的版本中,HA会一直永远尝试重启,这样会带来一些问题,这会出现多个虚拟机同时在多台主机上注册,导致混乱和不一致的情况,详情见VMware KB(http://kb.vmware.com/kb/1009625)
提示
在vSphere 5.0之前的版本中,”das.maxvmrestartcount”的选项中不包括重启重试次数的配置,意思是总计重启6次,和vSphere 5.0的默认值一样。
HA会在群集上的其它主机上,启动受影响的主机,如果在主机上启动失败,那么重新启动的计数增加1,在我们开始确认时间前,可以把T0记录成主机第一次尝试启动虚拟机,这个故障时间间隔为30S,虚拟机重试启动的总体的时间还要取决于失败的次数,我们将在本章讨论。
正如我们所说,vSphere之前默认启动5次,加上第一次的启动失败,总计6次。每次尝试重启有特定的时间,接下来的清单将阐明这个概念,清单中的‘m’代表分钟。
T0 ——首次启动
T2m——第一次重启重试
T6m——第二次重启重试
T14m——第三次重启重试
T30m——第四次重启重试
图17:高可用重启时间线
图17中清楚的描绘到,如果多次尝试不成功,直到一个成功的启动可能需要约30分钟,这一点来说,没有确切的科学依据,例如,在首次重启和第一次重启直接,有一个2分钟的等待时间,而这个时间也有可能是2分钟+8秒钟,另一个重要的事实,我们一直强调的是如果没有master的相互协调,多个虚拟机试图重新启动,而且还要保留自己的启动队列。在vSphere 5.0 U1中,多个master会尝试重新启动虚拟机,虽然只有一个会成功,它仍然可能会改变时间线。
让我们在这样一个场景中举个例子来阐明它,虚拟机在重启队列中时master发生故障:
群集:4个主机(esxi01,esxi02,esxi03,esxi04)
Master:esxi01
主机esxi02上运行着一台叫VM01的虚拟机,现在它发生了故障,master esxi01尝试重启启动该虚拟机,但是失败,它将会尝试重新启动该虚拟机5次,很不走运,在进行到第四次的时候,master也出现了故障,esxi03被选举出来成为新的master,它也尝试重新启动vm01,如果第1次重启失败,它会再重启4次,如果包括第1此重启就是5次了。
不过注意,如果重新启动的次数达到了默认值次数(5次)还是没有成功,那么虚拟机就可能再也不会触发重新启动了。
当涉及到重新启动时,一件事非常重要,主机重启尝试的并发是32个,如果有33个虚拟机需要重启,无论第32次是成功还是失败,都需要完成重启的次数,第33台虚拟机才能触发重启尝试。
现在再来个例子,如果是32个虚拟机是个低优先级,而第33个虚拟机是一个高优先级的,那么直到高优先级的虚拟机完成重启尝试,低优先级的虚拟机才能进行重启尝试,而理论上,如果重启尝试失败,低优先级的虚拟机应该在高优先级的虚拟机之前启动。
当虚拟机的位置安排好后,重新启动的优先级是会按照设定的规则来的,高优先级的虚拟机将首先有权利获取可用资源。
基本设计原则
配置虚拟机重新启动优先级是不能保证在这个顺序,实际上虚拟机的重新启动。确保合适的位置启动合适的服务以及确定在故障时按照合适的顺序启动。
现在我们知道勒虚拟机重新启动的优先级和重启尝试处理方式,下面来看一个不同的情况。
主机发生故障
master发现故障
slave发生故障
主机隔离响应
主机发生故障
在vSphere 5.0中,从一个发生故障的主机上重新启动虚拟机很简单。通过引入master/slave和数据存储心跳,了解到重启过程中发生的变化,以及相应的时间点。master和slave出现故障有明显的区别,我们强调这些是因为两种场景下重新启动的开始时间也不同。例如我们最提到的一个故障,主机发生故障,但这个故障大多数环境中很少发生,因为硬件很少故障。就算它发生,也不会影响过程和时间点。
slave发生故障
对比vSphere5.0之前的版本来说,HA怎样处理主机故障,这是一个相当复杂的场景,
复杂来自于引进了新的心跳机制,事实上,有2种不同的情况,一种心跳数据存储的配置和心跳数据存储没有配置。请记住,这是一个实际的主机故障,时间安排如下:
T0:slave发生故障
T3s:master开始监测数据存储心跳,持续15s
T10s:声明主机不可达,master将在管理网络ping发生故障的主机,这个ping持续5s
T15s:如果没有配置数据存储心跳,主机将声明挂掉
T18s:如果配置了数据存储心跳,主机将被声明挂掉
master监控网络心跳的奴隶。当slave发生故障,心跳不再被master收到的。我们把它定义为T0。 3秒钟后(T3s),master会开始监控数据存储的心跳,它会持续15秒。 在第10s(T10s),当已经没有网络或数据存储的心跳检测到时,主机将被宣布为“不可达的”。master也将开始在第10秒出现故障的主机的管理网络执行ping命令,它会做这样持续5秒钟。如果没有心跳数据存储进行配置,主机在第15s将被宣布“死亡”(T15s),master将在主机上发起重新启动虚拟机。如果已配置心跳数据存储,主机将被宣告死亡,在第18秒(T18s)将开始重新启动。我们认识到这可能会造成困惑,并希望在图18所示的时间轴使得它更容易消化。
图18:slave发生故障重新启动时间节点
master开始重启虚拟机时,过滤掉它认为已经重试失败的虚拟机。在vSphere 5.0 U1之前,master用protectedlist,如果master不知道虚拟机处理保护状态,master不会尝试重新启动它。并且在磁盘开启独占模式后,磁盘状态才只能被master获取。在vSphere 5.0 U1(和以上版本),这个行为被改变了,如果有一个网络分区中多个master试图重启同一个虚拟机,vCenter Server也需要为重启虚拟机提供必要的信息。例如,一个master在存储上锁定了一台虚拟机的文件,同时其它的master也与vCenter Server保持着联系,它们也知道所需的虚拟机的状态信息,在这种情况下,其它master虽然没有存储访问权限,但会根据vCenter Server提供的信息重新启动该锁定虚拟机。
这种机制是为了避免当重新启动虚拟机的分区资源不足而导致虚拟机启动失败,随着这一变化,其它分区的master使用由vCenter Server提供信息重新启动虚拟机的情况会很少发生。
那么留给我们一个问题,master发生故障后会发生什么呢?
Master发生故障
在一个master发生故障的情况下,过程和时间表有所不同,原因是在虚拟机重新启动之前必须要一个master,意思是要在slave之间选举出master,时间表如下
T0—master发生故障
T10s—开始master的选举
T25s—新的master被选举出来、读取protectedlist
T35s—新的master尝试重启protectedlist上所有未启动的虚拟机
slaves 从其它的master接收到网络心跳信号,如果master发生故障,当slave没有接收到网络心跳信号,我们定义为T0。由于每个群集都需要master,slave将启动T10s选举,选举过程需要T25s,在T25s时,新的master读到了protectedlist,这个清单中包含了HA保护的所有的虚拟机,在T35s时,master开始启动清单中没有运行的虚拟机。在图19中的时间轴清楚的描述了这个过程。
图19:master发生故障重启时间轴
除了主机发生故障,还有一个原因会发生重启虚拟机:隔离事件。
隔离响应与检测
在我们讨论关于虚拟机隔离后的时间轴和过程,我们还要讨论隔离响应和隔离检测,当配置HA隔离响应时,第一步就是隔离响应。
隔离响应
隔离响应是, 当主机同网络或者群集内其它主机连接断开时,HA对虚拟机采用的相应措施,这并不意味着整个网络断开,而只是特定的主机的管理网络端口,目前有3种隔离响应方式,“关闭电源”,“保持打开电源”“关机”。隔离响应回答了这样一个问题,当检测到网络隔离主机应该做些什么?,让我们更深入的讨论这三个观点:
关闭电源—当发生隔离,所有虚拟机将被关闭电源,直截了当的说,虚拟机的电源线类似于被拔出来了
关机—当发生隔离,虚拟机使用VMware tools正常关闭。如果该任务在5分钟内不能成功完成,关闭电源操作马上实行。如果VMware tools未被安装,则立刻执行关闭电源操作。
保持打开电源—当主机发生隔离时,虚拟机不变仍处于开机状态
这个设置可以在群集下面的虚拟机选项里进行更改,如图20所示。
图20: 群集默认设置
默认设置的主机隔离响应在过去几年改变了很多次,并且也曾经引起过紊乱。
直到ESXi 3.5 U2 / vCenter 2.5 U2 默认隔离响应是“关闭电源”
到了ESXi 3.5 U3/ vCenter 2.5 U3 默认隔离响应改为“保持打开电源”
到了vSphere 4.0 它被改变成“关机”
到了vSphere 5.0 她被改变成“保持打开电源”
请记住,这些变化仅仅适用于新创建的群集,当创建一个新的群集,可能会根据客户的需求变更默认的隔离响应方式,当升级版本的时候,你可能需要注意,很多客户会反馈升级后默认隔离响应变成了”保持打开电源”.
基本设计原则
在升级以前版本的环境之前,确认您验证过的最近实践和默认设置。并记录成文档,包括详细理由,这样其它人也能理解你这样那样配置的原因。
那么就有一个问题,我们应该设置哪个隔离响应方式呢?答案很明显,选择最合适的。我们选择“保持电源打开”是因为它可以减少了发生错误的可能性和停机时间,有一个问题相信大家都有经历过,当管理网络断开,HA触发隔离响应,虚拟机并没有重新启动,在vSphere 5.0版本中,这个问题得到了缓解,HA会确认是否可以尝试重启虚拟机-没有任何理由出现任何停机,除非必要的,它通过master数据存储上的虚拟机文件来验证,当然,独立主机也可以去验证,如果它可以访问数据存储,例如,在一个iscsi存储的环境中,独立主机就不可访问数据存储。
我们认为当管理网络发生的故障与虚拟机生产网络故障有关联时,改变隔离响应的方式非常有用,如果管理网络的故障与虚拟机生产网络故障没有关联,隔离响应会引起不必要的当机时间,同时虚拟机会在没有管理网络的情况下继续在主机上运行。
第二个用处是在关闭电源/关机的场景中,当虚拟机与虚拟机生产网络通信正常,但与存储之间的网络断开,留下来的虚拟机电源还是继续打开的,结果可能生产网络中有两台同样IP地址的虚拟机。
这样我们仍很难判断去选用哪一种隔离响应,接下来的表格可能会提供你一些信息。
表3:隔离响应指南
这里有个问题我们还未曾回答,HA怎么知道哪些已经关闭电源的虚拟机需要触发隔离响应呢?为什么隔离响应比之前版本的HA更可靠呢?在之前的版本中,HA是根据主机最后记录的虚拟机状态来一直尝试重新启动虚拟机。而在vSphere 5.0中,隔离响应首先被触发,隔离主机会检测master是否负责该虚拟机,正如前面提到的,它做这些是为了确认master拥有数据存储上该虚拟机,当隔离响应被触发,隔离的主机将移除“poweron”文件中已经断开电源或者关闭的虚拟机,master将确认哪些虚拟机已经消失,那些需要重启,另外,当隔离响应被触发,它会在“poweredoff”目录下为每个虚拟机建立一个文件,master关闭虚拟机,同时触发隔离响应,这些信息会被master节点读到,当它开始尝试按照顺序重启,只有HA触发虚拟机的关闭的虚拟机才会由HA再次触发重启。
然而,一方面HA增加可靠性,隔离响应也增加了可靠性的考虑,接下来我们描述这一部分。
隔离检测
我们已经解释了什么条件会发生隔离响应事件,当触发隔离响应的时候会发生什么。我们不会广泛的讨论怎样隔离检测,它的机制也非常简单,和之前解释过的心跳类似,这里有两个场景,他们的过程和时间轴不太一样。
slave的隔离
master的隔离
在我们解释这两种情况下的差异之前,我们需要明确的是一个小的改变不能导致任何一个场景被触发,意思是如果ping成功到达主机或者主机观察选举的流量,master或者slave被选举出来,隔离响应将不被触发,而这正是你想要的,因为这避免了恢复停机所需的时间,当一台主机宣布自己被隔离,观察选举的流量可以声明自己不再隔离。
slave的隔离
相比之前版本的vSphere,隔离检测机制已经发生了翻天覆地的变化,主要区别是,在声明主机隔离之前,HA会触发master选举,在这个时间上,“s”代表秒,下面是vSphere 5.0主机的时间线。
T0—slave隔离
T10s—slave进入选举状态
T25s—slave选举自己为master
T25s—slave ping隔离地址
T30s—slave声明自己被隔离并且触发隔离响应
vSphere 5.1的时间线略有不同,在声明自己隔离和触发隔离响应之间,有最少30s的延迟。
T0—slave隔离
T10s—slave进入选举状态
T25s—slave选举自己为master
T25s—slave ping 隔离地址
T30s—slave声明自己隔离
T60s—slave触发隔离响应
当隔离响应被触发,不管是5.0还是5.1,HA会为可以访问存储的虚拟机建立一个“power-off”文件,接下来关闭虚拟机,更新主机上的“poweron”文件,power-off文件用来记录HA关闭的虚拟机,这样HA就方便重启它们,当虚拟机启动后,这些power-off文件被删除,HA被暂时禁用。
完成这些操作,master通过“poweron”文件学习到slave被隔离的信息,并基于slave提供的信息重新启动虚拟机。
图21:slave 隔离时间线
master的隔离
在master隔离的情况下,时间线就不会那么复杂,因为它没有选举的过程,在下面这个时间线上,“s“代表秒
T0—master隔离
T0—master ping隔离地址
T5s—master声明自己被隔离
T35s—master触发隔离响应
附加检查
在主机声明自己隔离之前,它会ping默认的隔离地址,通常是管理网络的网关,一直ping直到它变成非隔离状态,HA在高级选项设置中可以定义一个或者多个额外的隔离地址,这个高级设置叫做“das.isolationaddress “,它能够减少发生错误的几率,我们推荐增加一个的隔离地址。如果第二管理网络被配置,这个隔离地址应该和第二管理网络在同一个网段,如果需要,你可以配置最多10个额外的隔离地址,第二管理网络也可以是子网。
图22:隔离地址
选择额外隔离地址
许多人会问,什么样的地址适合做额外隔离地址,我们一般推荐隔离地址离主机网络较近,尽量避免IP地址跳转太多,在许多情况下,最合乎逻辑的选择是主机直接连接的物理交换机。基本上,使用管理网络的子网的网关,另一个是路由器或者其它设备的IP地址,或者NFS或者ISCSI共享存储的IP地址也是一个很好的选择。
基本设计原则
选择可靠的第二隔离地址,尽量选择主机和该地址之间的跳数最小。
故障检测时间
一些熟悉vSphere 4.x或者3.x VI的朋友,可能想知道什么是“故障检测时间”,在vSphere 5.0之前的版本中,选项内高级设置的“das.failuredetectiontime”用来设置故障检测时间,而在vSphere 5.0中,它不在是选项内高级设置的一项,当HA被重写时,该功能也被移除,但是vSphere 5.1中,一个类似的概念再次被介绍,同时也是客户希望的一个功能,允许调整网络服务水平协议。
“das.config.fdm.isolationPplicyDelaySec”在vSphere 5.1中被介绍,这个高级功能允许在隔离策略生效前修改等待时间,这个值最低是30s,如果你设置的值少于30s,延迟仍然以30s来计算,我们不推荐在高级选项中修改该值,除非你有个性化需求,通常30s就够用了。
重新启动虚拟机
最重要的一个环节还没有讲解:重新启动虚拟机,我们将用一整节来介绍这个概念,它是vSphere 5.0的又一重大变化。
当master节点和slave节点发生故障时,我们已经以时间的角度来解释了虚拟机重新启动的不同行为。现在,让我们假设一个slave节点发生故障,当master节点声明slave被分区或者隔离,它预先读取主机上”poweron”文件,通过该信息决定哪些虚拟机将会执行重启,这些文件大约每30s执行一次异步读取,如果主机在发生故障前没有被分区或者隔离,那么master将通过缓存数据来判断,发生故障之前虚拟机在哪个主机上运行。
在它尝试重新启动虚拟机之前,master将首先验证需要启动的虚拟机,这个验证使用的保护信息是vCenter Server提供给每个master的,或者如果master不联系vCenter Server,这个信息是保存在protectedlist文件中,如果master不联系vCenter或者没有锁定这个文件,虚拟机将会进行筛选,也就是说,所有虚拟机重启优先级为禁用的都会被筛选出来。
现在HA知道哪些虚拟机应该重新启动,现在是决定虚拟机启动后将放在哪个主机上,HA将通过多种条件来考虑:
CPU和内存预留情况,包括虚拟机的开销
群集内未预留容量的主机
相对于其它虚拟机,重启的优先级
虚拟机与主机的兼容性设置
虚拟机端口的数量和候选主机上的可用端口数量(分布式交换机)
主机上能提供最大的vCPU和虚拟机的数量
重启等待时间
活动主机是否运行着所需数目的代理虚拟机。(本章开篇有详细提到代理虚拟机)
重启等待时间是指启动虚拟机所需的时间总量,这意味着虚拟机重新启动被分布在不同的master执行,这样可以有效的避免启动风暴和单个主机承担延迟。
如果一个适合虚拟机启动的位置被发现,主机将通告每个目标主机设置该虚拟机需要重新启动,如果启动清单中超过了32个虚拟机,HA将限制启动并发数为32个虚拟机,如果一个虚拟机成功启动,该虚拟机所在的节点将电源状态改变的消息发送给master,master则将该虚拟机从重新启动的清单中移除。
如果无法找到适合虚拟机启动的位置,master将把该虚拟机放置进”待安置名单”,当以下条件发生改变时,再次为该虚拟机找合适的位置。
vCenter提供一个新的虚拟机与主机的兼容性清单
主机报告它未预留的容量增加了
主机加入群集(例如,当一个主机退出维护模式,一个主机被加入群集)
检测出一个新的故障,虚拟机不得不进行故障转移
虚拟机正在故障转移,出现故障时
也许你会想到DRS,那么当所有这些都失败了,DRS是否会帮助找虚拟机的位置呢?DRS做的,master节点将报告vCenter,虚拟机因为资源不足而没有地方放置,现在的情况,如果启用了DRS功能,这些信息将用于DRS尝试帮助虚拟机找到合适的位置。更深入的描述将在第8章讲解。
最坏的场景:脑裂
在过去的版本中(vSphere 4.1之前),脑裂的场景可能会发生,这一个场景中的脑裂意味着虚拟机将在两台不同的主机上同时开启,这个场景中可能是由于虚拟机使用的共享存储,而隔离响应设置成了”保持打开电源”,这种场景在全网隔离的情况下会发生,可能会导致虚拟机的VMDK文件解锁,HA的功能会打开该虚拟机的电源,同时虚拟机在原主机并未关闭(隔离响应的设置选项是”保持打开电源”),它还存在于原主机的内存中,而另一个锁定了磁盘的主机也被要求重新启动该虚拟机。
vSphere 4.1和vSphere 5.0中带来了多种增强功能,以避免这样的情况。请记住,这种最坏的情况通过在大多数的环境中不太可能发生,如果它发生,HA会依赖”锁定丢失检测”机制缓解这种情况。总之,vSphere 4.0 U2,ESXi已经能检测vmdk锁丢失,并且当数据存储可以再次访问时,锁定将不能重新获得,问题是虚拟机是否应该关闭;HA自动回答”是的”,但是,如果你在发生故障的时候连接ESXi主机,你只看到这个问题。不过HA将会为自动应答生成事件。
如上所述,ESXi 4 U2,这个问题将自动应答,虚拟机从脑裂的场景中恢复将关闭电源。
这个问题依然存在,在一个ISCSI或者NFS隔离的情况下,是应该让虚拟机关闭电源还是开启电源呢?
正如刚刚解释的,当HA检测到脑裂情况,它将自动关闭原始虚拟机的电源,这个过程不是瞬间完成的,因此建议使用隔离响应”关闭电源”或者”保持电源开启”,我们还建议增加心跳的弹性来避免这种情况,我们将在下一章讨论增强管理网络的弹性。
永久设备丢失(Permanent Device Loss)
在vSphere 5.0 U1版本中,将介绍一个增强功能,它允许自动故障转移时,虚拟机继续留在数据存储上,那么它就具有”永久设备丢失(PDL)”的条件,一个”永久设备丢失”条件,它是阵列控制器通过SCSI感测码通ESXi通信,这种情况表明LUN不可用,并且是永久不可用,举个例子,当LUN脱机,这个情况传送到阵列控制器,在发生故障的场景中,该条件被用在不均匀的模式下,当ESXi主机访问LUN被撤回,用来确保ESXi采取合适的行动,应该指出的是当整个存储发生故障,它不可能产生永久设备丢失,同时因为阵列控制器同ESXi主机之美没有通信,这种状态将被ESXi主机鉴别全路径(All Paths Down(APD))的条件
重要的是认识到接下来的设置适用于PDL条件,而非APD条件,在发生故障的场景中,我们将为两种不同的条件演示不同的行为的差异,为了让vSphere 5.0 U1的HA为响应PDL条件,两个高级配置将被介绍,第一个设置是配置主机级别为disk.terminateVMOnPDLDefault,它在/etc/vmware/settings下配置,设置其值为”true”,这是个全局值,这个设置保证当数据存储进入PDL状态时,虚拟机将被杀死,,数据存储上发出磁盘I/O的虚拟机迅速被杀死,在vSphere 5.0 U1中的虚拟机文件跨越了多个存储,而这是不支持的,在vSphere 5.1中,我们也不支持此类虚拟机。
我们建议将diskterminateVMonPDLDefault设置为true。请注意,虚拟机只杀死时发出I/ O的数据存储。如果虚拟机没有发出I/ O的数据存储,那么虚拟机仍然活着。在这种情况下,
运行内存密集型工作负载的虚拟机,而不会发出I / O的数据存储可能保持活跃。需要注意的是,这可能会导致同一个虚拟机,在虚拟机上网络有两个实例。
第二个设置是在vSphere HA高级设置das.maskCleanShutdownEnabled。在vSphere5.0 Update 1的设置,默认是不启用的,这将需要将其设置为“true”,这个设置可以让HA杀死的虚拟机自动由于PDL条件,而自动触发响应而重新启动。这个设置被介绍是因为HA无法区分虚拟机是被PDL杀掉还是管理关闭了电源,通过将其设置为true,你可以告诉HA假设这样的关闭虚拟机是PDL杀掉的,如果设置为true,注意的是在APD期间每个虚拟机关闭电源还会被HA认为触发失败,并将重新启动。(PDL翻译得不太好,后面会再修订下,^v^)
图23:PDL高级设置
本文转自 tim2009 51CTO博客,原文链接:http://blog.51cto.com/virtualbox/1173198,如需转载请自行联系原作者
Paralles 虚拟机安装及网络配置--设置静态ip
一、配置独立ip的环境前面研究了k8s的组件,核心概念,网络模型,都了解了一遍,现在就要进入实战了,摆在面前的一座大山,必须克服才行---虚拟机搭建,及网络环境配置。先说说本文的运行环境:mac笔记本虚拟机使用的是Parallels虚拟机镜像:使用的是CentOS-7-x86_64-DVD-2009.iso具体使用的版本号如下:要达成的目标是宿主机和虚拟机网络能够互通宿主机连接外网,虚拟机也能够访问外网虚拟机ip固定说说为什么虚拟机ip要固定,应为在配置k8s网络的时候,经常要用到ip地址,我们通常也是在宿主机通过iterm链接到虚拟机,如果虚拟机的ip总是变,那可就麻烦了。可笔记本链接wifi网络地址就是经常变化的,从单位到家,ip地址肯定会变,对应的虚拟机地址也会发生变化,这样的话,我们就要经常去查询虚拟机的ip,然后变更网络配置,这个事情很无语,很机械,很讨厌。所以,配置静态ip,势在必行。二、安装虚拟机这里就不说了,虚拟机安装很简单,这里使用了PD Runner,可以优雅的避开Parallels已过期的问题。有不懂的,可以单独咨询我。三、网络配置首先我们来看看我们要做的事情,通过下图来感受一下:一共有以下几件事:宿主机和虚拟机可以通过内外网互相访问。宿主机联网的情况下,虚拟机可以通过宿主机连接外部网络还有一个就是为了后续方便使用,我们给虚拟机设置静态ip。下面来看看如何操作。第一步:在mac端查看IP地址等相关信息。通过系统偏好设置-->网络-->wi-fi-->高级-->TCP/IP在通过DNS查看DNS设置,有两个记录好上面的配置信息,后面会用到第二步:设置虚拟机共享网络这里设置的是Parallels虚拟机(全局)的网络配置。点击Parallels虚拟机-->偏好设置--> 网络-->Shared模式在这里我们取消勾选<启用IPv4 DHCP>为什么要取消呢?Shared模式让我们的虚拟机与mac共享外网,<enable ipv4 dhcp 或 启用IPv4 DHCP>是用来打开内置的dhcp服务,熟悉nat模式的同学都知道,这就是让虚拟机通过nat模式上网的方式。下面设置了ip地址的<起始地址>和<结束地址>,<子网掩码>,这三个配置是用来确认dhcp的地址池,默认情况下虚拟机会采用dhcp方式可自动获取的ip地址的范围。可是,如果使用dhcp方式获取ip的话,虚拟机中的ip就不固定了,下次开机可能就会换ip,每次都要查看新的ip才能连接虚拟机。我们要做的就是把虚拟机的ip设置为固定ip。没有勾选该选项,依然要填写地址池,因为我们是在借助nat的方式,虚拟机中所配置的ip地址必须要属于此ip地址范围。第三步:配置指定centetos虚拟机网络这里设置的是具体的某一个centos虚拟机的网络。右击要修改的centos虚拟机-->偏好设置-->选择网络--> source源选择共享网络。此设置是在虚拟机关机的情况下设置,开机设置不生效,需要重启。source源选择为Shared Network,也就是将虚拟机的网卡绑定到此Shared Network,Shared Network就是第二步中设置的连接方式Shared,这样虚拟机便可与mac共享网络。第四步:设置虚拟机固定ip启动虚拟机,进行虚拟机固定ip设置。在执行这一步操作的时候需要系统管理员权限su root
在输入密码即可编辑网卡配置文件,我这里的网卡配置文件是ifcfg-eth0,具体以大家实际的为主。vim /etc/sysconfig/network-scripts/ifcfg-eth0修改配置内容如下DEVICE="eth0"
IPV6INIT="yes"
#BOOTPROTO="dhcp"
BOOTPROTO="static"
UUID="9f88d469-0341-4603-80c7-2c6fd6bb499e"
ONBOOT="yes"
PREFIX=24
IPADDR=10.**.55.200
GATEWAY=10.**.55.1
NETMASK=255.255.255.0
DNS1=10.**.55.0
DNS2=10.**.55.1BOOTPROTO的值设置为static,表示静态ip,也可以写成noneIPADDR:固定的ip地址,尽量不要和其他人的ip地址重复,且需要在第二步设置的起始地址和结束地址范围内。GATEWAY:通常前三组数和ip地址是一样的,最后一个是1主要注意的是GATEWAY网关,这里配置的是10.**.55.1,为什么设置为这个值呢?因为我们并不是把mac当成Ip数据报文转发路由器,而是当成nat路由器,当采用nat方式为虚拟机提供网络服务时,Parallels会单独为虚拟机生成一个网关地址,这通常是地址池(第二步的起始地址和结束地址) 中的第1个ip, 第二步的起始地址是10.**.55.1 ,所以,网关地址就设置为这个。而虚拟机的ip地址是从地址池中的第2个ip开始的,即10.#.55.2。这是涉及到网络的知识,不懂网络的话您就照着这个写。NETMASK:子网掩码和第二步设置的子网掩码一致DNS1:通常是ip地址的最后以为改为0或1我们在网卡配置文件中已经设置好了GATEWAY是10.#.55.1,这是虚拟机上网的关键,可以用ip r命令验证一下路由表重启网络systemctl restart network第五步:测试内外网访问通过ifconfig查询内外网,然后在宿主机和虚拟机之间互相访问,都能ping通就没问题对于外网,在宿主机联网的情况想,在虚拟机ping www.baidu.com,也能ping通,就ok没问题了。四、写在最后我们在配置网络的第二步中取消勾选<启用IPv4 DHCP>选项了,那如果我们勾选上会怎么样呢?其实没有关系,因为在虚拟机网卡配置中我们设置了是static的,所以即便这时候勾选上了<启用IPv4 DHCP>选项,也没有关系了。
VMware FT 原理跟介绍
1. VMware FT 容错简介
Vmware fault tolerance(FT)功能创建一个虚拟机设置可以提供连续性能力。FT建立在ESX/ESXi主机平台。通过创建一个虚拟机一个完全相同的副本。
虚拟机的主要副本,处于活动状态,接受请求,服务信息,并运行程序。次要副本,接收与主副本相同的输入。次要副本完成的所有任务都依照主副本的变动。主副本所有非决定性的活动都将被捕捉,发送到运行在其他host上的次要副本,次要副本在一秒内将活动进行重演。
FT启动后,VM Tools从每个虚机中发送心跳到VMM,此心跳与HA的心跳类似。VMM检查以确保主要和次要副本都在运行。如果主副本所在的host丢失,VMM将不再发送心跳。此时,次要副本立刻变为活动的,并成为主要副本,服务不会经历任何中断。
FT提供了比HA更高的商业连续性级别。FT发生时,次要立刻被激活,所有关于虚机状态的信息都会被完整的保留。存储在内存中的数据不需要被re-entered或reloaded。而HA则要将任何丢失的虚拟机进行重启。这会结束所有虚拟机进程和状态信息,程序和未保存的用户输入信息都会丢失。
2. VMware FT 容错提供连续可用性
VMware HA 通过在主机出现故障时重新启动虚拟机来为虚拟机提供基本级别的保护。VMware 容错可提供更高级别的可用性,允许用户对任何虚拟机进行保护以防止主机发生数据、事务或连接丢失等故障。
容错使用 ESX/ESXi 主机平台上的 VMware vLockstep 技术以提供连续可用性。通过确保主虚拟机和辅助虚拟机的状态在虚拟机的指令执行的任何时间点均相同来完成此过程。vLockstep 通过使主虚拟机和辅助虚拟机执行相同顺序的 x86 指令来完成此过程。主虚拟机捕获所有输入和事件 — 从处理器到虚拟 I/O 设备 — 并在辅助虚拟机上进行重放。辅助虚拟机执行与主虚拟机同一系列的指令,而仅可看到单个虚拟机映像(主虚拟机)在执行工作负载。
如果运行主虚拟机的主机或运行辅助虚拟机的主机发生故障,则会发生透明故障切换,仍在无缝工作的主机将借此变为主虚拟机的主机。使用透明故障切换,不会有数据损失,并且可以维护网络连接。 在发生透明故障切换之后,将自动重新生成新的辅助虚拟机,并将重新建立冗余。整个过程是透明且全自动的,并且即使 vCenter Server 不可用,也会发生。
3. VMware FT 容错的工作方式
VMware 容错可通过创建和维护等同于主虚拟机并可在发生故障切换时替换主虚拟机的辅助虚拟机来为虚拟机提供连续可用性。
可以为大多数任务关键虚拟机启用容错。并会创建一个重复虚拟机(称为辅助虚拟机),该虚拟机会以虚拟锁步方式随主虚拟机一起运行。VMware vLockstep 可捕获主虚拟机上发生的输入和事件,并将这些输入和事件发送到正在另一主机上运行的辅助虚拟机。使用此信息,辅助虚拟机的执行将等同于主虚拟机的执行。因为辅助虚拟机与主虚拟机一起以虚拟锁步方式运行,所以它可以无中断地接管任何点处的执行,从而提供容错保护。
虚拟机和辅助虚拟机可持续交换检测信号。这使得虚拟机对中的虚拟机能够监控彼此的状态以确保持续提供容错保护。如果运行主虚拟机的主机发生故障,系统将会执行透明故障切换,此时会立即启用辅助虚拟机以替换主虚拟机,并将启动新的辅助虚拟机,同时在几秒钟内重新建立容错冗余。如果运行辅助虚拟机的主机发生故障,则该主机也会立即被替换。在任一情况下,用户都不会遭遇服务中断和数据丢失的情况。
容错虚拟机及其辅助副本不允许在相同主机上运行。容错功能使用反关联性规则,这些规则可确保容错虚拟机的两个实例永远不会在同一主机上。这可确保主机故障无法导致两个虚拟机都缺失。
容错可避免“裂脑”情况的发生,此情况可能会导致虚拟机在从故障中恢复后存在两个活动副本。共享存储器上锁定的原子文件用于协调故障切换,以便只有一端可作为主虚拟机继续运行,并由系统自动重新生成新辅助虚拟机。
4. VMware FT 容错与HA协作
关于VMware HA,参考《VMware vCenter 高可用性 HA 详解》。
5. VMware FT容错的要求
与 VMware HA 在默认情况下保护群集内的每个虚拟机不同,VMware 容错在单个虚拟机上启用。要使群集支持VMware 容错,必须满足以下必备条件:
群集/主机必备条件
虚拟机要求
在可以打开容错前,虚拟机必须满足最低要求。
虚拟机文件必须存储在共享存储器上。可接受共享的存储解决方案包括光纤通道、(硬件和软件)iSCSI、NFS 和 NAS。
虚拟机必须存储在虚拟 RDM 或厚置备的虚拟机磁盘 (VMDK) 文件(已启用“群集功能”选项)中。如果将虚拟机存储在精简置备或厚置备的 VMDK 文件(未启用群集功能)中,则在尝试启用容错时将会出现一则指示必须转换 VMDK 文件的消息。用户可以接受此自动转换(需要关闭虚拟机),允许转换磁盘并使用容错保护虚拟机。此转换过程所需的时间根据磁盘的大小和主机处理器类型而有所不同。
虚拟机必须在一个受支持的客户机操作系统上运行。有关详细信息,请参见 VMware 知识库文章,网址为 http://kb.vmware.com/kb/1008027。
6. VMware FT 容错互操作性
6.1 容错和不支持的 vSphere 功能
容错虚拟机不支持以下 vSphere 功能。
快照 在虚拟机上启用容错前,必须移除或提交快照。此外,不可能对已启用容错的虚拟机执行快照。
Storage VMotion 不能为已启用容错的虚拟机调用 Storage VMotion。要迁移存储器,应当先暂时关闭容错,然后再执行 Storage VMotion 操作。在完成迁移之后,可以重新打开容错。
DRS 功能 容错虚拟机会自动配置为禁用 DRS。DRS 最初将放置一个辅助虚拟机,但在对群集进行负载平衡时,DRS 不会提出建议,也不会对主虚拟机或辅助虚拟机进行负载平衡。主虚拟机和辅助虚拟机在正常运行期间可以进行手动迁移。
6.2 不与容错兼容的其他功能
7. VMware FT 容错启用步骤
要为群集启用 VMware 容错,必须满足此功能的必备条件,然后在主机上执行特定的配置步骤。完成这些步骤并创建群集后,还可以检查配置是否符合启用容错的要求。
尝试为群集启用容错之前应该完成的任务包括:
启用主机证书检查(如果您正在从先前版本的 Virtual Infrastructure 升级)
为每台主机配置网络
创建 VMware HA 群集,添加主机,并检查合规性
在为群集和主机准备好容错之后,便可为虚拟机打开容错。
7.1 启用主机证书检查
使用主机证书检查,可以将 ESX/ESXi 主机配置为相互验证身份,从而确保维护一个更安全的环境。对于容错虚拟机所在的 ESX/ESXi 主机来说,这是必需的。如果安装了 VMware vCenter Server 4.0 版本,系统会自动启用主机证书检查。如果所用版本是从上一版本升级的版本,则必须手动执行此过程。
7.2 为主机配置网络
在要添加到 VMware HA 群集的每台主机上,必须配置两个不同的网络交换机,以便使主机也可以支持 VMware容错。需要多个千兆位网络接口卡 (NIC)。对于支持容错的每台主机,总共需要两个 VMkernel 千兆位网卡:一个专用于容错日志记录,一个专用于 VMotion。VMotion 和容错日志记录网卡必须位于不同子网上。其他网卡建议用于虚拟机和管理网络流量。
我这里NIC不够,把FT和VMotion放在了同一个vSwitch上:
7.3 创建 VMware HA 群集,添加主机
参考《VMware vCenter 集群及 DRS 详解 》,在为群集和主机准备好容错之后,便可为虚拟机打开容错。
7.4 为虚拟机打开容错
步骤
1 选择“主机和群集”视图。
2 右键单击虚拟机并选择容错 > 打开容错。
当你启用FT时,提示会转换VMDK以及自动disable DRS,参考上文:
特定的虚拟机将指定为主虚拟机,并在另一台主机上建立辅助虚拟机。现在,主虚拟机已启用了容错功能。虚拟机运行在Host 56上,FT保护副本运行在Host 55上。
8. VMware FT 容错测试
打开两个VM的concole,一个完全是另外一个镜像,且为read-only,是不接受任何输入的:
7. 1 虚拟机开关机
不管你是在console选择还是在vCenter操作,主次VM都会同时开关机,要不然怎么是镜像呢:
7.2 虚拟机系统崩溃
运行一个程序,人为将主VM蓝屏,发现此时次VM同时蓝屏,再一次证明两边运行的指令是同步的。
7.3 重启HOST
重主VM所在的host,次VM立即接管工作,从ping的相应来看,应该是零宕机时间:
本文转自 流原炫 51CTO博客,原文链接:http://blog.51cto.com/xiaoyuanzheng/1545929
RHEL6入门系列之六,桌面环境下的基本操作
在上篇博文中,我们成功地安装了RHEL6.3系统并进入了桌面环境,今天我们来大概了解一下桌面环境中的一些基本操作,并为我们今后的操作准备好实验环境。
1、桌面环境的基本应用
在前面我们曾提到过,一个完整的Linux系统是由Kernel+各种应用软件组成的,Linux系统的桌面环境称为X Window,负责提供X Window桌面环境的软件有两个:GNOME和KDE。GNOME源自美国,是GNU计划的重要组成部分,而KDE源自德国,RHEL以GNOME作为默认的桌面环境。
在“系统/关于本计算机”中打开“系统监视器”,可以查看到我们当前所用的RHEL系统的版本号为6.3,内核的版本号为2.6.32,GNOME的版本号为2.28.2。这里要注意系统版本号和内核版本号的区别,RHEL系统的最新版本就是RHEL6.3,而内核Kernel的最新版本我们之前已经在网站www.kernel.org上查看到了是3.7.1,所以作为发行版的Linux系统使用的都是成熟稳定的Kernel。
除了可以查看系统信息之外,在这个工具中还可以查看到进程的信息以及CPU、网络、硬盘和内存的使用情况。
GNOME中的很多操作与Windows都是类似的,比如在桌面空白位置点击右键,执行“更改桌面背景”,可以更换Linux的桌面。
在“系统/首选项/显示”中可以更改屏幕的分辨率和刷新率。
在“系统/管理/日期和时间”中可以对日期和时间进行设置。
在桌面右上角会显示系统当前登录用户,点击该用户,在菜单中选择“账户信息”便可以对用户的信息进行修改,比如修改用户密码等。
另外,在“应用程序/附件”中提供了很多实用的工具,比如“抓图”等,大家可以试试,还蛮好用。
(2)“连接到服务器”工具
下面重点介绍一下在“位置”菜单中的“连接到服务器”工具,通过这个工具可以将当前的Linux系统作为客户端连接到其它的服务器上,比如我们要在虚拟机中从安装有Win7系统的真机里下载一个文件,通过这个工具就可以很方便地完成。
“连接到服务器”工具是通过网络来传输数据的,所以在使用这个工具之前必须要先为Linux系统设置好IP地址。
IP地址可以在“系统/首选项/网络连接”里进行设置,但这里不建议使用这种图形化工具来设置IP信息,其实Linux系统中很多涉及到系统核心功能的配置操作都不建议用图形化工具来实现,因为这些工具往往功能比较弱而且还很容易出错,在Linux系统中使用命令才是王道。
在桌面空白位置点击右键,执行菜单中的“在终端中打开”,会弹出一个运行在图形环境中的字符界面窗口,当然这只是一个虚拟的字符终端,但我们可以在其中正常地执行各种系统命令。
下面隆重介绍一下我们所要接触的第一个Linux命令——ifconfig,跟Windows中的ipconfig命令很像是吧,没错,这个ifconfig命令也是用来查看和配置IP地址信息的。
我们先直接执行一下这个命令,可以看到显示了两部分信息。其中上半部分的eth0就是系统中的网卡,现在这块网卡还没有设置IP。下半部分的lo代表回环地址127.0.0.1,这个我们不用去管它。
现在我要为eth0这块网卡设置IP地址192.168.232.10/24,可以执行下面这条命令。
[root@localhost 桌面]# ifconfig eth0 192.168.232.10/24 怎么样,很简单是吧,再次执行ifconfig命令看看IP地址设置上了没有。
IP地址设好了之后,下面解释一下为什么我要设置192.168.232.10/24这个IP呢?
大家还记得前面我在创建虚拟机的时候,虚拟机的网络选择的是“Host only模式”吧?在这种网络模式下,虚拟机与真机之间是通过Vmnet1这块虚拟网卡互相通信的,我的Vmnet1网卡的IP是192.168.232.1/24(这个IP是在安装Vmware时自动设置的,每个人的可能都不一样),所以只要将虚拟机的IP设成与Vmnet1网卡的IP在同一网段,那么就可以在真机和虚拟机之间互相通信了。
在真机里ping虚拟机测试一下,可以正常ping通。
为Linux设置好IP之后,我们再在真机的Win7系统里设置一个共享文件夹,注意要为这个共享文件夹指定一个用户并设置密码,这里将share文件夹共享给用户administrator。
然后在Linux虚拟机里打开“连接到服务器”工具,将服务类型设为“Windows共享”,在“服务器”里输入真机的IP,“共享”里输入文件夹的共享名,“用户名”里输入指定的共享用户,点击“连接”再输入用户密码,便可以连接到真机的共享文件夹了。
(3)远程登录Linux
在生产环境中,管理员一般都是通过网络远程登录到Linux系统对其进行管理,下面介绍一款很好用的远程登录工具putty,这个工具可以从51cto下载到,下载地址http://down.51cto.com/data/654414。
远程登录以前大都是用telnet方式,但telnet的数据是以明文方式在网络中传输,安全性不高,所以现在大都是采用SSH(安全命令解释器)方式。
putty是绿色软件,无需安装。在真机上运行putty,输入Linux系统的IP,连接类型选择SSH,端口号默认为22。点击“打开”,就可以连接到Linux了。也可以在连接之前,先在“保存的会话”里起个名字,然后点击“保存”,将当前会话保存起来,这样下次再次连接Linux时,只需直接打开相应的会话便可以了。
在第一次连接时,需要在真机和虚拟机的Linux系统之间交换会话密钥,选择“是”,保存密钥。
输入用户名root以及相应密码,就可以远程登录上Linux了。
默认设置下putty在显示中文信息时会出现乱码:
只要改变putty默认使用的字符集就可以解决这个问题了。在putty窗口的标题栏上点击右键,执行“修改设置”,在“窗口/转换”中选择将字符集改为UTF-8。
这时,中文信息就可以正常显示了。
(4)克隆虚拟机
至此,我们的Linux实验环境就基本搭建好了。现在,我们还需要再做最后一步操作——克隆虚拟机。
虽然对于这个安装在虚拟机里的操作系统我们可以为所欲为,但如果系统一旦真的被破坏掉了,再重装一遍毕竟还是挺麻烦的,所以强烈建议在我们这个系统还比较“纯净”的时候把它好好保管起来,将之作为母盘,再克隆出新的虚拟机。这样,只要有母盘在,我们就可以在几秒钟之内克隆出一台新的虚拟机。
当然,利用Vmware的快照功能也可以达到同样的效果,但是你必须得保证在做每一个比较重要或有一定破坏性的操作之前,都要记得先创建快照。在实际使用中,个人感觉还是克隆的效果要更好一些。
要克隆虚拟机,作为母盘的虚拟机必须处于关机状态。在Linux系统的桌面环境下,可以点击“系统”菜单里的“关机”命令将系统关机。
然后在要克隆的虚拟机上点击右键,执行“管理/克隆”命令,打开克隆虚拟机向导。
在克隆源中选择克隆虚拟机的当前状态。
克隆方式选择创建链接克隆。这样,新克隆的虚拟机是工作在母盘的基础之上,只会占用很少的磁盘空间。
为克隆虚拟机起个名字,并指定保存位置。
这样,克隆虚拟机就创建好了,我们之后所有的操作都是在这些克隆虚拟机里进行,当然前提是作为母盘的虚拟机必须是完好的,所以慎重起见,建议大家就不要再去使用这个母盘虚拟机了。
本文转自 yttitan 51CTO博客,原文链接:http://blog.51cto.com/yttitan/1112257
Hadoop伪分布式集群的安装部署
Hadoop伪分布式集群的安装部署Hadoop伪分布式集群的安装部署
首先可以为Linux虚拟机搭建起来的最初状态做一个快照,方便后期搭建分布式集群时多台Linux虚拟机的准备。
一、如何为虚拟机做快照?
1、什么是快照?
快照就是对当前的虚拟机状态进行拍照,保留虚拟机当前状态的操作信息。
2、为什么要为虚拟机做快照?
第一:为克隆不同状态的虚拟机提前做准备。
第二:当对虚拟机的某些操作执行错误而且改正比较麻烦的时候,可以切换到之前正常的虚拟机状态重新进行相关的操作。
3、如何为虚拟机做快照?
(1)选择要克隆的虚拟机,然后“右键”,选择“快照”,然后选择“拍摄快照”。
image.png
(2)可以为快照取个名称,也可以为虚拟机当前的状态做个描述,然后点击“拍摄快照”。
image.png
4、如何转到某一特定状态的快照?
(1)选择对应状态的快照,然后点击“转到”。
image.png
(2)然后在接下来的弹框中点击“是”即可。这样简单操作之后,虚拟机就实现了快照状态的一个转换。
image.png
二、Linux虚拟机的网络配置
(一)如何实现虚拟机和外网的连接
1、打开并登陆虚拟机
image.png
2、用ifconfig命令来查看网络接口配置信息,此时只能查到回环地址127.0.0.1和子网掩码255.0.0.0。
image.png
3、做3个小测试
(1)ping 127.0.0.1(回环地址),如果能ping通,就说明虚拟机的网络协议是正常的(一般也是能ping通的)。注意:ping通之后同时按“Ctrl” 和“C”即可断开连接。
image.png
(2)ping 网关
1)这里面就牵涉到一个问题:我的网关是多少?在哪里看?
image.png
2)找到网关地址之后,然后开始ping网关。
image.png
一般第一次是ping不通的,那就说明我们的网卡链路是有问题的,所以我们需要查看网卡,找出问题的原因。那么这就又有两个问题:
第一,在哪里查看网卡信息?
我们输入如下命令:vi /etc/sysconfig/network-scripts/ifcfg-eth0 即编辑/etc/sysconfig/network-scripts/目录下的ifcfg-eth0文件
小技巧:Tab键的使用
输入命令前边的一部分,然后按一次Tab键,如果该命令没有其他相同开头的命令,则直接能补全该命令。如果不能补全,可以按两次Tab键,将会列出以输入字符开头的所有命令,凭印象输入对应命令即可。 这个命令要去记忆吗?要,但是不是每个字母都要记忆,只要记住个大概就行。只要记住哪个文件在哪个目录下,然后一个一个找就行了。一定要能够触类旁通。
第二,该如何配置网卡?
进入文件之后,首先输入“i”进入文件编辑模式,然后把ONBOOT=no修改为yes,然后按”Esc”键退出编辑模式,再接下来按“:wq”保存退出即可。
image.png
为什么要修改呢?ONBOOT=no表示什么意思呢?
实质上ONBOOT=no表示我们的网卡没有开启,所以我们要将no改为yes,来开启网卡。
3)重启网络服务
OK,刚才我们修改了网卡的配置,所以这个时候我们需要重启网络服务。切记,每次修改网卡之后都需要重启网络服务,这样修改的配置才能生效。
如何重启网络服务呢?我们需要输入命令service network restart即可。重启成功的标志如下图。
image.png
下面我们再来ping一下网关,你会发现,已经能够成功的ping通网关了。
(3)ping IP地址
1)我们继续输入ifconfig命令查看一下网络接口配置信息,我们发现多了一个eth0的网卡,而且可以看到ip地址。
image.png
2)然后我们ping IP地址,如果能ping通,说明我们的本机网卡链路没有问题。我们发现是可以ping通的,如下图所示。
image.png
(4)ping外网
我们输入命令ping www.baidu.com来检查一下虚拟机和外部网络的连通性,如果能够ping通,就说明我们的虚拟机已经和互联网打通了。
image.png
(二)虚拟机静态IP的配置
在实际应用中,由于我们使用的是DHCP(Dynamic Host Configuration Protocol:动态主机配置协议)服务器来分配的地址,那么每次重启DHCP服务器ip地址有可能是会变动的。 而我们用Linux来搭建集群学习Hadoop的话,是希望IP固定不变的,因为有很多地方会涉及到IP地址的配置,如果IP地址变化就会涉及到很多相关地方的修改,所以我们需要配置静态IP,那么具体如何进行配置呢?
(1)在哪里配置?
输入命令vi /etc/sysconfig/network-scripts/ifcfg-eth0
(2)如何配置?
具体配置如下图所示:
image.png
其中配置的属性和值的注释如下:
BOOTPROTO=static //把dhcp修改为static
IPADDR=192.168.7x.133 //可以自己设置,但必须与GATEWAY网段一致,比如7x
NETMASK=255.255.255.0 //默认设置
GATEWAY=192.168.7x.2 //网关地址
(3)修改完之后需要重启网络服务,即输入命令service network restart
image.png
(4)重启成功之后,继续输入ifconfig查看一下ip,这个时候ip地址就固定了。
三、创建其他用户及用户sudo权限的设置
(一)设置其他用户组和用户
1、为什么要进行用户组和用户的设置?
默认只有一个root超级用户,它的权限是很大的,如果误删文件,整个系统的使用可能就会出现问题,存在很大的安全性问题,所以,我们需要单独创建用户,然后在该用户上进行相关的操作。(可能会出现一个问题,某些操作权限不够,只需要配置sudo权限或切换到root用户下执行即可)
2、如何创建用户组和用户?
(1)创建用户组:groupadd
比如创建hadoop用户组:groupadd hadoop
(2)创建用户:useradd
比如创建hadoop用户:useradd hadoop
注意:1)默认创建用户的时候会同时创建一个同名的用户组,前边是用户,后边是用户组。
image.png
2)在任何目录下执行该命令都可以,最后创建的这个用户的目录是在home目录下,也就是说指不指定-m参数效果都一样。
image.png
(3)查看帮助信息:
useradd --help
一般情况下,哪个命令不知道怎么用,不知道使用哪个参数,就用“命令 --help”
(4)切换用户:su
比如切换到hadoop用户:su hadoop
注意:root用户向其他用户切换的时候不需要输入密码,但是其他用户向root用户切换或其他用户之间在切换的时候是需要输入密码,所以需要为用户设置密码。
(5)为用户设置密码:passwd
比如为hadoop用户设置密码:passwd hadoop,然后按回车输入两次密码即可,”password --help”查看该命令用法。
(二)为用户设置sudo权限
1、为什么要为用户设置sudo权限?
用户在执行某些系统命令时会出现用户权限不够的问题,需要切换到root用户下执行,频繁的切换会很麻烦,而且也很容易导致权限问题。所以最好为用户配置sudo权限。所有的操作都可以在该用户下操作,出现权限不够的问题只需要在命令前边加上sudo即可。
2、如何为用户设置sudo权限?
首先要明确是为哪个用户设置sudo权限。比如为hadoop用户设置sudo权限。
(1) 在root用户下,输入visudo即可。
(2) 在打开的文件末尾添加“hadoop ALL=(ALL) NOPASSWD:ALL”即可。
image.png
(3) 验证sudo权限是否配置成功
image.png
这样特定用户的sudo权限就配置成功了,接下来就可以正常使用sudo命令了。
四、X-shell远程连接Linux虚拟机
由于直接在Linux虚拟机上操作比较不方便,所以我们选择使用第三方远程连接工具X-shell远程连接到Linux虚拟机,然后通过X-shell对Linux虚拟机进行相关操作。
1、如何实现X-Shell和Linux虚拟机的远程连接?
(1)安装X-Shell远程连接工具
请点击此链接下载X-Shell。
(2)实现X-Shell和Linux虚拟机的远程连接
1)首先打开X-Shell工具,然后在X-Shell和Linux虚拟机之间新建一个会话并做如下配置。
image.png
2) 配置完成之后点击“用户身份验证”,进行用户名和密码的配置。然后点击“确定”。配置成功之后再用X-Shell连接远程虚拟机,就不用输入用户名和密码了。
image.png
3) 选择对应的对话连接即可。
4)接下来就可以在X-Shell上进行相关的操作,实际上还是在Linux虚拟机上执行的操作。
五、虚拟机主机名的配置
1、如何查看主机名?
(1)直接通过命令提示符即可看出主机名。
image.png
(2)通过hostname命令也可显示主机名。
2、如何修改主机名?
(1)临时性修改
执行命令hostname 主机名(要修改的主机名)
比如 sudo hostname abc
注意:临时性修改的方法当虚拟机重启的时候就不生效了,而且不会改变命令提示符中的主机名,所以为临时性修改。
(2)永久性修改
我们输入命令vi /etc/sysconfig/network,然后在该文件中修改即可。
image.png
注意:修改完之后不会立即显示出修改后的结果,我们需要输入reboot命令重启linux操作系统,重启之后,我们才能看到修改后的结果。
六、关闭防火墙
1、防火墙是干什么的?为什么要关闭防火墙?
防火墙是对我们的服务器进行的一种保护,但是有时候也会妨碍集群间的相互通讯,所以为了不影响集群间的通信我们可以关闭掉防火墙。
2、怎么关闭防火墙?
(1)首先查看防火墙状态
当出现如下信息时就表明防火墙是开启的状态。
service iptables status
image.png
(2)关闭防火墙的两种方法:
1)临时性关闭
service iptables stop
image.png
注意:临时性关闭防火墙的效果和临时性修改主机名的效果一样,当重启linux虚拟机之后就不起作用了。
2)永久性关闭
chkconfig iptables off
image.png
注意:永久性关闭防火墙之后,需要重新启动linux操作系统,即输入reboot命令才能生效。
七、相关服务的安装
1、lrzsz传输包
(1)为什么要安装lrzsz安装包?
lrzsz传输包主要用于文件的上传和下载,rz表示上传,sz表示下载,由于在集群搭建过程中需要对一些文件进行上传或下载,所以需要首先安装lrzsz传输包。
(2)怎么安装lrzsz安装包?
在root用户下,输入yum install lrzsz即可。这里我们采用的是yum的安装方式,因为这种方式可以把依赖的软件一起安装好。
2、安装openssh-clients服务
(1)为什么要安装openssh-clients服务?
做免密码登录的时候需要用到这个服务
(2)怎么安装openssh-clients服务?
输入命令 yum install -y openssh-clients
(-y表示在下载安装过程中全部输入yes或y)
(3)安装完成之后,可以输入命令ssh,按回车,如果能查看到ssh的用法即表示安装成功。
八、配置主机名和IP之间的对应关系
1、在哪配置?
vi /etc/hosts
2、如何配置?
参照该文件中的提示信息来配置
image.png
解释如下:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4是什么意思
第一部分:网络IP地址。
第二部分:对应的主机名
第三部份:主机名.域名,注意主机名和域名之间有个半角的点。
第四部份:主机名别名,其实还是主机名。
第五部份:主机名别名.域名,注意主机名和域名之间有个半角的点。
IP地址后是主机名或主机名列表,主机名列表中第一个为主机名,其他为主机名别名,主机名别名可以有多个。
主机域名用 ”主机名.域名“来表示。
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
::1想当于IPv6的locahost对应的IP地址,类似于IPv4的127.0.0.1
参照上边的格式在文件末行添加ip和hostname
比如:192.168.7x.133 abc即可。
如果还需要配置其他主机名和IP之间的对应关系,只需要按照上面的格式逐行配置即可。
九、配置SSH免密码登录
1、SSH是什么?为什么要配置ssh免密码登录?
SSH是一个可以在应用程序中提供安全通信的一个协议,通过SSH可以安全地进行网络数据传输,它的主要原理就是利用非对称加密体系,对所有待传输的数据进行加密,保证数据在传输时不被恶意破坏、泄露或者篡改。但是hadoop使用ssh主要不是用来进行数据传输的,hadoop主要是在启动和停止的时候需要主节点通过SSH协议将从节点上面的进程启动或停止。也就是说如果不配置SSH免密码登录对hadoop的正常使用也没有任何影响,只是在启动和停止hadoop的时候需要输入每个从节点的用户名的密码就可以了,但是我们可以想象一下,当集群规模比较大的时候,比如上百台,如果每次都要输入每个从节点的密码,那肯定是比较麻烦点,所以这种方法肯定是不可取的,所以我们要进行SSH免密码的配置,而且目前远程管理环境中最常使用的也是SSH(Secure Shell)。
2、如何配置ssh免密码登录?
首先要明确是为哪个用户创建免密码登录,比如我们为hadoop用户创建SSH免密码登录。
1)在hadoop用户下,切换到hadoop用户的家目录(即/home/hadoop目录)。
2)创建.ssh目录:输入mkdir .ssh命令(其实不用提前创建该目录也行,直接在hadoop用户下执行生成秘钥的命令之后,系统会自动在hadoop的家目录下(/home/hadoop)创建.ssh目录)
3)生成秘钥:输入命令ssh-keygen -t rsa,然后一直按回车。
ssh-keygen是ssh秘钥生成器,-t是指定参数,rsa是一种加密算法。
image.png
4)切换到.ssh目录下:输入cd /home/hadoop/.ssh,然后输入“ll”命令查看,发现有一个公钥,有一个私钥,(ssh生成的秘钥对都是存储在.ssh这个目录下的)
image.png
5)将公钥copy到认证文件里。
输入命令:cp id_rsa.pub authorized_keys
注意:上述命令中文件名authorized_keys一定要正确无误。
然后ll查看就多了一个文件authorized_keys
image.png
6)退回到hadoop的家目录,为.ssh赋予权限
chmod 700 .ssh
表示为.ssh目录赋予700的权限
chmod 600 .ssh/*
表示为.ssh目录下的所有文件赋予600的权限
注意:700、600指什么意思?比如文件权限"-rw-------"其中第一个“-”表示该文件为普通文件,接下来9个字符3个为一组,第一组表示该用户的读、写、执行权限,第二组表示用户组,第三组表示其他用户。其中文件的读、写和执行权限,对应字母分别为W/r/x 对应数字分别为4/2/1,那么700就表示用户有读、写、执行权限(7=4+2+1),而用户组和其他用户什么权限都没有。(其实赋予权限这两步也可以不做)
扩展知识:
chmod和chown的区别和联系?
chown用于对文件或目录赋予用户和用户组权限
chmod用于对文件或目录赋予读写执行权限
7)验证SSH免密码是否配置成功
用ssh登录dajiangtai,第一次登录需要输入yes,第二次以后就不用输入密码了,如果能达到这个效果就表示SSH免密码登录设置成功,登陆的时候用ssh dajinagtai这个命令。
注意:每次免密码登录到其他主机做完对应操作之后一定要退出出来。否则很容易出现错误。
十、安装配置JDK
1、为什么要安装jdk?
因为hadoop软件是由Java编写的,Java代码的运行要有Java运行环境及相关的依赖包,所以首先要安装配置JDK。
2、怎么安装JDK?
(1)首先创建安装目录
就是把自己所有需要安装的文件都放在这个安装目录下,以便于管理和维护。(一般在搭建集群之前都要进行目录规划,比如你安装的软件放在哪个目录下,数据、元数据、临时数据放在哪个目录下等等,这些目录都要提前规划好,并赋予好对应的权限,而且这些路径要和配置文件里的一致)
(2)如何创建安装目录呢?
Linux创建目录的命令:mkdir (make directory 的缩写)
比如我们可以输入mkdir -p /home/hadoop/app(-p指就是如果没有父目录,我们也可以一同创建),当然我们也可以切换到cd /home/hadoop目录下,然后输入mkdir app命令创建这个目录。
为了便于管理,实现安装包和解压包的隔离,我再创建两个目录,soft目录用于存储安装包,modules目录用于存储解压后的软件包。
(3)上传已经在本地下载好的jdk安装包到已创建安装目录下
也可使用官网下载地址:http://www.oracle.com/technetwork/java/javase/archive-139210.html
可以使用rz命令,也可以使用filezilla或其他文件传输工具
(4)输入命令tar zxvf 安装包,进行解压(这里安装的tar包是放到一个soft目录下,解压之后的软件放到一个modules目录下)
tar zxvf jdk-7u79-linux-x64.tar.gz -C ./../modules/
(其中,z代表gzip的压缩包;x代表解压;v代表显示过程信息;f代表后面接的是文件)
注意:指定文件的路径时要和自己文件的存放路径一致,一定要灵活运用。
3、设置环境变量并生效
1)vi /etc/profile,然后配置如下内容。
image.png
2)输入:source /etc/profile使配置文件生效。
(source命令的作用是,将目前设定的配置刷新。或者我们常说的让配置文件生效)
4、验证jdk的安装是否成功
输入java -version,出现版本信息就表示jdk安装成功。
十一、安装配置Hadoop
1、下载并上传Hadoop安装包
切换到之前规划好的软件安装目录,用rz命令或FileZilla工具上传提前下载到本地的Hadoop安装包到指定的软件安装目录下。或使用命令“wget+软件安装包链接”的形式在线下载Hadoop安装包,由于软件包比较大,下载时间比较长,所以不建议采用这种方式。
如果没有下载,请下载hadoop2.6.0的安装包。
Hadoop 安装包也可以直接在官网下载,没有32位和64位的区分。
下载地址:https://archive.apache.org/dist/hadoop/common/
2、如果是在root用户下上传的hadoop安装包,那么该安装包的权限就是root用户,那么如果在hadoop用户下解压,就会出现权限问题导致不能正确解压。所以在解压之前要先赋予文件正确的权限。
image.png
3、解压Hadoop安装包
输入如下命令进行解压:
image.png
4、配置hadoop环境变量
(1)输入命令vi /etc/profile
(2)配置环境变量
1)配置格式如下:
添加HADOOP_HOME=hadoop的安装目录
PATH=$HADOOP_HOME/bin:$PATH
export HADOOP_HOME PATH
2)具体配置如下:
image.png
然后:wq保存退出
(3)使配置文件生效source /etc/profile
(4)输入命令“hadoop version”检查hadoop是否安装成功。
5、修改hadoop配置文件
(1)为什么要修改配置文件
如果不修改hadoop配置文件,系统将使用hadoop默认的属性值,有些默认属性值不满足伪分布式集群的搭建(比如副本个数默认为3,而现在只有一个datanode节点无法存储3个副本),所以就要根据集群搭建的特殊需求修改相应的属性来覆盖默认的属性值。
(2)配置文件的位置
Hadoop安装目录下的/etc/hadoop
比如:
image.png
(3)修改哪些配置文件以及如何修改?
主要修改6个配置文件:
(1)hadoop-env.sh
主要修改JDK的安装目录,具体配置如下:
image.png
(2)core-site.xml
(3)hdfs-site.xml
(4)mapred-site.xml
(5)yarn-site.xml
(6)slaves
主要配置从节点(比如DataNode)的主机名,即你想让哪个节点作为DataNode节点,那么你就可以把该节点的主机名配置到slaves文件中,如果有多个节点要配置,就按照上面的要求逐行添加,具体配置如下:
image.png
注意:配置文件需要根据自己的情况做相应的修改,具体如何修改,每个属性及值代表的含义可参考对应视频解释。
6、创建配置文件中指定的3个目录。如果不提前创建,将会导致格式化失败。
image.png
修改目录的用户权限为hadoop,否则会因为权限问题导致数据写入不成功。
image.png
注意:这几个目录一定要提前创建,并赋予好权限,而且要和配置文件中指定的目录一致。
十二、格式化NameNode
1、为什么要格式化NameNode?
格式化是对HDFS这个分布式文件系统中的DataNode进行分块,统计所有分块后的初始元数据,然后存储在NameNode中。
2、执行如下命令对NameNode进行格式化。
在hadoop用户下,使用hadoop目录下的bin目录下的hadoop命令, 即先切换到hadoop用户下的hadoop安装目录下。然后输入命令bin/hadoop namenode -format即可。
切换到hadoop安装目录下的bin目录,然后输入命令./hadoop namenode -format也可以,如下图所示:
image.png
当出现如下标志,就表示NameNode已经成功的格式化了。
image.png
格式化成功之后,查看hdfs-site.xml配置文件中dfs.namenode.name.dir指定的/data/dfs/name目录下是否有current目录,如果有,也说明格式化成功)
在current目录下有如下几个文件,他们代表的含义分别如下:
image.png
fsimage:是NameNode元数据在内存中满了之后,持久化保存到的文件。
fsimage*.md5是校验文件,用于校验fsimage的完整性。
seen_txid记录一个id号。
VERSION文件里保存的是namespaceID:NameNode的唯一ID
clusterID:集群ID,NameNode和DataNode的集群ID应该一致,表明是一个集群。
image.png
edits:是编辑日志文件,当用户对文件系统进行操作的时候,就会生成对应的编辑日志文件。目前还没有做任何操作,所以还没有编辑日志文件。
十三、启动Hadoop集群
(1)在hadoop安装目录下的sbin目录下执行start-all.sh脚本。
image.png
(2)输入jps(java process server) ,如果出现以下进程(5个,不包括jps)表示集群启动成功。
其中jps的作用是显示当前系统的java进程情况,及其id号。jps仅查找当前用户的Java进程,而不是当前系统中的所有进程。
image.png
十四、验证Hadoop集群是否搭建成功
1、通过Web UI 查看HDFS和YARN
Hadoop伪分布集群启动之后,我们可以通过WebUI查看HDFS和YARN。
(1)通过默认的50070端口访问HDFS文件系统,这个端口可以在默认配置文件hdfs-default.xml中找到。
浏览器访问:http://ip:50070
image.png
(2)通过默认的8088端口访问YARN,这个端口可以在默认配置文件yarn-default.xml中找到。
浏览器访问:http://ip:8088
spacer.gif
(3)通过主机名访问HDFS和YARN
1)在本机的Windows系统中,以上Web UI我们都是通过ip在浏览器中直接访问的,如果想通过hostname来访问,我们需要配置Windows下的HOSTS文件。Windows下的HOSTS文件绝对路径为C:\Windows\System32\drivers\etc
image.png
2)在HOSTS文件中添加hostname与ip之间的对应关系,中间用空格分开。
3)然后就可以通过hostname访问HDFS和YARN。
浏览器访问 http://域名:50070
浏览器访问 http://域名:8088/cluster
2、测试运行Hadoop伪分布集群
(1)Hadoop 伪分布集群搭建好之后,我们通过命令查看hdfs根目录下没有任何文件。
image.png
(2) 准备数据
1) 首先在/home/hadoop/app目录下创建一个data目录。
2) 然后在data目录下创建一个文件djt.txt,可以输入如下数据。
3) 然后把该文件上传至hdfs的/目录下。
image.png
4) 检查是否上传成功4) 检查是否上传成功
命令: hadoop fs -ls/
(3)运行Hadoop例子中自带的wordcount程序。
1)切换到mapreduce代码的jar包所在的位置
spacer.gif
2)执行如下命令运行WordCount
image.png
其中hadoop jar是运行mapreduce的jar包的命令。
./hadoop-mapreduce-examples-2.6.0.jar指jar包的位置,这里用的是相对路径。
wordcount表示要运行的主类的名称,因为jar包中可以包含多个mapreduce代码,要运行哪个必须明确指定。
/djt.txt指HDFS文件系统中/目录下的djt.txt文件,用来表示输入路径,注意:输入路径必须存在。
/djt指/目录下djt目录,用来表示输出目录,注意:输出目录不能提前存在,如果提前存在,代码就不会运行并提示相应的错误。
4) 运行成功之后,可以通过web界面查看作业运行结果。结果就在part-r-00000文件中。可以下载该文件查看最终运行结果。
浏览器访问 http://域名:50070
也可以通过shell命令的方式查看最终运行结果,操作如下:
spacer.gif
5)也可以通过: 域名:8088 界面中看到作业的运行进度和状态。
如果以上wordcount程序能正常运行,说明Hadoop伪分布集群就安装成功了。
Linux系统管理初步(四)系统防火墙控制程序iptables
一、Linux的防火墙
防火墙是日常应用中一个重要的维护内容,从防火墙开始我们才真正接触生产环境,网络安全越来越受重视,学好这部分内容是学好运维的重要一步。
一般情况下,桌面级环境中很少有人关注过防火墙,甚至杀毒软件都不装,对防火墙的操作当然不熟悉。真实生产环境中不可能不开防火墙。
linux的防火墙技术的核心是netfilter,firewalld和iptables都是用来操作netfilter的工具,他们的区别参加这篇文章。
简单来说他们都只是操作netfilter的工具,CentOS6之前用iptables、CentOS7改为firewalld,同时firewalld可以识别部分iptables的配置,并将他作用到default zone上。
二、iptables工具学习环境搭建
因为centos7默认的防火墙是firewalld,所以我们先要把firewalld停用,然后在换成centos6的iptables,前期准备工作:关闭selinux、关闭centos7带的firewalld然后启动iptables-service。
(一)关闭selinux功能
1、临时关闭
setenforce 0 关闭命令
getenforce 查看selinux状态命令
只要确认getenforce状态是Permissive就可以了。只是暂时关闭,系统重启后仍会开启,需要通过修改配置文件方式永久关闭。
2、永久关闭
永久关闭该功能需要修改selinux的配置文件
vi /etc/selinux/config
将SELINUX=enforcing改为disabled注意不能改成下面那个SELINUXTYPE=disabled,否则系统会启动不了。
(二)关闭centos7的firewalld
systemctl stop firewalld #关闭firewalld功能
systemctl disable firewalld #停止firewalld开机启动
操作截图
这一步不像上面那步有操作过程提示,只要没报错就ok了。
(三)启动centos6或者5支持的netfilter防火墙
yum install iptables-services #安装netfilter功能,也就是常说的iptables,注意包名末尾是iptables和services复数形式,敲成iptables-service就没这个包
systemctl enable iptables #设置开机启动iptables服务
systemctl start iptables #开启iptables程序
iptables -nvL #查看iptables的默认规则
操作截图
1是设置开机启动,2是在当前bash下启动iptables,3是查看iptables的默认规则。
三、netfilter的表(table)与链条(chain)
netfilter使用5个表与5个链条控制网口传输过来的包的,哪些需要丢弃,哪些允许进来等等。
5个表分别是:
filter:主要用于过滤数据包,是系统预设的表。内含3个链:INPUT、OUTPUT、FOWARD,就是说数据包只要在这三个链中,你就可以用filter表中的规则来处理他。
nat:主要用于网络地址转换,内含3个链:PREROUTING、OUTPUT、POSTROUNTING。
mangle:主要用于给包做标记,然后根据标记处理包。内含全部五个链
raw:可以用来设定不被系统跟踪的数据包,这个表可以指定某些端口进来的数据不被跟踪。内含2个链:PREROUNTING和OUTPUT
security:在Centos6中没有,用于强制访问控制的网络规划,暂时先不研究。
5个链分别是:
PREROUTING:数据包进入路由表之前
INPUT:通过路由表后目的地为本机
FORWARDING:通过路由表后,目的地不为本机。
OUTPUT:由本机产生,向外转发。
POSTROUTING:发送到网卡接口前
netfilter启动后,网络数据包在系统中的流向图:(转载至wiki)
四、iptables程序
iptables用于操控netfilter防火墙,他能直接添加、修改或者删除PREROUTING、INPUT、FORWARDING、OUTPUT、POSTROUTING5个链中的规则,达到过滤数据包的目的
iptables命令写法
iptables -t 表名 <-A/I/D/R> 链名 [规则号] <-i/o 网卡名> -p 协议名 <-s 源IP/源子网> --sport 源端口 <-d 目标IP/目标子网> --dport 目标端口 -j 动作
选项含义
-t<表>:指定要操纵的表;
-A:向链规则中添加条目;
-D:从链规则中删除条目;
-I:向链规则中插入条目;
-R:替换链规则中的条目;
-L:显示链规则中已有的条目;
-F:清空防火墙规则;
-Z:清空链规则中包计数器与连接计数器;
-N:创建新的用户自定义规则链;
-P:定义链规则中的默认处置方式,如;
-h:显示帮助信息;
-p:指定要匹配的数据包协议类型,;
-s:指定要匹配的数据包源ip地址;
-j+动作:如何处理过滤出来的包,常见的有ACCEPT,;
-i<网络接口>:指定数据包进入本机的网络接口;
-o<网络接口>:指定数据包要离开本机所使用的网络接口。
--dport
--sport
表名包括:
raw:高级功能,如:网址过滤。
mangle:数据包修改(QOS),用于实现服务质量。
nat:地址转换,用于网关路由器。
filter:包过滤,用于防火墙规则。
链名包括:
INPUT链:处理输入数据包。
OUTPUT链:处理输出数据包。
PORWARD链:处理转发数据包。
PREROUTING链:用于目标地址转换(DNAT)。
POSTOUTING链:用于源地址转换(SNAT)。
动作包括:
ACCEPT:接收数据包。
DROP:丢弃数据包。
REDIRECT:重定向、映射、透明代理。
SNAT:源地址转换。
DNAT:目标地址转换。
MASQUERADE:IP伪装(NAT)
LOG:日志记录
五、iptables操作示例
1、显示、清空与保存操作现有的netfilter规则
iptables -nvL #显示现有规则,分表显示的
iptables -F #清空所有规则
iptables -Z #置零计数器,用于网络攻击分析
service iptables save #将规则保存到/etc/sysconfig/iptables文件中
systemctl restart iptables.service #重启iptables服务使指定的规则生效
iptables的默认规则保存在/etc/sysconfig/iptables文件下
2、链处理规则的增加、删除与修改
防火墙规则添加到链规则尾部
iptables -t nat -A POSTROUTING -s 192.168.81.0/24 -o ens33 -j MASQUERADE
防火墙规则添加到链规则头部
iptables -t nat -I POSTROUTING -s 192.168.81.0/24 -o ens33 -j MASQUERADE #与上条区别就是选项变成-I
删除防火墙某一条规则
iptables -t nat -D POSTROUTING -s 192.168.81.0/24 -o ens33 -j MASQUERADE #如果你记住原添加命令就这么写
iptables --
修改防火墙默认链处理规则
iptables -P DROP
3、通过配置NAT表实现路由功能
这是有一定难度的两个实验,我在两台电脑上捣鼓了两天才终于在一台电脑上捣鼓成功了示例中的功能,在没有系统学习网络排障经验前如果要顺利完整下列实验,建议重新新建两台虚拟机,不能克隆,必须新建两台虚拟机并各自安装一次操作系统。
场景一:
一号机具有两块网卡分别是ens33和ens37,ens33连接外网;ens37连接内网,IP为192.168.100.1/24。
二号机只有一块网卡ens37,IP为192.168.100.100/24,现用交换机将一号机与二号机相连,通过配置一号机nat表实现二号机能够正常访问外网。
配置步骤
1、准备测试机(待修改)
重新准备二台虚拟机,一号机新建两块网卡,ens33为外网,NAT模式与宿主机共享上网,ip设置为自动获取即可,(此实验中基本不需要xhell远程登录一号机,直接在vmware界面中操作就行),ens37为局域网网卡,设置ip为192.168.100.1/24。
二号机新建1块网卡,ip为192.168.100.100/24 网关设置为192.168.100.1。
配置好后两台机器的ifconfig界面分别是
一号机:
二号机:
确认一下配置效果
其中一号机能够访问外网,能够ping通二号机的ip 192.168.100.100
二号机不能上外网,但能ping通一号机局域网ip 192.168.100.1注意二号机在现在的情况下是不能ping通一号机的外网网卡ip(192.168.88.128)的,而且显示的要是图中所列的“netwaork unreachable”,其他显示都不对,如果是其他显示,等下你配置nat表二号机就不能访问外网。
然后按照程序关闭selinux》》关闭firewalld》》下载并开启iptables。
2、配置NAT
首先打开一号机的路由转发功能,不然无论怎么设置iptables都没用。
echo "1" > /proc/sys/net/ipv4/ip_forward
图是另外计算机上的图
然后配置一号机的nat表,图中的配置是我配置另外实验电脑的图,按下面的命令写。
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE #设置192.168.100.0网段转发到外网网卡上
iptables -t nat -nvL #查看规则加上去没有
检查效果
二号机能ping到外网了
小结:这个试验我做了两天,终于达到了想要的效果,之前无论怎样设置都解决不了二号机ping不到外网问题,多次尝试后最终用两台全新安装的单独的新虚拟电脑才达到目的。回想起来在一号机上看到了firewalld的规则,zone什么的,应该是firewalld的没关掉或者有什么规则reject掉了一些包。如果重复上述实验出现问题时建议先用iptables -nvL命令看看是不是有firewalld的规则在。
场景二
一号机具有两块网卡分别是ens33和ens37,ens33连接外网;ens37连接内网,IP为192.168.100.1/24。二号机只有一块网卡ens37,IP为192.168.100.100/24,现用交换机将一号机与二号机相连,通过配置一号机nat表二号机能够正常访问外网。三号机为一外网主机,能够访问一号机外网网卡ip192.168.208.128,现需要在一号机上配置端口转发,使三号机能够访问到局域网内的二号机。
首先我们把虚拟机所在的电脑当成三号机
继续操作一号机的nat表
iptables -t nat -A PREROUTING -d 192.168.208.128/32 -p tcp -m tcp --dport 1122 -j DNAT --to-destination 192.168.100.100:22
iptables -t nat -A POSTROUTING -s 192.168.100.100/32 -j SNAT --to-source 192.168.208.128
测试效果
注意主机ip仍是一号机外网IP,但端口号要填1122,就是你映射端口号
连上了,注意看标红处的ip,你连的是局域网中的100.100,不是一号机。
五、iptables规则的备份与恢复
就两个基本操作。
1、保存设置好的规则表使其在机器重启后也生效。
service iptables save
他会把防火墙规则保存到/etc/sysconfig/iptables文件内,这个文件就是iptables的配置文件。
2、把规则表保存再特定位置,导入自定义的规则表
iptables-save > /tmp/ipt.txt #另存规则表命令,路径可自定义
iptables-restroe < /tmp/ip.txt #导入自定义的规则表,路径自定义
本文转自 whytl 51CTO博客,原文链接:
http://blog.51cto.com/11934539/2065176
怎样用putty连接虚拟云主机
我买的是独享高级版Linux版本,想要部署一个网站,需要先部署lumanager的集成环境,但是用putty始终连不上虚拟主机,提示“network error:connection timed out”,ping 主机IP是可以通的,这个是怎么回事呢?