楼主最近测试HDFS性能,需要组建一个由3个VM组成的集群,方便搭建Hadoop集群进行测试.如果使用ISO镜像文件在VMWare上折腾三次构建VM集群,这十再是太浪费时间了.幸好VMWare自带了CLONE当前VM的功能,所以只需要安装好一套VM,然后使用CLONE功能克隆出其它两个VM即可.具体方法如下看下面.
环境:
1. VMWare9.0
2. CentOS6.3 2.6.32-279.el6.x86_64
3. VMWare下已经通过iso镜像文件安装好一个vm
注:安装好的VM的一些参数hostname为222host,IP地址为192.168.0.222.希望再CLONE出另外两个VM,hostname分别为223host和224host,IP分别对应223,224.
方法步骤:
1. CLONE现有VM
右键现在的VM选择clone功能
开始clone向导
从现有VMclone
完全clone(区别与上面的引用克隆,ref的clone是共享母本VM硬盘的)
命名并选择clone目录
开始克隆
完成克隆
2. 解决网卡冲突问题
使用VMWare的CLONE功能会有一个问题,就是克隆出来的新VM在启动后宿主机无法ping通,这是因为克隆出的VM的网卡配置出了问题.
如果原来母本VM(我这里是222)的网卡配置是eth0的话,VMWare在CLONE时会默认将新克隆出来的VM的网卡指定成eth1(见下图ifconfig命令的结果),新的VM中没有eth1这个网卡,导致报如下的网卡找不到的错误(见下图).
解决办法如下:
a. 记录下ifconfig命令中HDWaddr的值(就是MAC地址)
b. 修改/etc/udev/rules.d/70-persistent-net.rules
下图是克隆后的原文件内容
下图是修改后的内容
c. 修改/etc/sysconfig/network-scripts/ifcfg-eth0
d. 重启网络服务service network restart
至此网卡问题解决
3. 修改hostname
CLONE出的新VM仍然使用的母本的222host,这个需要修改的.方法如下:
a. 修改/etc/sysconfig/network文件的HOSTNAME的值为你要的值(我这里改成223host)
b. 修改/etc/hosts文件中所有母本中的名称为新的hostname
c. 执行hostname命令
hostname xxxx
d. 重启linux shutdown -r now
OK大功告成~~
=======================
后记:使用VMWare对CentOS7做vm克隆时,相对CentOS6来说少了上面的一些麻烦事,比如CentOS7中是没有70-persistent-net.rules这个文件的。这时在启动克隆后的VM时有新的错误出现,如下:
[root@228os network-scripts]# service network stop
Stopping network (via systemctl): [ OK ]
[root@228os network-scripts]# service network start
Starting network (via systemctl): Job for network.service failed. See 'systemctl status network.service' and 'journalctl -xn' for details.
[FAILED]
进一步通过systemctl status network.service 命令查看原因如下:
[root@228os network-scripts]# systemctl status network.service
network.service - LSB: Bring up/down networking
Loaded: loaded (/etc/rc.d/init.d/network)
Active: failed (Result: exit-code) since Wed 2015-02-04 15:09:09 CST; 10s ago
Process: 12619 ExecStop=/etc/rc.d/init.d/network stop (code=exited, status=0/SUCCESS)
Process: 13953 ExecStart=/etc/rc.d/init.d/network start (code=exited, status=1/FAILURE)
Feb 04 15:09:09 228os network[13953]: RTNETLINK answers: File exists
Feb 04 15:09:09 228os network[13953]: RTNETLINK answers: File exists
Feb 04 15:09:09 228os network[13953]: RTNETLINK answers: File exists
Feb 04 15:09:09 228os network[13953]: RTNETLINK answers: File exists
Feb 04 15:09:09 228os network[13953]: RTNETLINK answers: File exists
Feb 04 15:09:09 228os network[13953]: RTNETLINK answers: File exists
Feb 04 15:09:09 228os network[13953]: RTNETLINK answers: File exists
Feb 04 15:09:09 228os systemd[1]: network.service: control process exited, code=exited status=1
Feb 04 15:09:09 228os systemd[1]: Failed to start LSB: Bring up/down networking.
Feb 04 15:09:09 228os systemd[1]: Unit network.service entered failed state.
其实最终的原因就是 当前克隆出来的vm的ifcfg-eth0中的MAC地址和ifconfig命令出来的MAC地址不一致所致,所以只需要修改成新的MAC地址即可。