机房4台服务器集群网络配置

主要目标:

能够经过内网系统访问楼下机房服务器集群,楼下机房只给一个能够访问外网的IP。php

现有条件:

  1. 只有一根能够上外网的网线
  2. 一台交换机
  3. 4台高性能服务器,每台服务器有两个网口

主要网络架构设计:

  1. 一台服务器为master节点
  2. 另外三台服务器分别为slave1,slave2,slave3
  3. 四台服务器安装的操做系统皆为unbuntu server

IP 分布:

  1. master节点eth0: 192.168.223.1 , eth1: 10.1.8.200
  2. slave2节点eth0: 192.168.223.2
  3. slave3节点eth0: 192.168.223.3
  4. slave4节点eth0: 192.168.223.4

网络分布示意图:

  

具体服务器配置:

  1. master节点配置ip配置,修改 /etc/network/interfaces 文件, 配置文件以下:
    auto eth0
    iface eth0 inet static
    address 192.168.223.1
    netmask 255.255.255.0
    
    auto eth1
    iface eth1 inet static
    
    address 10.1.8.200
    netmask 255.255.255.0
    gateway 10.1.8.254

    网络配置文件修改完以后, /etc/init.d/network restart
    或者 service network restart
    若是重启以后仍是不行,则从新启动服务器。
    网络从新启动以后,执行ifconfig命令查看网口配置
    这时,若是出现网口乱名的问题,即网口名字非eth0,eth1,eth2….
    则执行以下配置
    Edit /etc/default/grub and search for the following:linux

    GRUB_CMDLINE_LINUX_DEFAULT=""
    GRUB_CMDLINE_LINUX=""

    Add biosdevname=0 to the 2 lines:ios

    GRUB_CMDLINE_LINUX_DEFAULT="biosdevname=0"
    GRUB_CMDLINE_LINUX="biosdevname=0"

    The runubuntu

    sudo update-grub

    配置结束以后,重启服务器, 而后查看 /etc/udev/rules.d/70-persistentnet.rules
    有相关与网口的配置 , 具体请参考网页http://askubuntu.com/questions/578650/interface-device-name-em1-to-eth0-linux-14-04-lts缓存

    而后,须要配置数据转发机制。
    master上的eth0与其余slave上的eth0都经过交换机造成了一个192.168.223.0网段的一个内网。内网中的服务器所有能够互相访问。如今只有一个eht1网口用于上网。须要创建转发路由规则:服务器

     

    进入终端, 开启路由功能,网络

    echo "1" > /proc/sys/net/ipv4/ip_forward

    这里echo时若是sudo权限不行,转入root权限操做,接着依次输入下列命令:架构

    sudo iptables -F
    sudo iptalbes -P INPUT ACCEPT
    sudo iptalbes -P FORWARD ACCEPT
    sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

    iptables -F 命令是删除原有的路由配置(这条命令不要随意操做,若是你原来的配置是iptables -P INPUT DROP, 那么你的远程链接颇有可能断开)
    正确查看路由的命令是:ssh

    sudo iptables -L -n

    若是sudo iptalbes -F 这条命令无效,则改换成下面这条命令:oop

    sudo iptalbes -F  -t  nat

    可是以上配置都是临时配置,一旦服务器关机就失效了,因此,须要将以上修改写入 /etc/rc.local文件中。

  2. slave节点配置 slave节点配置基本相同,如如下slave2节点配置
    修改 /etc/network/interfaces以下
    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
    address 192.168.223.2
    netmask 255.255.255.0
    gateway 192.168.223.1

    配置文件写好以后,执行生效如前所述
    其余slave节点ip配置所有按照该节点配置。

配置完成以后:

全部节点配置完成以后,在每台服务器上配置ssh-server,unbutun server版本是默认配置ssh-client版本 

对每一个服务器执行如下命令(这个时候每台服务器是联网的)

sudo apt-get intall update

为了提升下载时的速度,须要修改下载源
进入/etc/apt/sources.list,将全部 http://cn.archive.ubuntu.com/ubuntu/

改为 http://mirrors.ustc.edu.cn/ubuntu/

中科大的下载源速度仍是很快的.

更换源以后,执行如下两条命令:

sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update

将缓存的信息去掉

额外配置(方便部署Hadoop集群)

  1. 修改每台主机的 /etc/hosts, hosts内容以下(slave1这行是专门添加的):
    master 192.168.223.1
    slave1 192.168.223.1
    slave2 192.168.223.2
    slave3 192.168.223.3
    slave4 192.168.223.4

  2. 为每台主机主机同名的 sudo 用户 hadoop (之后可能会用到),密码用 haike@99,删除原来的用户 master, slave*,使用hadoop用户,在每台机器上执行(使用通常用户权限)
    ssh-keygen
    ssh-copy-id master
    ssh-copy-id slave2
    ssh-copy-id slave3
    ssh-copy-id slave4

    这样可使用hadoop用户不须要密码就能够访问其余机器上的hadoop用户,使用ssh slave* 命令。

  3. 修改每台主机 /etc/default/locale文件, 内容改成
    LANG=en_US.UTF-8
    LANGUAGE=en_US:en
    LC_NUMERIC=”en_US”
    LC_TIME=”en_US”
    LC_MONETARY=”en_US”
    LC_PAPER=”en_US”
    LC_NAME=”en_US”
    LC_ADDRESS=”en_US”
    LC_TELEPHONE=”en_US”
    LC_MEASUREMENT=”en_US”
    LC_IDENTIFICATION=”en_US”
    修改完后执行
    sudo locale-gen en_US en_US.UTF-8
    sudo dpkg-reconfigure locales
    具体请参考
    http://ubuntuforums.org/showthread.php?t=1346581
    若是安装的是中文环境,请进行修改。英文环境不用修改.

  4. 给其余人添加用户时,能够去/etc/sudoers, 增长该用户的sudo权限。

  5. 修改DNS服务器,能够去/etc/resolv.conf,
nameserver 114.114.114.114
相关文章
相关标签/搜索