跳轉到內容

叢集手冊/網路

來自華夏公益教科書

叢集中的節點需要連線起來以共享資訊。為此,每個節點都成為一個主節點(頭節點)或伺服器節點。一旦配置確定,就必須設定 DHCP 和 DNS 的網路配置。

DHCP - 動態主機配置協議 - 允許伺服器為客戶端分配網路配置。它的優點是,客戶端不需要進行任何手動配置。在構建具有數百個客戶端的龐大互連繫統時,任何手動配置都會很快變得很麻煩。但是,伺服器必須在每個客戶端上設定,並且重要的是,此分配是唯一的。DNS - 域名系統 - 將主機名或域名解析為 IP 地址。這使得連線更容易閱讀和理解,因為它將各種資訊與域名相關聯。所有這些都需要共享的物理網路。

主節點/伺服器

對於主節點,必須配置兩個檔案。一個位於 /etc/network/interfaces 

清單 6.1 主節點配置
auto lo

iface lo inet loopback
auto eth0
iface eth0 inet dhcp #Externe Addresse fuer Master

auto eth1
iface eth1 inet static #IP-Addresse fuer das interne Netz

   address 10.0.x.250
   netmask 255.255.255.0

address 顯示本地網路。用點分隔的前三個數字是網路字首。網路掩碼定義了網路字首的大小,如下一行所示。這兩個規範最終定義了本地網路上的哪些 IP 地址以及哪些被其他網路上的路由器識別。所有 255 掩碼部分的 IP 地址構成網路字首。所有想要包含在本地網路中的裝置必須具有相同的網路字首。在我們的示例中,它以 10.0. 開頭。隨後的 x 代表本地網路的編號,如果存在多個本地網路的話。所有可以歸類到本地網路 1 的單元必須具有網路字首 10.0.1。第四個條目用 0 掩碼,描述了本地網路上裝置的編號,介於 0 到 255 之間。伺服器的方便編號是 250,因為它比較大,因此很容易與客戶端區分開來(除非有超過 250 個客戶端要註冊)。當然,它可以是任何其他允許的數字。

必須為伺服器配置的第二個檔案位於 /etc/hosts

清單 6.2 主節點主機配置
127.0.0.1    localhost

#Mapping IP addresses to host names. Worker and Master / Clients and Server

10.0.1.1        worker1
10.0.1.2        worker2
10.0.1.3        worker3
10.0.1.4        worker4

10.0.1.250      master

::1     ip6-localhost ip6-loopback

fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

此時將輸入名稱解析。與上面的示例不同,對於 x,選擇了 1。重要的是不要忘記輸入主節點。

必須刪除現有的行 127.0.1.1 ... - 對於主節點工作節點。

工作節點/客戶端

必須為工作節點和客戶端修改受影響的檔案。通常,DHCP 伺服器會處理這些問題。但是,如果無法訪問外部網路或缺少許可權,則可能會導致重大問題。在最壞的情況下,您必須手動輸入靜態 IP 條目。

/etc/network/interfaces 

清單 6.3 工作節點配置
auto lo

iface lo inet loopback

#IP Addresse worker. Nameserver IP Addresse -> Master

auto eth0

iface eth0 inet static

   address 10.0.1.1

   netmask 255.255.255.0
   dns-nameservers 10.0.1.250 #[,10.0.x.weitere_server ]

名稱和 IP 地址必須與主節點的記錄相匹配。

/etc/hosts 

清單 6.4 工作節點主機配置
 
127.0.0.1    localhost

::1     ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

要檢查一切是否正常,您可以檢查機器是否可以互相 ping 通

$ ping master

不僅需要促進客戶端和伺服器之間的通訊,還需要提供對共享資料的訪問。這可以透過 NFS - 網路檔案系統 來配置。如果需要,資料不會被傳輸。讀操作就像資料在自己的記憶體中一樣(當然,具有不同的訪問時間)。

主節點/伺服器

首先必須安裝 NFS 核心伺服器包

$ sudo apt-get install nfs-kernel-server/etc/ 中,必須配置以下檔案 exports

/home 10.0.1.0/24(rw,no_subtree_check,no_root_squash) 在此示例中,設定了三個選項

  • rw 為網路提供讀寫許可權
  • no_subtree_check 確保釋放屬於 root 的檔案;提高傳輸速度,因為當用戶請求檔案時,不會檢查每個子目錄(如果整個檔案系統已解鎖,則很有用)
  • no_root_squashroot 使用者提供寫許可權(否則 root 將被對映到 nobody 使用者以確保安全)

前面和括號內不能有空格。

工作節點/客戶端

首先必須安裝 NFS 通用包

$ sudo apt-get install nfs-common/etc/ 中,必須按如下所示配置以下檔案 fstab

master:/home /home nfs rw,auto,proto=tcp,intr,nfsvers=3 0 0 有關各個選項的含義,請參考 man fstab

如果客戶端沒有網際網路訪問許可權,因為內部網路不提供它,您必須在主節點/伺服器上啟用路由,因為它只有與外部網路的連線。參見第 6.3 節

安裝後,需要更新狀態

$ sudo exportfs -ra,其中

  • -r : 匯出所有目錄。此選項將 /var/lib/nfs/xtab/etc/exports 同步。從 /etc/exports 中刪除的 /var/lib/nfs/xtab 中的條目。此外,還會刪除核心表中所有不再有效的條目。
  • -a : (取消)匯出所有目錄(在 exports 中列出的)。

應該重啟 NFS 伺服器

$ sudo /etc/init.d/nfs-kernel-server restart

主節點

路由 確定訊息流在網路中的整個路徑。轉發 描述單個網路節點的決策過程,它透過該節點將訊息轉發給其鄰居 </ref> 我們的目標是透過伺服器節點為節點提供對網際網路的訪問,這些節點只能在本地網路上訪問(因此可以在客戶端上下載軟體包)。

以下行需要插入到 /etc/sysctl.conf 中以啟用 IP 轉發

net.ipv4.ip_forward=1 此外,必須在外部介面 eth0 上啟用 NAT。因此,將以下行新增到 /etc/rc.local(透過退出 0)。

工作節點/客戶端

這裡,必須將主節點設定為閘道器

gateway 10.0.x.250 應該重啟硬體。在預設設定下,將掛載 /home 目錄,否則您可以手動進行

$ sudo mount /home 請注意,在配置階段,節點應該只有對網際網路的訪問許可權。在正常執行中,這將是一個安全風險。

華夏公益教科書