VMware克隆多台实例构建分布式系统

背景

开始使用多种分布式系统, 搭建本地开发环境.

环境参数

  • 宿主机操作系统: Windows 7
  • 虚拟化软件: VMware WorkStation 12.1.0
  • 虚拟机操作系统: CentOS 6.5

安装

略…

注: 安装完毕后记得将该实例作为基础实例进行备份, 以后需要添加实例的时候直接克隆该实例即可.

设置静态IP

笔者虚拟机实例网络模式使用桥接模式, 此模式可使实例获得独立IP, 并能与所在网段的其它机器互相通讯.

查看eth0是否启用

1
ifconfig

如果启用了的话, 会显示相关信息;

若未启用, 修改网卡配置并使用service network restart重启eth0即可.

修改网卡配置

1
vim /etc/sysconfig/network-scripts/ifcfg-eth0

添加如下内容, 如果原来有照着修改即可:

1
2
3
4
5
6
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.10.200
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
DNS1=192.168.10.1

以上配置说明:

  • DEVICE=eth0 #描述网卡对应的设备别名
  • BOOTPROTO=static #设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的 ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址
  • ONBOOT=yes 自动联网
  • IPADDR=192.168.10.200 #如果设置网卡获得ip地址的方式为静态指定,此字段就指定了网卡对应的ip地址
  • NETMASK=255.255.255.0 #网卡对应的网络掩码
  • GATEWAY=192.168.10.1 #默认网关的IP地址,可以在另外一台windows系统中用cmd然后使用ipconfig查到
  • DNS1=192.168.10.1 #DNS1服务器的地址,可以在另外一台windows系统中用cmd使用nslookup查到
1
2
# 重启网卡即可重用设置
service network restart

注: 填写IPADDR时, 先ping下所选ip是否被其它机器占用

安装VMware Tools

挂载镜像

虚拟机 → 安装VMware Tools

mount并安装

1
2
3
4
5
6
7
8
9
10
cd
mkdkr temp
cd temp
[root@Node temp]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
[root@Node temp]# cp /mnt/VMwareTools-10.0.5-3228253.tar.gz ./
[root@Node temp]# umount /mnt
[root@Node temp]# tar -xzf VMwareTools-10.0.5-3228253.tar.gz
[root@Node temp]# cd vmware-tools-distrib/
[root@Node vmware-tools-distrib]# ./vmware-install.pl

一路回车, 看见如下内容, 表示安装成功.

1
2
3
4
5
6
7
8
9
To enable advanced X features (e.g., guest resolution fit, drag and drop, and
file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session; and,

3. Restart your X session.

Enjoy,

--the VMware team

克隆

将基础实例命名为M_BAK.

选中实例(右键) → 管理 → 克隆 → … → 创建完整克隆

  • 虚拟机名称: M1
  • 位置: D:\VM\M1

查看网卡信息

克隆产生的实例网卡信息会产生变化, 需要进行修改.

  • 查看所有网卡信息: ifconfig
1
2
3
4
5
6
7
8
9
[root@Node ~]# ifconfig
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:904 (904.0 b) TX bytes:904 (904.0 b)

此时看不到eth0网卡的信息

编辑网卡设备信息

1
vim /etc/udev/rules.d/70-persistent-net.rules
1
2
3
4
5
6
7
8
9
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a9:16:dc", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:de:b1:fa", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

将上述配置的第一个设备注释掉, 并且将第二个设备信息修改为NAME="eth0", 如下

1
2
3
4
# PCI device 0x8086:0x100f (e1000)
#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a9:16:dc", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x8086:0x100f (e1000)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:de:b1:fa", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

记住此时的MAC ATTR已变更, 00:0c:29:de:b1:fa

编辑网卡信息

1
vim /etc/sysconfig/network-scripts/ifcfg-eth0

修改IPADDRHWADDR, 如下:

1
2
HWADDR=00:0c:29:de:b1:fa
IPADDR=192.168.10.201

重启服务

1
service network restart

此处可能会遇到错误,

1
2
3
Shutting down loopback insterface:                                                       [   OK  ]
Bringing up loopback insterface: [ OK ]
Bringing up interface eth0: Device eth0 does not seem to be present,delaying initialization. [FAILED]

重启(reboot)实例可以解决该问题, 重启后输入指令ifconfig

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[root@Node ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:DE:B1:FA
inet addr:192.168.10.201 Bcast:192.168.10.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fede:b1fa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2539 errors:0 dropped:0 overruns:0 frame:0
TX packets:198 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:266172 (259.9 KiB) TX bytes:35221 (34.3 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

原因是什么呢?

因为在虚拟机(Vmware)中移动了Centos系统对应的文件,导致重新配置时,网卡的MAC地址变了,输入ifconfig -a,找不到eth0; 重启后, 将重新加载相关信息.

转载

本文出自<<arccode>>, 欢迎转载, 转载请注明出处.