標籤:
主要目標:
可以通過內網系統訪問樓下機房伺服器叢集,樓下機房只給一個可以訪問外網的IP。
現有條件:
- 只有一根可以上外網的網線
- 一台交換器
- 4台高效能伺服器,每台伺服器有兩個網口
主要網路架構設計:
- 一台伺服器為master節點
- 另外三台伺服器分別為slave1,slave2,slave3
- 四台伺服器安裝的作業系統皆為unbuntu server
IP 分布:
- master節點eth0: 192.168.223.1 , eth1: 10.1.8.200
- slave2節點eth0: 192.168.223.2
- slave3節點eth0: 192.168.223.3
- slave4節點eth0: 192.168.223.4
網路分布:
具體伺服器配置:
- master節點配置ip配置,修改 /etc/network/interfaces 檔案, 設定檔如下:
auto eth0iface eth0 inet staticaddress 192.168.223.1netmask 255.255.255.0auto eth1iface eth1 inet staticaddress 10.1.8.200netmask 255.255.255.0gateway 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:
GRUB_CMDLINE_LINUX_DEFAULT=""GRUB_CMDLINE_LINUX=""
Add biosdevname=0 to the 2 lines:
GRUB_CMDLINE_LINUX_DEFAULT="biosdevname=0"GRUB_CMDLINE_LINUX="biosdevname=0"
The run
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 -Fsudo iptalbes -P INPUT ACCEPTsudo iptalbes -P FORWARD ACCEPTsudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -F 命令是刪除原有的路由配置(這條命令不要隨意操作,如果你原來的配置是iptables -P INPUT DROP, 那麼你的遠端連線很有可能斷開)
正確查看路由的命令是:
sudo iptables -L -n
如果sudo iptalbes -F 這條命令無效,則改換成下面這條命令:
sudo iptalbes -F -t nat
但是以上配置都是臨時配置,一旦伺服器關機就失效了,所以,需要將以上修改寫入 /etc/rc.local檔案中。
- slave節點配置 slave節點配置基本相同,如以下slave2節點配置
修改 /etc/network/interfaces如下auto loiface lo inet loopbackauto eth0iface eth0 inet staticaddress 192.168.223.2netmask 255.255.255.0gateway 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/* -vfsudo apt-get update
將緩衝的資訊去掉
額外配置(方便部署Hadoop叢集)
修改每台主機的 /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
為每台主機主機同名的 sudo 使用者 hadoop (以後可能會用到),密碼用 [email protected],刪除原來的使用者 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* 命令。
修改每台主機 /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
如果安裝的是中文環境,請進行修改。英文環境不用修改.
給其他人添加使用者時,可以去/etc/sudoers, 增加該使用者的sudo許可權。
- 修改DNS伺服器,可以去/etc/resolv.conf,
nameserver 114.114.114.114
機房4台伺服器叢集網路設定