第一:我们要搭建分布式集群,需要多台虚拟机
第二:我们不想像安装第一台虚拟机那样从头到尾做多次重复的操作,既浪费时间又没有什么技术含量。
那么怎么办呢?
所以我们就采用克隆的方式,你想要多少台虚拟机就克隆多少台。但是我们一定要注意,克隆就意味着所有虚拟机的状态信息都是一样的。而我们需要的是多台不一样的机器,至少名字不一样吧,所以在克隆之后就需要我们做相应的修改。并不是克隆完之后就可以直接用的。这个我们克隆完之后再说。
(1)在你要选择克隆的虚拟机上“右键”——>“管理”——>“克隆”即可,如下图所示。
(2)在弹出的对话框中点击“下一步”,如下图所示。
(3)选择“虚拟机中的当前状态”,然后点击“下一步”,如下图所示。
那么虚拟机当前的状态是什么呢?
实际上就是你上次操作完虚拟机时的状态。如果你不标明虚拟机当前的状态,时间长了,鬼知道你上次的状态是什么?
所以强烈建议大家每做完一部分操作最好对虚拟机当前的状态进行快照。那么这里就要注意:克隆虚拟机之前首先要确定你克隆的是虚拟机的哪个状态,由于不同的虚拟机状态存储着用户对虚拟机的不同操作,所以克隆不同状态的虚拟机就意味着接下来对虚拟机的操作就会有所不同,为了简单,我们直接克隆Linux虚拟机搭建起来的最初状态。
那么首先就需要我们把虚拟机的状态切换到虚拟机搭建起来的最初状态。然后继续进行克隆。
(4)选择“创建完整克隆”,然后点击“下一步”。
(5)可以修改“虚拟机名称”和“虚拟机安装位置”,然后点击“完成”即可。
这样虚拟机就克隆完成了。我们可以按照同样的方法克隆多台虚拟机,为分布式集群的搭建提前做好机器准备。
克隆就是复制,复制就会导致有相同的信息,现在各个机器的状态都是一样的,一个模子刻出来的,而我们需要的是多个不同的主机,所以说就需要我们做相应的修改,否则会导致各种问题。
主要有两点:
1、主机名
主机名就是每台机器的名字,如果主机名配置不正确,就会导致对各个主机之间的访问出现问题。(就像一个父母有3个还不是3胞胎的孩子,明明知道每个孩子都不一样,但是如果名字一样,你怎么叫?叫的是谁呀?就会出现问题,所以说一定要处理好主机名的问题)
2、网卡
网卡是什么?网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件,局域网中每一台计算机的网卡理论上都是全球唯一的。当然虚拟机里边的是一个虚拟的网卡,但是克隆完之后就会导致各个虚拟机的网卡都是一致的,(说白了,还是克隆完之后会导致网卡名字信息重复的问题) 所以说,克隆完虚拟机之后就需要我们首先解决这两个最明显的问题。
1、首先解决主机名的问题
比如每台机器的主机名是什么?怎么改?在哪改?怎么知道有没有改成功?等等。
(1)首先我们来查看一下当前机器的主机名是什么?
直接在命令提示符后输入hostname命令即可。
(2)在哪改?
这些信息肯定是存储在某个文件里的,可以直接输入命令vi /etc/sysconfig/network即可,即在/etc/sysconfig目录下对network文件进行相应的编辑修改。
(3)改成什么?
实际上就是给这台机器取个名字,当然你可以随便取,但是在实际开发过程中最好还是按照规范进行主机名的配置。比如:机架+节点构成主机名,如下图所示。
本课程我们把3台机器的主机名分别改成node-cm01.djt.com,node-cm02.djt.com,node-cm03.djt.com。
(4)怎么改?两种方法:
a:临时性修改:
hostname 主机名。比如:直接输入命令hostname djt
缺点:这种修改方式是临时性的,当虚拟机重启之后就不起作用了,因为配置文件中很多地方都会涉及到主机名的配置,随便修改主机名会导致主机名不一致的问题,除非你把所有涉及到主机名配置的地方都进行修改,所以我们更希望主机名定义完之后不会被随便修改,因此一般不推荐使用临时性修改的方法。
b:永久性修改:
直接修改对应的文件,输入命令vi /etc/sysconfig/network即可进行相应的修改。如下图所示。
(5)检查是否修改成功?
常见的两种方式:
a:直接输入hostname命令查看
b:在命令提示符前对应主机名的位置可以看到主机名的变化。当主机名超过一定长度之后主机名可能显示不全。如下图所示。
注意:采用永久性修改方式修改完主机名之后要重启Linux虚拟机,否则不会立即生效。(我们也可以先不重启,因为后边关闭防火墙也需要重启,到时候我们一块重启)
2、解决网卡的问题
前边我们说过网卡是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件,实际上就是怎么实现主机联网的问题。Linux虚拟机安装成功之后,因为我们需要在虚拟机上通过网络进行一些文件的上传和下载,那么首先要保证我们的虚拟机是可以联网的,所以我们还要进行Linux虚拟机的网络配置。
(1)如何进行Linux虚拟机网络的配置?
1)ping 回环地址
输入ifconfig,我们发现只有回环地址,那么我们就先ping 127.0.0.1,如果能ping 通,那就说明我们的网络协议是好的,一般情况下也都是能ping通的。
2)ping网关,检查一下网卡链路是否有问题。
这里面就牵涉到一个问题:我的网关是多少?在哪里看?
详情如下图所示。
我们发现网关地址ping不通,如下图所示。那么就说明当前我们的网卡链路有问题?
3)解决网卡链路问题
a:首先来查看一下网卡信息,网卡信息通过下面这个文件查看。
我们输入命令vi /etc/sysconfig/network-scripts/ifcfg-eth0即可。
我们发现ONBOOT=no,即网卡没有启动,所以要把no改为yes,启动网卡,然后通过输入service network restart命令重启网卡服务,但是是不成功的。那是什么原因呢?(我尽可能的把操作过程中常见的问题给大家重现一下,分析问题原因,然后再去有针对性的解决,这样即使大家遇到问题的时候也就很容易解决了)
b:由于是克隆的,所以会有两个网卡信息,我们首先做以下处理。我们输入命令: vi /etc/udev/rules.d/70-persistent-net.rules,修改如下信息
c:然后我们输入命令修改网卡 vi /etc/sysconfig/network-scripts/ifcfg-eth0
修改完成之后,我们重启网卡,service network restart,但是还不行,这实际上还是需要我们重启系统,重启服务看来是不行的。
d:输入reboot 重启系统。
e:再次输入ifconfig,此时就能看到IP地址,接下来我们就ping 网关 然后ping IP、ping 外部网络(比如www.baidu.com)如果都能ping 通,说明我们的网络配置就正常了。
4)然后在3台机器上做同样的操作,保证3台机器都能正常的连接到外部网络。